DE102016103359A1 - Singleton-cachespeicher-verwaltungsprotokoll für hierarchische virtualisierte speichersysteme - Google Patents

Singleton-cachespeicher-verwaltungsprotokoll für hierarchische virtualisierte speichersysteme Download PDF

Info

Publication number
DE102016103359A1
DE102016103359A1 DE102016103359.6A DE102016103359A DE102016103359A1 DE 102016103359 A1 DE102016103359 A1 DE 102016103359A1 DE 102016103359 A DE102016103359 A DE 102016103359A DE 102016103359 A1 DE102016103359 A1 DE 102016103359A1
Authority
DE
Germany
Prior art keywords
layer
layers
cache
caching
storage system
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.)
Granted
Application number
DE102016103359.6A
Other languages
English (en)
Other versions
DE102016103359B4 (de
Inventor
Shripad Jayant Nadgowda
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 DE102016103359A1 publication Critical patent/DE102016103359A1/de
Application granted granted Critical
Publication of DE102016103359B4 publication Critical patent/DE102016103359B4/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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements

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)

Abstract

Verfahren und Anordnungen zum Bereitstellen einer Cachespeicher-Verwaltung in einem hierarchischen virtualisierten Speichersystem. Ein in Betracht gezogenes Verfahren beinhaltet: Bestimmen einer relativen Position für jede Schicht in dem Speichersystem in Bezug auf mindestens eine andere Schicht in dem Speichersystem; Erteilen einer Zwischenspeicherungsrichtlinie, die gemeinsam auf alle Schichten anzuwenden ist, wobei die Zwischenspeicherungsrichtlinie auf der relativen Position jeder Schicht in Bezug auf mindestens eine andere Schicht in dem Speichersystem beruht; und Aufrechterhalten der Datenübertragung zwischen den Schichten bei einem Versuch des Zwischenspeicherns von Daten in mindestens einer der Schichten, um das Anwenden der Zwischenspeicherungsrichtlinie zu ermöglichen. Andere Varianten und Ausführungsformen werden hierin allgemein in Betracht gezogen.

Description

  • HINTERGRUND
  • Wie allgemein bekannt ist, treten Virtualisierung und Netzwerkspeicher (NAS, network-attached storage) weiter als zukunftsfähige Speicheranordnungen hervor. Mehrschichtiger Speicher ist allgemein einem komplexeren System von Speicherstapeln gewichen, wobei jeder Stapel isolierte „Speicherschichten” beinhaltet.
  • In einer wie gerade beschriebenen, herkömmlichen Anwendung verwaltet jede Speicherschicht ihren eigenen Cachespeicher eigenständig. Folglich kann sich bei einem einzelnen EIA-(Eingabe/Ausgabe-)Pfad ohne Weiteres ein Zustand der Datenduplizierung über mehrere Speicherschichten hinweg ergeben. Somit wird eine effiziente Verwaltung des Cachespeichers über einen oder mehrere Speicherstapel hinweg zu einer äußerst schwer zu bewältigenden Aufgabe.
  • KURZDARSTELLUNG
  • Kurz gefasst, stellt ein Aspekt der Erfindung ein Verfahren zum Bereitstellen einer Cachespeicher-Verwaltung in einem hierarchischen virtualisierten Speichersystem mit einer Vielzahl von jeweils einen Zwischenspeicherungsplatz aufweisenden Schichten bereit, wobei das Verfahren Folgendes aufweist: Verwenden von mindestens einem Prozessor zum Ausführen von Computercode, der so konfiguriert ist, dass er die folgenden Schritte durchführt: Bestimmen einer relativen Position für jede Schicht in dem Speichersystem in Bezug auf mindestens eine andere Schicht in dem Speichersystem; Erteilen einer Zwischenspeicherungsrichtlinie, die gemeinsam auf alle Schichten anzuwenden ist, wobei die Zwischenspeicherungsrichtlinie auf der relativen Position jeder Schicht in Bezug auf mindestens eine andere Schicht in dem Speichersystem beruht; und Aufrechterhalten der Datenübertragung zwischen den Schichten bei einem Versuch des Zwischenspeicherns von Daten in mindestens einer der Schichten, um das Anwenden der Zwischenspeicherungsrichtlinie zu ermöglichen.
  • Ein anderer Aspekt der Erfindung stellt eine Vorrichtung zum Bereitstellen einer Cachespeicher-Verwaltung in einem hierarchischen virtualisierten Speichersystem bereit, wobei die Vorrichtung Folgendes aufweist: mindestens einen Prozessor; und ein durch einen Computer lesbares Speichermedium, auf dem ein durch einen Computer lesbarer und von dem mindestens einen Prozessor ausführbarer Programmcode enthalten ist, wobei der durch einen Computer lesbare Programmcode Folgendes aufweist: durch einen Computer lesbaren Programmcode, der so konfiguriert ist, dass er für jede Schicht in dem Speichersystem eine relative Position in Bezug auf mindestens eine andere Schicht in dem Speichersystem bestimmt; durch einen Computer lesbaren Programmcode, der so konfiguriert ist, dass er eine Zwischenspeicherungsrichtlinie erteilt, die gemeinsam auf alle Schichten anzuwenden ist, wobei die Zwischenspeicherungsrichtlinie auf der relativen Position jeder Schicht in Bezug auf mindestens eine andere Schicht in dem Speichersystem beruht; und durch einen Computer lesbaren Programmcode, der so konfiguriert ist, dass er bei einem Versuch des Zwischenspeicherns von Daten in mindestens einer der Schichten die Datenübertragung zwischen den Schichten aufrechterhält, um das Anwenden der Zwischenspeicherungsrichtlinie zu ermöglichen.
  • Ein weiterer Aspekt der Erfindung stellt ein Computerprogrammprodukt zum Bereitstellen einer Cachespeicher-Verwaltung in einem hierarchischen virtualisierten Speichersystem bereit, wobei das Computerprogrammprodukt Folgendes aufweist: ein durch einen Computer lesbares Speichermedium, auf dem ein durch einen Computer lesbarer Programmcode enthalten ist, wobei der durch einen Computer lesbare Programmcode Folgendes aufweist: durch einen Computer lesbaren Programmcode, der so konfiguriert ist, dass er für jede Schicht in dem Speichersystem eine relative Position in Bezug auf mindestens eine andere Schicht in dem Speichersystem bestimmt; durch einen Computer lesbaren Programmcode, der so konfiguriert ist, dass er eine Zwischenspeicherungsrichtlinie erteilt, die gemeinsam auf alle Schichten anzuwenden ist, wobei die Zwischenspeicherungsrichtlinie auf der relativen Position jeder Schicht in Bezug auf mindestens eine andere Schicht in dem Speichersystem beruht; und durch einen Computer lesbaren Programmcode, der so konfiguriert ist, dass er bei einem Versuch des Zwischenspeicherns von Daten in mindestens einer der Schichten die Datenübertragung zwischen den Schichten aufrechterhält, um das Anwenden der Zwischenspeicherungsrichtlinie zu ermöglichen.
  • Ein zusätzlicher Aspekt der Erfindung stellt ein Verfahren bereit, das Folgendes aufweist: Bestimmen einer relativen Position für jede Schicht in einem Speichersystem mit einem hierarchischen virtualisierten Speichersystem in Bezug auf mindestens eine andere Schicht in dem Speichersystem; Erteilen einer Zwischenspeicherungsrichtlinie, die gemeinsam auf alle Schichten anzuwenden ist, wobei die Zwischenspeicherungsrichtlinie auf der relativen Position jeder Schicht in Bezug auf mindestens eine andere Schicht in dem Speichersystem beruht; und Aufrechterhalten der Datenübertragung zwischen den Schichten bei einem Versuch des Zwischenspeicherns von Daten in mindestens einer der Schichten, um das Anwenden der Zwischenspeicherungsrichtlinie zu ermöglichen, wobei das Erteilen einer Zwischenspeicherungsrichtlinie Folgendes aufweist: Sorgen für das Zwischenspeichern von Daten lediglich auf einer ersten Schicht bei einer Anforderung zum Zwischenspeichern von Daten, wobei die erste Schicht eine virtuelle Maschinenschicht und eine in Bezug auf andere Schichten oberste Schicht aufweist; und Sorgen für das Anwenden einer Richtlinie zum Bereinigen des am längsten ungenutzten Zwischenspeichers in Bezug auf eine Gesamtheit von Zwischenspeicherungsplatz über sämtliche Speicherschichten hinweg.
  • Zum besseren Verständnis der beispielhaften Ausführungsformen der Erfindung gemeinsam mit anderen und weiteren Merkmalen und Vorteilen von dieser wird auf die folgende Beschreibung in Verbindung mit den beigefügten Zeichnungen Bezug genommen, und der Umfang der beanspruchten Ausführungsformen der Erfindung wird in den beigefügten Ansprüchen aufgezeigt.
  • KURZBESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN DER ZEICHNUNGEN
  • 1 veranschaulicht schematisch ein Speichersystem nach einer ersten Wiederholung einer herkömmlichen Cachespeicher-Verwaltung.
  • 2 veranschaulicht im Wesentlichen dasselbe System aus 1, zeigt aber ein hypothetisches Endergebnis mit voller Zwischenspeicherung und keiner Duplizierung.
  • 3 veranschaulicht schematisch ein Speichersystem in einem Ausgangszustand.
  • 4 veranschaulicht im Wesentlichen dasselbe System aus 3, aber unter Anwendung eines Einweg-Cachespeicher-Verwaltungsprotokolls.
  • 5 veranschaulicht schematisch Schritte eines Einweg-Zwischenspeicherungsprotokolls.
  • 6 veranschaulicht schematisch ein Dateisystem zum Einsetzen eines Einweg-Zwischenspeicherungsprotokolls.
  • 7 veranschaulicht ein Computersystem.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Man wird ohne Weiteres verstehen, dass die Komponenten der Ausführungsformen der Erfindung, wie hierin allgemein beschrieben und in den Figuren veranschaulicht, zusätzlich zu den beschriebenen beispielhaften Ausführungsformen in einer großen Vielfalt unterschiedlicher Konfigurationen angeordnet und ausgeführt werden können. Folglich soll die folgende ausführlichere Beschreibung der Ausführungsformen der Erfindung wie in den Figuren dargestellt den beanspruchten Umfang der Erfindung nicht einschränken, sondern sie steht lediglich stellvertretend für beispielhafte Ausführungsformen der Erfindung.
  • Der Bezug auf „eine Ausführungsform” (oder dergleichen) in dieser Beschreibung bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben werden, in mindestens einer Ausführungsform der Erfindung beinhaltet sind. Somit verweist nicht jedes Auftreten der Formulierungen „in einer Ausführungsform” oder dergleichen an verschiedenen Stellen in dieser Beschreibung unbedingt auf dieselbe Ausführungsform.
  • Des Weiteren können die beschriebenen Merkmale, Strukturen oder Eigenschaften in mindestens einer Ausführungsform in jeder beliebigen geeigneten Art kombiniert werden. In der folgenden Beschreibung werden zahlreiche spezifische Details bereitgestellt, um ein vollständiges Verständnis der Ausführungsformen der Erfindung zu vermitteln. Ein Fachmann wird jedoch ohne Weiteres erkennen, dass Ausführungsformen der Erfindung ohne mindestens eines der spezifischen Details von dieser ausgeführt werden können, oder mit anderen Verfahren, Komponenten, Materialen et cetera ausgeführt werden können. In anderen Fällen werden allgemein bekannte Strukturen, Materialien oder Arbeitsschritte nicht gezeigt oder ausführlich beschrieben, um zu vermeiden, dass Aspekte der Erfindung unklar gemacht werden.
  • Die Beschreibung wendet sich nun den Figuren zu. Die veranschaulichten Ausführungsformen der Erfindung können am besten unter Bezugnahme auf die Figuren verstanden werden. Die folgende Beschreibung ist lediglich als Beispiel gedacht und veranschaulicht einfach bestimmte ausgewählte beispielhafte Ausführungsformen der hierin beanspruchten Erfindung.
  • Nachfolgend wird nun konkreter Bezug auf die 1 bis 6 genommen. Man sollte sich bewusst sein, dass die darin allgemein veranschaulichten Prozesse, Anordnungen und Produkte im Wesentlichen auf oder in Übereinstimmung mit jedem beliebigen geeigneten Computersystem oder Satz von Computersystemen ausgeführt werden können, zu denen als veranschaulichendes und nicht einschränkendes Beispiel ein System oder ein Server wie die bei 12' in 7 angegebenen gehören können. In Übereinstimmung mit einer beispielhaften Ausführungsform können die meisten, wenn nicht sogar alle der Prozessschritte, Komponenten und Ausgaben, die in Bezug auf die 1 bis 6 erörtert werden, durch eine Verarbeitungseinheit oder Einheiten und Systemspeicher durchgeführt oder genutzt werden, wie diejenigen, die bei 16' bzw. 28' in 7 angegeben sind, unabhängig davon, ob sie sich in einem Server-Computer, einem Client-Computer, einem Knotencomputer in einem verteilten Netzwerk oder einer beliebigen Kombination daraus befinden.
  • In Übereinstimmung mit mindestens einer Ausführungsform der Erfindung werden hierin allgemein Verfahren und Anordnungen in Betracht gezogen, die ein Singleton-Einweg-Cachespeicher-Verwaltungsprotokoll in hierarchischen virtualisierten Speichersystemen bereitstellen. Dies kann mit dem Positionieren und/oder Kennzeichnen jeder Speicherkomponente in dem Stapelsystem und damit, dass jede Komponente Kenntnis über ihre Position erhält, einhergehen. Beruhend auf ihrer Position kann jede Speicherkomponente dann ihre eigene Cachespeicher-Eintragen/Löschen-Richtlinie umsetzen, und diese Richtlinie kann sich von denen von anderen Speicherkomponenten unterscheiden. Dies kann hier mit einer Datendeduplizierung in einem E/A-Pfad (in einem Stapelspeichersystem) einhergehen, wobei Daten letztendlich lediglich in einer Speicherschicht zwischengespeichert werden. Obwohl die Cachespeicher-Verwaltung jeder Speicherkomponente von der Verwaltung von anderen Speicherkomponenten isoliert oder unabhängig sein kann, kann die Cachespeicher-Kapazität außerdem trotzdem über sämtliche Komponenten und Schichten hinweg konsolidiert werden. Allgemein kann eine Cachespeicher-Deduplizierung nicht so sehr auf das Verringern von Plattenplatz abzielen oder derart konfiguriert werden, sondern vielmehr zum Sicherstellen, dass Cachespeicher über Speichersysteme in einer hierarchischen Anordnung hinweg effizient genutzt werden.
  • Die oben erörterten und andere Merkmale, die sich auf mindestens eine Ausführungsform der Erfindung beziehen, werden aus der nun folgenden Erörterung besser verständlich.
  • Entsprechend einem allgemeinen Hintergrund, der mindestens einer Ausführungsform der Erfindung zugehörig ist, kann ein veranschaulichendes Problem ein wie in 1 schematisch veranschaulichtes Dreischichtsystem betreffen. Dieses System beinhaltet Folgendes: eine VM (virtuelle Maschine) 101 mit einem Cachespeicher 103 mit 1 GB (Gigabyte), einen Host 105, der einen zusätzlichen Cachespeicher mit 2 GB beinhaltet, und einen NAS-Server 106, der einen Hauptspeicher 107 und einen zugehörigen Cachespeicher 109 mit 4 GB beinhaltet. Man gehe von einer Anwendung in der VM 101 aus, die einen Arbeitsbereich mit 7 Dateien (F1, F2 ... F7) von jeweils 1 GB Größe aufweist. In dem vorliegenden Beispiel nehme man an, dass die Anwendung 3 Mal wiederholt wird und sämtliche Dateien der Reihe nach liest. 1 veranschaulicht somit schematisch einen Cachespeicherzustand der angegebenen Anordnung nach der 1.
  • Wiederholung, wenn jede Schicht unabhängig eine Zwischenspeicherungsrichtlinie beruhend auf LRU (am längsten ungenutzt) anwendet, wobei es zu einer Leerung der am längsten ungenutzten Datei(en) kommt, um Platz für einen eingehenden neuen Schreibvorgang zu schaffen, wenn der Zwischenspeicherungsplatz voll belegt ist. Folglich gibt es in einem derartigen Szenario keine Kommunikation oder Koordination zwischen den drei Schichten, und das Endergebnis führt wie gezeigt dazu, dass jede Schicht lediglich so viele der zuletzt genutzten Dateien im Cachespeicher behält, die in den Cachespeicher dieser Schicht passen. Folglich hat der Cachespeicher 103 lediglich Raum für die eine zuletzt genutzte Datei (F7), der Cachespeicher 105 hat lediglich Raum für die zwei zuletzt genutzten Dateien (F7 und F6), und der Cachespeicher 109 hat lediglich Raum für die vier zuletzt genutzten Dateien (F7, F6, F5 und F4).
  • In Übereinstimmung mit mindestens einer Ausführungsform der Erfindung stellt 2 jedoch eine veranschaulichende Ansicht derselben allgemeinen Anordnung (mit entsprechenden Bezugszahlen um 100 erhöht) bereit, wobei der vollständige Arbeitsbereich von Dateien in einem Szenario, das wesentlich wünschenswerter ist, in der Tat über Speicherschichten hinweg zwischengespeichert werden könnte, da eine ausreichend große Cachespeicher-Gesamtgröße vorhanden ist. Hier und zum besseren Verständnis im Nachfolgenden kann eine Koordination zwischen den Schichten sicherstellen, dass der Cachespeicher-Gesamtplatz (7 GB) auf eine Weise genutzt wird, in der allen 7 der 1-GB-Dateien ohne Duplizierung Platz geboten werden kann. Folglich können die Beispiele der 1 und 2 dabei helfen, die Ineffizienzen zu veranschaulichen, die herkömmliche Speicheranordnungen in der Tat häufig aufweisen können. Andere herkömmliche Beispiele, die ebenfalls erhebliche Ineffizienzen aufweisen, sind zweifellos reichlich vorhanden.
  • In Übereinstimmung mit mindestens einer Ausführungsform der Erfindung geht eine Lösung der Singleton-Einweg-Cachespeicher-Verwaltung mit mehreren Merkmalen einher. Zunächst ist jede Speicherschicht mit Hilfe von ganzen Zahlen in aufsteigender Reihenfolge, angefangen bei 0, durchnummeriert. Folglich kann ein VM-Dateisystem in einem veranschaulichenden Beispiel „Schicht 0” sein, ein Host-Dateisystem kann „Schicht 1” sein, und ein NAS-Server-Dateisystem kann „Schicht 2” sein. Schicht 0 kann als „höchste” oder oberste Schicht angesehen werden, während andere Schichten in Übereinstimmung mit der aufsteigenden Zahlenfolge als „niedrigere” Schichten angesehen werden können. Jede Speicherschicht kann eine interne Kennung, Kennzeichnung oder Eigenschaft beinhalten, damit sie „Kenntnis” über ihre numerische Benennung erlangen kann. Zum Beispiel kann ein Zeitparameter für ein Dateisystem beruhend auf der darauf angewendeten Kennzeichnung oder Eigenschaft aufgenommen werden. Folglich kann jede Speicherschicht beruhend auf der angewendeten Kennzeichnung oder Eigenschaft unterschiedliche Zwischenspeichereigenschaften aufweisen. Lediglich als veranschaulichendes praktisches Beispiel speichert zum Beispiel lediglich die „oberste” oder „höchste” Schicht („Schicht 0”) derartige Daten in Übereinstimmung mit einer Zwischenspeicherungsrichtlinie, die hierin eingesetzt werden kann, während andere Schichten diese nicht zwischenspeichern. Als solches speichern andere Schichten lediglich dann Daten, wenn sie „geräumt” oder von der obersten Schicht beschrieben werden. Wie aus der nachfolgenden Erörterung auch verständlich wird, können andere Zwischenspeicherungsverhalten von der Schichtkennzeichnung festgelegt oder vorgeschrieben werden.
  • Als solches kann ein „genutztes Bit” in Übereinstimmung mit mindestens einer Ausführungsform der Erfindung beteiligt sein, wenn das Ersetzen des Cachespeichers vorgenommen wird, d. h. nach dem anfänglichen Zwischenspeichern. Insbesondere während des Ersetzens des Cachespeichers, wenn ein Block oder eine Seite zum Ersetzen ausgewählt wird und kein „genutztes Bit” gesetzt ist, wird dieser Block einfach entfernt (das heißt, er wird nicht in „niedrigere” Speicherschichten geräumt). Um dies zu erreichen, ignoriert jede Speicherschicht, bis auf die letzte, das genutzte Bit und räumt jeden „Cachespeicher ersetzt”-Block; die letzte Schicht vermeidet dann, dass dieser Block auf Platte geschrieben wird, wenn das genutzte Bit nicht gesetzt ist. Jede Speicherschicht kann trotzdem einen „aktuellen Schwellwert” aufweisen, um zu vermeiden, dass alte Daten (d. h. nicht aus einem Arbeitssatz von Daten) geräumt oder verwaltet werden, und kann derartige Daten direkt entfernen. Anschließend kann dann jeder neue Datenschreibvorgang von jeder Speicherschicht auf jede beliebige geeignete Art und Weise bearbeitet werden.
  • 3 veranschaulicht ein nicht einschränkendes praktisches Beispiel einer Singleton-Cachespeicher-Verwaltung in Übereinstimmung mit mindestens einer Ausführungsform der Erfindung. Wie hier gezeigt ist, gibt es in einem Anfangszustand zwei Hosts 305, die mit einem NAS-Server 306 verbunden sind (auch als H1, H2 gekennzeichnet) und 2 VMs, die in jedem physischen Host gehostet werden; die Reihe von VMs ist bei 301 angegeben und ebenfalls als VM1 ... VM4 gekennzeichnet. Jede der VMs 301 beinhaltet 1 GB an Cachespeicherplatz, jeder der Hosts 305 beinhaltet 2 GB an Cachespeicherplatz (in 1-GB-Blöcken), und der NAS-Server 306 beinhaltet den Hauptspeicher 307 und 4 GB an Cachespeicherplatz (in 1-GB-Blöcken, bei 309 angegeben). Jeder der 1-GB-Blöcke für Cachespeicherplatz wird auf allen Ebenen durch kleinere Quadrate oder Rechtecke in Bezug auf jede Ebene angegeben. In einem Anfangszustand weist jede VM (301) eine Anwendung auf (vm1.img, vm2.img, vm3.img und vm4.img), die sich jeweils in dem NAS-Hauptspeicher 307 befinden und einen Arbeitsbereich von 3 Dateien mit 1 GB aufweisen; diese Dateien sind in der Zeichnung als FVMID{1,2,3} bezeichnet, wobei VMID eine ganze Zahl ist, welche die entsprechende der 4 VMs bezeichnet.
  • Wenn in Übereinstimmung mit mindestens einer Ausführungsform der Erfindung ein Einweg-Cachespeicher-Verwaltungsprotokoll angewendet wird, wie hierin allgemein in Betracht gezogen wird, kann ein wie in 4 gezeigtes Ergebnis erzielt werden (mit entsprechenden Bezugszahlen um 100 erhöht). Folglich werden Anwendungsdaten für alle 4 VMs (einschließlich aller drei Dateien für jede) (401) irgendwo in einer der Speicherschichten zwischengespeichert, ohne jegliche Duplizierung von Daten über die Schichten hinweg. Im Gegensatz dazu kann man verstehen, dass ein herkömmliches Zwischenspeicherungsprotokoll typischerweise zu Schreibvorgängen in den Cachespeicher mit häufigen Leerungen und unverhältnismäßig hoher Duplizierung führt, z. B., wenn jede Schicht eine unabhängige Zwischenspeicherungsrichtlinie aufweist, die nicht mit anderen Schichten koordiniert wird und mit einer LRU-basierten Leerung einhergeht. Angenommen, jede VM 401 liest ihre eigenen Dateien von Platte (d. h. von dem NAS-Hauptspeicher 407) abwechselnd und versucht dann, zwischenzuspeichern, dann ist folglich ein einleuchtendes Endergebnis in einem derartigen Szenario eine Duplizierung von Dateien (F41, F42, F43, F33) in allen Speicherschichten, wobei sämtliche Daten von VM2 und VM4 irgendwo in dem Cachespeicher vorhanden sind und einige Daten von VM1 und VM3 nicht zwischengespeichert werden und somit einen Plattenzugriff erfordern. Dies würde ganz klar eine höchst ineffiziente Verwendung des verfügbaren Zwischenspeicherungsplatzes darstellen.
  • 5 veranschaulicht schematisch Schritte eines Singleton-Einweg-Zwischenspeicherungsprotokolls in Übereinstimmung mit mindestens einer Ausführungsform der Erfindung. Wie gezeigt ist, wird beginnend bei E/A 511 eine Ermittlung einer Lese- oder Schreibanweisung angestellt (513) (z. B. ein Schreibvorgang auf Platte, der dann letztendlich zu einem Schreibvorgang in den Cachespeicher führen kann). Eine Leseanweisung löst eine Ermittlung (515) eines Cachespeicher-Treffers oder -Fehltreffers aus. Wenn es eine Ermittlung eines Cachespeicher-Treffers gibt, wird die Leseanforderung für einen direkten Lesevorgang an den Cachespeicher 519 gesendet (517), und der Prozess startet erneut. Wenn es eine Ermittlung eines Cachespeicher-Fehltreffers gibt oder bei einer ursprünglichen Schreibanforderung, wird die oberste Schicht mit verfügbarem Cachespeicher-Platz (521) bewertet (523). Wenn es sich bei dieser obersten verfügbaren Schicht um Schicht 0 handelt (d. h., die oberste Schicht, wie weiter oben erörtert und erklärt wurde), wird ein Schreibvorgang auf Schicht 0 durchgeführt (525), wenn eine Schreibanforderung betroffen ist; wenn eine Leseanforderung betroffen ist, wird ein Lesevorgang von Platte durchgeführt (z. B. von einem NAS-Datei-Server, wie weiter oben erörtert wurde) (527), und es wird ein Schreibvorgang auf Schicht 0 durchgeführt (525).
  • In Übereinstimmung mit mindestens einer Ausführungsform der Erfindung werden ein oder mehrere Räumungen vorgenommen, um den Cachespeicher-Platz in Schicht 0 freizugeben, wenn die Bewertung 523 angibt, dass es sich bei der obersten Schicht mit verfügbarem Cachespeicher-Platz nicht um Schicht 0 handelt. Wie in dem anderen, oben erörterten Pfad wird hier ein Lesevorgang von Platte durchgeführt (529), wenn ursprünglich eine Leseanforderung betroffen war. Unabhängig davon, ob es sich um eine Lese- oder Schreibanforderung handelt, wird dann ein Schreibvorgang auf Schicht 0 mit Einfügung einer oder mehrerer Räumungsschritte (531) durchgeführt. Insbesondere und dahingehend, wird der Cachespeicher-Inhalt, wenn in Schicht 1 ausreichend Cachespeicher-Platz verfügbar ist, von Schicht 0 zu Schicht 1 migriert („geräumt”, 531), um einen eingehenden Schreibvorgang auf Schicht 0 aufzunehmen (525). Wenn in Schicht 1 nicht ausreichend Cachespeicher-Platz verfügbar ist, kann es sich bei dem Räumungsschritt 531 um einen kaskadierenden Prozess handeln, wobei der am längsten ungenutzte Cachespeicher-Inhalt in einer Schicht N (wobei N > 0) zu Schicht (N + 1) migriert wird, wobei es sich bei (N + 1) um die niedrigste Schicht mit Cachespeicher-Platz handelt, der zum Aufnehmen einer derartigen Migration verfügbar ist. Wenn N > 1, wird Platz in Schicht N – 1 freigegeben, indem der am längsten ungenutzte Cachespeicher-Inhalt als Sekundärräumung auf Schicht N migriert wird. Räumungen von einer beliebigen Schicht können dann von einer oberen Schicht zu einer unteren Schicht fortgeführt werden, bis in der Tat ausreichend Platz in Schicht 1 freigegeben wurde, um eine Migration von Cachespeicher-Inhalten von Schicht 0 aufzunehmen und somit den neuen Schreibvorgang auf Schicht 0 selbst zu ermöglichen (525).
  • In Übereinstimmung mit mindestens einer Ausführungsform der Erfindung und in krassem Gegensatz zu herkömmlichen Anordnungen findet eine Leerung von Cachespeicher-Inhalten lediglich dann statt, wenn in sämtlichen Schichten, die miteinander auf eine obenstehend beschriebene Weise koordiniert sind, kein freier Cachespeicher-Platz vorhanden ist und in der Tat etwas Platz freigegeben werden muss. Dazu kann ein zusätzlicher Schritt des Löschens des am längsten ungenutzten Inhalts aus dem gesamten Cachespeicher-Platz über die Schichten hinweg eingebunden werden; folglich wird dies wahrscheinlich von der untersten Schicht aus geschehen. Dies kann dann ausreichend verfügbaren Cachespeicher-Platz zum Durchführen der einen oder mehreren Räumungen wie obenstehend beschrieben erschaffen, um letztendlich Platz für einen Schreibvorgang auf Schicht 0 freizugeben. Andererseits kann man verstehen, dass ein derartiges Entfernen von Daten wahrscheinlich häufiger in herkömmlichen Anordnungen stattfindet, wo es keine Koordination zwischen Schichten gibt, d. h., eingehende Schreibvorgänge können sich auf sämtliche Schichten beziehen, angesichts der unabhängigen Zwischenspeicherungsrichtlinien und einer Wahrscheinlichkeit, dass alle neue Schreibanforderungen zwischenspeichern werden. Bei einer derartigen Eventualität können Leerungen von jeder Schicht häufig sein, wie man hierin mit dem Beispiel aus 1 und der Erörterung der 3 und 4 hierin verstehen kann.
  • Wie oben erwähnt, kann ein genutztes Bit in Übereinstimmung mit mindestens einer Ausführungsform der Erfindung gesetzt werden, um sicherzustellen, dass eine Zwischenspeicherung stattfindet. Andernfalls kann, wenn das genutzte Bit nicht gesetzt ist, einfach verhindert werden, dass ein derartiger Inhalt überhaupt geschrieben wird (z. B., wenn der Cachespeicher-Platz in allen Schichten bereits belegt ist und somit eine Leerung von sich bereits in dem Cachespeicher befindlichem Inhalt vermieden wird), oder er kann in die niedrigste Schicht mit verfügbarem Cachespeicher-Platz geschrieben werden. Dieser Inhalt mit dem nicht gesetzten genutzten Bit kann dann unter den ersten zu leerenden Inhalten sein; zum Beispiel kann eine zweistufige LRU-Leerungsrichtlinie angewendet werden, wobei der am längsten ungenutzte Cachespeicher-Inhalt mit einem nicht gesetzten genutzten Bit zuerst geleert wird, gefolgt von dem nächsten am längsten ungenutzten Inhalt mit einem nicht gesetzten genutzten Bit und so weiter, bis sämtliche Inhalte mit einem nicht gesetzten genutzten Bit geleert wurden. An diesem Punkt wird der am längsten ungenutzte Cachespeicher-Inhalt mit einem gesetzten genutzten Bit als nächstes geleert.
  • 6 veranschaulicht schematisch eine Dateisystemanordnung, die in Übereinstimmung mit Ausführungsformen der Erfindung eingesetzt werden kann, z. B. in Übereinstimmung mit dem in 5 gezeigten Prozess in Bezug auf jede beliebige Ebene (FSN). Wie gezeigt ist, wird eine anfängliche Lese- oder Schreibanforderung an ein bestimmtes Dateisystem (FS) 635 der Ebene N verwiesen. Auf dieser Ebene beinhaltet sind eine Cachespeicher-Steuereinheit 637 und ein Cachespeicher 619 sowie ein Schreiboptimierer 639. Leseanforderungen, die einen Cachespeicher-Fehltreffer betreffen, werden an eine Lesewarteschlange in dem Schreiboptimierer 639 verwiesen, während Cachespeicher-Räumungen und neue Schreibvorgänge (in den Cachespeicher) an eine Schreibwarteschlange in dem Schreiboptimierer 639 verwiesen werden. In beiden Fällen aktualisiert ein Hash-Computer einen Datenbestand, aber im Fall von Cachespeicher-Räumung und neuen Schreibvorgängen wird auch das genutzte Bit (wie obenstehend erörtert) aktualisiert. Die Cachespeicher-Steuereinheit 637 nutzt den Datenbestand, wenn dann Schreibvorgänge in den Cachespeicher 619 durchgeführt werden.
  • Aus dem Vorstehenden kann man verstehen, dass in Übereinstimmung mit mindestens einer Ausführungsform der Erfindung eine technische Verbesserung durch das Bereitstellen eines Singleton-Einweg-Cachespeicher-Verwaltungsprotokolls in hierarchischen virtualisierten Speichersystemen dargestellt wird, das mit dem Positionieren und/oder Kennzeichnen von jeder Speicherkomponente in dem Stapelsystem und damit, dass jede Komponente Kenntnis über ihre Position erhält, einhergeht, wobei jede Speicherkomponente beruhend auf ihrer Position dann ihre eigene Cachespeicher-Eintragen/Löschen-Richtlinie umsetzen kann, und sich diese Richtlinie von denen von anderen Speicherkomponenten unterscheiden kann.
  • In Übereinstimmung mit mindestens einer Ausführungsform der Erfindung können hierin bestimmte quantitative Werte oder andere hierin verwendete oder erstellte Daten oder Informationen ganz allgemein in Arbeitsspeicher gespeichert oder einem Benutzer auf einem Bildschirm angezeigt werden, so wie es für die Bedürfnisse eines oder mehrerer Benutzer passend sein mag.
  • Unter Bezugnahme auf 7 ist eine schematische Abbildung eines Beispiels eines Cloud-Computing-Knotens gezeigt. Der Cloud-Computing-Knoten 10' ist lediglich ein Beispiel eines geeigneten Cloud-Computing-Knotens und soll keinerlei Einschränkungen für den Umfang der Verwendung oder Funktionalität von Ausführungsformen der hierin beschriebenen Erfindung andeuten. Trotzdem kann eine beliebige vorstehend dargelegte Funktionalität in dem Cloud-Computing-Knoten 10' umgesetzt und/oder von diesem durchgeführt werden. In Übereinstimmung mit Ausführungsformen der Erfindung muss der Datenverarbeitungsknoten 10 nicht unbedingt Teil eines Cloud-Netzwerks sein, sondern könnte stattdessen Teil eines anderen Typs von verteiltem oder anderem Netzwerk sein oder könnte einen eigenständigen Knoten darstellen. Zum Zweck der Erörterung und Veranschaulichung wird der Knoten 10' hierin jedoch unterschiedlich als „Cloud-Computing-Knoten” bezeichnet.
  • In dem Cloud-Computing-Knoten 10' gibt es ein Computersystem/einen Server 12', das/der mit zahlreichen anderen Universal- bzw. Spezial-Datenverarbeitungssystem-Umgebungen bzw. Konfigurationen betriebsfähig ist. Zu Beispielen für allgemein bekannte Datenverarbeitungssysteme, Umgebungen und/oder Konfigurationen, die zur Verwendung mit dem Computersystem/Server 12' geeignet sein können, gehören Personal-Computer-Systeme, Server-Computersysteme, Thin Clients, Thick Clients, Handheld- bzw. Laptop-Geräte, Multiprozessorsysteme, auf Mikroprozessoren beruhende Systeme, Set-Top-Boxen, programmierbare Verbraucherelektronik, Netzwerk-PCs, Minicomputersysteme, Mainframe-Computersysteme sowie verteilte Cloud-Computing-Umgebungen, die irgendeine(s) der obigen Systeme bzw. Einheiten beinhalten, und dergleichen, aber nicht darauf beschränkt.
  • Das Computersystem/der Server 12 kann in dem allgemeinen Kontext von durch Computersysteme ausführbaren Instruktionen, z. B. durch Programmmodule, beschrieben werden, die von einem Computersystem ausgeführt werden. Allgemein können zu Programmmodulen Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen und so weiter gehören, die bestimmte Aufgaben durchführen bzw. bestimmte abstrakte Datentypen umsetzen. Das Computersystem/der Server 12' kann in verteilten Cloud-Computing-Umgebungen ausgeführt werden, wo Aufgaben durch ferne Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl in lokalen als auch in fernen Computersystem-Speichermedien befinden, darunter Arbeitsspeichereinheiten.
  • Wie in 7 gezeigt ist, ist das Computersystem/der Server 12' in dem Cloud-Computing-Knoten 10 in Form einer Universal-Datenverarbeitungseinheit gezeigt. Die Komponenten des Computersystems/Servers 12 können mindestens einen Prozessor oder eine Verarbeitungseinheit 16, einen Systemspeicher 28' und einen Bus 18' beinhalten, der verschiedene Systemkomponenten, darunter den Systemspeicher 28', mit dem Prozessor 16' verbindet, sind aber nicht darauf beschränkt. Der Bus 18' stellt mindestens eine einer beliebigen von mehreren Typen von Busstrukturen dar, darunter einen Speicherbus oder eine Speichersteuereinheit, einen Peripheriebus, einen beschleunigten Grafikanschluss und einen Prozessor- oder lokalen Bus, die eine beliebige aus einer Vielfalt von Busarchitekturen verwenden. Zu derartigen Architekturen gehören als Beispiel und nicht als Einschränkung ein ISA-Bus (Industry Standard Architecture), ein MCA-Bus (Micro Channel Architecture), ein EISA-Bus (Enhanced ISA), ein VESA-Lokalbus (Video Electronics Standards Association) sowie ein PCI-Bus (Peripheral Component Interconnects).
  • Das Computersystem/der Server 12' beinhaltet üblicherweise eine Vielfalt von durch ein Computersystem lesbaren Medien. Bei derartigen Medien kann es sich um jedes beliebige Medium handeln, auf welches das Computersystem/der Server 12' zugreifen kann, und es kann sowohl flüchtige als auch nichtflüchtige Medien, austauschbare und nicht austauschbare Medien beinhalten.
  • Der Systemspeicher 28 kann durch ein Computersystem lesbare Medien in Form eines flüchtigen Speichers wie einen Direktzugriffsspeicher (RAM) 30' und/oder einen Cachespeicher 32' beinhalten. Das Computersystem/der Server 12' kann ferner andere austauschbare/nicht austauschbare, flüchtige/nichtflüchtige Computersystem-Speichermedien enthalten. Lediglich als Beispiel kann das Speichersystem 34' zum Lesen von und zum Schreiben auf ein nicht austauschbares, nichtflüchtiges magnetisches Medium bereitgestellt werden (das nicht gezeigt ist und üblicherweise „Festplattenlaufwerk” genannt wird). Es können auch ein Magnetplattenlaufwerk zum Lesen von und Schreiben auf eine austauschbare, nichtflüchtige Magnetplatte (z. B. eine „Floppy-Diskette”) und ein optisches Plattenlaufwerk zum Lesen von oder Schreiben auf eine austauschbare, nichtflüchtige optische Platte wie eine CD-ROM, DVD-ROM oder ein anderes optisches Medium bereitgestellt werden, auch wenn diese nicht gezeigt sind. In derartigen Fällen können sie jeweils über mindestens eine Datenmedienschnittstelle mit dem Bus 18' verbunden sein. Wie nachfolgend weiter abgebildet und beschrieben wird, kann der Speicher 28' mindestens ein Programmprodukt beinhalten, das einen Satz von Programmmodulen (z. B. mindestens eins) aufweist, die so konfiguriert sind, dass sie die Funktionen von Ausführungsformen der Erfindung ausführen.
  • Das Programm/Dienstprogramm 40', das einen Satz von Programmmodulen 42' (mindestens eins) aufweist, sowie ein Betriebssystem, mindestens ein Anwendungsprogramm, andere Programmmodule und Programmdaten, können in dem Speicher 28' gespeichert sein. Jedes der Betriebssysteme, mindestens ein Anwendungsprogramm, andere Programmmodule und die Programmdaten oder eine beliebige Kombination daraus können eine Umsetzung einer Netzwerkumgebung beinhalten. Die Programmmodule 42' führen allgemein die hierin beschriebenen Funktionen und/oder Methodiken von Ausführungsformen der Erfindung aus.
  • Das Computersystem/der Server 12' kann auch mit mindestens einer externen Einheit 14' wie einer Tastatur, einer Zeigeeinheit, einer Anzeige 24' usw., mindestens einer Einheit, die es einem Benutzer ermöglicht, mit dem Computersystem/Server 12' Daten auszutauschen, und/oder beliebigen Einheiten (z. B. Netzwerkkarten, Modems usw.) Daten austauschen, die es dem Computersystem/Server 12' ermöglichen, mit mindestens einer anderen Datenverarbeitungseinheit Daten auszutauschen. Ein derartiger Datenaustausch kann über E/A-Schnittstellen 22' erfolgen. Außerdem kann das Computersystem/der Server 12' über den Netzwerkadapter 20' mit mindestens einem Netzwerk Daten austauschen, wie zum Beispiel einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netzwerk (z. B. dem Internet). Wie abgebildet ist, tauscht der Netzwerkadapter 20' mit den anderen Komponenten des Computersystems/Servers 12' über den Bus 18' Daten aus. Es sollte klar sein, dass andere Hardware- und/oder Software-Komponenten in Verbindung mit dem Computersystem/Server 12' verwendet werden könnten, auch wenn diese nicht gezeigt sind. Zu Beispielen gehören folgende, ohne auf diese beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Festplattenlaufwerk-Arrays, RAID-Systeme, Bandlaufwerke und Speichersysteme zur Datenarchivierung usw.
  • Diese Offenbarung wurde zum Zwecke der Veranschaulichung und Beschreibung aufgeführt, soll jedoch nicht erschöpfend oder einschränkend sein. Für einen Fachmann werden viele Abänderungen und Abweichungen ersichtlich sein. Die Ausführungsformen wurden gewählt und beschrieben, um Grundgedanken und die praktische Anwendung zu erläutern und um es anderen Fachleuten zu ermöglichen, die Offenbarung zu verstehen.
  • Obwohl hierin veranschaulichende Ausführungsformen der Erfindung unter Bezugnahme auf die beigefügten Zeichnungen beschrieben wurden, sollte klar sein, dass die Ausführungsformen der Erfindung nicht auf exakt diese Ausführungsformen beschränkt sind und ein Fachmann diverse andere Änderungen und Abwandlungen an diesen vornehmen kann, ohne von dem Umfang oder Gedanken der Offenbarung abzuweichen.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) beinhalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z. B. durch ein Glasfaserkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o. ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C” oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung werden unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern durch durch einen Computer lesbare Programmanweisungen ausgeführt werden können. Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.

Claims (12)

  1. Verfahren zum Bereitstellen einer Cachespeicher-Verwaltung in einem hierarchischen virtualisierten Speichersystem mit einer Vielzahl von jeweils einen Zwischenspeicherungsplatz aufweisenden Schichten, das Verfahren aufweisend: Verwenden von mindestens einem Prozessor zum Ausführen von Computercode, der so konfiguriert ist, dass er die folgenden Schritte durchführt: Bestimmen einer relativen Position für jede Schicht in dem Speichersystem in Bezug auf mindestens eine andere Schicht in dem Speichersystem; Erteilen einer Zwischenspeicherungsrichtlinie, die gemeinsam auf alle Schichten anzuwenden ist, wobei die Zwischenspeicherungsrichtlinie auf der relativen Position jeder Schicht in Bezug auf mindestens eine andere Schicht in dem Speichersystem beruht; und Aufrechterhalten der Datenübertragung zwischen den Schichten bei einem Versuch des Zwischenspeicherns von Daten in mindestens einer der Schichten, um das Anwenden der Zwischenspeicherungsrichtlinie zu ermöglichen.
  2. Verfahren nach Anspruch 1, wobei das Erteilen einer Zwischenspeicherungsrichtlinie bei einer Anforderung zum Zwischenspeichern von Daten für das Zwischenspeichern von Daten lediglich auf einer ersten Schicht sorgt, wobei die erste Schicht eine in Bezug auf andere Schichten oberste Schicht aufweist.
  3. Verfahren nach Anspruch 2, wobei das Erteilen einer Zwischenspeicherungsrichtlinie für das Räumen von zwischengespeicherten Daten auf eine zweite Schicht sorgt, wenn kein ausreichender Zwischenspeicherungsplatz in Bezug auf die Cachespeicheranforderung in der ersten Schicht verfügbar ist.
  4. Verfahren nach Anspruch 3, wobei das Erteilen einer Zwischenspeicherungsrichtlinie für das Zwischenspeichern von Daten in der ersten Schicht beim Räumen sorgt.
  5. Verfahren nach Anspruch 3, wobei die erste Schicht eine virtuelle Maschinenschicht aufweist.
  6. Verfahren nach Anspruch 5, wobei die zweite Schicht eine Host-Schicht aufweist.
  7. Verfahren nach Anspruch 3, wobei das Erteilen einer Zwischenspeicherungsrichtlinie beim Erkennen eines nicht gesetzten genutzten Bits für das Versuchen eines Cachespeicher-Schreibvorgangs auf eine niedrigste Schicht mit verfügbarem Zwischenspeicherungsplatz sorgt.
  8. Verfahren nach Anspruch 7, wobei das Erteilen einer Zwischenspeicherungsrichtlinie für das Anwenden einer Leerungsrichtlinie über sämtliche Schichten hinweg sorgt, wobei die Leerungsrichtlinie das Entfernen von Daten mit einem nicht gesetzten genutzten Bit bevorzugt.
  9. Verfahren nach Anspruch 1, wobei das Erteilen einer Zwischenspeicherungsrichtlinie für das Anwenden einer Richtlinie zum Bereinigen des am längsten ungenutzten Zwischenspeichers in Bezug auf eine Gesamtheit von Zwischenspeicherungsplatz über sämtliche Speicherschichten hinweg sorgt.
  10. Vorrichtung zum Bereitstellen einer Cachespeicher-Verwaltung in einem hierarchischen virtualisierten Speichersystem, die Vorrichtung aufweisend: mindestens einen Prozessor; und ein durch einen Computer lesbares Speichermedium, auf dem ein durch einen Computer lesbarer und von dem mindestens einen Prozessor ausführbarer Programmcode enthalten ist, der durch einen Computer lesbare Programmcode aufweisend: durch einen Computer lesbaren Programmcode, der so konfiguriert ist, dass er für jede Schicht in dem Speichersystem eine relative Position in Bezug auf mindestens eine andere Schicht in dem Speichersystem bestimmt; durch einen Computer lesbaren Programmcode, der so konfiguriert ist, dass er eine Zwischenspeicherungsrichtlinie erteilt, die gemeinsam auf alle Schichten anzuwenden ist, wobei die Zwischenspeicherungsrichtlinie auf der relativen Position jeder Schicht in Bezug auf mindestens eine andere Schicht in dem Speichersystem beruht; und durch einen Computer lesbaren Programmcode, der so konfiguriert ist, dass er bei einem Versuch des Zwischenspeicherns von Daten in mindestens einer der Schichten die Datenübertragung zwischen den Schichten aufrechterhält, um das Anwenden der Zwischenspeicherungsrichtlinie zu ermöglichen.
  11. Computerprogrammprodukt zum Bereitstellen einer Cachespeicher-Verwaltung in einem hierarchischen virtualisierten Speichersystem, das Computerprogrammprodukt aufweisend: ein durch einen Computer lesbares Speichermedium, auf dem ein durch einen Computer lesbarer Programmcode enthalten ist, wobei der durch einen Computer lesbare Programmcode aufweist: durch einen Computer lesbaren Programmcode, der so konfiguriert ist, dass er für jede Schicht in dem Speichersystem eine relative Position in Bezug auf mindestens eine andere Schicht in dem Speichersystem bestimmt; durch einen Computer lesbaren Programmcode, der so konfiguriert ist, dass er eine Zwischenspeicherungsrichtlinie erteilt, die gemeinsam auf alle Schichten anzuwenden Ist, wobei die Zwischenspeicherungsrichtlinie auf der relativen Position jeder Schicht in Bezug auf mindestens eine andere Schicht in dem Speichersystem beruht; und durch einen Computer lesbaren Programmcode, der so konfiguriert ist, dass er bei einem Versuch des Zwischenspeicherns von Daten in mindestens einer der Schichten die Datenübertragung zwischen den Schichten aufrechterhält, um das Anwenden der Zwischenspeicherungsrichtlinie zu ermöglichen.
  12. Verfahren, aufweisend: Bestimmen einer relativen Position für jede Schicht in einem Speichersystem mit einem hierarchischen virtualisierten Speichersystem in Bezug auf mindestens eine andere Schicht in dem Speichersystem; Erteilen einer Zwischenspeicherungsrichtlinie, die gemeinsam auf alle Schichten anzuwenden ist, wobei die Zwischenspeicherungsrichtlinie auf der relativen Position jeder Schicht in Bezug auf mindestens eine andere Schicht in dem Speichersystem beruht; und Aufrechterhalten der Datenübertragung zwischen den Schichten bei einem Versuch des Zwischenspeicherns von Daten in mindestens einer der Schichten, um das Anwenden der Zwischenspeicherungsrichtlinie zu ermöglichen; das Erteilen einer Zwischenspeicherungsrichtlinie aufweisend: Sorgen für das Zwischenspeichern von Daten lediglich auf einer ersten Schicht bei einer Anforderung zum Zwischenspeichern von Daten, wobei die erste Schicht eine virtuelle Maschinenschicht und eine in Bezug auf andere Schichten oberste Schicht aufweist; und Sorgen für das Anwenden einer Richtlinie zum Bereinigen des am längsten ungenutzten Zwischenspeichers in Bezug auf eine Gesamtheit von Zwischenspeicherungsplatz über sämtliche Speicherschichten hinweg.
DE102016103359.6A 2015-02-27 2016-02-25 Singleton-cachespeicher-verwaltungsprotokoll für hierarchische virtualisierte speichersysteme Active DE102016103359B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/634,033 2015-02-27
US14/634,033 US9703713B2 (en) 2015-02-27 2015-02-27 Singleton cache management protocol for hierarchical virtualized storage systems

Publications (2)

Publication Number Publication Date
DE102016103359A1 true DE102016103359A1 (de) 2016-09-01
DE102016103359B4 DE102016103359B4 (de) 2021-06-02

Family

ID=56682768

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016103359.6A Active DE102016103359B4 (de) 2015-02-27 2016-02-25 Singleton-cachespeicher-verwaltungsprotokoll für hierarchische virtualisierte speichersysteme

Country Status (2)

Country Link
US (1) US9703713B2 (de)
DE (1) DE102016103359B4 (de)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US9954971B1 (en) * 2015-04-22 2018-04-24 Hazelcast, Inc. Cache eviction in a distributed computing system
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
US10075551B1 (en) * 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10505961B2 (en) 2016-10-05 2019-12-10 Amazon Technologies, Inc. Digitally signed network address
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
EP4130969A4 (de) 2020-09-10 2023-10-04 Honor Device Co., Ltd. Verfahren und vorrichtung zur einstellung von speicherkonfigurationsparametern

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751720B2 (en) * 2000-06-10 2004-06-15 Hewlett-Packard Development Company, L.P. Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy
US6772294B2 (en) * 2002-07-08 2004-08-03 Sun Microsystems, Inc. Method and apparatus for using a non-committing data cache to facilitate speculative execution
US20060053215A1 (en) * 2004-09-07 2006-03-09 Metamachinix, Inc. Systems and methods for providing users with access to computer resources
US8935456B2 (en) * 2010-11-16 2015-01-13 Vmware, Inc. Method and system for integrating database memory management in virtual machines
US9086921B2 (en) * 2010-11-16 2015-07-21 Vmware, Inc. Dynamic database memory management according to swap rates
US8732401B2 (en) 2011-07-07 2014-05-20 Atlantis Computing, Inc. Method and apparatus for cache replacement using a catalog
US9268652B1 (en) * 2012-10-31 2016-02-23 Amazon Technologies, Inc. Cached volumes at storage gateways
US9612960B2 (en) * 2012-11-19 2017-04-04 Florida State University Research Foundation, Inc. Data filter cache designs for enhancing energy efficiency and performance in computing systems
US9519581B2 (en) * 2013-09-16 2016-12-13 Vmware, Inc. Storage integration for host-based write-back caching
US9720837B2 (en) * 2014-06-27 2017-08-01 International Business Machines Corporation Allowing non-cacheable loads within a transaction

Also Published As

Publication number Publication date
US20160253262A1 (en) 2016-09-01
DE102016103359B4 (de) 2021-06-02
US9703713B2 (en) 2017-07-11

Similar Documents

Publication Publication Date Title
DE102016103359B4 (de) Singleton-cachespeicher-verwaltungsprotokoll für hierarchische virtualisierte speichersysteme
DE112017002941B4 (de) Arbeitslastoptimierte Datendeduplizierung mittels Phantomfingerabdrücken
DE112013000900B4 (de) Bewahren von Redundanz in Datendeduplizierungssystemen unter Verwendung eines Anzeigers
DE102012208141B4 (de) Ausgleich nachlassender Funktionsfähigkeit
DE102013204972B4 (de) Hybride Sicherung und Wiederherstellung eines sehr grossen Dateisystems unter Verwendung von Metadaten-Abbildsicherung und herkömmlicher Sicherung
DE112011100618B4 (de) Verwalten von Schreiboperationen auf einen Speicherbereich von Spuren, der zwischen Speichereinheiten verlagert wird
DE112016003249T5 (de) Container-Bereitstellung auf Abhängigkeitsgrundlage
DE112020003929B4 (de) Verwaltung von metadaten von virtuellen speichern
DE112020004840B4 (de) Speicherbereinigung in datenspeichersystemen
DE102016010277A1 (de) Verfahren und systeme zum verbessern von speicher-journaling
DE112011101317T5 (de) Optimieren eines Dateisystems für unterschiedliche Typen von Anwendungen in einem Datenverarbeitungs-Cluster unter Verwendung von dynamischer Blockgrössen-Granularität
DE102009034651A1 (de) Prozess und Verfahren zur Abbildung von logischen Adressen auf physische Adressen in Festkörperplatten
DE112012001162T5 (de) Defragmentierung von Datenspeicherpools
DE112020000694T5 (de) Erzeugung und ausführung von sicheren containern
DE112012002452T5 (de) Anpassungsfähiges Zwischenspeichern von Datensätzen für Halbleiterplatten
DE112013000650T5 (de) Datenzwischenspeicherungsbereich
DE112018000900T5 (de) Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Computersystem
DE112018003585B4 (de) Verfahren, Computerprogrammprodukt und Speicherbandlaufwerk-Hardwareeinheit zum Verbessern der Deduplizierung eines Bandlaufwerkspeichers
DE112017005782T5 (de) Warteschlange für Speichervorgänge
DE112018006769T5 (de) Erweiterte zwischenspeicherzuweisung basierend auf virtuellen knotenressourcen
DE102013205571B4 (de) Verfahren, Computerprogrammprodukt und Vorrichtung zum Migrieren von Datenträgern mit schlanker Speicherzuweisung in mehrschichtigen Speicherarchitekturen
DE112019005392T5 (de) Steigern von datenleistung durch transferieren von daten zwischen speicherebenen unter verwendung von arbeitslastmerkmalen
DE112018005768B4 (de) Copy-source-to-target-verwaltung in einem datenspeichersystem
DE102016103784A1 (de) Virtueller Bandspeicher unter Verwendung von Inter-Partitions-Kopien logischer Datenträger
DE112016003598T5 (de) Gleichzeitige Massenverarbeitung von baumbasierten Datenstrukturen

Legal Events

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