DE112013002355B4 - Steigern von Datenzwischenspeicherungsleistung - Google Patents

Steigern von Datenzwischenspeicherungsleistung Download PDF

Info

Publication number
DE112013002355B4
DE112013002355B4 DE112013002355.5T DE112013002355T DE112013002355B4 DE 112013002355 B4 DE112013002355 B4 DE 112013002355B4 DE 112013002355 T DE112013002355 T DE 112013002355T DE 112013002355 B4 DE112013002355 B4 DE 112013002355B4
Authority
DE
Germany
Prior art keywords
data segments
reference count
count information
cache
data
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
DE112013002355.5T
Other languages
English (en)
Other versions
DE112013002355T5 (de
Inventor
c/o IBM Corp. Hyde Joseph Smith
c/o IBM Corp. Roy Sunhojit
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 DE112013002355T5 publication Critical patent/DE112013002355T5/de
Application granted granted Critical
Publication of DE112013002355B4 publication Critical patent/DE112013002355B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Verfahren zum Verbessern einer Zwischenspeicherungsleistung in einer Datenverarbeitungsumgebung durch einen Prozessor, das aufweist:für einen Zwischenspeicher, in dem eine Vielzahl von Datensegmenten vorübergehend gespeichert ist, auf die häufig zugegriffen wird, werden in Verbindung mit einem Verwenden von Least-Recently-Used- (LRU) Informationen,Untersuchen von Referenzzählerinformationen während eines Deduplizierungsvorgangs, wobei die Referenzzählerinformation eine Anzahl von virtuellen Zuordnungselementen ist, die auf einen bestimmten Datenblock zeigen,Verwenden der Referenzzählerinformationen über die Vielzahl von Datensegmenten, um sowohl zu dem Zwischenspeicher die Vielzahl von Datensegmenten hinzuzufügen als auch eine Zeitlänge zum Beibehalten der Vielzahl von Datensegmenten in dem Zwischenspeicher gemäß einer vordefinierten Gewichtung zu bestimmen, die der Referenzzählerinformation entspricht und jedem der Vielzahl von Datensegmenten zugeordnet ist, wobei ungeachtet der LRU-Informationen diejenigen der Vielzahl von Datensegmenten mit höheren Referenzzählern länger beibehalten werden als diejenigen mit niedrigeren Referenzzählern,Bestimmen, ob die Referenzzählerinformation der Vielzahl von Datensegmenten, die zu dem Zwischenspeicher hinzugefügt wurden, aktualisiert worden ist oder ob ein vorbestimmtes Zeitintervall abgelaufen ist, wobei wenn die Referenzzählerinformation nicht aktualisiert worden ist oder das vorbestimmte Zeitintervall nicht abgelaufen ist,ein erneutes Bestimmen, ob die Referenzzählerinformation der Vielzahl von Datensegmenten, die zu dem Zwischenspeicher hinzugefügt wurden, aktualisiert worden ist oder ob das vorbestimmte Zeitintervall abgelaufen ist, nach Ablauf des vorbestimmten Zeitintervalls erneutes Bestimmen der Zeitlänge, wobei die vordefinierte Gewichtung gemäß der Durchlaufzeit des vordefinierten Zeitintervalls abnimmt, undHinzufügen zu oder Entfernen von den Zwischenspeicherteilen der Vielzahl von Datensegmenten in dem Zwischenspeicher auf Grundlage der Referenzzählerinformationen.

Description

  • HINTERGRUND DER ERFINDUNG
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft im Allgemeinen Computer und insbesondere ein Verfahren, System und Computerprogrammprodukt zum Steigern einer Datenzwischenspeicherungsleistung in Datenverarbeitungs-Speicherumgebungen.
  • Beschreibung des einschlägigen Stands der Technik
  • Computer und Computersysteme sind in einer Vielzahl von Situationen in der Gesellschaft von heute zu finden. Datenverarbeitungsumgebungen und Netzwerke sind zu Hause, am Arbeitsplatz, in der Schule, in Behörden und in anderen Situationen zu finden. Datenverarbeitungsumgebungen speichern Daten zunehmend in einer oder mehreren Speicherumgebungen, die in vielen Fällen von der lokalen Schnittstelle entfernt angeordnet sind, die einem Benutzer angeboten werden.
  • Diese Datenverarbeitungs-Speicherumgebungen können viele Speichereinheiten verwenden, wie beispielsweise Plattenlaufwerke, die oft zusammenarbeiten, um eine große Datenmenge zu speichern, abzurufen und zu aktualisieren, die dann für einen Host-Computer bereitstellt werden können, der die Daten anfordert oder sendet. In einigen Fällen wird eine Anzahl von Datenspeicher-Subsystemen insgesamt wie ein einzelnes Datenspeichersystem verwaltet. Diese Subsysteme können durch Host„sysplex“- (Systemkomplex) Konfigurationen verwaltet werden, die mehrere Verarbeitungseinheiten oder Cluster (Gruppen) von Verarbeitungseinheiten kombinieren. Auf diese Weise können Mehrstufen-/Mehrsystem-Datenverarbeitungsumgebungen, die oft eine Vielfalt von Typen von Speichereinheiten enthalten, zum Organisieren und Verarbeiten von großen Datenmengen verwendet werden.
  • Aus der US 2009/0204765 A1 ist es bekannt, zur Festlegung der Nutzung des Zwischenspeichers nicht nur eine Least Recently Used - (LRU-) Methodik zu nutzen, sondern auch die Häufigkeit des Vorkommens von Datenblöcken zu berücksichtigen.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Viele Mehrstufen-/Mehrsystem-Datenverarbeitungsumgebungen setzen Datendeduplizierungstechniken zum Verbessern einer Speicherleistung durch Verringern der Menge von dupliziertem Speicher über Speichereinheiten übergreifend um. Datendeduplizierungssysteme werden zunehmend angewendet, da sie ein Verringern der Gesamtmenge von physischem Speicher unterstützen, die zum Speichern von Daten erforderlich ist. Diese Verringerung wird erreicht, indem sichergestellt wird, dass duplizierte Daten nicht mehrfach gespeichert werden. Wenn zum Beispiel ein Datenblock mit einem bereits gespeicherten Datenblock übereinstimmt, wird stattdessen ein Zeiger auf die ursprünglichen Daten in der virtuellen Speicherzuordnung gespeichert anstatt einen neuen physischen Speicherplatz für den neuen Datenblock zuzuordnen. Somit ist jeder Datenblock in einem Datendeduplizierungssystem einem „Referenzzähler“ zugehörig, der angibt, wie viele virtuelle Zuordnungselemente auf einen bestimmten Datenblock zeigen.
  • Inline-Datendeduplizierungssysteme müssen die vorgenannten virtuellen Speicherzuordnungsinformationen (einschließlich Referenzzählerinformationen) für einen schnellen Zugriff auf die Daten im Arbeitsspeicher verwalten. Andernfalls tritt ein weiterer Zuordnungsfehler-Nachteil auf, wenn Zuordnungsinformationen aus dem physischen Speicher abgerufen werden, wodurch die Speicherlatenz beträchtlich erhöht wird. Derartige Speicherzuordnungsinformationen stehen daher problemlos für eine Verwendung durch andere Speicherkomponenten innerhalb des Speicher-Controllers zur Verfügung.
  • Herkömmliche Datenzwischenspeicherungs-Algorithmen (Mechanismen, die vorgeben, wie lange häufig verwendete Daten im Zwischenspeicher beibehalten werden als im Gegensatz dazu auf eine Platte ausgelagert zu werden) können so genannte „Least Recently Used“- (LRU) Methodiken umsetzen, wobei Dateien, die in letzter Zeit am wenigsten verwendet wurden, als erste verworfen (ausgelagert) werden. Diese Methodiken erfordern ein Beobachten dessen, was wann verwendet worden ist, was ressourcenintensiv sein kann, wenn sichergestellt werden soll, dass der Algorithmus immer das in letzter Zeit am wenigstens verwendete Element verwirft, und trotzdem werden möglicherweise nicht immer die besten Dateien angegeben, die im Zwischenspeicher beibehalten werden sollen und welche Dateien unter einer bestimmten Gruppe von Umständen nicht beizubehalten sind. Es besteht ein Bedarf an einer wirksameren Art einer Zwischenspeicherverwaltung von häufig verwendeten Datensegmenten.
  • Angesichts des vorgenannten Bedarfs an einem besseren Verwalten der Zwischenspeicherung derartiger Daten werden verschiedene Ausführungsformen zum Verbessern der Zwischenspeicherungsleistung in einer Datenverarbeitungsumgebung durch einen Prozessor bereitgestellt. Nur als Beispiel werden in einer Ausführungsform für einen Zwischenspeicher, in dem eine Vielzahl von Datensegmenten vorübergehend gespeichert wird, auf die häufig zugegriffen wird, Referenzzählerinformationen über die Vielzahl von Datensegmenten in Verbindung mit den Least-Recently-Used- (LRU) Informationen verwendet, um eine Zeitlänge zum Beibehalten der Vielzahl von Datensegmenten in dem Zwischenspeicher gemäß einer vordefinierten Gewichtung zu bestimmen, wobei ungeachtet der LRU-Informationen diejenigen der Vielzahl von Datensegmenten mit höheren Referenzzählern länger beibehalten werden als diejenigen mit niedrigeren Referenzzählern. Die Erfindung umfasst insbesondere:
    • Untersuchen von Referenzzählerinformationen während eines Deduplizierungsvorgangs, wobei die Referenzzählerinformation eine Anzahl von virtuellen Zuordnungselementen ist, die auf einen bestimmten Datenblock zeigen,
    • Verwenden der Referenzzählerinformationen über die Vielzahl von Datensegmenten, um sowohl zu dem Zwischenspeicher die Vielzahl von Datensegmenten hinzuzufügen als auch eine Zeitlänge zum Beibehalten der Vielzahl von Datensegmenten in dem Zwischenspeicher gemäß einer vordefinierten Gewichtung zu bestimmen, die der Referenzzählerinformation entspricht und jedem der Vielzahl von Datensegmenten zugeordnet ist, wobei ungeachtet der LRU-Informationen diejenigen der Vielzahl von Datensegmenten mit höheren Referenzzählern länger beibehalten werden als diejenigen mit niedrigeren Referenzzählern,
    • Bestimmen, ob die Referenzzählerinformation der Vielzahl von Datensegmenten, die zu dem Zwischenspeicher hinzugefügt wurden, aktualisiert worden ist oder ob ein vorbestimmtes Zeitintervall abgelaufen ist, wobei wenn die Referenzzählerinformation nicht aktualisiert worden ist oder das vorbestimmte Zeitintervall nicht abgelaufen ist,
    • ein erneutes Bestimmen, ob die Referenzzählerinformation der Vielzahl von Datensegmenten, die zu dem Zwischenspeicher hinzugefügt wurden, aktualisiert worden ist oder ob das vorbestimmte Zeitintervall abgelaufen ist,
    • nach Ablauf des vorbestimmten Zeitintervalls erneutes Bestimmen der Zeitlänge, wobei die vordefinierte Gewichtung gemäß der Durchlaufzeit des vordefinierten Zeitintervalls abnimmt, und
    • Hinzufügen zu oder Entfernen von den Zwischenspeicherteilen der Vielzahl von Datensegmenten in dem Zwischenspeicher auf Grundlage der Referenzzählerinformationen.
  • Zusätzlich zu der vorgenannten beispielhaften Ausführungsform werden verschiedene System- und Computerprogrammausführungsformen bereitgestellt und sorgen für zugehörige Vorteile.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Damit die Vorteile der Erfindung leicht zu verstehen sind, wird unter Bezugnahme auf spezifische Ausführungsformen, die in den Zeichnungen im Anhang veranschaulicht werden, eine speziellere Beschreibung der oben kurz beschriebenen Erfindung vorgelegt. Das Verständnis vorausgesetzt, dass diese Zeichnungen nur typische Ausführungsformen der Erfindung veranschaulichen und daher nicht als deren Schutzumfang einschränkend zu betrachten sind, wird die Erfindung mit zusätzlicher Spezifität und Ausführlichkeit unter Verwendung der begleitenden Zeichnungen beschrieben und erklärt, wobei:
    • 1 ein Blockschaubild ist, das eine beispielhafte Datenverarbeitungsumgebung veranschaulicht, die Aspekte der vorliegenden Erfindung umsetzen kann;
    • 2 ein Blockschaubild ist, das eine Hardware-Struktur eines Datenspeichersystems veranschaulicht, in dem wiederum Aspekte der vorliegenden Erfindung umgesetzt werden können;
    • 3 ein Blockschaubild einer Zwischenspeichersystem-Ausführungsform der vorliegenden Erfindung ist, die eine Beziehung zwischen Datendeduplizierungssystem und Zwischenspeicher-Verwaltungsmodul zum Verbessern der Zwischenspeicherungsleistung veranschaulicht;
    • 4 ein Ablaufplan einer beispielhaften Ausführungsform zum Steigern der Datenzwischenspeicherungsleistung ist, in der Aspekte der vorliegenden Erfindung umgesetzt werden können;
    • 5 ein Ablaufplan einer weiteren beispielhaften Ausführungsform zum Steigern der Datenzwischenspeicherungsleistung ist, in der wiederum Aspekte der vorliegenden Erfindung umgesetzt werden können; und
    • 6 ein Ablaufplan einer beispielhaften Ausführungsform für eine Zwischenspeicherverwaltung von Datensegmenten ist, in der wiederum Aspekte der vorliegenden Erfindung umgesetzt werden können.
  • AUSFÜHRLICHE BESCHREIBUNG DER ZEICHNUNGEN
  • Wie vorher erwähnt, setzt eine Vielfalt von Datenzwischenspeicherungs-Algorithmen verschiedene Maßnahmen von LRU-Methodiken um, wobei Dateien, die als in letzter Zeit am wenigsten verwendet identifiziert werden, gekennzeichnet werden, um aus dem Zwischenspeicher auf einen festen Speicher (z.B. Platte oder Band) ausgelagert zu werden. In Datenspeicherumgebungen mit Datendeduplizierungsfunktionalität (wie beispielsweise eine integrierte Datendeduplizierungs-Engine) scheitert jede Methodik auf LRU-Grundlage bei der Berücksichtigung von problemlos verfügbaren Referenzzählerinformationen, die unter anderem die Anzahl von virtuellen Instanzen eines Datenblocks angeben, die auf einen vorgegebenen physisch gespeicherten Datenblock zeigen.
  • Der wirksamste Datenzwischenspeicherungs-Algorithmus wäre, immer die Informationen zu verwerfen, die für die längste Zeit in der Zukunft nicht benötigt werden. Herkömmliche Datenzwischenspeicherungs-Algorithmen versuchen diesen utopischen Zustand zu erreichen, schaffen es jedoch nie. Daher besteht immer ein vorhandener Bedarf zum Verbessern der Mechanismen, durch die diese Informationen im Zwischenspeicher beibehalten oder verworfen werden. Um auf den gegenwärtigen Stand der Technik einzugehen und diesen zu verbessern, beschreiben die veranschaulichten Ausführungsformen Mechanismen zum Verwenden der Referenzzählerinformationen, die vorher als durch das Datendeduplizierungssystem bereitgestellt beschrieben wurden, um (zum Beispiel bei Verwendung in Verbindung mit LRU-Informationen) Datenzwischenspeicherungs-Algorithmen zu verbessern, indem derartigen Algorithmen zumindest teilweise ein besseres Bild über den Zustand der Daten im Zwischenspeicher vermittelt wird, und um dadurch die Gesamtleistung der Speicherumgebung zu verbessern.
  • Speichersysteme, die eine Datendeduplizierungsfunktionalität enthalten, setzen für jedes Datensegment einen Referenzzähler um, der zum Beispiel angibt, wie viele Segmente von virtuellem Speicher einem einzelnen Segment von physischem Speicher zugeordnet sind. Referenzzählerinformationen stehen im Allgemeinen problemlos zur Verfügung, da eine derartige Referenzzählerfunktionalität in den meisten, wenn nicht sogar allen Inline-Datendeduplizierungssystemen zu finden ist. Durch Verbessern der Zwischenspeicherungsleistung von Datenblöcken in Speicherkonfigurationen, die untergeordnete Datendeduplizierungssysteme enthalten, kann die durchschnittliche Latenz von Eingabe/Ausgabe- (E/A) Vorgängen in der Speicherumgebung insgesamt beträchtlich verringert werden.
  • In der folgenden Beschreibung wird auf die begleitenden Zeichnungen Bezug genommen, die einen Bestandteil davon bilden und die mehrere Ausführungsformen der vorliegenden Erfindung veranschaulichen. Es versteht sich, dass weitere Ausführungsformen verwendet werden können und strukturelle und vorgangsbezogene Änderungen vorgenommen werden können, ohne von dem Schutzumfang der vorliegenden Erfindung abzuweichen.
  • Unter Bezugnahme auf 1 wird ein Beispiel-Computersystem 10 dargestellt, in dem Aspekte der vorliegenden Erfindung verwirklicht werden können. Das Computersystem 10 enthält eine zentrale Verarbeitungseinheit (CPU) 12, die mit einer bzw. mehreren Massenspeichereinheiten 14 und einer Arbeitsspeichereinheit 16 verbunden ist. Die Massenspeichereinheiten können Festplattenlaufwerk- (HDD) Einheiten enthalten, die in einer redundanten Anordnung von unabhängigen Platten (RAID) konfiguriert sein können. Die des Weiteren beschriebenen Zwischenspeicherverwaltungsvorgänge können auf der Einheit bzw. den Einheiten 14 ausgeführt werden, die sich im System 10 oder anderswo befinden. Die Arbeitsspeichereinheit 16 kann einen derartigen Arbeitsspeicher wie einen elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM) oder eine Menge zugehöriger Einheiten enthalten. Die Arbeitsspeichereinheit 16 und die Massenspeichereinheit 14 sind mit der CPU 12 über ein Signalträgermedium verbunden. Außerdem ist die CPU 12 über einen Datenübertragungsanschluss 18 mit einem Datenübertragungsnetzwerk 20 verbunden, das eine damit verbundene Vielzahl von weiteren Computersystemen 22 und 24 aufweist. Das Computersystem 10 kann eine oder mehrere Prozessoreinheiten (z.B. die CPU 12) und weitere Arbeitsspeichereinheiten 16 für jede einzelne Komponente des Computersystems 10 enthalten, um jeden hierin beschriebenen Vorgang auszuführen, um die Zwecke der vorliegenden Erfindung zu erreichen.
  • 2 ist ein beispielhaftes Blockschaubild 200, das eine Hardware-Struktur eines Datenspeichersystems in einem Computersystem gemäß der vorliegenden Erfindung zeigt. Gezeigt werden Host-Computer 210, 220, 225, von denen jeder als eine zentrale Verarbeitungseinheit zum Ausführen einer Datenverarbeitung als Teil eines Datenspeichersystems 200 arbeitet. Die Hosts (physische oder virtuelle Einheiten) 210, 220 und 225 können eine oder mehrere neue physische Einheiten oder logische Einheiten zum Erreichen der Zwecke der vorliegenden Erfindung in dem Datenspeichersystem 200 sein. Nur als Beispiel kann in einer Ausführungsform das Datenspeichersystem 200 als IBM® System Storage™ DS8000™ umgesetzt werden. Eine Netzwerkverbindung 260 kann eine Fibre-Channel-Struktur, eine Fibre Channel-Punkt-zu-Punkt-Verbindung, eine Fibre-Channel-über-Ethernet-Struktur oder Punkt-zu-Punkt-Verbindung, eine FICON- oder ESCON-E/A-Schnittstelle, irgendein anderer E/A-Schnittstellentyp, ein drahtloses Netzwerk, ein drahtgebundenes Netzwerk, ein LAN, ein WAN, heterogen, homogen, öffentlich (z.B. das Internet), privat oder eine beliebige Kombination davon sein. Die Hosts 210, 220 und 225 können lokal oder auf eine oder mehrere Positionen verteilt sein und können mit einem beliebigen Typ von Struktur (oder Strukturkanal) (nicht gezeigt in 2) oder Netzwerkadapter 260 zu einem Speicher-Controller 240 ausgestattet sein, wie beispielsweise Fibre-Channel-, FICON-, ESCON-, Ethernet-, Lichtwellenleiter-, drahtlose oder koaxiale Adapter. Das Datenspeichersystem 200 ist dementsprechend mit einer geeigneten Struktur (nicht gezeigt in 2) oder dem Netzwerkadapter 260 zum Übertragen von Daten ausgestattet. Das Datenspeichersystem 200 ist in 2 dargestellt und weist den Speicher-Controller 240 und einen Speicher 230 auf.
  • Um ein besseres Verständnis der hierin beschriebenen Verfahren zu unterstützen, wird der Speicher-Controller 240 in 2 als eine einzelne Verarbeitungseinheit gezeigt, die einen Mikroprozessor 242, einen Systemarbeitsspeicher 243 und einen nicht-flüchtigen Speicher („NVS“) 216 enthält, die im Folgenden ausführlicher beschrieben werden. Es wird angemerkt, dass in einigen Ausführungsformen der Speicher-Controller 240 mehrere Verarbeitungseinheiten aufweist, die jeweils ihren eigenen Prozessorkomplex und Systemarbeitsspeicher haben und durch ein dediziertes Netzwerk in dem Datenspeichersystem 200 miteinander verbunden sind. Der Speicher 230 kann eine oder mehrere Speichereinheiten aufweisen, wie beispielsweise Speicheranordnungen, die durch ein Speichernetzwerk mit dem Speicher-Controller 240 verbunden sind.
  • In einigen Ausführungsformen können die im Speicher 230 enthaltenen Einheiten in einer Schleifenarchitektur verbunden sein. Der Speicher-Controller 240 verwaltet den Speicher 230 und erleichtert die Verarbeitung von Schreib- und Lese-Anforderungen, die für den Speicher 230 bestimmt sind. Der Systemarbeitsspeicher 243 des Speicher-Controllers 240 speichert Programmanweisungen und Daten, auf die der Prozessor 242 zugreifen kann, um Funktionen auszuführen, die dem Verwalten des Speichers 230 zugehörig sind. In einer Ausführungsform enthält der Systemarbeitsspeicher 243 eine Betriebssoftware 250, ist dieser zugehörig oder steht mit dieser in Datenübertragung, und ist teilweise für ein Ausführen der Funktionalität der vorliegenden Erfindung konfiguriert. Wie in 2 gezeigt, kann der Systemarbeitsspeicher 243 auch eine Datenübertragung enthalten oder mit einem Zwischenspeicher 245 für den Speicher 230 in Datenübertragung stehen, der hierin auch als „Cache-Speicher“ bezeichnet wird, um „Schreibdaten“ und „Lesedaten“ zu puffern, die jeweils auf Schreib-/Lese-Anforderungen und deren zugehörige Daten verweisen. In einer Ausführungsform wird der Zwischenspeicher 245 in einer außerhalb des Systemarbeitsspeichers 243 befindlichen Einheit zugeordnet, wobei auf ihn jedoch weiterhin durch den Mikroprozessor 242 zugegriffen werden kann und er zusätzlich zu einem Ausführen der hierin beschriebenen Vorgänge zum Bereitstellen eines zusätzlichen Schutzes vor Datenverlust dienen kann.
  • In einigen Ausführungsformen wird der Zwischenspeicher 245 mit einem flüchtigen Arbeitsspeicher und einem nicht-flüchtigen Arbeitsspeicher umgesetzt und für eine verbesserte Leistung des Datenspeichersystems 200 mit dem Mikroprozessor 242 über einen lokalen Bus (nicht gezeigt in 2) verbunden. Auf den in dem Datenspeicher-Controller enthaltenen NVS 216 kann durch den Mikroprozessor 242 zugegriffen werden, und er dient zum Bereitstellen von zusätzlicher Unterstützung von Vorgängen und der Ausführung der vorliegenden Erfindung, wie in weiteren Figuren beschrieben. Der NVS 216 kann auch als „permanenter“ Zwischenspeicher oder „Cache-Arbeitsspeicher“ bezeichnet werden und wird mit einem nicht flüchtigen Arbeitsspeicher umgesetzt, der eine externe Stromquelle zum Beibehalten der darin gespeicherten Daten verwenden kann. Der NVS kann in und zusammen mit dem Zwischenspeicher 245 für alle Zwecke gespeichert werden, die geeignet sind, um die Ziele der vorliegenden Erfindung zu erreichen. In einigen Ausführungsformen versorgt eine Notstromversorgungsquelle (nicht gezeigt in 2) wie beispielsweise eine Batterie den NVS 216 mit ausreichender Energie, um die darin gespeicherten Daten im Fall eines Spannungsverlusts des Datenspeichersystems 200 beizubehalten. In bestimmten Ausführungsformen ist die Kapazität des NVS 216 kleiner oder gleich der Gesamtkapazität des Zwischenspeichers 245.
  • Der Speicher 230 kann physisch aus einer oder mehreren Speichereinheiten wie beispielsweise Speicheranordnungen bestehen. Eine Speicheranordnung ist eine logische Gruppierung von einzelnen Speichereinheiten wie beispielsweise eine Festplatte. In bestimmten Ausführungsformen besteht der Speicher 230 aus einer JBOD- (Just a Bunch of Disks) Anordnung oder einer RAID- (Redundant Array of Independent Disks) Anordnung. Eine Sammlung von physischen Speicheranordnungen kann ferner kombiniert werden, um eine Speicherbank zu bilden, die den physischen Speicher von der logischen Konfiguration löst. Der Speicherplatz in einer Speicherbank kann in logischen Datenträgern zugeordnet werden, die den Speicherort definieren, der in einer Schreib-/Lese-Anforderung angegeben wird.
  • Nur als Beispiel kann in einer Ausführungsform das in 2 gezeigte Speichersystem einen logischen Datenträger oder einfach „Datenträger“ enthalten, der verschiedene Arten von Zuordnungen aufweisen kann. Speicher 230a, 230b und 230n werden im Datenspeichersystem 200 als Speicherbänke gezeigt, und auf sie wird hierin als Speicherbank 230a, 230b und 230n Bezug genommen. Speicherbänke können für das Datenspeichersystem 200 lokal sein oder können sich an einem physisch entfernten Ort befinden. Mit anderen Worten, ein lokaler Speicher-Controller kann mit einem entfernt angeordneten Speicher-Controller verbunden sein und den Speicher an dem entfernt angeordneten Ort verwalten. Die Speicherbank 230a wird als mit zwei vollständigen Datenträgern 234 und 236 sowie einem teilweisen Datenträger 232a konfiguriert gezeigt. Die Speicherbank 230b wird mit einem weiteren teilweisen Datenträger 232b gezeigt. Somit wird der Datenträger 232 über die Speicherbänke 230a und 230b übergreifend zugeordnet. Die Speicherbank 230n wird als vollständig dem Datenträger 238 zugeordnet gezeigt - d.h. die Speicherbank 230n nimmt auf den vollständigen Speicher für einen Datenträger 238 Bezug. Aus den vorgenannten Beispielen wird klar, dass eine Speicherbank so konfiguriert werden kann, dass sie einen oder mehrere teilweise und/oder vollständige Datenträger enthält. Datenträger und Speicherbänke können ferner in sogenannte „Spuren“ unterteilt werden, die einen festen Speicherblock darstellen. Eine Spur ist daher einem vorgegebenen Datenträger zugehörig und kann einer vorgegebene Speicherbank zugeordnet werden.
  • Der Speicher-Controller 240 kann eine Datendeduplizierungs-Engine 255, ein Zwischenspeicherverwaltungsmodul 257 und eine Speicherzuordnung/Datenhäufigskeitsindexzuordnung (DFIM) 259 enthalten, wie des Weiteren beschrieben wird. Das Zwischenspeicherverwaltungsmodul 257 kann in Verbindung mit jeder und allen Komponenten des Speicher-Controllers 240, den Hosts 210, 220, 225 und den Speichereinheiten 230 arbeiten. Das Zwischenspeicherverwaltungsmodul 257 kann, wie dem Fachmann klar sein wird, strukturell ein vollständiges Modul sein oder kann anderen einzelnen Modulen zugehörig sein und/oder darin enthalten sein. Das Zwischenspeicherverwaltungsmodul 257 und/oder die Speicherzuordnung/DFIM 259 können sich auch in dem Zwischenspeicher 254 oder anderen Komponenten befinden. Der Zwischenspeicher 254 wird so gezeigt, dass er eine Anzahl von häufig verwendeten Datensegmenten 261 enthält, die für schnellen Zugriff in dem Zwischenspeicher beibehalten werden und deren Verwaltung unter anderen Komponenten durch das Zwischenspeicherverwaltungsmodul 257 ausgeführt wird.
  • Der Speicher-Controller 240 enthält einen Steuerschalter 241 zum Steuern des Fibre Channel Protocol zu den Host-Computern 210, 220, 225, einen Mikroprozessor 242 zum Steuern aller Speicher-Controller 240, einen nicht-flüchtigen Steuerungsarbeitsspeicher 243 zum Speichern eines Mikroprogramms (Betriebssoftware) 250 zum Steuern des Betriebs des Speicher-Controllers 240, wobei Daten zur Steuerung und jede Tabelle später beschrieben werden, einen Zwischenspeicher 245 zum vorübergehenden Speichern (Puffern) von Daten und Puffer 244 zum Unterstützen des Zwischenspeichers 245 beim Lesen und Schreiben von Daten, einen Steuerschalter 241 zum Steuern eines Protokolls zum Steuern einer Datenübertragung zu oder von den Speichereinheiten 230 und ein Verdichtungsvorgangsmodul 255 und ein Verdichtungsvorgangslistenmodul 257, in denen Informationen eingerichtet werden können. Mehrere Puffer 244 können mit der vorliegenden Erfindung umgesetzt werden, um die hierin beschriebenen Vorgänge zu unterstützen.
  • In einer Ausführungsform werden die Host-Computer oder eine oder mehrere physische oder virtuelle Einheiten 210, 220, 225 und der Speicher-Controller 240 über einen Netzwerkadapter (dieser könnte ein Fibre Channel sein) 260 als Schnittstelle verbunden, d.h. über mindestens einen als „Struktur“ bezeichneten Schalter. In einer Ausführungsform wird der Betrieb des in 2 gezeigten Systems beschrieben. Der Mikroprozessor 242 kann den Arbeitsspeicher 243 so steuern, dass er Befehlsinformationen von der Host-Einheit (physisch oder virtuell) 210 und Informationen zum Identifizieren der Host-Einheit (physisch oder virtuell) 210 speichert. Der Steuerschalter 241, die Puffer 244, der Zwischenspeicher 245, die Betriebssoftware 250, der Mikroprozessor 242, der Arbeitsspeicher 243, der NVS 216, das Verdichtungsvorgangsmodul 255 und das Verdichtungsvorgangslistenmodul 257 sind miteinander in Datenübertragung verbunden und können getrennte Komponenten oder eine einzelne Komponente sein. Ferner können einige, wenn nicht alle der Komponenten wie beispielsweise die Betriebssoftware 250 in dem Arbeitsspeicher 243 enthalten sein. Alle Komponenten in den gezeigten Einheiten können miteinander verbunden sein und zu Zwecken, die für die vorliegende Erfindung geeignet sind, miteinander in Datenübertagung stehen.
  • Der Speicher-Controller 240 wird so gezeigt, dass er eine Datendeduplizierungs-Engine 255, eine Speicherzuordnung/Datenhäufigskeitsindexzuordnung (DFIM) 259 („Speicherzuordnung“ 259) und ein Zwischenspeicherverwaltungsmodul 257 enthält. Die Datendeduplizierungs-Engine 255, das Zwischenspeicherverwaltungsmodul 257 und die DFIM 259 können in Verbindung mit jeder und allen Komponenten des Speicher-Controllers 240, den Hosts 210, 220, 225 und den Speichereinheiten 230 arbeiten, um die Funktionalität gemäß der vorliegenden Erfindung zu erzielen. Die Datendeduplizierungs-Engine 255, das Zwischenspeicherverwaltungsmodul 257 und die DFIM 259 können strukturell ein vollständiges Modul sein oder können anderen einzelnen Modulen zugehörig sein und/oder darin verkörpert sein. Das Zwischenspeicherverwaltungsmodul 257 und die DFIM 259 können auch in dem Zwischenspeicher 245 oder anderen Komponenten verkörpert sein.
  • Die Datendeduplizierungs-Engine 255 ist so konfiguriert, dass sie in Verbindung mit anderen Komponenten des Speicher-Controllers 240 wie dem Mikroprozessor 242 Datendeduplizierungsvorgänge an Schreibdaten ausführt, die dem Speicher 230 durch den Speicher-Controller 240 übergeben werden.
  • Wie vorher angegeben, enthält der Speicher-Controller 240 eine Datenhäufigkeitsindexzuordnung (DFIM) 259 oder kurz Speicherzuordnung 259. Der Zwischenspeicher 245 oder was als ganzheitlicher Begriff als Zwischenspeichersystem 245 bezeichnet werden kann, (welches das Zwischenspeicherverwaltungsmodul 257, die Speicherzuordnung 259 oder sogar die Datendeduplizierungs-Engine 255 enthalten kann), akzeptiert Schreibdaten von den Hosts 210, 220 und 225 oder ähnlichen Einheiten, die dann in den Zwischenspeicher 245 gestellt werden. Die Datendeduplizierungs-Engine 255 prüft dann die Schreibdaten auf Duplizierung in dem Zwischenspeicher 245 und schreibt einen Index und eine Häufigkeit dafür in die Speicherzuordnung 259.
  • Unter folgender Bezugnahme auf 3 wird ein Blockschaubild von verschiedenen Funktionsaspekten der vorliegenden Erfindung als beispielhafter Ablauf dargestellt. Insbesondere wird gezeigt, dass das Zwischenspeichersystem 245 akzeptiert, dass Schreibdaten 302 durch die Datendeduplizierungs-Engine 255 als ein Schreibvorgang 304 in den Zwischenspeicher 245 verarbeitet werden. Da die Schreibdaten 302 durch die Datendeduplizierungs-Engine 255 verarbeitet werden, und wie vorher beschrieben, die Schreibdaten 302 auf Deduplizierung mit vorhandenem Speicher geprüft werden, übergibt die Deduplizierungs-Engine 255 die Häufigkeits- und Index-Informationen 306 an die Speicher-/Datenhäufigkeitsindexzuordnung (DFIM) 259. Speichersysteme, in denen eine Datendeduplizierungsfunktionalität verkörpert ist wie in 3 gezeigt, enthalten einen Referenzzähler für jeden Datenblock, der unter anderen Angaben angibt, wie viele Blöcke von virtuellem Speicher einem einzelnen Block von physischem Speicher zugeordnet sind.
  • Wenn Daten aus dem Zwischenspeicher 245 ausgelesen werden 308, wird die Speicherzuordnung 259 aktualisiert. Die in der Speicherzuordnung 259 enthaltenen Informationen, die Referenzzählerinformationen 310 enthalten, werden für ein Zwischenspeicherverwaltungsmodul 260, das sich ebenfalls in bidirektionaler Datenübertragung 314 zwischen dem Zwischenspeicher 245 und dem Speicher-Controller 240 (2) und damit den Hosts 210, 220 und 225 befindet, als Lesedaten 312 bereitgestellt. Zumindest teilweise auf der Grundlage einer derartigen Aktivität kann das Zwischenspeicherverwaltungsmodul 260 bestimmen, welche Abschnitte der Schreibdaten 302 in das Zwischenspeichersystem 245 gestellt werden sollen und für welche angemessene Zeitlänge, wie des Weiteren gemäß Aspekten der vorliegenden Erfindung veranschaulicht wird.
  • Unter folgender Bezugnahme auf 4 wird ein Ablaufplan eines Verfahrens zum Verbessern der Zwischenspeicherungsleistung in einer Speicherumgebung in einer beispielhaften Ausführungsform gezeigt. Ein Verfahren 400 beginnt (Schritt 402) unter Verwendung der vorgenannten Referenzzählerinformationen in Verbindung mit LRU-Informationen (und in weiteren Ausführungsformen anderen statistischen Informationen, die für einen Fachmann offenkundig sind), um eine angemessene Zeitlänge zum Beibehalten von Datensegmenten 261 (2) im Zwischenspeicher 245 zu bestimmen (Schritt 404), auf die besonders häufig zugegriffen wird. Das Verfahren 400 endet (Schritt 406).
  • Die folgende 5 ist ein Ablaufplan eines Verfahrens zum Umsetzen einer derartigen Verwendung von Referenzzählerinformationen, wie vorher in 4 gezeigt, in einer weiteren beispielhaften Ausführungsform. Hier beginnt ein Verfahren 500 (Schritt 502), indem Referenzzählerdaten untersucht werden, die von der Deduplizierungs-Engine im Laufe eines Deduplizierungsvorgangs wie vorher beschrieben erhalten wurden (Schritt 504). In einer Ausführungsform können die Referenzzählerinformationen für einen bestimmten Datenblock in ungefährer Synchronisation mit der Leistung eines Deduplizierungsvorgangs für diesen gewählten Datenblock erhalten/untersucht werden. Auf der Grundlage der Referenzzählerinformationen (und/oder durch Umsetzung einer bestimmten Speicherrichtlinie) wird eine Beibehaltungsdauer für ein bestimmtes Segment oder für eine Anzahl von Segmenten in dem Zwischenspeicher erstellt (Schritt 506). Wiederum kann hier in einer Ausführungsform das Erhalten der Referenzzählerinformationen, ein Aktualisieren von Referenzzählerinformationen, eine Untersuchung von Referenzzählerinformationen und/oder eine Analyse von Referenzzählerinformationen zum Bestimmen einer bestimmten Beibehaltungsdauer in einer ungefähren Synchronisation mit der Leistung des vorgenannten Deduplizierungsvorgangs auftreten.
  • Unter Fortsetzung von 5 fragt das Verfahren 500 dann ab, ob die Referenzzählerinformationen für das referenzierte Datensegment aktualisiert worden sind (z.B. gemäß einem Deduplizierungsvorgang schrittweise erhöht worden sind) oder ob zum Beispiel ein vordefiniertes Zeitintervall abgelaufen ist (Schritt 508). Falls dies der Fall ist, wird die Beibehaltungsdauer, die vorher in Schritt 506 erstellt worden ist, erneut aufgerufen, um nochmals eine neue ungefähre Beibehaltungsdauer in dem Zwischenspeicher zu bestimmen (Schritt 510). In einer Ausführungsform kann dies ausgeführt werden, indem eine vordefinierte Gewichtung anfangs einem Datensegment zugewiesen wird, das mit den Referenzzählerinformationen in Wechselbeziehung steht, wobei sie sich nach dem Ablauf des vordefinierten Zeitraums verringert, wenn die Referenzzählerinformationen nicht schrittweise erhöht werden. Der Zweck einer Zuweisung einer Gewichtung ermöglicht unter anderem, dass diejenigen Datensegmente mit hohen Referenzzählern schließlich aus dem Zwischenspeicher verworfen werden, selbst wenn auf die Datensegmente über einen langen Zeitraum nicht zugegriffen wurde.
  • Wenn beim Zurückkehren zu Schritt 508 die Referenzzählerinformationen nicht aktualisiert worden sind oder das vordefinierte Zeitintervall nicht abgelaufen ist, kehrt das Verfahren 500 zum Schritt 508 mit dem Zeitübergang zurück, um erneut abzufragen, ob eine oder beide dieser Bedingungen erfüllt worden sind.
  • Wie einem Fachmann klar sein wird, kann eine breite Vielfalt von Speicherrichtlinien (die zum Beispiel mit der Unterstützung durch einen Administrator/Benutzer erstellt werden können) daraufhin zur Anwendung gebracht werden, ob ein bestimmtes Segment oder eine Gruppe von Daten auf der Grundlage der aktuellen Referenzzählerinformationen für diesen Eintrag oder die Gruppe von Einträgen für eine bestimmte Dauer beibehalten werden sollen. Da die Referenzzählerinformationen für ein bestimmtes Segment von Daten die Wahrscheinlichkeit eines Zugriffs auf einen bestimmten Eintrag angeben, können dieselben Informationen intelligent von derartigen Richtlinien oder anderweitig in Zwischenspeicherzuordnungs-Mechanismen verwendet werden (wie beispielsweise ein Zwischenspeicherzuordnungs-Algorithmus, der durch das vorher beschriebene Zwischenspeicherverwaltungsmodul umgesetzt werden kann), um diejenigen in der Speicherzuordnung gespeicherten Kandidateneinträge zu bestimmen, die aus dem Zwischenspeicher ausgelagert werden sollten.
  • In Anbetracht des Vorgenannten ist das folgende Beispiel zu betrachten. Zehn (10) Zuordnungstabelleneinträge (Datensegmente) werden als Kandidaten für eine Auslagerung erstellt. Von diesen zehn Zuordnungstabelleneinträgen werden diejenigen, die höhere Referenzzahlen enthalten (in einer Ausführungsform für alle Datensegmente zusammen), später ausgelagert als diejenigen, die einen niedrigeren Referenzzähler haben. Auf diese Weise werden Speicherzuordnungsabschnitte, die entsprechende höhere Referenzzähler haben, länger beibehalten in der Erwartung, dass sie wiederverwendet werden, und wenn dieser Fall eintritt, wird der bestimmte Eintrag für einen schnellen Zugriff im Zwischenspeicher gefunden.
  • Die folgende 6 veranschaulicht einen Ablaufplan eines beispielhaften Verfahrens für eine Verwaltung der Beibehaltung von Daten im Zwischenspeicher unter Verwendung von Referenzzählerwerten, in dem Aspekte der vorliegenden Erfindung umgesetzt werden können. Ein Verfahren 600 beginnt (Schritt 602) mit einer Abfrage, ob der Zwischenspeicher voll ist, und ob trotz dieser Tatsache neue Datensegmente von einer Platte abgerufen werden sollen (wodurch erforderlich wird, dass andere Zuordnungseinträge ausgelagert werden) (Schritt 604). Wenn dies der Fall ist, werden die Datensegmente insgesamt untersucht, um zu bestimmen, welche dieser Segmente aus dem Zwischenspeicher ausgelagert werden sollen (Schritt 606). Als Teil dieses Untersuchungsprozesses fragt das Verfahren 600 danach ab, ob ein bestimmter untersuchter Eintrag einen Referenzzählerwert hat, der hoch ist (in einer Ausführungsform zum Beispiel höher als ein bestimmter, durch eine Richtlinie eingerichteter Schwellenwert) und/oder eine entsprechende schwerwiegende zugewiesene Gewichtung hat und/oder weiterhin hat (Schritt 608). Wenn dies der Fall ist, wird der Eintrag in dem Zwischenspeicher beibehalten (Schritt 610). Wenn bestimmt wird, dass der Eintrag keinen hohen Wert und/oder keine Gewichtung über einem vordefinierten Schwellenwert hat, wird das Datensegment gekennzeichnet, um aus dem Zwischenspeicher ausgelagert zu werden (Schritt 612), und ein neues Segment kann an seiner Stelle in den Zwischenspeicher eingelagert werden. Das Verfahren 600 fährt dann mit Schritt 604 fort oder kehrt zu diesem zurück wie vorher beschrieben.
  • Wie einem Fachmann klar sein wird, können Aspekte der vorliegenden Erfindung als ein System, Verfahren oder Computerprogrammprodukt verkörpert werden. Dementsprechend können Aspekte der vorliegenden Erfindung in der Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (einschließlich Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform vorliegen, die Software- und Hardware-Aspekte kombiniert, auf die alle hierin allgemein als „Schaltung“, „Modul“, „Prozess“ oder „System“ Bezug genommen werden kann. Des Weiteren können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien mit einem darin ausgeführten computerlesbaren Programmcode verkörpert ist.
  • Jede Kombination von einem oder mehreren computerlesbaren Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann zum Beispiel ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine derartige Vorrichtung oder Einheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu spezielleren Beispielen (eine nicht erschöpfende Liste) für das computerlesbare Speichermedium würde Folgendes zählen: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer CD-ROM, eine optische Speichereinheit, eine Magnetspeichereinheit oder jede geeignete Kombination des Vorgenannten. In dem Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes konkrete Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Anweisungsausführung enthalten oder speichern kann.
  • In einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung jedes geeigneten Mediums übertragen werden, einschließlich drahtlos, drahtgebunden, über ein Lichtwellenleiterkabel, HF usw. oder jede geeignete Kombination des Vorgenannten, er ist aber nicht darauf beschränkt.
  • Computerprogrammcode zum Ausführen von Vorgängen für Aspekte der vorliegenden Erfindung kann in jeder Kombination von einer oder mehreren Programmiersprachen geschrieben werden, einschließlich einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder dergleichen 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 oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jeden Typ von Netzwerk verbunden werden, einschließlich ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Nutzung eines Internet-Dienstanbieters).
  • Aspekte der vorliegenden Erfindung werden im Folgenden unter Bezugnahme auf Veranschaulichungen eines Ablaufplans und/oder von Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block in den Veranschaulichungen von Ablaufplänen und/oder den Blockschaubildern und Kombinationen von Blöcken in den Veranschaulichungen von Ablaufplänen und/oder den Blockschaubildern durch Computerprogrammanweisungen umgesetzt werden können. Diese Computerprogrammanweisungen können für einen Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, ausgeführt werden, Mittel zum Umsetzen der Funktionen/Handlungen erstellen, die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben sind.
  • Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine andere Vorrichtung, die programmierbare Daten verarbeitet, oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Weise funktionieren, sodass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsgegenstand erzeugen, einschließlich Anweisungen, die die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegebene Funktion/Handlung umsetzen. Die Computerprogrammanweisungen können auch auf einen Computer, eine andere Vorrichtung, die programmierbare Daten verarbeitet, oder andere Einheiten geladen werden, um die Ausführung einer Serie von Arbeitsschritten auf dem Computer, einer anderen Vorrichtung, die programmierbare Daten ausführt, oder anderen Einheiten zu veranlassen, um einen über den Computer umgesetzten Prozess zu erzeugen, sodass die Anweisungen, die auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführt werden, Prozesse zum Umsetzen der Funktionen/Handlungen bereitstellen, die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben sind.
  • Der Ablaufplan und die Blockschaubilder in den vorgenannten Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Diesbezüglich kann jeder Block in dem Ablaufplan oder in den Blockschaubildern ein Modul, ein Segment oder einen Codeabschnitt darstellen, der eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen logischen Funktion(en) aufweist. Es ist ebenfalls anzumerken, dass in einigen alternativen Umsetzungen die in dem Block angegebenen Funktionen in einer anderen Reihenfolge auftreten können als in den Figuren angegeben. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es wird ebenfalls angemerkt, dass jeder Block in den Blockschaubildern und/oder in der Veranschaulichung des Ablaufplans und Kombinationen von Blöcken in den Blockschaubildern und/oder der Veranschaulichung des Ablaufplans durch spezielle Systeme auf der Grundlage von Hardware, die die angegebenen Funktionen oder Handlungen ausführen, oder Kombinationen von spezieller Hardware und Computeranweisungen umgesetzt werden können.
  • Obwohl eine oder mehrere Ausführungsformen der vorliegenden Erfindung ausführlich veranschaulicht worden sind, wird für Fachleute offenkundig sein, dass an diesen Ausführungsformen Modifizierungen und Anpassungen vorgenommen werden können, ohne vom Schutzumfang der vorliegenden Erfindung abzuweichen, wie in den folgenden Ansprüchen dargelegt.

Claims (17)

  1. Verfahren zum Verbessern einer Zwischenspeicherungsleistung in einer Datenverarbeitungsumgebung durch einen Prozessor, das aufweist: für einen Zwischenspeicher, in dem eine Vielzahl von Datensegmenten vorübergehend gespeichert ist, auf die häufig zugegriffen wird, werden in Verbindung mit einem Verwenden von Least-Recently-Used- (LRU) Informationen, Untersuchen von Referenzzählerinformationen während eines Deduplizierungsvorgangs, wobei die Referenzzählerinformation eine Anzahl von virtuellen Zuordnungselementen ist, die auf einen bestimmten Datenblock zeigen, Verwenden der Referenzzählerinformationen über die Vielzahl von Datensegmenten, um sowohl zu dem Zwischenspeicher die Vielzahl von Datensegmenten hinzuzufügen als auch eine Zeitlänge zum Beibehalten der Vielzahl von Datensegmenten in dem Zwischenspeicher gemäß einer vordefinierten Gewichtung zu bestimmen, die der Referenzzählerinformation entspricht und jedem der Vielzahl von Datensegmenten zugeordnet ist, wobei ungeachtet der LRU-Informationen diejenigen der Vielzahl von Datensegmenten mit höheren Referenzzählern länger beibehalten werden als diejenigen mit niedrigeren Referenzzählern, Bestimmen, ob die Referenzzählerinformation der Vielzahl von Datensegmenten, die zu dem Zwischenspeicher hinzugefügt wurden, aktualisiert worden ist oder ob ein vorbestimmtes Zeitintervall abgelaufen ist, wobei wenn die Referenzzählerinformation nicht aktualisiert worden ist oder das vorbestimmte Zeitintervall nicht abgelaufen ist, ein erneutes Bestimmen, ob die Referenzzählerinformation der Vielzahl von Datensegmenten, die zu dem Zwischenspeicher hinzugefügt wurden, aktualisiert worden ist oder ob das vorbestimmte Zeitintervall abgelaufen ist, nach Ablauf des vorbestimmten Zeitintervalls erneutes Bestimmen der Zeitlänge, wobei die vordefinierte Gewichtung gemäß der Durchlaufzeit des vordefinierten Zeitintervalls abnimmt, und Hinzufügen zu oder Entfernen von den Zwischenspeicherteilen der Vielzahl von Datensegmenten in dem Zwischenspeicher auf Grundlage der Referenzzählerinformationen.
  2. Verfahren nach Anspruch 1, das ferner ein Erhalten der Referenzzählerinformationen von einer Datendeduplizierungs-Engine enthält.
  3. Verfahren nach Anspruch 1, das ferner ein erneutes Bestimmen der Zeitlänge auf der Grundlage einer Aktualisierung auf die Referenzzählerinformationen enthält, wobei die vordefinierte Gewichtung abnimmt, wenn die Referenzzählerinformation nicht schrittweise erhöht wird.
  4. Verfahren nach Anspruch 1, wobei ein Bestimmen der Zeitlänge zum Beibehalten der Vielzahl von Datensegmenten im Zwischenspeicher ein Umsetzen von mindestens einer Richtlinie enthält, die einem von Zeitlänge, mindestens einem aus der Vielzahl von Datensegmenten und der vordefinierten Gewichtung entspricht.
  5. Verfahren nach Anspruch 1, wobei ein Bestimmen der Zeitlänge zum Beibehalten der Vielzahl von Datensegmenten im Zwischenspeicher ein Ausführen eines Deduplizierungsvorgangs für diejenigen aus der Vielzahl von Datensegmenten enthält, die in dem Zwischenspeicher in ungefährer Synchronisation mit der Bestimmung beibehalten werden.
  6. System zum Verbessern einer Zwischenspeicherungsleistung in einer Datenverarbeitungsumgebung, das aufweist: eine Deduplizierungs-Engine; eine Vielzahl von Datensegmenten, auf die häufig zugegriffen wird, die von der Deduplizierungs-Engine verarbeitet werden; einen Zwischenspeicher, der für ein zumindest vorübergehendes Speichern der Vielzahl von Datensegmenten konfiguriert ist, auf die häufig zugegriffen wird; und ein Zwischenspeicherverwaltungsmodul, das in Datenaustausch mit dem Zwischenspeicher betriebsfähig ist; wobei das Zwischenspeicherverwaltungsmodul so konfiguriert ist, dass es ausführt: Untersuchen von Referenzzählerinformationen während eines Deduplizierungsvorgangs, wobei die Referenzzählerinformation eine Anzahl von virtuellen Zuordnungselementen ist, die auf einen bestimmten Datenblock zeigen, in Verbindung mit einem Verwenden von Least-Recently-Used- (LRU) Informationen Verwenden der Referenzzählerinformationen über die Vielzahl von Datensegmenten, um sowohl zu dem Zwischenspeicher die Vielzahl von Datensegmenten hinzuzufügen als auch eine Zeitlänge zum Beibehalten der Vielzahl von Datensegmenten in dem Zwischenspeicher gemäß einer vordefinierten Gewichtung zu bestimmen, die der Referenzzählerinformation entspricht und jedem der Vielzahl von Datensegmenten zugeordnet ist, wobei ungeachtet der LRU-Informationen diejenigen der Vielzahl von Datensegmenten mit höheren Referenzzählern länger beibehalten werden als diejenigen mit niedrigeren Referenzzählern, Bestimmen, ob die Referenzzählerinformation der Vielzahl von Datensegmenten, die zu dem Zwischenspeicher hinzugefügt wurden, aktualisiert worden ist oder ob ein vorbestimmtes Zeitintervall abgelaufen ist, wobei wenn die Referenzzählerinformation nicht aktualisiert worden ist oder das vorbestimmte Zeitintervall nicht abgelaufen ist, ein erneutes Bestimmen, ob die Referenzzählerinformation der Vielzahl von Datensegmenten, die zu dem Zwischenspeicher hinzugefügt wurden, aktualisiert worden ist oder ob das vorbestimmte Zeitintervall abgelaufen ist, nach Ablauf des vorbestimmten Zeitintervalls erneutes Bestimmen der Zeitlänge, wobei die vordefinierte Gewichtung gemäß der Durchlaufzeit des vordefinierten Zeitintervalls abnimmt, und Hinzufügen zu oder Entfernen von den Zwischenspeicherteilen der Vielzahl von Datensegmenten in dem Zwischenspeicher auf Grundlage der Referenzzählerinformationen.
  7. System nach Anspruch 6, wobei die Referenzzählerinformationen von der Deduplizierungs-Engine erhalten werden.
  8. System nach Anspruch 6, wobei das Zwischenspeicherverwaltungsmodul ferner so konfiguriert ist, dass es die Zeitlänge auf der Grundlage einer Aktualisierung auf die Referenzzählerinformationen erneut bestimmt, wobei die vordefinierte Gewichtung abnimmt, wenn die Referenzzählerinformation nicht schrittweise erhöht wird.
  9. System nach Anspruch 6, das ferner ein Richtlinienmodul in betriebsfähigem Datenaustausch mit dem Zwischenspeicherverwaltungsmodul enthält, wobei das Richtlinienmodul so konfiguriert ist, dass es gemäß dem Bestimmen der Zeitlänge zum Beibehalten der Vielzahl von Datensegmenten im Zwischenspeicher mindestens eine Richtlinie umsetzt, die einem von der Zeitlänge, mindestens einem aus der Vielzahl von Datensegmenten und der vordefinierten Gewichtung entspricht.
  10. System nach Anspruch 9, wobei das Richtlinienmodul ferner so konfiguriert ist, dass es eine aus einer verfügbaren Vielzahl von Richtlinien zum Umsetzen auswählt.
  11. System nach Anspruch 10, wobei jede aus der verfügbaren Vielzahl von Richtlinien mindestens einem von einer vordefinierten Anzahl aus der Vielzahl von Datensegmenten und einer vordefinierten Zeit zum Beibehalten der Vielzahl von Einträgen entspricht.
  12. System nach Anspruch 6, wobei die Deduplizierungs-Engine so konfiguriert ist, dass sie in Verbindung mit dem Bestimmen der Zeitlänge zum Beibehalten der Vielzahl von Datensegmenten im Zwischenspeicher einen Deduplizierungsvorgang für diejenigen aus der Vielzahl von Datensegmenten ausführt, die in dem Zwischenspeicher in ungefährer Synchronisation mit der Bestimmung beibehalten werden.
  13. Computerprogrammprodukt zum Verbessern der Zwischenspeicherungsleistung in einer Datenverarbeitungsumgebung durch einen Prozessor, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium mit darin gespeicherten computerlesbaren Programmcodeabschnitten aufweist, wobei die computerlesbaren Programmcodeabschnitte aufweisen: einen ersten ausführbaren Abschnitt, damit ein Zwischenspeicher, in dem eine Vielzahl von Datensegmenten vorübergehend gespeichert ist, auf die häufig zugegriffen wird, in Verbindung mit einem Verwenden von Least-Recently-Used- (LRU) Informationen Referenzzählerinformationen über die Vielzahl von Datensegmenten verwendet, um auszuführen: Untersuchen von Referenzzählerinformationen während eines Deduplizierungsvorgangs, wobei die Referenzzählerinformation eine Anzahl von virtuellen Zuordnungselementen ist, die auf einen bestimmten Datenblock zeigen, Verwenden der Referenzzählerinformationen über die Vielzahl von Datensegmenten , um sowohl zu dem Zwischenspeicher die Vielzahl von Datensegmenten hinzuzufügen als auch eine Zeitlänge zum Beibehalten der Vielzahl von Datensegmenten in dem Zwischenspeicher gemäß einer vordefinierten Gewichtung zu bestimmen, die der Referenzzählerinformation entspricht und jedem der Vielzahl von Datensegmenten zugeordnet ist, wobei ungeachtet der LRU-Informationen diejenigen der Vielzahl von Datensegmenten mit höheren Referenzzählern länger beibehalten werden als diejenigen mit niedrigeren Referenzzählern, Bestimmen, ob die Referenzzählerinformation der Vielzahl von Datensegmenten, die zu dem Zwischenspeicher hinzugefügt wurden, aktualisiert worden ist oder ob ein vorbestimmtes Zeitintervall abgelaufen ist, wobei wenn die Referenzzählerinformation nicht aktualisiert worden ist oder das vorbestimmte Zeitintervall nicht abgelaufen ist, ein erneutes Bestimmen, ob die Referenzzählerinformation der Vielzahl von Datensegmenten, die zu dem Zwischenspeicher hinzugefügt wurden, aktualisiert worden ist oder ob das vorbestimmte Zeitintervall abgelaufen ist, nach Ablauf des vorbestimmten Zeitintervalls erneutes Bestimmen der Zeitlänge, wobei die vordefinierte Gewichtung gemäß der Durchlaufzeit des vordefinierten Zeitintervalls abnimmt, und Hinzufügen zu oder Entfernen von den Zwischenspeicherteilen der Vielzahl von Datensegmenten in dem Zwischenspeicher auf Grundlage der Referenzzählerinformationen.
  14. Computerprogrammprodukt nach Anspruch 13, das ferner einen zweiten ausführbaren Abschnitt enthält, um die Referenzzählerinformationen von einer Datendeduplizierungs-Engine zu erhalten.
  15. Computerprogrammprodukt nach Anspruch 13, das ferner einen zweiten ausführbaren Abschnitt zum erneuten Bestimmen der Zeitlänge auf der Grundlage einer Aktualisierung auf die Referenzzählerinformationen enthält, wobei die vordefinierte Gewichtung abnimmt ,wenn dieReferenzzählerinformation nicht schrittweise erhöht wird.
  16. Computerprogrammprodukt nach Anspruch 13, das ferner einen zweiten ausführbaren Abschnitt enthält, um nach dem Bestimmen der Zeitlänge zum Beibehalten der Vielzahl von Datensegmenten im Zwischenspeicher mindestens eine Richtlinie umzusetzen, die einem von der Zeitlänge, mindestens einem aus der Vielzahl von Datensegmenten und der vordefinierten Gewichtung entspricht.
  17. Computerprogramm nach Anspruch 13, das ferner einen zweiten ausführbaren Abschnitt enthält, um nach dem Bestimmen der Zeitlänge zum Beibehalten der Vielzahl von Datensegmenten im Zwischenspeicher einen Deduplizierungsvorgang für diejenigen aus der Vielzahl von Datensegmenten auszuführen, die in dem Zwischenspeicher in ungefährer Synchronisation mit der Bestimmung beibehalten werden.
DE112013002355.5T 2012-05-07 2013-05-06 Steigern von Datenzwischenspeicherungsleistung Active DE112013002355B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/465,476 US9645944B2 (en) 2012-05-07 2012-05-07 Enhancing data caching performance
US13/465,476 2012-05-07
PCT/CA2013/050349 WO2013166599A1 (en) 2012-05-07 2013-05-06 Enhancing data caching performance

Publications (2)

Publication Number Publication Date
DE112013002355T5 DE112013002355T5 (de) 2015-01-15
DE112013002355B4 true DE112013002355B4 (de) 2023-11-30

Family

ID=49513550

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013002355.5T Active DE112013002355B4 (de) 2012-05-07 2013-05-06 Steigern von Datenzwischenspeicherungsleistung

Country Status (5)

Country Link
US (4) US9645944B2 (de)
CN (1) CN104272275B (de)
DE (1) DE112013002355B4 (de)
GB (1) GB2516799B (de)
WO (1) WO2013166599A1 (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9110815B2 (en) 2012-05-07 2015-08-18 International Business Machines Corporation Enhancing data processing performance by cache management of fingerprint index
US9645944B2 (en) 2012-05-07 2017-05-09 International Business Machines Corporation Enhancing data caching performance
US9021203B2 (en) 2012-05-07 2015-04-28 International Business Machines Corporation Enhancing tiering storage performance
US10268592B2 (en) * 2014-01-31 2019-04-23 Avago Technologies International Sales Pte. Limited System, method and computer-readable medium for dynamically mapping a non-volatile memory store
CN105242971B (zh) * 2015-10-20 2019-02-22 北京航空航天大学 面向流式处理系统的内存对象管理方法及系统
KR102456109B1 (ko) * 2015-12-03 2022-10-18 삼성전자주식회사 비휘발성 메인 메모리 시스템의 메모리 맵핑 관리 방법
US10691596B2 (en) * 2018-04-27 2020-06-23 International Business Machines Corporation Integration of the frequency of usage of tracks in a tiered storage system into a cache management system of a storage controller
US11144474B2 (en) * 2018-06-26 2021-10-12 International Business Machines Corporation Integration of application indicated maximum time to cache to least recently used track demoting schemes in a cache management system of a storage controller
US11061826B2 (en) 2018-06-26 2021-07-13 International Business Machines Corporation Integration of application indicated minimum time to cache to least recently used track demoting schemes in a cache management system of a storage controller
US11068417B2 (en) 2018-06-26 2021-07-20 International Business Machines Corporation Allocation of cache storage among applications that indicate minimum retention time for tracks in least recently used demoting schemes
US11074197B2 (en) 2018-06-26 2021-07-27 International Business Machines Corporation Integration of application indicated minimum time to cache and maximum time to cache to least recently used track demoting schemes in a cache management system of a storage controller
US11068413B2 (en) 2018-06-26 2021-07-20 International Business Machines Corporation Allocation of cache storage among applications based on application priority and minimum retention time for tracks in least recently used demoting schemes
US10904022B2 (en) * 2018-08-30 2021-01-26 Acronis International Gmbh System and method for utility ranking and funding for cloud storage
US11455279B2 (en) 2018-11-05 2022-09-27 International Business Machines Corporation Distributed data deduplication reference counting
US11237730B2 (en) * 2019-05-12 2022-02-01 International Business Machines Corporation Favored cache status for selected volumes within a storage system
US11169919B2 (en) 2019-05-12 2021-11-09 International Business Machines Corporation Cache preference for selected volumes within a storage system
US11151035B2 (en) 2019-05-12 2021-10-19 International Business Machines Corporation Cache hit ratios for selected volumes within a storage system
US11176052B2 (en) 2019-05-12 2021-11-16 International Business Machines Corporation Variable cache status for selected volumes within a storage system
US11163698B2 (en) 2019-05-12 2021-11-02 International Business Machines Corporation Cache hit ratios for selected volumes using synchronous I/O
CN110147331B (zh) * 2019-05-16 2021-04-02 重庆大学 缓存数据处理方法、系统及可读存储介质
US11366609B2 (en) * 2019-08-02 2022-06-21 EMC IP Holding Company LLC Technique for encoding deferred reference count increments and decrements
KR102253362B1 (ko) * 2020-09-22 2021-05-20 쿠팡 주식회사 전자 장치 및 이를 이용한 정보 제공 방법
CN117707435B (zh) * 2024-02-05 2024-05-03 超越科技股份有限公司 一种固态盘数据去重方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090204765A1 (en) 2008-02-07 2009-08-13 Karan Gupta Data block frequency map dependent caching

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276867A (en) 1989-12-19 1994-01-04 Epoch Systems, Inc. Digital data storage system with improved data migration
CN1149486A (zh) 1996-08-29 1997-05-14 刘素丽 抗孕止血药及制备方法
US5943687A (en) 1997-03-14 1999-08-24 Telefonakiebolaget Lm Ericsson Penalty-based cache storage and replacement techniques
US6353438B1 (en) 1999-02-03 2002-03-05 Artx Cache organization—direct mapped cache
US6654855B1 (en) * 2000-10-26 2003-11-25 Emc Corporation Method and apparatus for improving the efficiency of cache memories using chained metrics
US6807588B2 (en) * 2002-02-27 2004-10-19 International Business Machines Corporation Method and apparatus for maintaining order in a queue by combining entry weights and queue weights
WO2007068122A1 (en) * 2005-12-16 2007-06-21 Univ Western Ontario System and method for cache management
JP2007200203A (ja) 2006-01-30 2007-08-09 Brother Ind Ltd 情報配信システム、再登録メッセージ送信方法、ノード装置、及びノード処理プログラム
US7496711B2 (en) 2006-07-13 2009-02-24 International Business Machines Corporation Multi-level memory architecture with data prioritization
US7840537B2 (en) 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
US7822939B1 (en) * 2007-09-25 2010-10-26 Emc Corporation Data de-duplication using thin provisioning
US7870105B2 (en) 2007-11-20 2011-01-11 Hitachi, Ltd. Methods and apparatus for deduplication in storage system
US7567188B1 (en) 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy
US7908436B1 (en) 2008-04-25 2011-03-15 Netapp, Inc. Deduplication of data on disk devices using low-latency random read memory
US20100088296A1 (en) 2008-10-03 2010-04-08 Netapp, Inc. System and method for organizing data to facilitate data deduplication
US8099555B2 (en) * 2009-01-23 2012-01-17 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for memory management on print devices
US20100306175A1 (en) * 2009-01-28 2010-12-02 Digitiliti, Inc. File policy enforcement
JP5369807B2 (ja) * 2009-03-24 2013-12-18 日本電気株式会社 ストレージ装置
JP2010257094A (ja) 2009-04-23 2010-11-11 Hitachi Ltd 階層ストレージ管理システムにおける移動候補ファイルの抽出方法
US9582222B2 (en) * 2009-04-30 2017-02-28 Western Digital Technologies, Inc. Pre-cache similarity-based delta compression for use in a data storage system
US8578120B2 (en) 2009-05-22 2013-11-05 Commvault Systems, Inc. Block-level single instancing
US8255365B2 (en) 2009-06-08 2012-08-28 Symantec Corporation Source classification for performing deduplication in a backup operation
US20100333116A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Cloud gateway system for managing data storage to cloud storage sites
US8880835B2 (en) * 2009-07-07 2014-11-04 International Business Machines Corporation Adjusting location of tiered storage residence based on usage patterns
US8204867B2 (en) 2009-07-29 2012-06-19 International Business Machines Corporation Apparatus, system, and method for enhanced block-level deduplication
US8280854B1 (en) 2009-09-01 2012-10-02 Symantec Corporation Systems and methods for relocating deduplicated data within a multi-device storage system
US8204862B1 (en) * 2009-10-02 2012-06-19 Symantec Corporation Systems and methods for restoring deduplicated data
US8171253B2 (en) * 2009-10-30 2012-05-01 Brocade Communications Systems, Inc. Virtual disk mapping
US8694469B2 (en) 2009-12-28 2014-04-08 Riverbed Technology, Inc. Cloud synthetic backups
US8375180B2 (en) 2010-02-05 2013-02-12 International Business Machines Corporation Storage application performance matching
US8250325B2 (en) 2010-04-01 2012-08-21 Oracle International Corporation Data deduplication dictionary system
WO2011133443A1 (en) 2010-04-19 2011-10-27 Greenbytes, Inc. A method for optimizing the memory usage and performance of data deduplication storage systems
US20110320715A1 (en) * 2010-06-23 2011-12-29 Microsoft Corporation Identifying trending content items using content item histograms
US8407191B1 (en) 2010-06-29 2013-03-26 Emc Corporation Priority based data scrubbing on a deduplicated data store
US8397080B2 (en) 2010-07-29 2013-03-12 Industrial Technology Research Institute Scalable segment-based data de-duplication system and method for incremental backups
CN101989236B (zh) 2010-11-04 2012-05-09 浙江大学 一种指令缓存锁实现方法
US8407419B2 (en) * 2010-11-30 2013-03-26 Open Text S.A. System and method for managing a cache using file system metadata
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US8495304B1 (en) 2010-12-23 2013-07-23 Emc Corporation Multi source wire deduplication
US8478939B2 (en) 2011-07-07 2013-07-02 Lsi Corporation Relative heat index based hot data determination for block based storage tiering
US8732403B1 (en) 2012-03-14 2014-05-20 Netapp, Inc. Deduplication of data blocks on storage devices
US9021203B2 (en) 2012-05-07 2015-04-28 International Business Machines Corporation Enhancing tiering storage performance
US9110815B2 (en) 2012-05-07 2015-08-18 International Business Machines Corporation Enhancing data processing performance by cache management of fingerprint index
US9645944B2 (en) 2012-05-07 2017-05-09 International Business Machines Corporation Enhancing data caching performance

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090204765A1 (en) 2008-02-07 2009-08-13 Karan Gupta Data block frequency map dependent caching

Also Published As

Publication number Publication date
US20180121367A1 (en) 2018-05-03
US9697139B2 (en) 2017-07-04
CN104272275B (zh) 2017-08-15
CN104272275A (zh) 2015-01-07
US9898419B2 (en) 2018-02-20
GB2516799B (en) 2020-10-14
US20130297886A1 (en) 2013-11-07
US20170255568A1 (en) 2017-09-07
US9645944B2 (en) 2017-05-09
GB2516799A (en) 2015-02-04
DE112013002355T5 (de) 2015-01-15
GB201421353D0 (en) 2015-01-14
US10268599B2 (en) 2019-04-23
US20130297885A1 (en) 2013-11-07
WO2013166599A1 (en) 2013-11-14

Similar Documents

Publication Publication Date Title
DE112013002355B4 (de) Steigern von Datenzwischenspeicherungsleistung
DE102013205069B4 (de) Erhöhte effizienz bei inline-deduplizierungen
DE112013001905B4 (de) Erhöhte Inline-Deduplizierungseffizienz
DE112017002941B4 (de) Arbeitslastoptimierte Datendeduplizierung mittels Phantomfingerabdrücken
DE112018000193B4 (de) Daten sequenziell in Zonen in einem verstreuten Speichernetzwerk speichern
DE112014000254B4 (de) Mehrstufiges Zwischenspeichern und Migrieren in unterschiedlichen Granularitäten
DE112012004540B4 (de) Selektive Speicherplatzfreigabe eines Datenspeichers unter Verwendung von Vergleichs- und Verlagerungskennzahlen
DE112012004798B4 (de) Anpassung der Auslagerungsgeschwindigkeit auf Grundlage von Anforderungen an Lese- und Schreib-Antwortzeiten
DE112013000900B4 (de) Bewahren von Redundanz in Datendeduplizierungssystemen unter Verwendung eines Anzeigers
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
DE112012004571B4 (de) Unterstützen von unvollständigen Datensegmenten in Flash-Cache-Speichern
DE102019132371A1 (de) Zuordnungsverwaltung logisch zu physisch unter Verwendung von nichtflüchtigem Speicher
DE112011103290B4 (de) Intelligente Schreibcacheoperationen für sequenzielle Datenspuren
DE112012004209T5 (de) Dynamisch eingestellter Schwellenwert zum Belegen eines sekundären Cache-Speichers
DE102012219098A1 (de) Verwaltung von Teildatensegmenten in Systemen mit doppeltem Cachespeicher
DE102012218264A1 (de) Effiziente Datenbereinigung in einer komprimierten Journaldatei
DE112011102487T5 (de) Zuordnen von logischen zu physischen Adressen in Halbleiterspeichereinheiten aufweisenden Speichersystemen
DE102009034651A1 (de) Prozess und Verfahren zur Abbildung von logischen Adressen auf physische Adressen in Festkörperplatten
DE112012002615T5 (de) Vorabladen von Datenspuren und Paritätsdaten zur Verwendung zum Auslagern aktualisierter Spuren
DE112014000251T5 (de) Echtzeitklassifizierung von Daten in Datenkomprimierungsdomänen
DE112014000448T5 (de) Auszugabruf beruhend auf Ähnlichkeitssuche bei Datendeduplizierung
DE112013005903T5 (de) Speichersystem und Speichersteuerungsverfahren
DE102013208930A1 (de) Zusammenfassen von Einträgen in einem Deduplizierungs-lndex
DE102013211071A1 (de) Mit geringem Mehraufwand verbundene Verbesserung der Zuverlässigkeit eines Journaling-Dateisystems unter Verwendung von Halbleiterspeicherung und Deduplizierung
DE102012215918A1 (de) Spiegeln virtueller Maschinen von einem primären auf einen sekundären Host

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0012020000

Ipc: G06F0012120000

Effective date: 20141211

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence