DE102012218264A1 - Effiziente Datenbereinigung in einer komprimierten Journaldatei - Google Patents

Effiziente Datenbereinigung in einer komprimierten Journaldatei Download PDF

Info

Publication number
DE102012218264A1
DE102012218264A1 DE102012218264A DE102012218264A DE102012218264A1 DE 102012218264 A1 DE102012218264 A1 DE 102012218264A1 DE 102012218264 A DE102012218264 A DE 102012218264A DE 102012218264 A DE102012218264 A DE 102012218264A DE 102012218264 A1 DE102012218264 A1 DE 102012218264A1
Authority
DE
Germany
Prior art keywords
data
data blocks
image
blocks
weighted
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
DE102012218264A
Other languages
English (en)
Inventor
Jonathan Amit
Chaim Koifman
Sergey MARENKOV
Rostislav Raikhman
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 DE102012218264A1 publication Critical patent/DE102012218264A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Abstract

Es werden Ausführungsformen eines Verfahrens, eines Systems und eines Computerprogrammprodukts zur effizienten Datenbereinigung in einem System mit komprimierten Journaldateien bereitgestellt. Gemäß einer Ausführungsform wird lediglich anhand eines Beispiels ein Abbild konfiguriert, das Datenblöcken mit überschriebenen komprimierten Journaleinträgen entspricht. Es werden gewichtete Bedingungen für jeden überschriebenen komprimierten Journaleinträge berechnet. Die gewichteten Bedingungen werden in dem Abbild von den niedrigsten bis zu den höchsten Werten angeordnet. Eine der gewichteten Bedingungen weist eine Vorrangvariable zum Auswählen von Datenblöcken mit einem freien Platz an einem Ende mindestens eines zugehörigen Datensatzes auf. Es werden weitere Ausführungsformen des Systems und das Computerprogrammprodukts offenbart und die damit verbundenen Vorteile dargelegt.

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft im Allgemeinen Computer und insbesondere die effiziente Datenbereinigung in einer komprimierten Journaldatei in einer Datenverarbeitungsumgebung.
  • Beschreibung der zugrunde liegenden Technik
  • In der modernen Gesellschaft sind Computersystem weitverbreitet. Computersysteme sind am Arbeitsplatz, zu Hause oder in der Schule anzutreffen. Computersysteme können Datenspeichersysteme bzw. Plattenspeichersysteme zum Verarbeiten und Speichern von Daten aufweisen. Die Daten können aufgrund von Problemen wie beispielsweise Systemabstürze, Hardwareausfälle und abnormale Unterbrechungen des Computersystems verloren gehen. Journaldateisysteme können dazu verwendet werden, die Datenintegrität aufrechtzuerhalten, wenn solche Probleme auftreten. Journaldateisysteme erhalten die Dateisystemintegrität aufrecht, indem sie Informationen über Aktualisierungen von Verzeichnissen, Bitmaps und/oder Daten in einem Protokoll aufzeichnen, das auch als Journal bezeichnet wird, bevor die Aktualisierungen auf eine Speichereinheit wie beispielsweise eine Festplatte geschrieben werden. Im Falle eines Systemabsturzes oder eines anderen Problems können die Informationen in dem Journal dazu verwendet werden, das Dateisystem wieder in einen konsistenten Zustand zu versetzen. Komplett protokollierende Dateisysteme führen außerdem eine Datenprotokollierung durch, wobei Datenaktualisierungen ebenfalls in dem Journal gespeichert werden, um sicherzustellen, dass keine wichtigen Daten verloren gehen.
  • KURZDARSTELLUNG DER BESCHRIEBENEN AUSFÜHRUNGSFORMEN
  • In einem Datenverarbeitungssystem oder einer Datenverarbeitungsumgebung kann ein Journaldateisystem dazu verwendet werden, die Schreiboperationen in einem Journal zu speichern. In einem komprimierten Journaldateisystem speichert das Journal komprimierte Daten. Wenn eine Überschreiboperation durchgeführt wird, macht die Überschreiboperation die Daten eines alten Datensatzes ungültig und erzeugt eine Leerstelle in dem Journal. Darunter können die Effizienz und die Produktivität leiden.
  • Demzufolge und angesichts des oben Gesagten werden verschiedene beispielhafte Ausführungsformen eines Verfahrens, eines Systems und eines Computerprogrammprodukts in einem komprimierten Journaldateisystem bereitgestellt. Gemäß einer Ausführungsform wird lediglich anhand eines Beispiels ein Abbild konfiguriert, das Datenblöcken mit überschriebenen komprimierten Journaleinträgen entspricht. Es werden gewichtete Bedingungen für jeden der überschriebenen komprimierten Journaleinträge berechnet. Die gewichteten Bedingungen werden in dem Abbild von der niedrigsten bis zur höchsten Gewichtung angeordnet. Eine der gewichteten Bedingungen weist eine Vorrangvariable zum Auswählen von Datenblöcken mit einem freien Platz an einem Ende mindestens eines zugehörigen Datensatzes auf.
  • Zusätzlich zu der obigen beispielhaften Ausführungsform des Verfahrens werden weitere beispielhafte Systeme und Computerprogrammprodukt bereitgestellt und bieten entsprechende Vorteile. Die obige Kurzdarstellung wurde dargelegt, um eine Auswahl von Konzepten in einer vereinfachten Form einzuführen, die im Folgenden in der detaillierten Beschreibung näher beschrieben werden. Diese Kurzdarstellung dient weder zur Kenntlichmachung der Haupt- oder wesentlichen Merkmale des beanspruchten Gegenstands noch als Hilfsmittel zur Festlegung des Schutzumfangs des beanspruchten Gegenstands. Der beanspruchte Gegenstand ist nicht auf Implementierungen beschränkt, die einige oder alle im Hintergrund der Erfindung genannten Nachteile beseitigen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Zum leichteren Verständnis der Vorteile der Erfindung wird die oben kurz beschriebene Erfindung nunmehr unter Bezugnahme auf spezielle Ausführungsformen ausführlich beschrieben, die in den beiliegenden Zeichnungen veranschaulicht werden. Angesichts der Tatsache, dass diese Zeichnungen Ausführungsformen der Erfindung darstellen und deshalb nicht als Einschränkung deren Schutzumfangs anzusehen sind, wie die Erfindung anhand der beiliegenden Zeichnungen eingehender und mit weiteren Details beschrieben und erläutert, wobei:
  • 1 eine Datenverarbeitungsumgebung mit einer beispielhaften Speichereinheit veranschaulicht, in der Aspekte der vorliegenden Erfindung umgesetzt werden können;
  • 2 ein beispielhaftes Blockschaltbild zeigt, das eine Hardwarestruktur eines Datenspeicherungssystems in einem Computersystem veranschaulicht, in dem Aspekte der vorliegenden Erfindung umgesetzt werden können;
  • 3 ein beispielhaftes Blockschaltbild zeigt, das ein komprimiertes Journaldateisystemveranschaulicht;
  • 4 ein beispielhaftes Blockschaltbild zeigt, das die Datenbereinigung in einer komprimierten Journaldatei veranschaulicht;
  • 5 ein Ablaufplan ist, der ein beispielhaftes Verfahren zum Durchführen der Datenbereinigung in einer komprimierten Journaldatei veranschaulicht; und
  • 6 ein Ablaufplan ist, der ein beispielhaftes Verfahren zum Berechnen gewichteter Bedingungen mit einer Vorrangvariablen zum Auswählen von Datenblöcken mit freiem Platz an einem Ende eines Datensatzes veranschaulicht.
  • Gemäß einem weiteren Aspekt betrifft die Erfindung ein System zur effizienten Datenbereinigung in einem komprimierten Journaldateisystem in einer Datenverarbeitungsumgebung, das aufweist:
    eine Prozessoreinheit, die in einer Datenverarbeitungs-Speicherumgebung wirksam wird, wobei die Prozessoreinheit dazu dient:
    ein Abbild zu konfigurieren, das Datenblöcken mit überschriebenen Journaldateieinträgen entspricht, und
    gewichtete Bedingungen für jeden der überschriebenen komprimierten Journaleinträge zu berechnen, wobei die gewichteten Bedingungen in dem Abbild von den niedrigsten bis zu den höchsten Werten angeordnet werden;
    wobei eine der gewichteten Bedingungen eine Vorrangvariable zum Auswählen von Datenblöcken mit freiem Platz an einem Ende mindestens eines zugehörigen Datensatzes aufweist.
  • Gemäß einer Ausführungsform der Erfindung dient die Prozessoreinheit ferner dazu, in Verbindung mit der Auswahl zu ermitteln, ob die gewichteten Bedingungen der Datenblöcke einen Schwellenwert überschreiten.
  • Gemäß einer weiteren Ausführungsform der Erfindung dient die Prozessoreinheit ferner dazu, die Auswahl der Datenblöcke durchzuführen, die in einem Lese-Cachespeicher mit gewichteten Bedingungen vorliegen, die gleichwertig sind.
  • Gemäß einer weiteren Ausführungsform der Erfindung dient die Prozessoreinheit ferner dazu, die Auswahl eines der Datenblöcke durchzuführen, wenn sich einer der Datenblöcke nicht in dem Lese-Cachespeicher befindet und wenn die eine der gewichteten Bedingungen der Datenblöcke den Schwellenwert überschreitet.
  • Gemäß einer weiteren Ausführungsform betrifft die Erfindung ein Computerprogrammprodukt zur effizienten Datenbereinigung in einem komprimierten Journaldateisystem in einer Datenverarbeitungsumgebung durch eine Prozessoreinheit, wobei das Computerprogrammprodukt ein permanentes computerlesbares Speichermedium mit darin gespeicherten Abschnitten eines computerlesbaren Programmcodes aufweist und die Abschnitte des computerlesbaren Programmcodes aufweisen:
    einen ersten ausführbaren Abschnitt zum Konfigurieren eines Abbildes, das Datenblöcken mit überschriebenen komprimierten Journaleinträgen entspricht; und
    einen zweiten ausführbaren Abschnitt zum Berechnen gewichteter Bedingungen für jeden der überschriebenen komprimierten Journaleinträge, wobei die gewichteten Bedingungen in dem Abbild von den niedrigsten bis zu den höchsten Werten angeordnet werden;
    wobei eine der gewichteten Bedingungen eine Vorrangvariable zum Auswählen von Datenblöcken mit freiem Platz an einem Ende des mindestens einen zugehörigen Datensatzes aufweist.
  • Gemäß einer weiteren Ausführungsform der Erfindung weist das Computerprogrammprodukt ferner einen dritten ausführbaren Abschnitt zum Durchführen der Berechnung der gewichteten Bedingungen auf gemäß:
    (x – w + (y/x))·(z/Bereich), wobei w eine Anzahl von Datensätzen in einem Lese-Cachespeicher, x eine Anzahl von gültigen Datensätzen, y eine Größe der Daten in den gültigen Datensätzen, z eine relative Position in dem Datenblock bis zum Ende des mindestens einen Datensatzes und Bereich den Bereich von Datenblöcken mit den gewichteten Bedingungen bedeuten, die gleichwertig sind.
  • Gemäß einer Ausführungsform der Erfindung weist das Computerprogrammprodukt ferner einen dritten ausführbaren Abschnitt zum Begrenzen der Größe des Abbildes anhand des Alters der Datenblöcke auf, um die Datenblöcke mit der höchsten Anzahl gültiger Datensätze von der Aufnahme in das Abbild auszuschließen, wobei das Alter des Blocks gleich einer Zeitdifferenz zwischen der letzten Überschreiboperation an dem Datenblock und einem aktuellen Zeitpunkt ist.
  • Gemäß einer weiteren Ausführungsform der Erfindung weist das Computerprogrammprodukt ferner einen dritten ausführbaren Abschnitt zum Begrenzen der Dimension des Abbildes anhand des Alters der Datenblöcke auf, um die Datenblöcke mit der höchsten Anzahl gültiger Datensätze von der Aufnahme in das Abbild abzuhalten, wobei das Alter des Blocks gleich einer Zeitdifferenz zwischen der letzten Überschreiboperation an dem Datenblock und einem aktuellen Zeitpunkt ist.
  • Gemäß einer weiteren Ausführungsform der Erfindung führt das Computerprogrammprodukt die Berechnung jedes Mal durch, wenn Daten an den Datenblöcken überschrieben werden, und jedes Mal, wenn die Datenblöcke zu dem Abbild hinzugefügt werden, wobei die gewichteten Bedingungen der Datenblöcke in dem Abbild von den niedrigsten bis zu den höchsten Werten angeordnet werden.
  • Gemäß einer weiteren Ausführungsform der Erfindung weist das Computerprogrammprodukt ferner einen dritten ausführbaren Abschnitt zum Auswählen der Datenblöcke zur Datenbereinigung mit einer möglichst geringen Anzahl gültiger Daten, einer möglichst geringen Anzahl gültiger Datensätze und einer maximalen Größe des freien Platzes auf.
  • Gemäß einer weiteren Ausführungsform der Erfindung weist das Computerprogrammprodukt einen vierten ausführbaren Abschnitt zum Ermitteln in Verbindung mit dem Auswählen auf, ob die gewichteten Bedingungen der Datenblöcke einen Schwellenwert überschreiten.
  • Gemäß einer weiteren Ausführungsform der Erfindung weist das Computerprogrammprodukt ferner einen fünften ausführbaren Abschnitt zum Durchführen des Auswählens der in einem Lese-Cachespeicher vorhandenen Datenblöcke mit gewichteten Bedingungen auf, die gleichwertig sind.
  • Gemäß einer weiteren Ausführungsform der Erfindung weist das Computerprogrammprodukt ferner einen sechsten ausführbaren Abschnitt zum Durchführen des Auswählens eines der Datenblöcke auf, wenn sich einer der Datenblöcke nicht in dem Lese-Cachespeicher befindet und wenn die gewichteten Bedingungen des einen der Datenblöcke den Schwellenwert überschreiten.
  • Es ist klar, dass ein oder mehrere der Ansprüche und/oder Ausführungsformen miteinander kombiniert werden können, solange sich die miteinander kombinierten Elemente nicht gegenseitig ausschließen.
  • DETAILLIERTE BESCHREIBUNG BESTIMMTER AUSFÜHRUNGSFORMEN
  • In einem Datenverarbeitungssystem oder einer Datenverarbeitungsumgebung kann ein Journaldateisystem dazu verwendet werden, die Schreiboperationen in einem Journal zu speichern. In einem komprimierten Journaldateisystem enthält das Journal komprimierte Daten. Die Fähigkeit, direkt auf die Daten zuzugreifen, wird durch Aufteilen des Journals in Blöcke erreicht, die ein separates Wörterverzeichnis verwenden. Wenn eine Überschreiboperation ausgeführt wird, macht die Überschreiboperation der Daten einen alten Datensatz ungültig und erzeugt in dem Journal eine Leerstelle. Darunter können die Effizienz und die Produktivität leiden.
  • Um die Effizienz und die Produktivität durch Schließen der durch eine Überschreiboperation in den Datensätzen in den komprimierten Journaldateieinträgen erzeugten Leerstellen zu steigern, wenden die Mechanismen der veranschaulichten Ausführungsformen einen Datenbereinigungsprozess an, um diese Leerstellen durch Verschieben der Daten an neue Positionen in dem Journal zu schließen.
  • Gemäß einer Ausführungsform ist das Auswählen des bestmöglichen Journalblocks zur Datenbereinigung kritisch, und die Mechanismen führen die Datenbereinigung an freien Blöcken am Ende der Datei aus und ermöglichen eine Verkürzung der Datei. Darüber hinaus führen die Mechanismen der veranschaulichten Ausführungsformen die Datenbereinigung an Blöcken mit möglichst wenigen Daten, möglichst wenigen gültigen Datensätzen und an Blöcken auf der Grundlage des Alters der Blöcke durch. Gemäß dem aktuellen Stand der Technik kann bei den vorhandenen Algorithmen nur eine dieser Bedingungen erfüllt werden.
  • Gemäß einer alternativen Ausführungsform erzeugen die Mechanismen eine neue Operation (z. B. erzeugen einen neuen Algorithmus) zum Auswählen des bestmöglichen Blocks zur Datenbereinigung auf der Grundlage folgender Kriterien; die freien Blöcke am Ende einer Datei, möglichst wenige gültige Daten, eine möglichst geringe Anzahl gültiger Datensätze, die Anzahl der Datensätze im Lese-Cachespeicher und das Alter der Blöcke. Der Algorithmus der vorliegenden Erfindung berücksichtigt all diese verschiedenen für die Auswahl erforderlichen Bedingungen. Die Auswahl kann gemäß der obigen Darstellung durch Zuweisen eines gewichteten Wertes zu jeder der verschiedenen Bedingungen erfolgen und ermöglicht auf der Grundlage einer Datenstrukturverwaltung eine Auswahl des Blocks für die Datenbereinigung in Echtzeit. Der neue Algorithmus erfüllt alle hierin beschriebenen Bedingungen und ermöglicht somit das Verkürzen der Datei unter Aufrechterhaltung der Effizienz beim Auswählen der Blöcke mit möglichst wenigen Daten. Mittels einer solchen Verarbeitung kann mehr in Anspruch genommener Platz freigemacht werden, sodass die Anzahl der für die Datenbereinigung erforderlichen E/A-Operationen verringert und der zeitbasierte Komprimierungsalgorithmus abgeschlossen wird.
  • 1 zeigt ein beispielhaftes Computersystem, in dem Aspekte der vorliegenden Erfindung realisiert werden können. Das Computersystem 10 weist eine Zentraleinheit (CPU) 12 auf, die mit (einer) Massenspeichereinheit(en) 14 und einer Speichereinheit 16 verbunden ist. Die Massenspeichereinheiten können Festplattenlaufwerkeinheiten (HDD) aufweisen, die als redundante Reihe unabhängiger Platten (RAID) konfiguriert sind. Die weiterhin beschriebenen Operationen zur Datenbereinigung können auf (einer) Einheit(en) 14 ausgeführt werden, die sich im System 10 oder anderswo befinden. Die Speichereinheit 16 kann einen Speicher wie einen elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM) oder einen Host entsprechender Einheiten aufweisen. Die Speichereinheit 16 und die Massenspeichereinheit 14 sind über ein Signalträgermedium mit einer CPU 12 verbunden. Außerdem ist die CPU 12 durch einen Datenübertragungsanschluss 18 mit einem Datenübertragungsnetz 20 verbunden, an das eine Vielzahl zusätzlicher Computersysteme 22 und 24 angeschlossen sind. Das Computersystem 10 kann eine oder mehrere Prozessoreinheiten (z. B. eine CPU 12) und zusätzliche Speichereinheiten 16 für jede einzelne Komponente des Computersystems 10 aufweisen, um jede hierin beschriebene Operation auszuführen und durchzuführen, um die Zielstellungen der vorliegenden Erfindung zu erreichen.
  • 2 ist ein beispielhaftes Blockschaltbild 200, das eine Hardwarestruktur eines Datenspeichersystems in einem Computersystem gemäß der vorliegenden Erfindung zeigt. Es werden Host-Computer 210, 220, 225 gezeigt, die jeweils als Zentraleinheit zum Durchführen der Datenverarbeitung als Teil eines Datenspeichersystems 200 fungieren. Bei den Hosts (physische oder virtuelle Einheiten) 210, 220 und 225 kann es sich um eine oder mehrere neue physische Einheiten oder logische Einheiten zum Erreichen der Zielstellungen der vorliegenden Erfindung in dem Datenspeichersystem 200 handeln. Gemäß einer Ausführungsform kann ein Datenspeichersystem 200 lediglich beispielhaft durch das IBM® System StorageTM DS8000TM realisiert werden. Bei einer Netzwerkverbindung 260 kann es sich um ein Fibre-Channel-Netz, eine Punkt-zu-Punkt-Verbindung über Fibre Channels, einen Fibre Channel über eine Ethernet-Netz oder eine Punkt-zu-Punkt-Verbindung, eine FICON- oder ESCON-E/A-Schnittstelle, eine andere Art von E/A-Schnittstelle, ein drahtloses Netz, ein leitungsgebundenes Netz, ein LAN, ein WAN, ein heterogenes, homogenes, öffentliches (z. B. das Internet), ein privates Netz oder deren Kombinationen handeln. Die Hosts 210, 220 und 225 können lokal angeordnet oder auf einen oder mehrere Standorte verteilt sein und mit einer beliebigen (in 2 nicht gezeigten) Art von Netz (oder Netzkanälen) oder einem Netzwerkadapter 260 zu der Speichersteuerung 240 ausgestattet sein, beispielsweise Faserkanal-, FICON-, ESCON-, Ethernet-, Funk- oder Koaxialadaptern. Das Datenspeichersystem 200 ist entsprechend mit einem geeigneten (in 2 nicht gezeigten) Netz oder einem Netzwerkadapter 260 für die Datenübertragung ausgestattet. Das Datenspeichersystem 200 ist in 2 dargestellt und weist eine Speichersteuerung 240 und einen Speicher 230 auf.
  • Um ein besseres Verständnis der hierin beschriebenen Verfahren zu ermöglichen, ist die Speichersteuerung 240 in 2 als eine einzige Verarbeitungseinheit dargestellt, die einen Mikroprozessor 242, einen Systemspeicher 243 und einen permanenten Speicher (NVS) 216 aufweist und im Folgenden ausführlicher beschrieben wird. Es wird darauf hingewiesen, dass gemäß einigen Ausführungsformen die Speichersteuerung 240 aus mehreren Verarbeitungseinheiten besteht, die jeweils ihren eigenen Prozessorkomplex und Systemspeicher aufweisen und durch ein zweckbestimmtes Netzwerk innerhalb des Datenspeichersystems 200 miteinander verbunden sind. Der Speicher 230 kann aus einer oder mehreren Speichereinheiten wie beispielsweise Speicher-Arrays bestehen, die durch ein Speichernetz mit der Speichersteuerung 240 verbunden sind.
  • Gemäß einigen Ausführungsformen können die in dem Speicher 230 enthaltenen Einheiten in einer Schleifenarchitektur miteinander verbunden sein. Die Speichersteuerung 240 verwaltet den Speicher 230 und ermöglicht die Verarbeitung von Schreib- und Leseanforderungen, die für den Speicher 230 vorgesehen sind. Der Systemspeicher 243 der Speichersteuerung 240 speichert die Anwendungssoftware 250, Programmanweisungen und Daten, auf die der Prozessor 242 zugreifen kann, um Funktionen und Verfahrensschritte zum Verwalten des Speichers 230 und die Schritte und Verfahren der vorliegenden Erfindung auszuführen. 2 zeigt, dass der Systemspeicher 243 auch einen Cachespeicher 245 für den Speicher 230 aufweisen oder mit diesem Daten austauschen kann, der hierin auch als „Cachespeicher” zum Puffern von „Schreibdaten” und „Lesedaten” bezeichnet wird, die jeweils Schreib/Lese-Anforderungen und deren zugehörige Daten betreffen. Gemäß einer Ausführungsform ist der Cachespeicher 245 in einer externen Einheit des Systemspeichers 243 untergebracht, jedoch kann der Mikroprozessor 242 weiterhin auf ihn zugreifen, und er kann nicht nur die hierin beschriebenen Operationen ausführen, sondern auch zusätzliche Sicherheit gegen Datenverlust bieten.
  • Gemäß einigen Ausführungsformen wird der Cachespeicher 245 mit einem flüchtigen Speicher und einem permanenten Speicher realisiert und über einen (in 2 jedoch nicht gezeigten) lokalen Bus mit dem Mikroprozessor 242 verbunden, um die Leistungsfähigkeit des Datenspeicherungssystems 200 zu steigern. Der NVS 216 weist eine Datenspeichersteuerung auf, auf die der Mikroprozessor 242 zugreifen kann, und dient als zusätzliche Unterstützung für Operationen und die Ausführung der vorliegenden Erfindung gemäß der Darstellung in anderen Figuren. Der NVS 216 kann als „permanenter” Cachespeicher oder als „Cachespeicher” bezeichnet werden und wird mit einem permanenten Speicher realisiert, der zum Erhalt der darin gespeicherten Daten gegebenenfalls eine externe Stromversorgung nutzen kann. Der NVS kann in und mit dem Cachespeicher 245 für alle Zweckbestimmungen betrieben werden, die zum Erreichen der Zielstellungen der vorliegenden Erfindung geeignet sind. Gemäß einigen Ausführungsformen versorgt eine (in 2 nicht gezeigte) Reservestromquelle wie z. B. eine Batterie den NVS 216 mit ausreichend Strom, um die darin gespeicherten Daten zu sichern, falls die Stromversorgung des Datenspeicherungssystems 200 unterbrochen wird. Gemäß bestimmten Ausführungsformen ist die Speicherkapazität des NVS 216 kleiner als die Gesamtkapazität des Cachespeichers 245 oder gleich groß.
  • Der Speicher 230 kann physisch aus einer oder mehreren Speichereinheiten, beispielsweise aus Speicher-Arrays bestehen. Ein Speicher-Array stellt eine logische Anordnung einzelner Speichereinheiten wie beispielsweise eine Festplatte dar. Gemäß einigen Ausführungsformen besteht der Speicher 230 aus einem JBOD-Array (Just a Bunch of Disks, nur ein Plattenbündel) oder einem RAID-Array (Redundant Array of Independent Disks, redundante Reihe unabhängiger Platten). Ferner kann eine Gruppe physischer Speicher-Arrays miteinander kombiniert werden, um eine Rangordnung zu bilden, die den physischen Speicher von der logischen Konfiguration trennt. Der Speicherplatz in einer Rangordnung kann logischen Datenträgern zugeordnet werden, die die in einer Schreib/Lese-Anforderung angegebenen Speicheradresse definieren.
  • Gemäß einer Ausführungsform kann das in 2 gezeigte Speichersystem einen logischen Datenträger oder einfach „Datenträger” mit verschiedenen Arten von Zuordnungen aufweisen. Die Speicher 230a, 230b und 230n sind als Rangordnungen im Datenspeicherungssystem 200 dargestellt und werden hierin als Rangordnung 230a, 230b und 230n bezeichnet. Die Rangordnungen können sich lokal im Datenspeicherungssystem 200 befinden oder an einem physisch fernen Standort angeordnet sein. Mit anderen Worten, eine logische Speichersteuerung kann mit einer fernen Speichersteuerung verbunden sein und den Speicher an dem fernen Standort steuern. Die Rangordnung 230a ist als Konfiguration von zwei ganzen Datenträgern 234 und 236 sowie einer Datenträgerpartition 232a dargestellt. Die Rangordnung 230b ist mit einer weiteren Datenträgerpartition 232b dargestellt. Somit ist der Datenträger 232 auf die Rangordnungen 230a und 230b aufgeteilt. Die Rangordnung 230n ist vollständig dem Datenträger 238 zugeordnet – das heißt, die Rangordnung 230n betrifft den gesamten physischen Speicher für den Datenträger 238. Aus den obigen Beispielen wird klar, dass eine Rangordnung so konfiguriert werden kann, dass sie eine oder mehrere Datenträgerpartitionen und/oder ganze Datenträger aufweisen kann. Datenträger und Rangordnungen können ferner in so genannte „Spuren” eingeteilt werden können, die einen festen Speicherblock darstellen. Eine Spur gehört somit zu einem bestimmten Datenträger und kann eine bestimmte Rangordnung zugeordnet bekommen.
  • Die Speichersteuerung 240 kann ein Datenbereinigungsmodul 255 aufweisen, das die Datenbereinigung in einem komprimierten Journaldateisystem unterstützt. Das Datenbereinigungsmodul 255 kann in Verbindung mit jeder und allen Komponenten der Speichersteuerung 240, der Hosts 210, 220, 225 und der Speichereinheiten 230 fungieren. Das Datenbereinigungsmodul 255 kann strukturell sowohl ein komplettes Modul darstellen oder anderen Einzelmodulen zugeordnet und/oder in ihnen enthalten sein. Das Datenbereinigungsmodul 255 kann auch in dem Cachespeicher 245 oder anderen Komponenten der Speichersteuerung 240 untergebracht sein, um die Aufgabe der vorliegenden Erfindung zu erfüllen.
  • Die Speichersteuerung 240 weist einen Steuerschalter 241 zum Steuern des Fibre-Channel-Protokolls für die Host-Computer 210, 220, 225, einen Mikroprozessor 242 zum Steuern aller Speichersteuerungen 240, einen permanenten Steuerspeicher 243 zum Speichern eines Mikroprogramms (Anwendungssoftware) 250 zum Steuern der Funktion der Speichersteuerung 240, Daten zur Steuerung und jede später beschriebene Tabelle, einen Cachespeicher 245 zum temporären Speichern (Puffern) von Daten und Puffer 244 zum Unterstützen des Cachespeichers 245 beim Lesen und Schreiben von Daten, einen Steuerschalter 241 zum Steuern eines Protokolls, um die Datenübertragung zu oder von den Speichereinheiten 230 zu steuern, und ein Datenbereinigungsmodul 255 auf, in das Daten eingegeben werden können. Bei der vorliegenden Erfindung können mehrere Puffer 244 eingesetzt werden, um die Datenbereinigung in einem komprimierten Journaldateisystem gemäß der vorliegenden Beschreibung zu unterstützen.
  • Gemäß einer Ausführungsform sind die Host-Computer oder eine oder mehrere physische oder virtuelle Einheiten 210, 220, 225 und die Speichersteuerung 240 durch einen Netzwerkadapter 260 (hierbei kann es sich um einen Fibre Channel handeln) als Schnittstelle miteinander verbunden, d. h. über einen Schalter mit der Bezeichnung „Schaltnetz” (fabric). Gemäß einer Ausführungsform wird die Funktionsweise des in 2 gezeigten Systems beschrieben. Der Mikroprozessor 242 kann den Speicher 243 steuern, um Befehlsdaten von der (physischen oder virtuellen) Host-Einheit 210 und Daten zur Erkennung der (physischen oder virtuellen) Host-Einheit 210 zu speichern. Der Steuerschalter 241, die Puffer 244, der Cachespeicher 245, die Anwendungssoftware 250, der Mikroprozessor 242, der Speicher 243, der NVS 216 und das Datenbereinigungsmodul 255 tauschen Daten untereinander aus und können aus getrennten oder einer einzelnen Komponente(n) bestehen. Ferner können einige oder sogar alle Komponenten wie beispielsweise die Anwendungssoftware 245 im Speicher 243 gespeichert sein, um die Datenbereinigung in einem komprimierten Journaldateisystem durchzuführen. Jede der Komponenten innerhalb der gezeigten Einheiten kann mit jeder anderen verbunden sein und Daten mit diesen austauschen, um die Zielstellungen der vorliegenden Erfindung zu erfüllen.
  • 3 veranschaulicht ein beispielhaftes Blockschaltbild, das ein komprimiertes Journaldateisystem zeigt. In einem Datenverarbeitungssystem kann ein Journaldateisystem dazu verwendet werden, die Schreiboperationen in einem Journal wie beispielsweise W1, W2, W3 und W4 zu speichern. Die Daten werden in der Form C1, C2, C3 und C4 komprimiert und können dann in den Blocksegmenten 1, 2, 3 und 4 gespeichert werden. Die Fähigkeit, direkt auf die Daten zuzugreifen, wird dadurch erreicht, dass das Journal in Blöcke aufgeteilt wird, die ein separates Wörterverzeichnis verwenden. Wenn eine Überschreiboperation ausgeführt wird, macht die Überschreiboperation der Daten einen alten Datensatz ungültig und erzeugt in dem Journal eine Leerstelle, was durch die komprimierten Datenblöcke 1 bis 6 dargestellt wird. Block 6 zeigt eine Überschreiboperation von Daten, die einen alten Datensatz ungültig macht und in dem Journal eine Leerstelle erzeugt.
  • Um die Effizienz und Produktivität wie oben erwähnt durch Schließen der durch eine Überschreiboperation an den Datensätzen in den komprimierten Journaldateieinträgen erzeugten Leerstellen zu steigern, wenden die Mechanismen der dargestellten Ausführungsformen einen Datenbereinigungsprozess zum Schließen dieser Leerstellen durch Verschieben der Daten in einen oder mehrere neue Speicherplätze in dem Journal an.
  • 4 veranschaulicht ein beispielhaftes Blockschaltbild, das die Datenbereinigung in einer komprimierten Journaldatei zeigt. Teil 1 in 4 zeigt einen kompletten Datenblock mit 5 einzelnen Segmenten. Die Segmente 1, 2, 3 und 4 waren ursprünglich zusammen in den Block geschrieben worden, sodass sich die Segmente 1, 2, 3 und 4 im Cachespeicher befinden. Teil 2 veranschaulicht eine Überschreiboperation, die am Segment 2 ausgeführt wird. Die Segmente 1, 3 und 4 müssen sämtlich umgelagert werden, was einfach erreicht werden kann, da das Segment 2 erst vor kurzem geändert wurde und sich alle Segmente, aus denen der das Segment 2 enthaltende Block besteht, in dem Cachespeicher befinden. Teil 3 veranschaulicht, dass der Anfangsblock nunmehr durch das Umlagern (z. B. durch Gruppierung) der ursprünglichen Segmente 1, 3 und 4 mit der Eingabe/Ausgabe (E/A) der Schreiboperation 85 frei ist. Zu beachten ist, dass Daten nur durch Leseoperationen in den Lese-Cachespeicher eingefügt werden.
  • Um die Auswahl des Blocks zur Datenbereinigung wie oben beschrieben zu ermöglichen, verwenden die Mechanismen die folgenden Datenstrukturen. Erstens kann jeder Komprimierungsblock in dem Journaldateisystem die folgende Metadatenstruktur aufweisen: die Anzahl der Datensätze, die Größe jedes Datensatzes und das Alter des überschriebenen Blocks. Zweitens ist das Abbild so konfiguriert, dass es eine Liste von Blöcken mit überschriebenen Datensätzen in dem Journal enthält. Jeder teilweise ausgefüllte Datenblock kann aus gültigen komprimierten Datenprotokollen und ungültigen (überschriebenen) Datenprotokollen bestehen. Somit bevorzugen die Mechanismen, einen Datenblock mit einer möglichst niedrigen Anzahl gültiger Protokolle und einer maximalen Größe an freiem Platz auszuwählen. Daher besteht der Schlüssel für das Abbild aus der Anzahl gültiger Datensätze, die durch die Variable x repräsentiert wird, der Größe der Daten in den gültigen Datensätzen, die durch die Variable y repräsentiert wird, die Blockposition innerhalb der physischen Datei, die durch die Variable z repräsentiert wird, und die Gewichtung jedes der Abbildeinträge wird auf der Grundlage des Wertes des Schlüssels berechnet gemäß: (x + (y/x))·(z/Bereich), wobei der Bereich gleich dem Bereich von Datenblöcken mit den gewichteten Bedingungen ist, die gleichwertig sind. Der Bereich entspricht dem Datei/Datenträger-Bereich. Die Datei/der Datenträger wird in Bereiche aufgeteilt, und jedem Bereich wird entsprechend dem Abstand des Bereichs vom Ursprung ein gewichteter Wert zugeordnet. Im Gegensatz zu standardmäßigen Zuordnungsalgorithmen, die durch Datenbereinigungsprozesse ungeachtet des Speicherplatzes verwendet werden, der durch den Datenbereinigungsprozess in den Daten freigesetzt werden soll, beabsichtigt der Mechanismus der vorliegenden Erfindung Daten vom Ende der Blöcke freizusetzen. Bei der Dimension Z handelt es sich wie oben erwähnt um die relative Blockposition bis zum Ende der Datei, die in der Formel durch Z repräsentiert wird. Die Dimension „Z” ist eine Vorrangvariable zum Auswählen des Datenblocks mit freiem Platz am Ende der Datei. Der neue Algorithmus verwendet die Datenbereinigung zum Freisetzen von Speicherplatz und zum anschließenden Zuweisen von angefordertem Speicherplatz.
  • Um die Mechanismen der veranschaulichten Ausführungsformen zum Durchführen einer effizienten Datenbereinigung zu unterstützen, wird die Größe des Abbildes begrenzt, sodass Blöcke mir einer großen Anzahl gültiger Datensätze nicht in das Abbild eingefügt werden können. Dadurch sind die Mechanismen der vorliegenden Erfindung in der Lage, ein stärkeres Gewicht auf das Alter des Blocks und/oder Datensatzes zu legen und eine zeitbasierte Komprimierung und deren Vorteile zu unterstützen. Das Alter des Blocks ist gleich der Zeitdifferenz zwischen der letzten Überschreiboperation und dem aktuellen Zeitpunkt. Das Alter des Datenblocks kann auch außerhalb der Gewichtungsformel ermittelt werden. Das geschieht, indem die Gewichtung des betreffenden Datenblocks jedes Mal berechnet wird, wenn der Benutzer einen Teil der zu diesem Block gehörenden Daten überschreibt. Somit kann das Blockabbild aus Bereichen derselben Gewichtung bestehen. Jeder Block kann in den betreffenden Gewichtungsbereich am Ende dieser Gruppe eingefügt werden. Das Abbild versetzt die Mechanismen in die Lage, den nächsten Block zum Datenbereinigung zu finden und umgeht die Notwendigkeit, ständig die Gewichtung der Bedingungen mittels der Gewichtungsformel zu berechnen, da die Blockgewichtung während einer Einfüge-Operation berechnet wird und die Blöcke immer von niedrigen bis zu hohen Gewichtungswerten angeordnet werden. Durch das Begrenzen der Größe des Blockabbildes können Blöcke mit einem geringerem Alter (d. h. solche, die früher überschrieben wurden) in das Abbild aufgenommen werden. Deshalb ist die Blockposition bei der Berechnung der Gewichtung und für die Auswahl des Datenbereinigungsprozesses von Bedeutung.
  • Die Auswahl von Datenblöcken mit freiem Platz am Ende des Datensatzes/der Datei ermöglicht eine schnellere Verkürzung der Datei und Freigabe des Speicherplatzes an das Dateisystem. In einem blockweise organisierten System kann die Speicherwiederherstellung bei sparsamer Speicherbereitstellung auch auf dem Freisetzen von Speicherplatz am Ende der logischen Einheit beruhen. Diese einzigartige Wirkung auf die Gewichtungsberechnung bei der Datenbereinigung ist für die Komprimierung durch das Freisetzen von Speicherplatz kennzeichnend, was eine Komprimierung darstellt. Bei der Berechnung der Gewichtungen zur Datenbereinigung können die Mechanismen auch andere Bedingungen/Werte der Datenverfügbarkeit berücksichtigen.
  • Gemäß einer Ausführungsform führen die Mechanismen die Datenbereinigung an Datenblöcken durch, die sich im Lese-Cachespeicher befinden, wodurch die Daten ohne die Leseeingabe/Leseausgabe-(E/A-)Operationen verschoben werden können, die zum Abrufen der zu verschiebenden Daten erforderlich sind. Die Datenbereinigungsoperationen können jedoch auch für einen Block durchgeführt werden, der im Cachespeicher nicht verfügbar ist, wenn die aus den gewichteten Bedingungen gewonnene Gesamtgewichtung die Datenbereinigung rechtfertigt. Im Idealfall wird die Durchführung der Datenbereinigung an den partiellen Datenblöcken mit derselben Gewichtung mit Daten im Lese-Cachespeicher bevorzugt, jedoch können die Mechanismen auch Datenblöcke mit Gewichtungen oberhalb eines Schwellenwertes für die Datenbereinigung auswählen.
  • 5 ist ein Ablaufplan, der ein beispielhaftes Verfahren 500 zum Durchführen der Datenbereinigung in einer komprimierten Journaldatei veranschaulicht. Das Verfahren 500 beginnt (in Schritt 502) durch Konfigurieren eines Abbildes, das Datenblöcken mit überschriebenen komprimierten Journaleinträgen entspricht (Schritt 504). Für jeden der überschriebenen komprimierten Journaleinträge werden gewichtete Bedingungen berechnet (Schritt 506). Diese gewichteten Bedingungen können die Anzahl der gültigen Datensätze, die Größe der Daten in den gültigen Datensätzen und die Blockposition innerhalb der physischen Datei enthalten. Die gewichteten Bedingungen in dem Abbild werden von der niedrigsten bis zur höchsten Gewichtung angeordnet (Schritt 508). Das Verfahren 500 kann als eine der gewichteten Bedingungen eine Vorrangvariable zum Auswählen von Datenblöcken mit freiem Platz an einem Ende eines zugehörigen Datensatzes aufweisen (Schritt 510). Dann wird das Verfahren 500 beendet (Schritt 512).
  • 6 ist ein Ablaufplan, der ein beispielhaftes Verfahren 600 zum Berechnen gewichteter Bedingungen mit einer Vorrangvariablen zum Auswählen von Datenblöcken mit freiem Platz an einem Ende eines Datensatzes veranschaulicht. Das Verfahren 600 beginnt (Schritt 602) mit der Berechnung der gewichteten Bedingungen gemäß (x – w + (y/x))·(z/Bereich) (Schritt 604). Die Variable x ist gleich der Anzahl gültiger Datensätze, y gleich der Größe der Daten in den gültigen Datensätzen, z (das eine dritte oder neue Dimension repräsentiert) gleich der Blockposition innerhalb einer Datei und w gleich der Anzahl der Datensätze im Lese-Cachespeicher. Das Verfahren 600 kann die Berechnung jedes Mal durchführen, wenn Daten an den Datenblöcken überschrieben werden, und jedes Mal, wenn die Datenblöcke zu dem Abbild hinzugefügt werden (Schritt 606). Das Verfahren 600 kann die Größe des Abbildes anhand des Alters der Datenblöcke begrenzen, um die Aufnahme der Datenblöcke mit der größten Anzahl gültiger Datensätze in das Abbild auszuschließen (Schritt 608). Das Verfahren 600 kann ermitteln, ob die gewichteten Bedingungen der Datenblöcke einen Schwellenwert überschreiten (S 610). Für die Datenbereinigung können die Datenblöcke mit einer möglichst geringen Anzahl gültiger Daten, einer möglichst geringen Anzahl gültiger Datensätze und einer maximalen Größe an freiem Speicherplatz ausgewählt werden (612). Das Verfahren 600 kann ermitteln, ob sich einer der Datenblöcke in einem Lese-Cachespeicher befindet (Schritt 614). Wenn dies der Fall ist, kann das Verfahren 600 die Auswahl der in dem Lese-Cachespeicher vorhandenen Datenblöcke mit gewichteten Bedingungen vornehmen, die gleichwertig sind (Schritt 616). Wenn dies nicht der Fall ist, kann das Verfahren 600 ermitteln, ob keine der gewichteten Bedingungen der Datenblöcke einen Schwellenwert überschreitet (Schritt 618). Wenn eine der gewichteten Bedingungen der Datenblöcke keinen Schwellenwert überschreitet, kann das Verfahren 600 zurückkehren zu (Schritt 612) und die Datenblöcke zur Datenbereinigung auswählen, die eine möglichst geringe Anzahl gültiger Daten, eine möglichst geringe Anzahl gültiger Datensätze und eine maximale Größe an freiem Speicherplatz aufweisen (Schritt 612). Wenn eine der gewichteten Bedingungen der Datenblöcke einen Schwellenwert überschreitet, kann das Verfahren 600 Datenblöcke auswählen, die sich in keinem Lese-Cachespeicher befinden (Schritt 620). Dann wird das Verfahren 600 beendet (Schritt 622).
  • Gemäß einer Ausführungsform konfigurieren die Mechanismen zum Durchführen einer effizienten Datenbereinigung in einem komprimierten Journal ein Abbild, das Datenblöcken mit überschriebenen komprimierten Journaleinträgen entspricht. Für jeden der überschriebenen komprimierten Journaleinträge werden gewichtete Bedingungen berechnet. Die gewichteten Bedingungen werden in dem Abbild vom niedrigsten bis zum höchsten Wert angeordnet. Eine der gewichteten Bedingungen kann eine Vorrangvariable zum Auswählen von Datenblöcken mit freiem Platz an einem Ende mindestens eines zugehörigen Datensatzes aufweisen.
  • Dem Fachmann ist einsichtig, dass Aspekte der vorliegenden Erfindung als System, Verfahren oder Computerprogrammprodukt umgesetzt werden können. Demgemäß können Aspekte der vorliegenden Erfindung die Form einer kompletten Hardwareausführungsform, einer kompletten Softwareausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardwareaspekte in sich vereinigt, die hierin sämtlich allgemein als „Schaltkreis”, „Modul” oder „System” bezeichnet werden können. Darüber hinaus können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien mit einem darauf gespeicherten computerlesbaren Programmcode verkörpert wird.
  • Es kann jede Kombination von einem oder mehreren computerlesbaren Medien verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder um ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich unter anderem zum Beispiel um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine entsprechende Vorrichtung oder Einheit oder eine geeignete Kombination derselben handeln. Spezielle Beispiele (eine nicht erschöpfende Aufstellung) des computerlesbaren Speichermediums kann Folgendes enthalten: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EEPROM oder Flash-Speicher), einen Lichtwellenleiter, einen tragbaren Compact Disc-Nur-Lese-Speicher (Daten-CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination derselben. In Verbindung mit diesem Dokument kann es sich bei einem computerlesbaren Speichermedium um ein beliebiges materielles Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder Einheit zum Ausführen von Anweisungen enthalten oder speichern kann.
  • Der auf einem computerlesbaren Medium verkörperte Programmcode kann unter Verwendung eines beliebigen geeigneten Mediums übertragen werden, unter anderem drahtlos, leitungsgebunden, über Lichtwellenleiter, HF usw. oder eine geeignete Kombination derselben. Der Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination einer oder mehrerer Programmiersprachen geschrieben werden, darunter eine objektorientierte Programmiersprache wie beispielsweise Java, Smalltalk, C++ oder Ähnliches und herkömmliche prozedurale Programmiersprachen wie beispielsweise „C” oder ähnliche Programmiersprachen. Der Programmcode kann ganz auf dem Computer eines Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. Im letzteren Szenario kann der ferne Computer über eine beliebige Art von Netzwerk mit dem Computer des Benutzers verbunden werden, darunter ein lokales Netz (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters) zu einem externen Computer hergestellt werden.
  • Aspekte der vorliegenden Erfindung werden oben unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufpläne und/oder Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaltbildern durch Anweisungen eines Computerprogramms realisiert werden können. Die Anweisungen des Computerprogramms können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zum Erzeugen einer Maschine zugeführt werden, damit die durch den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zum Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder der Blockschaltbilder angegebenen Funktionen/Aktionen erzeugen.
  • Diese Anweisungen des Computerprogramms können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten veranlassen kann, in einer bestimmten Weise so wirksam zu werden, dass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsartikel erzeugen, der Anweisungen enthält, die die in dem Block oder den Blöcken des Auflaufplans und/oder des Blockschaltbildes angegebenen Funktionen/Aktionen umsetzen. Die Anweisungen des Computerprogramms können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen, um eine Reihe auf dem Computer, der anderen programmierbaren Vorrichtung oder anderen Einheiten auszuführenden Arbeitsschritte zu veranlassen, um einen computergestützten Prozess derart zu erzeugen, dass die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführten Anweisungen Prozesse zum Umsetzen der in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbildes angegebenen Funktionen/Aktionen bereitstellen.
  • Der Ablaufplan und das Blockschaltbild in den obigen Figuren veranschaulichen die Architektur, die Funktionalität und die Funktionsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Diesbezüglich kann jeder Block in dem Ablaufplan oder den Blockschaltbildern ein Modul, ein Segment oder einen Abschnitt des Codes repräsentieren, der eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen logischen Funktion(en) aufweist. Zu beachten ist auch, dass gemäß einigen alternativen Implementierungen die in dem Block angegebenen Funktionen in einer von den Figuren abweichenden Reihenfolge auftreten können. Zum Beispiel können je nach beabsichtigter Funktionalität zwei nacheinander dargestellte Blöcke in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können mitunter in der umgekehrten Reihenfolge ausgeführt werden. Ferner wird darauf hingewiesen, dass jeder Block der Blockschaltbilder und/oder des Ablaufplans und Kombinationen von Blöcken in den Blockschaltbildern und/oder dem Ablaufplan durch spezielle Hardwaresysteme umgesetzt werden können, die die angegebenen Funktionen oder Aktionen oder Kombinationen von speziellen Hardware- und Computeranweisungen ausführen.
  • Obwohl eine oder mehrere Ausführungsformen der vorliegenden Erfindung detailliert veranschaulicht wurden, ist dem Fachmann einsichtig, dass an diesen Ausführungsformen Änderungen und Anpassungen vorgenommen werden können.

Claims (15)

  1. Verfahren zur effizienten Datenbereinigung in einem komprimierten Journaldateisystem durch eine Prozessoreinheit in einer Datenverarbeitungsumgebung, wobei das Verfahren aufweist: Konfigurieren eines Abbildes, das Datenblöcken mit überschriebenen Journaleinträgen entspricht; und Berechnen gewichteter Bedingungen für jeden der überschriebenen komprimierten Journaleinträge, wobei die gewichteten Bedingungen in dem Abbild von den niedrigsten bis zu den höchsten Werten angeordnet werden; wobei eine der gewichteten Bedingungen eine Vorrangvariable zum Auswählen von Datenblöcken mit freiem Platz an einem Ende mindestens eines zugehörigen Datensatzes aufweist.
  2. Verfahren nach Anspruch 1, das ferner das Ausführen des Berechnens der gewichteten Bedingungen aufweist gemäß: (x – w + (y/x))·(z/Bereich), wobei w eine Anzahl von Datensätzen in einem Lese-Cachespeicher, x eine Anzahl von gültigen Datensätzen, y eine Größe der Daten in den gültigen Datensätzen, z eine relative Position in dem Datenblock bis zum Ende des mindestens einen Datensatzes und Bereich den Bereich von Datenblöcken mit den gewichteten Bedingungen bedeuten, die gleichwertig sind.
  3. Verfahren nach Anspruch 1 oder 2, das ferner das Begrenzen der Größe des Abbildes anhand des Alters der Datenblöcke aufweist, um die Datenblöcke mit der größten Anzahl gültiger Datensätze von der Aufnahme in das Abbild auszuschließen, wobei das Alter des Blocks gleich einer Zeitdifferenz zwischen der letzten Überschreiboperation an dem Datenblock und einem aktuellen Zeitpunkt ist.
  4. Verfahren nach Anspruch 1, 2 oder 3, wobei das Berechnen jedes Mal durchgeführt wird, wenn Daten an den Datenblöcken überschrieben werden, und jedes Mal, wenn die Datenblöcke zu dem Abbild hinzugefügt werden, wobei die gewichteten Bedingungen der Datenblöcke in dem Abbild von den niedrigsten bis zu den höchsten Werten angeordnet werden.
  5. Verfahren nach einem der vorhergehenden Ansprüche, das ferner das Auswählen der Datenblöcke zur Datenbereinigung mit einer möglichst geringen Anzahl gültiger Daten, einer möglichst geringen Anzahl gültiger Datensätze und einer maximalen Größe an freiem Platz aufweist.
  6. Verfahren nach Anspruch 5, das ferner das Ermitteln in Verbindung mit der Auswahl aufweist, ob die gewichteten Bedingungen der Datenblöcke einen Schwellenwert überschreiten.
  7. Verfahren nach Anspruch 6, das ferner das Durchführen des Auswählens der in einem Lese-Cachespeicher vorhandenen Datenblöcke mit gewichteten Bedingungen aufweist, die gleichwertig sind.
  8. Verfahren nach Anspruch 7, das ferner das Durchführen des Auswählens eines der Datenblöcke aufweist, wenn sich einer der Datenblöcke nicht in dem Lese-Cachespeicher befindet und wenn die gewichteten Bedingungen des einen der Datenblöcke den Schwellenwert überschreiten.
  9. System zur effizienten Datenbereinigung in einem komprimierten Journaldateisystem in einer Datenverarbeitungsumgebung, wobei das System aufweist: eine Prozessoreinheit, die in der Datenverarbeitungsumgebung wirksam werden kann, wobei die Prozessoreinheit dazu dient: ein Abbild zu konfigurieren, das Datenblöcken mit überschriebenen komprimierten Journaleinträgen entspricht, und gewichtete Bedingungen für jeden überschriebenen komprimierten Journaleinträge zu berechnen, wobei die gewichteten Bedingungen in dem Abbild von den niedrigsten bis zu den höchsten Werten angeordnet werden; wobei eine der gewichteten Bedingungen eine Vorrangvariable zum Auswählen von Datenblöcken mit freiem Platz an einem Ende des mindestens einen zugehörigen Datensatzes aufweist.
  10. System nach Anspruch 9, wobei die Prozessoreinheit ferner dazu dient, die Berechnung der gewichteten Bedingungen durchzuführen gemäß: (x – w + (y/x))·(z/Bereich), wobei w eine Anzahl von Datensätzen in einem Lese-Cachespeicher, x eine Anzahl von gültigen Datensätzen, y eine Größe der Daten in den gültigen Datensätzen, z eine relative Position in dem Datenblock bis zum Ende des mindestens einen Datensatzes und Bereich den Bereich von Datenblöcken mit den gewichteten Bedingungen bedeuten, die gleichwertig sind.
  11. System nach Anspruch 9 oder 10, wobei die Prozessoreinheit ferner dazu dient, die Größe des Abbildes anhand des Alters der Datenblöcke zu begrenzen, um die Datenblöcke mit der größten Anzahl gültiger Datensätze von der Aufnahme in das Abbild auszuschließen, wobei das Alter des Blocks gleich einer Zeitdifferenz zwischen der letzten Überschreiboperation an dem Datenblock und einem aktuellen Zeitpunkt ist.
  12. System nach Anspruch 9, 10 oder 11, wobei das Berechnen jedes Mal durchgeführt wird, wenn Daten an den Datenblöcken überschrieben werden, und jedes Mal, wenn die Datenblöcke zu dem Abbild hinzugefügt werden, wobei die gewichteten Bedingungen der Datenblöcke in dem Abbild von den niedrigsten bis zu den höchsten Werten angeordnet werden.
  13. System nach einem der Ansprüche 9 bis 12, wobei die Prozessoreinheit ferner dazu dient, die Datenblöcke zur Datenbereinigung mit einer möglichst geringen Anzahl von gültigen Daten, einer möglichst geringen Anzahl gültiger Daten und einer maximalen Größe an freiem Platz auszuwählen.
  14. System nach einem der Ansprüche 9 bis 13, wobei die Prozessoreinheit ferner dazu dient, in Verbindung mit der Auswahl zu ermitteln, ob die gewichteten Bedingungen der Datenblöcke einen Schwellenwert überschreiten.
  15. Computerprogrammprodukt zur effizienten Datenbereinigung in einem komprimierten Journaldateisystem in einer Datenverarbeitungsumgebung durch eine Prozessoreinheit, wobei das Computerprogrammprodukt ein permanentes computerlesbares Speichermedium mit darin gespeicherten Abschnitten eines computerlesbaren Programmcodes aufweist und die Abschnitte des computerlesbaren Programmcodes aufweisen: einen ersten ausführbaren Abschnitt zum Konfigurieren eines Abbildes, das Datenblöcken mit überschriebenen komprimierten Journaleinträgen entspricht; und einen zweiten ausführbaren Abschnitt zum Berechnen gewichteter Bedingungen für jeden der überschriebenen komprimierten Journaleinträge, wobei die gewichteten Bedingungen in dem Abbild von den niedrigsten bis zu den höchsten Werten angeordnet werden; wobei eine der gewichteten Bedingungen eine Vorrangvariable zum Auswählen von Datenblöcken mit freiem Platz an einem Ende mindestens eines zugehörigen Datensatzes aufweist.
DE102012218264A 2011-10-17 2012-10-08 Effiziente Datenbereinigung in einer komprimierten Journaldatei Ceased DE102012218264A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/275,178 US8539007B2 (en) 2011-10-17 2011-10-17 Efficient garbage collection in a compressed journal file
US13/275,178 2011-10-17

Publications (1)

Publication Number Publication Date
DE102012218264A1 true DE102012218264A1 (de) 2013-05-02

Family

ID=47225701

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012218264A Ceased DE102012218264A1 (de) 2011-10-17 2012-10-08 Effiziente Datenbereinigung in einer komprimierten Journaldatei

Country Status (3)

Country Link
US (2) US8539007B2 (de)
DE (1) DE102012218264A1 (de)
GB (1) GB2495821B (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130076429A (ko) * 2011-12-28 2013-07-08 삼성전자주식회사 메모리 장치의 저장 영역 관리 방법 및 이를 이용한 저장 장치
US8615500B1 (en) * 2012-03-29 2013-12-24 Emc Corporation Partial block allocation for file system block compression using virtual block metadata
US9405672B2 (en) 2013-06-25 2016-08-02 Seagate Technology Llc Map recycling acceleration
US10877922B2 (en) * 2016-01-29 2020-12-29 Hewlett Packard Enterprise Development Lp Flushes based on intent log entry states
US10489291B2 (en) * 2018-01-23 2019-11-26 Goke Us Research Laboratory Garbage collection method for a data storage apparatus by finding and cleaning a victim block
US10824556B2 (en) 2018-11-05 2020-11-03 International Business Machines Corporation Adaptive garbage collection (GC) utilization for grid storage systems
US10915444B2 (en) * 2018-12-27 2021-02-09 Micron Technology, Inc. Garbage collection candidate selection using block overwrite rate
CN112306974A (zh) * 2019-07-30 2021-02-02 深信服科技股份有限公司 一种数据处理方法、装置、设备及存储介质
SG11202002587TA (en) * 2019-09-12 2020-04-29 Alibaba Group Holding Ltd Log-structured storage systems

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030120869A1 (en) 2001-12-26 2003-06-26 Lee Edward K. Write-back disk cache management
RU2319227C2 (ru) 2002-12-24 2008-03-10 Эл Джи Электроникс Инк. Способ запоминания с двойным протоколированием и носитель данных для него
US7624137B2 (en) 2004-01-05 2009-11-24 International Business Machines Corporation Method and apparatus for scheduling and performing garbage collection in a real-time system with guaranteed space bounds
US20060036802A1 (en) 2004-08-11 2006-02-16 Ixi Mobile (R&D) Ltd. Flash file system management
WO2007019197A2 (en) * 2005-08-03 2007-02-15 Sandisk Corporation Management of memory blocks that directly store data files
KR100848315B1 (ko) * 2005-12-08 2008-07-24 한국전자통신연구원 이중 저널링을 이용한 데이터 저장 공간 확보 방법
US9003354B2 (en) 2006-07-20 2015-04-07 Texas Instruments Incorporated Optimizing memory usage and system performance in a file system requiring entire blocks to be erased for rewriting data
KR20080085574A (ko) 2007-03-20 2008-09-24 삼성전자주식회사 비휘발성 메모리의 가비지 컬렉션을 위한 장치 및 방법
US8843691B2 (en) 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US20100057976A1 (en) 2008-08-26 2010-03-04 Menahem Lasser Multiple performance mode memory system
WO2010144587A2 (en) 2009-06-12 2010-12-16 Violin Memory, Inc. Memory system having persistent garbage collection
US8402242B2 (en) 2009-07-29 2013-03-19 International Business Machines Corporation Write-erase endurance lifetime of memory storage devices
US8688894B2 (en) 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
US8463826B2 (en) 2009-09-03 2013-06-11 Apple Inc. Incremental garbage collection for non-volatile memories
US8838877B2 (en) 2009-09-16 2014-09-16 Apple Inc. File system derived metadata for management of non-volatile memory
US8458417B2 (en) 2010-03-10 2013-06-04 Seagate Technology Llc Garbage collection in a storage device

Also Published As

Publication number Publication date
US8935304B2 (en) 2015-01-13
GB201217800D0 (en) 2012-11-14
GB2495821A (en) 2013-04-24
US8539007B2 (en) 2013-09-17
GB2495821B (en) 2013-09-04
US20130185338A1 (en) 2013-07-18
US20130097210A1 (en) 2013-04-18

Similar Documents

Publication Publication Date Title
DE102012218264A1 (de) Effiziente Datenbereinigung in einer komprimierten Journaldatei
DE112013002355B4 (de) Steigern von Datenzwischenspeicherungsleistung
DE112012004798B4 (de) Anpassung der Auslagerungsgeschwindigkeit auf Grundlage von Anforderungen an Lese- und Schreib-Antwortzeiten
DE112018002951B4 (de) Verwenden eines spurformatcodes in einem cache-steuerblock für eine spur in einem cache, um lese- und schreibanforderungen in bezug auf die spur im cache zu verarbeiten
DE102019132371A1 (de) Zuordnungsverwaltung logisch zu physisch unter Verwendung von nichtflüchtigem Speicher
DE602005004120T2 (de) System und verfahren zur übernahme von partnerbetriebsmitteln in verbindung mit coredump
DE102013205069B4 (de) Erhöhte effizienz bei inline-deduplizierungen
DE112014000254B4 (de) Mehrstufiges Zwischenspeichern und Migrieren in unterschiedlichen Granularitäten
DE112010003133B4 (de) Datenmigration zwischen datenspeichereinheiten
DE112011100564B4 (de) Einfügen eines Flash-Zwischenspeichers in große Speichersysteme
DE112013001905B4 (de) Erhöhte Inline-Deduplizierungseffizienz
DE112012004571B4 (de) Unterstützen von unvollständigen Datensegmenten in Flash-Cache-Speichern
DE112012002615T5 (de) Vorabladen von Datenspuren und Paritätsdaten zur Verwendung zum Auslagern aktualisierter Spuren
DE112012004209T5 (de) Dynamisch eingestellter Schwellenwert zum Belegen eines sekundären Cache-Speichers
DE102012219098A1 (de) Verwaltung von Teildatensegmenten in Systemen mit doppeltem Cachespeicher
DE102013209528A1 (de) Benutzergesteuerte Replikation in einem System für synchronisierte Objektreplikationen
DE112013001284T5 (de) Adaptive Cachespeicher-Umstufungen in einem Caching-System mit zwei Stufen
DE112013000650B4 (de) Datenzwischenspeicherungsbereich
DE102009034651A1 (de) Prozess und Verfahren zur Abbildung von logischen Adressen auf physische Adressen in Festkörperplatten
DE10238566A1 (de) Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf
DE112020002792B4 (de) Verschleissorientierte blockmodusumwandlung in nichtflüchtigen speichern
DE102012215918A1 (de) Spiegeln virtueller Maschinen von einem primären auf einen sekundären Host
DE112012002452T5 (de) Anpassungsfähiges Zwischenspeichern von Datensätzen für Halbleiterplatten
DE112012004796B4 (de) Periodische Auslagerungen von Innen- und Aussendurchmessern von Platten zum Verbessern von Lesereaktionszeiten
DE112012001162T5 (de) Defragmentierung von Datenspeicherpools

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final