DE112019000401B4 - Ein chronologisch geordneter log-strukturierter schlüssel-wert-speicher für fehler bei der speicherbereinigung - Google Patents

Ein chronologisch geordneter log-strukturierter schlüssel-wert-speicher für fehler bei der speicherbereinigung Download PDF

Info

Publication number
DE112019000401B4
DE112019000401B4 DE112019000401.8T DE112019000401T DE112019000401B4 DE 112019000401 B4 DE112019000401 B4 DE 112019000401B4 DE 112019000401 T DE112019000401 T DE 112019000401T DE 112019000401 B4 DE112019000401 B4 DE 112019000401B4
Authority
DE
Germany
Prior art keywords
garbage collection
log
transaction
target slot
slot
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.)
Active
Application number
DE112019000401.8T
Other languages
English (en)
Other versions
DE112019000401T5 (de
Inventor
Aayush Gupta
Sangeetha Seshadri
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112019000401T5 publication Critical patent/DE112019000401T5/de
Application granted granted Critical
Publication of DE112019000401B4 publication Critical patent/DE112019000401B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Verfahren (100) zur Wiederherstellung nach Fehlern während eines Speicherbereinigungsprozesses in einem System (300, 400, 500), umfassend:Ausführen (1010) einer chronologischen Speicherbereinigung transaktional durch einen Prozessor (410, 510);Aufzeichnen (1020) eines spezifischen Versatzes innerhalb eines Speicherbereinigungszielslots (630) einer Log-Struktur, die mit der Speicherbereinigungstransaktion assoziiert ist, wobei jede Transaktionsaufzeichnung der Speicherbereinigungstransaktion einen Speicherbereinigungszielslot (630), einen Opfer-Slot (640) und einen Anfangsversatz in dem Speicherbereinigungszielslot enthält; undÜberspringen (1030) von Datensätzen von einem anfänglichen Versatz im Speicherbereinigungszielslot der von der Speicherbereinigungstransaktion aufgezeichneten Log-Struktur bis zum Ende des Speicherbereinigungszielslots.

Description

  • Technisches Gebiet
  • Die Erfindung bezieht sich im Allgemeinen auf die Verwaltung log-strukturierter Speichersysteme. Insbesondere stellt sie die Wiederherstellung nach Ausfällen während eines Speicherbereinigungsvorgangs in einem System bereit.
  • HINTERGRUND
  • Typische log-strukturierte Speichersysteme speichern Aufzeichnungsdaten in zeitlicher Reihenfolge in einem „Log“ („Protokoll“). Diese typischen Systeme erlauben grundlegende einfache Operationen, wie z.B. Einfügen, Aktualisieren, Löschen, Lesen. Jede Datenaktualisierung führt dazu, dass am Ende des „Logs“ ein neuer Datensatz aufgezeichnet wird. Jede Löschung führt dazu, dass ein Tombstone-Objekt am Ende des Logs eingefügt wird. Zusätzlich komprimiert ein Speicherbereinigungsverfahren („garbage collection process“; GC) im Hintergrund den Datenrückgewinnungsraum, der keine gültigen Daten enthält. Die Wiederherstellung nach Fehlern während der Speicherbereinigung kann jedoch ein Problem darstellen.
  • Daher besteht die Notwendigkeit, das oben genannte Problem anzugehen.
  • US 2014 / 0 136 575 A1 betrifft ein System und ein Verfahren für log-strukturierte Speicherbereinigung. Insbesondere verwenden einige Ausführungsformen Versätze von Schreibzeigern zu Lesezeigern, um die Rückgewinnung von Speicherplatz innerhalb eines log-strukturierten Speichermediums zu ermöglichen (z. B. sequentielle Vorwärtsschreibmechanismen wie SSD, Band, Shingled Drives, Flash Drives usw.). Diese Techniken ermöglichen es dem Speicherbereinigungssystem, Speicherplatz zurückzugewinnen, ohne Daten von einem Speichermedium auf ein anderes zu kopieren. Anstatt die Daten zu kopieren, setzen verschiedene Ausführungsformen die Schreib- und Lesezeiger zurück. Darüber hinaus können verschiedene Aufbewahrungsrichtlinien leicht durchgesetzt werden, während gleichzeitig eine effiziente Speicherbereinigung möglich ist. In einem Backup-Speicher kann beispielsweise jedes log-strukturierte Medium mit einer Aufbewahrungszeit versehen werden, und es dürfen nur Arbeitslasten mit der angegebenen Aufbewahrungszeit gespeichert werden. Infolgedessen fallen bei der Speicherbereinigung nur Lesezeigerverschiebungen an.
  • KURZDARSTELLUNG
  • Nach einem ersten Aspekt betrachtet, stellt die vorliegende Erfindung ein Verfahren zur Wiederherstellung nach Fehlern während der Speicherbereinigungsverfahren in einem System bereit, das folgende Schritte umfasst: Ausführen einer transaktionalen chronologischen Speicherbereinigung durch einen Prozessor; Aufzeichnen eines bestimmten Versatzes („offset“) innerhalb eines Zielslots einer Log-Struktur, die mit der Speicherbereinigungstransaktion („garbage collection transaction“) verknüpft ist; und Überspringen von Datensätzen von einem anfänglichen Versatz im Zielslot der Log-Struktur, die durch die Speicherbereinigungstransaktion aufgezeichnet wurde, bis zum Ende des Zielslots.
  • Ferner stellt die vorliegende Erfindung unter einem weiteren Aspekt betrachtet eine Vorrichtung bereit, die Folgendes umfasst: einen Speicher, der Anweisungen speichert; und einen Prozessor, der die Anweisungen ausführt, um: eine chronologische Speicherbereinigung transaktional durchzuführen, einen spezifischen Versatz innerhalb eines Zielslots einer Log-Struktur, die mit der Speicherbereinigungstransaktion verknüpft ist, aufzuzeichnen; und Datensätze von einem anfänglichen Versatz im Zielslot der Log-Struktur, die durch die Speicherbereinigungstransaktion aufgezeichnet wurde, bis zu einem Ende des Zielslots zu überspringen, wobei sich der Prozessor von Fehlern erholt, die während des Speicherbereinigungsverfahrens in einem System auftreten.
  • Ferner stellt die vorliegende Erfindung gemäß einem weiteren Aspekt ein Computerprogrammprodukt zur Wiederherstellung nach Fehlern bei der Speicherbereinigung in einem System bereit, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium umfasst, das von einer Verarbeitungsschaltung („processing circuit“) gelesen werden kann und Anweisungen zur Ausführung durch die Verarbeitungsschaltung zur Durchführung eines Verfahrens zur Ausführung der Schritte der Erfindung speichert.
  • Ferner gemäß einem weiteren Aspekt betrachtet, stellt die vorliegende Erfindung ein Computerprogramm bereit, das auf einem computerlesbaren Medium gespeichert ist und in den internen Speicher eines digitalen Computers geladen werden kann, und das Softwarecodeteile umfasst, wenn das Programm auf einem Computer ausgeführt wird, um die Schritte der Erfindung auszuführen.
  • Ausführungsformen beziehen sich auf die ordnungsgemäße Wiederherstellungsform nach Ausfällen während der Speicherbereinigung in einem chronologisch geordneten, log-strukturierten Schlüssel-Werte-Speicher. Eine Ausführungsform umfasst ein Verfahren zur Wiederherstellung nach Fehlern bei der Speicherbereinigung in einem chronologisch geordneten log-strukturierten Schlüsselspeicher, das die transaktionale Ausführung der chronologischen Speicherbereinigung durch einen Prozessor umfasst. Ein spezifischer Versatz innerhalb eines Zielslots einer Log-Struktur, die mit der Speicherbereinigungstransaktion verknüpft ist, wird aufgezeichnet. Datensätze werden von einem anfänglichen Versatz innerhalb des Zielslots der von der Speicherbereinigungstransaktion aufgezeichneten Log-Struktur bis zum Ende des Zielslots übersprungen.
  • Diese und andere Merkmale, Aspekte und Vorteile der vorliegenden Erfindung werden unter Bezugnahme auf die folgende Beschreibung, die beigefügten Ansprüche und die begleitenden Figuren erläutert.
  • Figurenliste
  • Ausführungsformen der vorliegenden Erfindung werden nun nur beispielhaft anhand der beigefügten Zeichnungen beschrieben, wobei:
    • 1 eine Cloud-Computing-Umgebung gemäß einer Ausführungsform zeigt;
    • 2 eine Reihe von Abstraktionsmodell-Ebenen gemäß Ausführungsformen zeigt;
    • 3 eine Netzwerkarchitektur für retrospektive Speicherauszüge in log-strukturierten Speichersystemen gemäß einer Ausführungsform zeigt;
    • 4 eine repräsentative Hardware-Umgebung zeigt, die gemäß einer Ausführungsform mit den Servern und/oder den Clienten von 1 verknüpft sein kann;
    • 5 ein Blockdiagramm zeigt, das einen Prozessor zur schnellen Wiederherstellung nach Ausfällen in einem chronologisch geordneten log-strukturierten Schlüssel-Wert-Speicher in log-strukturierten Speichersystemen gemäß einer Ausführungsform zeigt;
    • 6 einen anfänglichen Systemzustand während der Speicherbereinigung zeigt, gemäß einer Ausführungsform;
    • 7 einen Systemzustand zum Zeitpunkt eines Systemabsturzes während der Speicherbereinigung zeigt, gemäß einer Ausführungsform;
    • 8 einen Systemzustand nach dem Zurücksetzen („rollback“) der Speicherbereinigung zeigt, gemäß einer Ausführungsform;
    • 9 ein Systemzustand zeigt, der beschädigte Rückketten während der Rückführung der Speicherbereinigung repariert, gemäß einer Ausführungsform; und
    • 10 ein Blockdiagramm für einen Prozess zur Wiederherstellung nach Ausfällen bei der Speicherbereinigung in einem chronologisch geordneten log-strukturierten Schlüssel-Werte-Speicher zeigt, gemäß einer Ausführungsform.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die Beschreibungen der verschiedenen Ausführungsformen dienen der Veranschaulichung, sollen aber weder erschöpfend noch auf die offenbaren Ausführungsformen beschränkt sein. Viele Modifikationen und Variationen ergeben sich aus den üblichen Fachkenntnissen, ohne vom Umfang der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Terminologie wurde gewählt, um die Prinzipien der Ausführungsformen, die praktische Anwendung oder die technische Verbesserung gegenüber den auf dem Markt befindlichen Technologien bestmöglich zu erklären oder um es anderen Personen mit üblichen Fachkenntnissen zu ermöglichen, die hier offengelegten Ausführungsformen zu verstehen.
  • Es wird vorausgesetzt, dass, obwohl diese Offenlegung eine detaillierte Beschreibung des Cloud-Computing umfasst, die Umsetzung der hier dargelegten Lehren nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Vielmehr können Ausführungsformen der vorliegenden Erfindung in Verbindung mit jeder anderen heute bekannten oder später entwickelten Art von Computerumgebung implementiert werden.
  • Eine oder mehrere Ausführungsformen beziehen sich auf die ordnungsgemäße Wiederherstellungsform nach Ausfällen während der Speicherbereinigung (GC) in einem chronologisch geordneten Log-strukturierten Schlüssel-Wert-Speicher. Eine Ausführungsform stellt ein Verfahren zur Wiederherstellung nach Ausfällen während der GC in einem chronologisch geordneten log-strukturierten Schlüssel-Wert-Speicher bereit, umfassend die Ausführung chronologischer GC-Transaktionen durch einen Prozessor. Ein spezifischer Versatz innerhalb eines Zielslots einer mit der GC-Transaktion verknüpften Log-Struktur wird aufgezeichnet. Datensätze werden von einem anfänglichen Versatz innerhalb des Zielslots der von der Speicherbereinigungstransaktion aufgezeichneten Log-Struktur bis zum Ende des Zielslots übersprungen.
  • Cloud Computing ist ein Modell der Dienstbereitstellung, das einen bequemen, bedarfsgerechten Netzwerkzugang zu einem gemeinsamen Pool konfigurierbarer Computing-Ressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Speicher, Speicherung, Anwendungen, virtuelle Maschinen (VMs) und Dienste) ermöglicht, die mit minimalem Verwaltungsaufwand oder Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Merkmale, mindestens drei Dienstmodelle und mindestens vier Bereitstellungsmodelle umfassen.
  • Die Merkmale sind wie folgt:
    • On-Demand-Selbstbedienung („on-demand self-service“): Ein Cloud-Consumer kann einseitig Rechenkapazitäten, wie z.B. Serverzeit und Netzwerkspeicher, je nach Bedarf und automatisch bereitstellen, ohne dass eine menschliche Interaktion mit dem Dienstanbieter erforderlich ist.
    • Breiter Netzwerkzugang („broad network access“): Die Funktionen sind über ein Netzwerk verfügbar und werden über Standardmechanismen zugänglich gemacht, die die Nutzung durch heterogene, Thin- oder Thick-Client-Plattformen (z.B. Mobiltelefone, Laptops und PDAs) fördern.
    • Ressourcen-Pooling: Die Rechenressourcen des Anbieters werden in einem Multi-Tenant-Modell zusammengelegt, um mehrere Verbraucher zu bedienen, wobei verschiedene physische und virtuelle Ressourcen dynamisch zugewiesen und je nach Bedarf neu zugewiesen werden. Es besteht ein Gefühl der Standortunabhängigkeit, da der Verbraucher im Allgemeinen keine Kontrolle über den genauen Standort der bereitgestellten Ressourcen hat oder darüber Bescheid weiß, aber möglicherweise in der Lage ist, den Standort auf einer höheren Abstraktionsebene (z.B. Land, Staat oder Rechenzentrum) anzugeben.
    • Schnelle Elastizität („rapid elasticity“): Fähigkeiten können schnell und dynamisch und in einigen Fällen automatisch bereitgestellt werden, so dass sie schnell aus- und schnell wieder freigesetzt werden können, um schnell wieder einzusteigen. Für den Verbraucher erscheinen die für die Bereitstellung verfügbaren Fähigkeiten oft unbegrenzt und können jederzeit in beliebiger Menge erworben werden.
    • Gemessener Dienst („measured service“): Cloud-Systeme steuern und optimieren die Ressourcennutzung automatisch, indem sie auf einer dem Typ des Dienstes angemessenen Abstraktionsebene (z. B. Speicherung, Verarbeitung, Bandbreite und aktive Verbraucherkonten) eine Messfunktion nutzen. Die Nutzung von Ressourcen kann überwacht, kontrolliert und berichtet werden, wodurch sowohl für den Anbieter als auch für den Verbraucher des genutzten Dienstes Transparenz bereitgestellt wird.
  • Die Servicemodelle sind wie folgt:
    • Software as a Service (SaaS): Die Fähigkeit, die dem Verbraucher zur Verfügung gestellt wird, ist die Fähigkeit, die Anwendungen des Anbieters zu nutzen, die auf einer Cloud-Infrastruktur laufen. Die Anwendungen sind von verschiedenen Client-Geräten über eine Thin-Client-Oberfläche, wie z.B. einem Webbrowser, zugänglich (z.B. webbasierte E-Mail). Der Verbraucher verwaltet oder kontrolliert nicht die zugrundeliegende Cloud-Infrastruktur, einschließlich Netzwerk, Server, Betriebssysteme, Speicher oder sogar einzelne Anwendungsmöglichkeiten, mit der möglichen Ausnahme von begrenzten verbraucherspezifischen Anwendungskonfigurationseinstellungen.
    • Platform as a Service (PaaS): Die Fähigkeit, die dem Verbraucher zur Verfügung gestellt wird, ist die Fähigkeit, auf der Cloud-Infrastruktur vom Verbraucher erstellte oder erworbene Anwendungen einzusetzen, die mit Hilfe von Programmiersprachen und Werkzeugen erstellt wurden, die vom Anbieter unterstützt werden. Der Verbraucher verwaltet oder kontrolliert nicht die zugrundeliegende Cloud-Infrastruktur einschließlich Netzwerke, Server, Betriebssysteme oder Speicher, sondern hat die Kontrolle über die bereitgestellten Anwendungen und möglicherweise die Konfigurationen der Anwendungs-Hosting-Umgebung.
    • Infrastructure as a Service (laaS): Die Fähigkeit, die dem Verbraucher zur Verfügung gestellt wird, ist die Fähigkeit, Verarbeitung, Speicherung, Netzwerke und andere grundlegende Computerressourcen bereitzustellen, wobei der Verbraucher in der Lage ist, beliebige Software einzusetzen und auszuführen, die Betriebssysteme und Anwendungen umfassen kann. Der Verbraucher verwaltet oder kontrolliert nicht die zugrundeliegende Cloud-Infrastruktur, sondern hat die Kontrolle über Betriebssysteme, Speicher, eingesetzte Anwendungen und möglicherweise begrenzte Kontrolle über ausgewählte Netzwerkkomponenten (z.B. Host-Firewalls).
  • Die Einsatzmodelle sind wie folgt:
    • Private Cloud: Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann von der Organisation oder einer dritten Partei verwaltet werden und sowohl vor Ort als auch außerhalb des Firmengeländes bestehen.
    • Community Cloud: Die Cloud-Infrastruktur wird von mehreren Organisationen gemeinsam genutzt und unterstützt eine bestimmte Community, die gemeinsame Anliegen hat (z. B. Mission, Sicherheitsanforderungen, Richtlinien und Konformitätserwägungen). Sie kann von den Organisationen oder einer Drittpartei verwaltet werden und sowohl vor Ort als auch außerhalb des Firmengeländes bestehen.
    • Public Cloud: Die Cloud-Infrastruktur wird der Allgemeinheit oder einem großen Industriekonzern zur Verfügung gestellt und befindet sich im Besitz einer Organisation, die Cloud-Dienste verkauft.
    • Hybrid Cloud: Die Cloud-Infrastruktur ist eine Zusammensetzung aus zwei oder mehreren Clouds (privat, gemeinschaftlich oder öffentlich), die zwar einzigartige Einheiten bleiben, aber durch standardisierte oder proprietäre Technologie miteinander verbunden sind, die die Portabilität von Daten und Anwendungen ermöglicht (z.B. Cloud Bursting zum Lastausgleich zwischen Clouds).
  • Eine Cloud-Computing-Umgebung ist eine dienstorientierte Umgebung mit Schwerpunkt auf Zustandslosigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität. Das Herzstück von Cloud Computing ist eine Infrastruktur, die ein Netzwerk von miteinander verbundenen Knoten umfasst.
  • Bezugnehmend auf 1 wird nun eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt, umfasst die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10, mit denen lokale Rechengeräte, die von Cloud-Konsumenten verwendet werden, wie z.B. der Personal Digital Assistant (PDA) oder das Mobiltelefon 54A, der Desktop-Computer 54B, der Laptop-Computer 54C und/oder das Automobil-Computersystem 54N kommunizieren können. Knoten 10 können miteinander kommunizieren. Sie können physisch oder virtuell in einem oder mehreren Netzwerken gruppiert (nicht dargestellt) sein, wie z.B. private, gemeinschaftlich, öffentliche oder hybride Clouds, wie oben beschrieben, oder eine Kombination davon. Dies ermöglicht es der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienste anzubieten, für die ein Cloud-Konsument keine Ressourcen auf einem lokalen Rechengerät verwalten muss. Es wird davon ausgegangen, dass die in 2 gezeigten Typen von Rechengeräten 54A-N nur veranschaulichen sollen und dass die Rechenknoten 10 und die Cloud-Computing-Umgebung 50 mit jeder Art von computerisiertem Gerät über jede Art von Netzwerk und/oder netzwerkadressierbarer Verbindung (z. B. über einen Web-Browser) kommunizieren können.
  • Unter Bezugnahme auf 2 wird eine Reihe von funktionalen Abstraktionsschichten gezeigt, die von der Cloud-Computing-Umgebung 50 (1) zur Verfügung gestellt werden. Es sollte im Voraus verstanden werden, dass die in 2 gezeigten Komponenten, Schichten und Funktionen nur veranschaulichen sollen und Ausführungsformen der Erfindung nicht darauf beschränkt sind. Wie dargestellt, werden die folgenden Schichten und entsprechenden Funktionen zur Verfügung gestellt:
  • Die Hardware- und Software-Schicht 60 umfasst Hardware- und Software-Komponenten. Beispiele für Hardwarekomponenten umfassen: Mainframes 61; auf der RISC-Architektur (Reduced Instruction Set Computer) basierende Server 62; Server 63; Blade-Server 64; Speichergeräte 65; und Netzwerke und Netzwerkkomponenten 66. In einigen Ausführungsformen umfassen Softwarekomponenten die Software 67 für Netzwerkanwendungsserver und 68 für Datenbanken.
  • Die Virtualisierungsschicht 70 bietet eine Abstraktionsschicht, von der folgende Beispiele für virtuelle Einheiten bereitgestellt werden können: virtuelle Server 71; virtueller Speicher 72; virtuelle Netzwerke 73, einschließlich virtueller privater Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
  • In einem Beispiel kann eine Verwaltungsschicht 80 die unten beschriebenen Funktionen bereitstellen. Ressourcen-Bereitstellung 81 stellt eine dynamische Beschaffung von Computer-Ressourcen und anderen Ressourcen bereit, die zur Ausführung von Aufgaben innerhalb der Cloud-Computing-Umgebung genutzt werden. Die Messung und Preisgestaltung 82 stellt die Kostenverfolgung bei der Nutzung von Ressourcen innerhalb der Cloud-Computing-Umgebung und die Abrechnung oder Fakturierung des Verbrauchs dieser Ressourcen bereit. In einem Beispiel können diese Ressourcen Anwendungssoftwarelizenzen umfassen. Sicherheit stellt die Identitätsprüfung für Cloud-Konsumenten und Aufgaben sowie den Schutz von Daten und anderen Ressourcen bereit. Das Benutzerportal 83 stellt Verbrauchern und Systemadministratoren den Zugang zur Cloud-Computing-Umgebung zur Verfügung. Service Level Management 84 stellt die Zuweisung und Verwaltung von Cloud Computing-Ressourcen bereit, so dass die erforderlichen Service Levels erfüllt werden. Planung und Erfüllung von Service Level Agreement (SLA) 85 stellt die Vorbereitung und Beschaffung von Cloud-Computing-Ressourcen bereit, für die ein zukünftiger Bedarf in Übereinstimmung mit einem SLA erwartet wird.
  • Die Arbeits-Lasten-Schicht 90 stellt Beispiele für Funktionen bereit, für die die Cloud-Computing-Umgebung genutzt werden kann. Beispiele für Arbeitslasten und Funktionen, die von dieser Schicht zur Verfügung gestellt werden können, umfassen: Kartierung und Navigation 91; Software-Entwicklung und Lifecycle-Management 92; Durchführung von Schulungen in virtuellen Klassenzimmern 93; Datenanalyse-Verarbeitung 94; Transaktionsverarbeitung 95; und Wiederherstellung nach Ausfällen während GC in einer chronologisch geordneten Log-strukturierten Schlüssel-Wert-Speicher-Verarbeitung 96. Wie oben erwähnt, sind alle vorstehenden Beispiele, die in Bezug auf 2 beschrieben wurden, nur veranschaulichend, und die Erfindung ist nicht auf diese Beispiele beschränkt.
  • Es wird davon ausgegangen, dass alle Funktionen einer oder mehrerer Ausführungsformen, wie sie hier beschrieben sind, typischerweise durch das Verarbeitungssystem 300 (3) oder die autonome Cloud-Umgebung 410 (4) ausgeführt werden können, die als Hardware-Prozessoren und mit Modulen von Programmcode greifbar verkörpert werden können. Bei Nicht-Echtzeit-Prozessen muss dies jedoch nicht der Fall sein. Vielmehr könnte für die Nicht-Echtzeit-Verarbeitung die hier beschriebene Funktionalität durch jede der in 2 dargestellten Schichten 60, 70, 80 und 90 durchgeführt/implementiert und/oder aktiviert werden.
  • Es wird erneut darauf hingewiesen, dass diese Offenlegung zwar eine detaillierte Beschreibung des Cloud-Computing umfasst, die Umsetzung der hier dargelegten Lehren jedoch nicht auf eine Cloud-Computing-Umgebung beschränkt ist. Vielmehr können die Ausführungsformen der vorliegenden Erfindung mit jeder Art von heute bekannten oder später entwickelten Clustered-Computing-Umgebung implementiert werden.
  • 3 veranschaulicht eine Netzwerkarchitektur 300 gemäß einer Ausführungsform. Wie in 3 dargestellt, wird eine Vielzahl von entfernten Netzwerken 302 bereitgestellt, einschließlich eines ersten entfernten Netzwerks 304 und eines zweiten entfernten Netzwerks 306. Ein Gateway 301 kann zwischen den entfernten Netzwerken 302 und einem nahen Netzwerk 308 gekoppelt werden. Im Kontext der gegenwärtigen Netzarchitektur 300 können die Netze 304, 306 jeweils jede beliebige Form bilden, einschließlich, aber nicht beschränkt auf ein LAN, ein WAN, wie z.B. das Internet, das öffentliche Fernsprechnetz (PSTN), das interne Telefonnetz usw. Im Einsatz dient das Gateway 301 als Zugangspunkt von den entfernten Netzwerken 302 zum nahen Netzwerk 308. Als solches kann das Netzübergang 301 als Router fungieren, der in der Lage ist, ein bestimmtes Datenpaket, das am Netzübergang 301 ankommt, zu leiten, und als Switch, der den tatsächlichen Weg in das und aus dem Netzübergang 301 für ein bestimmtes Paket bereitstellt.
  • Ferner umfasst ist mindestens einen Datenserver 314, der mit dem nahen Netzwerk 308 gekoppelt ist, auf das von den entfernten Netzwerken 302 über das Gateway 301 zugegriffen werden kann. Es ist zu beachten, dass der (die) Datenserver 314 jede Art von Rechengerät/Groupware umfassen kann (können). An jeden Datenserver 314 ist eine Vielzahl von Benutzergeräten 316 gekoppelt. Solche Benutzergeräte 316 können einen Desktop-Computer, einen Laptop-Computer, einen Handheld-Computer, einen Drucker und/oder jeden anderen Typ von Logik enthaltenden Geräten umfassen. Es ist zu beachten, dass ein Benutzergerät 311 in einigen Ausführungsformen auch direkt an eines der Netzwerke gekoppelt sein kann.
  • Ein Peripheriegerät 320 oder eine Reihe von Peripheriegeräten 320, z.B. Faxgeräte, Drucker, Scanner, Festplattenlaufwerke, vernetzte und/oder lokale Speichereinheiten oder -systeme usw., kann mit einem oder mehreren der Netzwerke 304, 306, 308 gekoppelt werden. Es ist zu beachten, dass Datenbanken und/oder zusätzliche Komponenten mit jedem Typ von Netzwerkelementen, die mit den Netzwerken 304, 306, 308 gekoppelt sind, genutzt oder in diese integriert werden können. Im Zusammenhang mit der vorliegenden Beschreibung kann sich ein Netzelement auf jede beliebige Komponente eines Netzes beziehen.
  • Nach einigen Herangehensweisen können die hier beschriebenen Verfahren und Systeme mit und/oder auf virtuellen Systemen und/oder Systemen implementiert werden, die ein oder mehrere andere Systeme emulieren, wie z. B. ein UNIX-System, das eine IBM z/OS-Umgebung emuliert, ein UNIX-System, das virtuell eine MICROSOFT WINDOWS-Umgebung hostet, ein MICROSOFT WINDOWS-System, das eine IBM ® z/OS® - Umgebung emuliert, usw. Diese Virtualisierung und/oder Emulation kann durch die Verwendung von VMWARE-Software in einigen Ausführungsformen implementiert werden. Microsoft und Windows sind Marken der Microsoft Corporation in den Vereinigten Staaten, in anderen Ländern oder in beiden. IBM und z/OS sind Marken der International Business Machines Corporation, die in vielen Gerichtsbarkeiten weltweit eingetragen sind.
  • 4 zeigt eine repräsentative Hardware-System-400-Umgebung, die gemäß einer Ausführungsform mit einem Benutzergerät 416 und/oder dem Server 314 aus 3 verknüpft ist. In einem Beispiel umfasst eine Hardware-Konfiguration eine Arbeitsstation mit einer Zentraleinheit („central processing unit“; CPU) 410, wie z.B. einem Mikroprozessor, und eine Anzahl anderer Einheiten, die über einen Systembus 412 miteinander verbunden sind. Die in 4 dargestellte Arbeitsstation kann einen Direktzugriffsspeicher (RAM) 414, einen Festwertspeicher (ROM) 416, einen E/A-Adapter 418 zum Anschluss von Peripheriegeräten wie Plattenspeichereinheiten 420 an den Bus 412, einen Benutzerschnittstellenadapter 422 zum Anschluss einer Tastatur 424, einer Maus 426, eines Lautsprechers 428, eines Mikrofons 432 und/oder anderer Benutzerschnittstellengeräte wie eines Berührungsbildschirms, einer Digitalkamera (nicht abgebildet) usw. umfassen, an den Bus 412, einen Kommunikationsadapter 434 für den Anschluss der Arbeitsstation an ein Kommunikationsnetz 435 (z.B. ein Datenverarbeitungsnetz) und einen Bildschirmadapter 436 für den Anschluss des Busses 412 an ein Anzeigegerät 438.
  • In einem Beispiel kann sich auf der Arbeitsstation ein Betriebssystem wie das MICROSOFT WINDOWS Operating System (OS), ein MAC OS, ein UNIX® OS usw. befinden. In einer Ausführungsform verwendet das System 400 ein POSIX®-basiertes Dateisystem. Es wird geschätzt, dass andere Beispiele auch auf anderen Plattformen und Betriebssystemen als den genannten implementiert werden können. Solche anderen Beispiele können Betriebssysteme umfassen, die mit der Sprache JAVA, XML, C und/oder C++ oder anderen Programmiersprachen geschrieben wurden, zusammen mit einer objektorientierten Programmiermethodik. Die objektorientierte Programmierung (OOP), die zunehmend zur Entwicklung komplexer Anwendungen eingesetzt wird, kann ebenfalls verwendet werden. UNIX ist eine eingetragene Marke von The Open Group in den Vereinigten Staaten und anderen Ländern. Java und alle Java-basierten Marken und Logos sind Marken oder eingetragene Marken von Oracle und/oder seinen verbundenen Unternehmen.
  • 5 ist ein Blockdiagramm, das einen Verarbeitungsknoten 500 zur Wiederherstellung nach Ausfällen während einer Speicherbereinigung („garbage collection“, GC) in einem chronologisch geordneten log-strukturierten Schlüssel-Wert-Speicher in log-strukturierten Speichersystemen gemäß einer Ausführungsform veranschaulicht. Der Begriff Speicherbereinigung bezieht sich auf die Rückgewinnung von „Plattenplatz“ („disk space“), der durch veraltete Einträge im Log belegt ist. Wenn zum Beispiel ein Datensatz aufgezeichnet wird, wird ein Eintrag am Ende des Logs hinzugefügt. Wenn derselbe Datensatz gelöscht wird, wird ein Tombstone-Eintrag am Ende des Logs hinzugefügt. Der Tombstone-Eintrag bezieht sich auf den ursprünglichen Speicherort der Daten auf der Platte, wie er durch das Einfügen entstanden ist. Der durch den ursprünglich eingefügten Datensatz belegte Speicherplatz kann als Speicherbereinigung bereitgestellt werden (vorausgesetzt, das System stellt keine älteren Versionen bereit). Veraltete Daten können das Ergebnis von Datensätzen sein, die gelöscht oder aktualisiert wurden. Aktualisierungen führen zu veralteten Daten, da ältere Versionen der Daten, die im Log verwaltet werden, nicht mehr benötigt werden. Es ist zu beachten, dass in einem Log-strukturierten Speicher jede Einfüge-, Aktualisierungs- oder Löschoperation dazu führt, dass ein Datensatz am Ende des Logs eingefügt wird.
  • In einer Ausführungsform umfasst der Verarbeitungsknoten 500 einen oder mehrere Prozessoren 510, eine Speicherbereinigungs-Schnittstelle 530 und einen Speicher 520. In einer Ausführungsform führt jeder Prozessor/jede Prozessoren 510 in einem chronologisch geordneten log-strukturierten Schlüssel-Wert-Speicher in log-strukturierten Speichersystemen Verarbeitungen zur Wiederherstellung nach Ausfällen während der Speicherbereinigung aus.
  • In einer Ausführungsform muss bei der Wiederherstellung des Verarbeitungsknotens 500 in einem log-strukturierten Speichersystem nach einem Ausfall der In-Memory-Index rekonstruiert werden. Zu diesem Zweck wird das Log im Speicher 520 von Anfang bis Ende wiedergegeben. Tritt der Ausfall in der Mitte einer GC-Operation auf, ist eine Bereinigung erforderlich. Die Bereinigung kann durch den Prozessor 510 und die Speicherbereinigungs-Schnittstelle 530 sofort oder eventuell zu einem späteren Zeitpunkt ausgeführt werden. Ohne Bereinigung wird zusätzlicher Datenmüll („garbage“) erzeugt, der schließlich gehandhabt werden muss und die Wiederherstellungszeit beeinträchtigen kann. Bei der Bereinigung müssen alle „Dirty Reads“ berücksichtigt werden. Aktualisierungs-/Löschvorgänge, die während des GC-Vorgangs stattgefunden haben könnten: könnten auf den „Speicherbereinigungs-Zielsteckplatz“ verweisen. Daher muss das GC-Rollback beschädigten Ketten zusätzlich zum Zurückführen von Inhalten auf den Zielslot „reparieren“.
  • In einer Ausführungsform wird die GC von der Speicherbereinigung-Schnittstelle 530 als Transaktion ausgeführt. Bei der Transaktionsverarbeitung wird die Informationsverarbeitung in einzelne, unteilbare Prozesse unterteilt, die als Transaktionen bezeichnet werden. Jede Transaktion muss als vollständige Einheit gelingen oder scheitern und kann niemals nur teilweise vollständig sein. In einer Ausführungsform führt die Speicherbereinigung-Schnittstelle 530 im Falle eines Scheiterns ein Rollback einer GC-Transaktion aus. GC-Transaktionsaufzeichnungen umfassen: <Zielslot (TS), Opfer-Slot (VS), Anfangsversatz im Zielslot (BO)>. In einer Ausführungsform ist die GC-Zielregion die <BO, Ende des Schlitzes> Region auf dem GC-Zielslot. GC-Transaktionsdatensätze beginnen und enden mit der GC-Transaktion.
  • In einer Ausführungsform führt die Speicherbereinigung-Schnittstelle 530 das GC-Rollback wie folgt aus. Die Speicherbereinigung-Schnittstelle 530 liest das Wiederherstellungs-Log, um einen unvollständigen GC-Zielslot und Opfer-Slot zu kennzeichnen. Die Speicherbereinigung-Schnittstelle 530 beginnt mit der Indexrekonstruktion, so dass: 1) wenn ein Slot GC-Zielslot & Offset >= BO ist, Überspringen bis zum Ende des Slots und Fortfahren mit dem nächsten Slot; 2) wenn ein Datensatz (Aktualisierung oder Löschung) auf eine GC-Zielregion zeigt (Back-Pointer): a) Lesen der Stelle, auf die in der GC-Zielregion gezeigt wird; b) Einfügen eines neuen Tombstone-Eintrags, um einen Back-Pointer (zeigt auf vorherige Adresse) im Datensatz in der GC-Zielregion zu erhalten. Als nächstes beendet die Speicherbereinigungs-Schnittstelle 530 die Index-Rekonstruktion, nullt einen Zielslot TS von Offset BO bis zum Ende des Slots auf Null und fügt einen „Datensatz für die Speicherbereinigungs-Transaktion“ in das Wiederherstellungs-Log ein. Am Ende der Wiederherstellung ist der Systemzustand identisch mit dem Zustand des Systems vor der GC-Verarbeitung.
  • 6 veranschaulicht ein Beispiel für den Anfangszustand des Systems 600 während der GC, gemäß einer Ausführungsform. Der Index 610 ist auf der rechten Seite des Beispiels 600 dargestellt und umfasst Schlüssel in der linken Spalte und Slot-Mapping in der rechten Spalte. In einem Beispiel bezieht sich K1 auf Slot 1 620 und Offset 2; K2 bezieht sich auf Slot 1 620 und Offset 3, usw. In dem Beispiel 600 umfassen die gezeigten Schlitze Slot 1 620, Slot 51 630 und Slot 3 640. Der Opfer-Slot VS ist als Schlitz 3 640 dargestellt, und der Zielslot TS ist als Slot 51 630 dargestellt. Die Rückwärtszeiger-Kette 650 („back-pointer chain 650“) zeigt den Zeiger von Slot 3 640 k8 auf Slot 1 620 k8.
  • 7 veranschaulicht gemäß einer Ausführungsform einen Beispiel-Systemzustand 700 zur Zeit eines Systemabsturzes während der GC. Im Beispiel 700 zeigt Slot 4 750 kl8 und Rückwärtszeiger-Kette 770, die auf Slot 51 630 zeigt, und k8 in Slot 51 630 mit Vorwärtszeiger-Kette 760 („forward-pointer chain 760“), die auf Slot 3 640 und Offset 1 zeigt.
  • 8 veranschaulicht ein Beispiel 800 für den Systemzustand nach Rollback von GC gemäß einer Ausführungsform. Wie gezeigt, ist die Rückwärtszeigerkette 770 von Slot 5 750 bis Slot 51 630 beschädigt.
  • 9 veranschaulicht ein Beispiel 900 für das Reparieren beschädigter Rückwärtszeiger-Kette während des GC-Rollbacks gemäß einer Ausführungsform. Wie gezeigt, ist die Rückwärtszeiger-Kette 770 beschädigt. Im Beispiel 900 wurde zur Fixierung der beschädigten Rückwärtszeiger-Kette 770 auf dem Grabstein K8 in Slot 4 750 eine Rückwärtszeiger-Kette 960 hinzugefügt, die auf Slot 3 640, Offset 1 zeigt.
  • 10 veranschaulicht ein Blockdiagramm für einen Prozess 1000 zur Wiederherstellung nach Ausfällen während der GC in einem chronologisch geordneten log-strukturierten Schlüssel-Werte-Speicher gemäß einer Ausführungsform. In einer Ausführungsform umfasst Block 1010 in Prozess 1000 die Ausführung chronologischer GC-Transaktionen durch einen Prozessor (z.B. durch Prozessor 510, 5). In Block 1020 zeichnet Prozess 1000 einen spezifischen Versatz innerhalb eines Zielslots (TS; „target slot“) einer Log-Struktur auf, die mit der GC-Transaktion verknüpft ist. In Block 1030 überspringt Prozess 1000 Datensätze von einem anfänglichen Versatz in dem TS der von der GC-Transaktion aufgezeichneten Protokollstruktur bis zu einem Ende des TS.
  • Bei einer Ausführungsform, im Prozess 1000, kann das System ein chronologisch geordnetes, log-strukturiertes Schlüssel-Wert-Speichersystem sein. In einer Ausführungsform kann Prozess 1000 ferner die Aufzeichnung der GC-Transaktion in einem separaten Wiederherstellungs-Log umfassen. In einer Ausführungsform kann Prozess 1000 zusätzlich die Nullsetzung des Bereichs des TS der Log-Struktur umfassen, der mit einer unvollständigen GC-Operation (z.B. einer fehlgeschlagenen Transaktionsoperation) verknüpft ist. In einer Ausführungsform kann Prozess 1000 den Abbruch der GC-Transaktion durch Aufzeichnen eines AbbruchDatensatzes in einem Wiederherstellungs-Log umfassen.
  • In einer Ausführungsform kann Prozess 1000 das Bereitstellen von Aktualisierungsvorgängen umfassen, die gleichzeitig mit der GC in einem log-strukturierten Schlüssel-Wertspeicher ablaufen, wobei die chronologische Reihenfolge durch Wiederherstellen des Systems in einen konsistenten Zustand nach einem Ausfall während der GC beibehalten wird.
  • In einer Ausführungsform kann Prozess 1000 die Bereitstellung von Löschoperationen umfassen, die gleichzeitig mit der GC im log-strukturierten Schlüssel-Wertspeicher ablaufen, wobei die chronologische Reihenfolge beibehalten wird, indem das System nach einem Ausfall bei der GC in einen konsistenten Zustand zurückversetzt wird.
  • Wie von einem Fachkundigen geschätzt wird, können Aspekte der vorliegenden Erfindung als ein System, Verfahren oder Computerprogrammprodukt verkörpert sein. Dementsprechend können Aspekte der vorliegenden Erfindung die Form einer vollständigen Hardware-Ausführung, einer vollständigen Software-Ausführung (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardware-Aspekte kombiniert und hier allgemein als „Schaltkreis“, „Modul“ oder „System“ bezeichnet werden kann. Darüber hinaus können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts bilden, das in einem oder mehreren computerlesbaren Datenträgern mit darauf enthaltenem computerlesbaren Programmcode enthalten ist.
  • Jede Kombination von einem oder mehrere computerlesbaren Medien kann genutzt werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann z.B., aber nicht ausschließlich, ein elektronisches, magnetisches, optisches, elektromagnetisches, infrarot- oder Halbleitersystem, eine Vorrichtung oder ein Gerät oder jede geeignete Kombination der vorgenannten sein. Spezifischere Beispiele (eine nicht erschöpfende Liste) für das computerlesbare Speichermedium würden Folgendes umfassen: eine elektrische Verbindung mit einem oder mehreren Drähten, eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), eine optische Faser, einen tragbaren Compact-Disc-Schreib-Lese-Speicher (CD-ROM), ein optisches Rechengerät, ein magnetisches Speichergerät oder jede geeignete Kombination des Vorgenannten. Im Zusammenhang mit diesem Dokument kann ein computerlesbares Speichermedium jedes greifbare Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem Anweisungsausführungssystem, einer Vorrichtung oder einem Gerät enthalten oder speichern kann.
  • Ein computerlesbares Signalmedium kann ein verbreitertes Datensignal mit darin verbreiteter computerlesbarer umfassen, zum Beispiel im Basisband oder als Teil einer Trägerwelle. Ein solches verbreitertes Signal kann eine Vielzahl von Formen annehmen, einschließlich, aber nicht beschränkt auf elektromagnetische, optische oder jede geeignete Kombination davon. Ein computerlesbares Signalmedium kann jedes computerlesbare Medium sein, bei dem es sich nicht um ein computerlesbares Speichermedium handelt und das ein Programm zur Verwendung durch oder in Verbindung mit einem Anweisungsausführungssystem, einer Vorrichtung oder einem Gerät kommunizieren, verbreiten oder transportieren kann.
  • Programmcode, der sich auf einem computerlesbaren Medium befindet, kann mit jedem geeigneten Medium übertragen werden, einschließlich, aber nicht beschränkt auf drahtlose, drahtgebundene, optische Faserkabel, RF usw. oder jede geeignete Kombination der vorgenannten.
  • Computerprogrammcode zur Berechnung von Operationen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sein, einschließlich einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ o.ä. und herkömmlichen prozeduralen Programmiersprachen wie der Programmiersprache „C“ oder ähnlichen Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem Remote-Computer oder vollständig auf dem Remote-Computer oder Server ausgeführt werden. Im letzteren Fall kann der Remote-Computer mit dem Computer des Benutzers über jede Art von Netzwerk verbunden sein, einschließlich eines lokalen Netzwerks (LAN) oder eines Weitverkehrsnetzwerks (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet mit Hilfe eines Internet Service Providers).
  • Im Folgenden werden Aspekte der vorliegenden Erfindung anhand von Flussdiagrammdarstellungen und/oder Blockdiagrammen von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Flussdiagrammabbildungen und/oder Blockdiagramme und Kombinationen von Blöcken in den Flussdiagrammabbildungen und/oder Blockdiagrammen durch Computerprogrammanweisungen implementiert werden kann. Diese Computerprogrammanweisungen können einem Prozessor eines Allzweck-Computers, Spezial-Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zur Erzeugung einer Maschine zur Verfügung bereitgestellt werden, so dass die Anweisungen, die über den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zur Implementierung der im Flussdiagramm- und/oder Blockdiagramm-Block oder in den Blockdiagrammen spezifizierten Funktionen/Aktionen schaffen.
  • Diese computerlesbaren Programmanweisungen können auch in einem computerlesbaren Speichermedium gespeichert werden, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Vorrichtungen anweisen kann, in einer bestimmten Weise zu funktionieren, so dass das computerlesbare Speichermedium, in dem Anweisungen gespeichert sind, einen Herstellungsgegenstand umfasst, der Anweisungen umfasst, die Aspekte der im Flussdiagramm und/oder im Blockdiagrammblock oder in den Blockdiagrammblöcken spezifizierten Funktion/Handlung implementieren.
  • Die computerlesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder ein anderes Gerät geladen werden, um eine Reihe von Betriebsanweisungen auf dem Computer, einer anderen programmierbaren Vorrichtung oder einem anderen Gerät auszuführen, um einen computerimplementierten Prozess zu erzeugen, so dass die Anweisungen, die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einem anderen Gerät ausgeführt werden, die Funktionen/Handlungen implementieren, die in dem Flussdiagramm und/oder dem Block oder den Blöcken des Blockdiagramms spezifiziert sind.
  • Das Flussdiagramm und die Blockdiagramme in den Figuren veranschaulichen die Architektur, Funktionalität und Funktionsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in dem Flussdiagramm oder den Blockdiagrammen ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, der eine oder mehrere ausführbare Anweisungen zur Implementierung der spezifizierten logischen Funktion(en) umfasst. In einigen alternativen Implementierungen können die im Block vermerkten Funktionen außerhalb der in den Figuren angegebenen Reihenfolge auftreten. So können z.B. zwei nacheinander dargestellte Blöcke im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal in umgekehrter Reihenfolge ausgeführt werden, je nach der betreffenden Funktionalität. Es ist zu beachten, dass jeder Block der Blockdiagramme und/oder der veranschaulichenden Flussdiagrammdarstellung sowie Kombinationen von Blöcken in den Blockdiagrammen und/oder der veranschaulichenden Flussdiagrammdarstellung durch auf Spezial-Hardware basierende Systeme implementiert werden kann, die die angegebenen Funktionen oder Handlungen ausführen oder Kombinationen von Spezial-Hardware und Computer-Anweisungen ausführen.
  • Bezugnahmen in den Ansprüchen auf ein Element in der Einzahl sollen nicht „ein und dasselbe“ bedeuten, es sei denn, dies wird ausdrücklich angegeben, sondern vielmehr „eines oder mehrere“. Alle strukturellen und funktionellen Äquivalente zu den Elementen der oben beschriebenen beispielhaften Ausführungsform, die gegenwärtig bekannt sind oder später bekannt werden, sollen von den vorliegenden Ansprüchen erfasst werden. Kein hierin enthaltenes Anspruchselement ist gemäß den Bestimmungen von 35 U.S.C. Abschnitt 112, sechster Absatz, auszulegen, es sei denn, das Element wird ausdrücklich unter Verwendung des Ausdrucks „Mittel für“ oder „Schritt für“ ausgeführt.
  • Die hier verwendete Terminologie dient nur der Beschreibung bestimmter Ausführungsformen und ist nicht als Beschränkung der Erfindung gedacht. Wie hier verwendet, sollen die Singularformen „ein(e)“ und „der/die/das“ auch die Pluralformen umfassen, sofern der Kontext nicht eindeutig etwas anderes angibt. Ferner wird davon ausgegangen, dass die Begriffe„ umfassen“ und/oder“ umfassend“, wenn sie in dieser Spezifikation verwendet werden, das Vorhandensein von angegebenen Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen und/oder Komponenten spezifizieren, aber nicht das Vorhandensein oder die Hinzufügung von einem oder mehreren anderen Merkmalen, ganzen Zahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon ausschließen.

Claims (15)

  1. Verfahren (100) zur Wiederherstellung nach Fehlern während eines Speicherbereinigungsprozesses in einem System (300, 400, 500), umfassend: Ausführen (1010) einer chronologischen Speicherbereinigung transaktional durch einen Prozessor (410, 510); Aufzeichnen (1020) eines spezifischen Versatzes innerhalb eines Speicherbereinigungszielslots (630) einer Log-Struktur, die mit der Speicherbereinigungstransaktion assoziiert ist, wobei jede Transaktionsaufzeichnung der Speicherbereinigungstransaktion einen Speicherbereinigungszielslot (630), einen Opfer-Slot (640) und einen Anfangsversatz in dem Speicherbereinigungszielslot enthält; und Überspringen (1030) von Datensätzen von einem anfänglichen Versatz im Speicherbereinigungszielslot der von der Speicherbereinigungstransaktion aufgezeichneten Log-Struktur bis zum Ende des Speicherbereinigungszielslots.
  2. Verfahren nach Anspruch 1, wobei das System ein chronologisch geordnetes log-strukturiertes Schlüssel-Wert-Speichersystem umfasst, wobei jede Speicherbereinigungstransaktion als vollständige Einheit gelingt oder scheitert.
  3. Das Verfahren nach Anspruch 2, ferner umfassend: Aufzeichnen der Speicherbereinigungstransaktion in einem separaten Wiederherstellungs-Log, wobei eine Speicherbereinigungszielregion der Anfangsversatz im Speicherbereinigungszielslot zum Ende des Speicherbereinigungszielslots ist.
  4. Das Verfahren nach Anspruch 3, ferner umfassend: Einfügen eines neuen Tombstone-Eintrags, um einen Back-Pointer in einer Transaktionsaufzeichnung in der Speicherbereinigungsregion zu erhalten; und Nullsetzen der Speicherbereinigungszielregion des Speicherbereinigungszielslots der Log-Struktur, die mit einem unvollständigen Speicherbereinigungs-Zielslot in Verbindung mit einem unvollständigen Speicherbereinigungsvorgang verknüpf ist.
  5. Das Verfahren nach Anspruch 4, ferner umfassend: Abbruch der Speicherbereinigungstransaktion durch Schreiben eines Abbruchdatensatzes in ein Wiederherstellungs-Log.
  6. Das Verfahren nach einem der Ansprüche 2 bis 5, ferner umfassend: Ausführen von Aktualisierungsvorgängen gleichzeitig mit der Speicherbereinigung in einem log-strukturierten Schlüssel-Wert-Speicher unter Aufrechterhaltung der chronologischen Reihenfolge durch Wiederherstellung des Systems in einen konsistenten Zustand nach einem Ausfall während der Speicherbereinigung.
  7. Das Verfahren nach Anspruch 6, ferner umfassend: Ausführen von Löschvorgängen gleichzeitig mit der Speicherbereinigung in einem logarithmisch strukturierten Schlüssel-Wert-Speicher unter Aufrechthaltung der chronologischen Reihenfolge durch Wiederherstellung des Systems in einen konsistenten Zustand nach einem Ausfall während der Speicherbereinigung.
  8. Ein Computerprogrammprodukt zur Wiederherstellung nach Fehlern bei der Speicherbereinigungsverarbeitung in einem System, das das Computerprogrammprodukt ein nichtflüchtiges computerlesbares Speichermedium mit darin verkörperten Programmbefehlen umfasst, wobei die Programmbefehle von einem Prozessor ausführbar sind, um den Prozessor zu veranlassen, , ein Verfahren nach einem der Ansprüche 1 bis 7 auszuführen.
  9. Computerprogramm, das auf einem computerlesbaren Medium gespeichert ist und in den internen Speicher eines digitalen Computers geladen werden kann und Softwarecodeabschnitte umfasst, um das Verfahren nach einem der Ansprüche 1 bis 7 auszuführen, wenn das Programm auf einem Computer ausgeführt wird.
  10. Eine Vorrichtung (300, 400, 500) umfassend: einen Speicher (414, 416, 520), der Anweisungen speichert; und einen Prozessor (410, 510), der die Anweisungen ausführt, um zu: Ausführen (1010) der chronologischen Speicherbereinigung transaktional, Aufzeichnen (1010) eines bestimmten Versatzes innerhalb eines Speicherbereinigungszielslots (630) einer Log-Struktur, die mit der Speicherbereinigungstransaktion assoziiert ist, wobei jede Transaktionsaufzeichnung der Speicherbereinigungstransaktion einen Speicherbereinigungszielslot (630), einen Opfer-Slot (640) und einen Anfangsversatz in dem Speicherbereinigungszielslot enthält; und Überspringen (1030) von Datensätzen von einem anfänglichen Versatz im Speicherbereinigungszielslot der durch die Speicherbereinigungstransaktion aufgezeichneten Log-Struktur bis zu einem Ende des Speicherbereinigungszielslots, wobei sich der Prozessor von Fehlern erholt, die während des Speicherbereinigungsprozesses in einem System auftreten.
  11. Vorrichtung nach Anspruch 10, wobei das System ein chronologisch geordnetes log-strukturiertes Schlüssel-Wert-Speichersystem umfasst und wobei jede Speicherbereinigungstransaktion als vollständige Einheit gelingt oder scheitert.
  12. Vorrichtung nach Anspruch 11, wobei der Prozessor ferner Anweisungen ausführt, die das Aufzeichnen der Speicherbereinigungstransaktion in einem separaten Wiederherstellungs-Log umfassen, wobei eine Speicherbereinigungszielregion der Anfangsversatz im Speicherbereinigungszielslot zum Ende des Speicherbereinigungszielslots ist.
  13. Vorrichtung nach Anspruch 12, wobei der Prozessor ferner Anweisungen ausführt, die das Einfügen eines neuen Tombstone-Eintrags, um einen Back-Pointer in einer Transaktionsaufzeichnung in der Speicherbereinigungsregion zu erhalten, und das Nullsetzen der Speicherbereinigungszielregion des Speicherbereinigungszielslots der Log-Struktur umfassen, der mit einem unvollständigen Speicherbereinigungsvorgang verknüpft ist.
  14. Vorrichtung nach Anspruch 13, wobei der Prozessor ferner Anweisungen ausführt, die den Abbruch der Speicherbereinigungstransaktion durch Schreiben eines Abbruchdatensatzes in ein Wiederherstellungs-Log umfassen.
  15. Die Vorrichtung nach einem der Ansprüche 10 bis 14, wobei der Prozessor ferner Anweisungen ausführt, die Folgendes umfassen: Ausführen von Aktualisierungsvorgängen gleichzeitig mit der Speicherbereinigung in einem log-strukturierten Schlüssel-Wert-Speicher unter Aufrechthaltung der chronologischen Reihenfolge durch Wiederherstellung des Systems in einen konsistenten Zustand nach einem Ausfall während der Speicherbereinigung; und Ausführen von Löschvorgängen gleichzeitig mit der Speicherbereinigung im log-strukturierten Schlüssel-Wert-Speicher unter Aufrechthaltung der chronologischen Reihenfolge durch Wiederherstellung des Systems in einen konsistenten Zustand nach einem Ausfall während der Speicherbereinigung.
DE112019000401.8T 2018-02-23 2019-02-19 Ein chronologisch geordneter log-strukturierter schlüssel-wert-speicher für fehler bei der speicherbereinigung Active DE112019000401B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/904,180 2018-02-23
US15/904,180 US10642680B2 (en) 2018-02-23 2018-02-23 Chronologically ordered log-structured key-value store from failures during garbage collection
PCT/IB2019/051323 WO2019162828A1 (en) 2018-02-23 2019-02-19 A chronologically ordered log-structured key-value store from failures during garbage collection

Publications (2)

Publication Number Publication Date
DE112019000401T5 DE112019000401T5 (de) 2020-10-22
DE112019000401B4 true DE112019000401B4 (de) 2022-01-05

Family

ID=67685967

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019000401.8T Active DE112019000401B4 (de) 2018-02-23 2019-02-19 Ein chronologisch geordneter log-strukturierter schlüssel-wert-speicher für fehler bei der speicherbereinigung

Country Status (6)

Country Link
US (2) US10642680B2 (de)
JP (1) JP2021515301A (de)
CN (1) CN111656331B (de)
DE (1) DE112019000401B4 (de)
GB (1) GB2583884B (de)
WO (1) WO2019162828A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10642680B2 (en) * 2018-02-23 2020-05-05 International Business Machines Corporation Chronologically ordered log-structured key-value store from failures during garbage collection

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140136575A1 (en) 2012-11-10 2014-05-15 Yuanyuan Zhao Log-structured garbage collection

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5996054A (en) 1996-09-12 1999-11-30 Veritas Software Corp. Efficient virtualized mapping space for log device data storage system
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
US9239763B2 (en) * 2012-09-28 2016-01-19 Oracle International Corporation Container database
US6728738B2 (en) * 2002-04-03 2004-04-27 Sun Microsystems, Inc. Fast lifetime analysis of objects in a garbage-collected system
US7058670B2 (en) * 2002-12-20 2006-06-06 Sun Microsystems, Inc. Scalable, space-efficient, parallel remembered-sets
US7984180B2 (en) 2005-10-20 2011-07-19 Solarflare Communications, Inc. Hashing algorithm for network receive filtering
US8266609B2 (en) * 2005-12-07 2012-09-11 Microsoft Corporation Efficient placement of software transactional memory operations around procedure calls
US20090210429A1 (en) 2008-02-19 2009-08-20 Yahoo! Inc. System and method for asynchronous update of indexes in a distributed database
US20100332240A1 (en) 2009-06-24 2010-12-30 Microsoft Corporation Decentralized account digest using signed electronic receipts
CN102576333B (zh) 2009-10-05 2016-01-13 马维尔国际贸易有限公司 非易失性存储器中的数据高速缓存
US8412689B2 (en) 2010-07-07 2013-04-02 Microsoft Corporation Shared log-structured multi-version transactional datastore with metadata to enable melding trees
US10558705B2 (en) 2010-10-20 2020-02-11 Microsoft Technology Licensing, Llc Low RAM space, high-throughput persistent key-value store using secondary memory
US8805984B2 (en) 2011-07-14 2014-08-12 Red Hat, Inc. Multi-operational transactional access of in-memory data grids in a client-server environment
JP2013033345A (ja) 2011-08-01 2013-02-14 Internatl Business Mach Corp <Ibm> トランザクション処理システム、方法及びプログラム
JP5940074B2 (ja) 2011-09-30 2016-06-29 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation トランザクション処理システム、方法及びプログラム
US8949190B2 (en) * 2011-11-07 2015-02-03 Sap Se Point-in-time database recovery using log holes
CN103164345B (zh) 2011-12-08 2016-04-27 光宝科技股份有限公司 固态存储装置遭遇断电后的数据存储方法
US9021421B1 (en) 2012-05-07 2015-04-28 Google Inc. Read and write barriers for flexible and efficient garbage collection
US9400816B1 (en) 2013-02-28 2016-07-26 Google Inc. System for indexing collections of structured objects that provides strong multiversioning semantics
US9092238B2 (en) 2013-03-15 2015-07-28 Joyent, Inc. Versioning schemes for compute-centric object stores
US9519575B2 (en) 2013-04-25 2016-12-13 Sandisk Technologies Llc Conditional iteration for a non-volatile device
US8683262B1 (en) 2013-06-21 2014-03-25 Terracotta Inc. Systems and/or methods for rapid recovery from write-ahead logs
US9223843B1 (en) 2013-12-02 2015-12-29 Amazon Technologies, Inc. Optimized log storage for asynchronous log updates
US9268653B2 (en) 2014-01-17 2016-02-23 Netapp, Inc. Extent metadata update logging and checkpointing
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
CN104063635B (zh) 2014-07-02 2017-09-29 北京深思数盾科技股份有限公司 目标文件的保护方法及保护系统
WO2016024986A1 (en) 2014-08-15 2016-02-18 Hewlett-Packard Development Company, L.P. Three phase commit for a distributed file system
US9928264B2 (en) 2014-10-19 2018-03-27 Microsoft Technology Licensing, Llc High performance transactions in database management systems
CN105677297B (zh) 2014-11-18 2018-05-04 龙芯中科技术有限公司 套锁实现方法及装置
US10210168B2 (en) * 2015-02-23 2019-02-19 International Business Machines Corporation Managing data in storage according to a log structure
US10083082B2 (en) 2015-09-07 2018-09-25 International Business Machines Corporation Efficient index checkpointing in log-structured object stores
CN107038131A (zh) 2016-02-04 2017-08-11 广明光电股份有限公司 固态硬盘断电保护装置及方法
CN107203552B (zh) 2016-03-17 2021-12-28 阿里巴巴集团控股有限公司 垃圾回收方法及装置
US10552404B2 (en) 2016-09-29 2020-02-04 International Business Machines Corporation Retrospective snapshots in log-structured storage systems
US10795779B2 (en) 2017-02-17 2020-10-06 Sap Se Asynchronous garbage collection in database redo log replay
US11210211B2 (en) 2017-08-21 2021-12-28 Western Digital Technologies, Inc. Key data store garbage collection and multipart object management
US10783073B2 (en) * 2018-02-23 2020-09-22 International Business Machines Corporation Chronologically ordered out-of-place update key-value storage system
US10642680B2 (en) * 2018-02-23 2020-05-05 International Business Machines Corporation Chronologically ordered log-structured key-value store from failures during garbage collection
US10635523B2 (en) * 2018-02-23 2020-04-28 International Business Machines Corporation Fast recovery from failures in a chronologically ordered log-structured key-value storage system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140136575A1 (en) 2012-11-10 2014-05-15 Yuanyuan Zhao Log-structured garbage collection

Also Published As

Publication number Publication date
DE112019000401T5 (de) 2020-10-22
GB202013416D0 (en) 2020-10-14
WO2019162828A1 (en) 2019-08-29
US20190266043A1 (en) 2019-08-29
US11163636B2 (en) 2021-11-02
JP2021515301A (ja) 2021-06-17
GB2583884B (en) 2021-03-24
GB2583884A (en) 2020-11-11
US20200183775A1 (en) 2020-06-11
US10642680B2 (en) 2020-05-05
CN111656331A (zh) 2020-09-11
CN111656331B (zh) 2024-03-29

Similar Documents

Publication Publication Date Title
DE112016003120B4 (de) Umleiten einer Kopie beim Schreiben
DE112019000399B4 (de) Schnelle wiederherstellung nach ausfällen in einem chronologisch geordneten log-strukturierten schlüssel-wert-speichersystem
DE112019000321T5 (de) Transaktionsoperationen in verteilten Multi-Master-Datenverwaltungssystemen
DE102016119298B4 (de) Zeitpunktkopieren mit klonen von ketten
US9772911B2 (en) Pooling work across multiple transactions for reducing contention in operational analytics systems
DE112018000848T5 (de) Registerkontextwiederherstellung auf der Grundlage der Wiedergewinnung von Umbenennungsregistern
DE112018004008B4 (de) Auf dateisysteminhalten beruhende sicherheit
DE112019000143T5 (de) Versionierungsvalidierung für die datenübertragung zwischen heterogenen datenspeichern
DE112020004840B4 (de) Speicherbereinigung in datenspeichersystemen
DE112017005588T5 (de) Speichern und abrufen von eingeschränkten datensätzen in und aus einem cloud-netzwerk mit nichteingeschränkten datensätzen
DE102019111068A1 (de) Datenspeichersystem mit LUN-Archivierung in die Cloud unter Verwendung einer Volume-to-Object(Volumen-zu-Objekt)-Umsetzung
DE112019000402T5 (de) Chronologisch geordnetes out-of-place-aktualisierungs-schlüssel-wert-speichersystem
DE112012005275T5 (de) Datenauswahl zur Sicherung von Datenspeichern
DE112016005571T5 (de) Aufrufergeschützte stapelrücksprungadresse in einer hardware-verwalteten stapelarchitektur
DE102012219363A1 (de) Ereignisvorhersage und Ermittlung von vorbeugenden Maßnahmen in einer vernetzten Datenverarbeitungsumgebung
DE112014002051T5 (de) Sichern und Wiederherstellen einer Anwendung
DE102021127254A1 (de) Inhaltssensitives Auswählen von Knoten zum Erstellen von Containern
DE112019005311T5 (de) Serverlose lösung zur optimierung von objektversionierung
DE112021003031T5 (de) Archivieren von nur-beschleuniger-datenbanktabellen
DE112017006889T5 (de) Monotone Transaktionen in einer Multimasterdatenbank mit lose verbundenen Knoten
DE102022108863A1 (de) Sicherung von daten für einen namensraum, der einem mandanten zugeordnet ist
DE102021130358A1 (de) E/a-operationen in log-strukturierten arrays
DE112021003413T5 (de) Freigeben von Datenspeicherspuren unter Beibehaltung eines Schutzes vor logischer Beschädigung
DE112019000401B4 (de) Ein chronologisch geordneter log-strukturierter schlüssel-wert-speicher für fehler bei der speicherbereinigung
DE112021003615T5 (de) Schutz vor logischer beschädigung für daten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final