DE112020001089B4 - Verbessern von cache-trefferverhältnissen bei ausgewählten datenträgern in einem speichersystem - Google Patents

Verbessern von cache-trefferverhältnissen bei ausgewählten datenträgern in einem speichersystem Download PDF

Info

Publication number
DE112020001089B4
DE112020001089B4 DE112020001089.9T DE112020001089T DE112020001089B4 DE 112020001089 B4 DE112020001089 B4 DE 112020001089B4 DE 112020001089 T DE112020001089 T DE 112020001089T DE 112020001089 B4 DE112020001089 B4 DE 112020001089B4
Authority
DE
Germany
Prior art keywords
favorite
cache
favored
storage elements
storage
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
DE112020001089.9T
Other languages
English (en)
Other versions
DE112020001089T5 (de
Inventor
Lokesh Mohan Gupta
Beth Ann Peterson
Kevin Ash
Kyler Anderson
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 DE112020001089T5 publication Critical patent/DE112020001089T5/de
Application granted granted Critical
Publication of DE112020001089B4 publication Critical patent/DE112020001089B4/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
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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
    • 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/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Verfahren zum Verbessern von Cache-Trefferverhältnissen bei ausgewählten Datenträgern beim Verwenden synchroner E/A, wobei das Verfahren aufweist:
Einrichten, im Cache (218), eines ersten Satzes (404b) von nichtfavorisierten Speicherelementen aus nichtfavorisierten Speicherbereichen (402b);
Einrichten, in dem Cache, eines zweiten Satzes (404a) von favorisierten Speicherelementen aus favorisierten Speicherbereichen (402a);
Dokumentieren des ersten Satzes von nichtfavorisierten Speicherelementen in einer ersten LRU-Liste (1300a) und des zweiten Satzes von favorisierten Speicherelementen in einer zweiten LRU-Liste (1300b), wobei die nichtfavorisierten Speicherelemente aus dem Cache von einem LRU-Ende der ersten LRU-Liste entfernt werden und favorisierte Speicherelemente aus dem Cache von einem LRU-Ende der zweiten LRU-Liste entfernt werden;
Zugreifen auf die favorisierten Speicherbereiche über einen synchronen E/A-Prozess;
Zugreifen auf die nichtfavorisierten Speicherbereiche über einen nichtsynchronen E/A-Prozess;
Berechnen einer Lebensdauer für die nichtfavorisierten Speicherelemente, während der sie im Cache verbleiben und Multiplizieren der Lebensdauer mit einem Verbleibmultiplikator, um eine Zeitdauer zu bestimmen, die sich die favorisierten Speicherelemente in dem Cache verbleiben sollen.

Description

  • TECHNISCHES GEBIET
  • Diese Erfindung betrifft Systeme und Verfahren zum Erhöhen von Cache-Trefferverhältnissen bei ausgewählten Datenträgern innerhalb eines Speichersystems.
  • HINTERGRUND
  • Wenn eine E/A-Anforderung durch eine Anwendung durchgeführt wird, können mehrere Prozesse durchgeführt werden, um die Anforderung abzuarbeiten. Diese Prozesse wirken sich auf die E/A-Latenz aus, bei der es sich um einen wesentlichen Teil der Reaktionszeit der Anwendung handeln kann. zHyperLink ist eine Technologie, die zum Verringern von E/A-Latenz konzipiert ist, indem ein schneller, zuverlässiger und direkter Datenübertragungsweg zwischen einem Host-System und einem Speichersystem bereitgestellt wird. Dies wird erreicht, indem zHyperLink-Adapter auf dem z/OS-Host-System und dem Speichersystem installiert und die Komponenten unter Verwendung von zHyperLink-Kabeln miteinander verbunden werden. Diese Konfiguration erzeugt eine Punkt-zu-Punkt Verbindung zwischen dem Host-System und dem Speichersystem, die E/A-Reaktionszeiten im Vergleich zu z High-Performance FICON® (zHPF) um das bis zu Zehnfache verringert. Derartige geringe Reaktionszeiten werden erreicht, indem synchrone E/A-Anforderungen verwendet werden, die die Zeitdauer verringern, die für einige Funktionen wie beispielsweise E/A-Interrupts und z/OS-Zuteilungsoperationen erforderlich ist.
  • Eine E/A-Standardverarbeitung, die bei Verwendung von Technologien wie beispielsweise zHPF zur Verfügung steht, erfordert, dass E/A-Operationen eine Reihe von zeitaufwendigen Aufgaben wie beispielsweise z/OS-Zuteilungen, Interrupt-Verarbeitung, CPU-Warteschlangeneinreihung und erneutes Laden des L1-/L2-Prozessor-Cache durchführen. Diese und andere zur E/A-Verarbeitung erforderlichen Aufgaben können im Vergleich zum Übertragen von Daten innerhalb eines virtuellen Speichers zu relativ langen E/A-Reaktionszeiten führen, wobei Reaktionszeiten von 130+ Mikrosekunden plus Interrupt-Verarbeitung und CPU-Zuteilung betragen können.
  • Wenn eine synchrone E/A-Operation unter Verwendung von zHyperLink oder synchroner E/A allgemein durchgeführt, wartet die CPU auf dem Host-System bzw. befindet sich „im Leerlauf“, bis die E/A abgearbeitet ist oder ein Zeitüberschreitungswert erreicht ist. zHyperLink kann die Zeit erheblich verringern, die erforderlich ist, um die E/A abzuarbeiten, da das Zuteilen, die Interrupt-Verarbeitung, die CPU-Warteschlangenzeit und die Aktivitäten zum erneuten Laden des CPU-Cache nicht mehr nötig sind. Dies spart die Prozessorzeit im Zusammenhang mit zwei Kontextvertauschungen, die in eine normale E/A-Operation eingeschlossen sind, bei der der Thread in den Ruhezustand versetzt und anschließend neu zugeteilt wird und der E/A-Interrupt durchgeführt wird.
  • Um die mit synchroner E/A (z.B. zHyperLink) in Zusammenhang stehenden verbesserten E/A-Reaktionszeiten zu erreichen, muss der zum Verarbeiten der E/A verwendete Codeweg in hohem Maße optimiert werden. Jedwede Bedingungen, die eine synchrone E/A-Operation verzögern, wie beispielsweise ein Cache-Fehltreffer, können dazu führen, dass eine Benachrichtigung an ein Host-System zurückgegeben wird und die Operation unter Verwendung eines langsameren Datenübertragungsweges wie beispielsweise zHPF erneut versucht wird. Synchrone E/A ist nur erfolgreich, wenn Mikrocode eine synchrone E/A-Operation in einer sehr kurzen Zeitdauer wie beispielsweise in 10 bis 30 Mikrosekunden abarbeiten kann. Wenn die synchrone E/A-Operation nicht innerhalb dieser Zeitdauer abgearbeitet werden kann, schlägt sie unter Umständen fehl, und das Host-System muss unter Umständen die Operation über einen nicht-optimalen Weg wie beispielsweise FICON erneut versuchen.
  • Im Hinblick auf das Vorstehende werden Systeme und Verfahren benötigt, um Cache-Trefferverhältnisse bei ausgewählten Datenträgern zu verbessern, wenn synchrone E/A-Technologien wie beispielsweise zHyperLink verwendet werden. Im Idealfall verringern oder verhindern derartige Systeme und Verfahren Verzögerungen, die unter Umständen eine Ausführung synchroner E/A-Operationen verhindern.
  • Die Druckschrift US 2012 / 0 166 723 A1 betrifft ein Speichersystem mit: einen nichtflüchtigen Speicherbereich; einen Cache-Bereich mit einer Steuerinformations-Cache-Partition, in der gespeicherte Daten aus Daten bestehen, die sich von Benutzerdaten unterscheiden und Steuerinformationen enthalten, die in dem nichtflüchtigen Speicherbereich gespeichert sind, und einer Benutzerdaten-Cache-Partition, in der gespeicherte Daten Benutzerdaten enthalten, die in dem nichtflüchtigen Speicherbereich gespeichert sind; und einen Controller zum Austauschen von Daten zwischen dem nichtflüchtigen Speicherbereich und der Steuerinformations-Cache-Partition in Übereinstimmung mit einem vorbestimmten Algorithmus.
  • Die Druckschrift US 2019 / 0 324 687 A1 betrifft Techniken zum Verwalten gleichzeitiger E/As in einem Dateisystem. Die Techniken umfassen: Empfangen einer Sequenz konfligierender E/A-Listen von Schreibdaten, die in einem Cache gespeichert sind, wobei die Sequenz eine sequentielle Reihenfolge spezifiziert, in der die E/A-Listen in eine Datei, die in einem nichtflüchtigen Speicher gespeichert ist, übertragen werden sollen; Bestimmen einer ersten E/A-Liste der Sequenz, die einen Konflikt mit einer zweiten E/A-Liste der Sequenz aufweist, wobei der Konflikt zwischen der ersten E/A-Liste und der zweiten E/A-Liste ein erster gemeinsamer Block ist, in den sowohl die erste als auch die zweite E/A-Liste schreiben; und Durchführen einer ersten Verarbeitung, die die erste E/A-Liste und die zweite E/A-Liste modifiziert, um den Konflikt zu beseitigen.
  • Die Druckschrift US 5 043 885 A betrifft ein Cache-Verzeichnis, das verfolgt, welche Blöcke sich im Cache befinden, wie oft auf jeden Block im Cache nach einer Alterung von mindestens einem vorbestimmten Wert (Referenzzählung) verwiesen wurde und wie alt jeder Block seit dem letzten Verweis auf diesen Block ist, um zu bestimmen, welcher der Cache-Blöcke ersetzt wird, wenn ein Cache-Fehltreffer eintritt. Mindestens ein vorgewählter Altersgrenzwert wird verwendet, um zu bestimmen, wann der Referenzzählwert für einen bestimmten Block bei einem Cache-Treffer angepasst werden muss, und um einen Cache-Block zum Ersetzen als Funktion des Referenzzählwerts und des Blockalters auszuwählen.
  • Die Veröffentlichung „SARC: Sequential Prefetching in Adaptive Replacement Cache“ betrifft eine sequenzielle Prefetching-Strategie, die die Vorzüge von synchronem und asynchronem Prefetching kombiniert und gleichzeitig die Anomalie vermeidet, die entsteht, wenn Prefetching und Caching integriert werden, und die in der Lage ist, null Fehlversuche für sequenzielle Streams zu erreichen (GILL, Binny S.; MODHA, Dharmendra S. SARC: Sequential Prefetching in Adaptive Replacement Cache. In: USENIX Annual Technical Conference, General Track. 2005. S. 293-308).
  • KURZDARSTELLUNG
  • Die Erfindung ist das Ergebnis von Entwicklungsarbeiten als Reaktion auf den gegenwärtigen Stand der Technik und insbesondere als Reaktion auf die Probleme und Bedürfnisse auf diesem Fachgebiet, für die mit den gegenwärtig zur Verfügung stehenden Systemen und Verfahren bisher noch keine endgültige Lösung gefunden wurde. Dementsprechend wurden ein System, ein Computerprogrammprodukt und ein Verfahren entwickelt, um Cache-Trefferverhältnisse bei ausgewählten Datenträgern zu verbessern, wenn synchrone E/A-Prozesse verwendet werden. Die Merkmale des Systems, des Computerprogrammprodukts und des Verfahrens sind unabhängigen Ansprüchen angegeben. Ausführungsformen der Erfindung sind in den abhängigen Patentansprüchen angegeben. Die Merkmale und Vorteile der Erfindung werden anhand der folgenden Beschreibung und der beigefügten Ansprüche klarer, oder die Merkmale und Vorteile werden durch praktische Umsetzung der hierin im Folgenden dargelegten Erfindung ersichtlich.
  • In einem Beispiel wird ein Verfahren zum Verbessern von Cache-Trefferverhältnissen bei ausgewählten Datenträgern bereitgestellt, wenn synchrone E/A verwendet wird. Bei einer Ausführungsform beinhaltet ein derartiges Verfahren ein Einrichten, im Cache, eines ersten Satzes von nichtfavorisierten Speicherelementen aus nichtfavorisierten Speicherbereichen. Das Verfahren richtet ferner in dem Cache einen zweiten Satz von favorisierten Speicherelementen aus favorisierten Speicherbereichen ein. Das Verfahren berechnet für die nichtfavorisierten Speicherelemente eine Lebensdauer, während der sie vor dem erzwungenen Entfernen im Cache verbleiben. Das Verfahren führt ferner eine Strategie des erzwungenen Entfernens für den Cache aus, wobei die favorisierten Speicherelemente während mindestens eines bestimmten Vielfachen der Lebensdauer der nichtfavorisierten Speicherelemente im Cache aufrechterhalten werden. Bei bestimmten Ausführungsformen berechnet das Verfahren die Lebensdauer, indem ein Zeitstempel eines am längsten nicht verwendeten nichtfavorisierten Speicherelements im ersten Satz von einem Zeitstempel eines zuletzt verwendeten nichtfavorisierten Speicherelements im ersten Satz subtrahiert wird. Das offenbarte Verfahren verringert oder verhindert Verzögerungen, die unter Umständen den Betrieb eines synchronen E/A-Prozesses (z.B. zHyperLink) beim Zugreifen auf favorisierte Speicherbereiche beeinträchtigen.
  • Figurenliste
  • Zum leichteren Verständnis der Vorteile der Erfindung folgt nun eine eingehendere Beschreibung der vorstehend kurz beschriebenen Erfindung, wobei in der folgenden Beschreibung auf bestimmte Ausführungsformen Bezug genommen wird, die in den beigefügten Zeichnungen veranschaulicht sind. Unter Berücksichtigung der Tatsache, dass die Zeichnungen lediglich typische Ausführungsformen der Erfindung darstellen und daher nicht als Einschränkung des Schutzbereichs der Erfindung zu betrachten sind, werden die Ausführungsformen der Erfindung unter Verwendung der beigefügten Zeichnungen genauer beschrieben und erläutert, wobei:
    • 1 ein Übersichtsblockschema ist, das ein Beispiel einer Netzwerkumgebung zeigt, in der Systeme und Verfahren gemäß der Erfindung realisiert werden können;
    • 2 ein Übersichtsblockschema ist, das ein Beispiel eines Speichersystem zur Verwendung in der Netzwerkumgebung von 1 zeigt;
    • 3 ein Übersichtsblockschema ist, das unterschiedliche Datenübertragungswege zwischen einem Host-System und einem Speichersystem zeigt;
    • 4 ein Übersichtsblockschema ist, das ein System zum Verbessern von Cache-Trefferverhältnissen bei ausgewählten Datenträgern bei Verwendung von synchroner E/A zeigt;
    • 5 ein Übersichtsblockschema ist, das verschiedene beispielhafte Untermodule innerhalb eines Optimierungsmoduls gemäß der Erfindung zeigt;
    • 6 ein Flussdiagramm ist, das eine Ausführungsform eines Verfahrens zum erzwungenen Entfernen von Speicherelementen aus dem Cache zeigt, um freien Platz im Cache zu schaffen, während favorisierten Speicherelementen eine Bevorzugung gegeben wird;
    • 7 ein Übersichtsblockschema ist, das ein Host-System zeigt, das Befehle und/oder Listen an ein Speichersystem sendet, um zu benennen, welche Datenträger als favorisiert und nichtfavorisiert behandelt werden sollen;
    • 8 ein Flussdiagramm ist, das ein alternatives Verfahren zum erzwungenen Entfernen von Speicherelementen aus dem Cache zeigt, um freien Platz im Cache zu schaffen, während favorisierten Speicherelementen eine Bevorzugung gegeben wird;
    • 9 ein Übersichtsblockschema ist, das ein Host-System zeigt, das einen Verbleibmultiplikator an ein Speichersystem sendet, um anzugeben, wie stark eine Cache-Bevorzugung auf favorisierte Datenträger angewendet werden soll;
    • 10 ein Übersichtsblockschema ist, das ein Bevorzugungsabstimmungsmodul zum Abstimmen einer Cache-Bevorzugung für favorisierte Datenträger zeigt;
    • 11 ein Übersichtsblockschema ist, das ein erstes Beispiel einer Liste favorisierter Datenträger und zugehöriger Verbleibmultiplikatoren zeigt;
    • 12 ein Übersichtsblockschema ist, das ein zweites Beispiel einer Liste favorisierter Datenträger und zugehöriger Verbleibmultiplikatoren zeigt;
    • 13 ein Übersichtsblockschema ist, das eine LRU-Liste für jede Gruppe favorisierter Datenträger zeigt, die denselben Verbleibmultiplikator haben; und
    • 14 ein Flussdiagramm ist, das ein Verfahren zum erzwungenen Entfernen von Speicherelementen aus dem Cache unter Verwendung von LRU-Listen wie beispielsweise den in 13 veranschaulichten zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die vorliegende Erfindung kann als System, Verfahren und/oder Computerprogrammprodukt verkörpert sein. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder-medien) beinhalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert sind, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, auf der Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen aufbewahrt und gespeichert sein können. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel, ohne auf diese beschränkt zu sein, um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder eine beliebige geeignete Kombination des Vorstehenden handeln. Zu einer nicht erschöpfenden Liste konkreterer Beispiele des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine transportable Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (random access memory, RAM), ein Nur-Lese-Speicher (read-only memory, ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (erasable programmable read-only memory, EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (static random access memory, SRAM), ein transportabler Kompaktspeicherplatte-Nur-Lese-Speicher (compact disc read-only memory, CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und beliebige geeignete Kombinationen des Vorstehenden. Ein durch einen Computer lesbares Speichermedium im hierin verwendeten Sinne ist nicht so auszulegen, dass es sich dabei um flüchtige Signale an sich handelt, beispielsweise um Funkwellen oder sich frei ausbreitende elektromagnetische Wellen, um elektromagnetische Wellen, die sich durch einen Hohlleiter oder andere Übertragungsmedien ausbreiten (z.B. Lichtimpulse, die ein Lichtwellenleiterkabel durchlaufen) oder um elektrische Signale, die über ein Kabel übertragen werden.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können über ein Netzwerk, zum Beispiel das Internet, ein lokales Netzwerk ein Weitverkehrsnetzwerk und/oder ein Drahtlosnetzwerk von einem durch einen Computer lesbaren Speichermedium auf betreffende Datenverarbeitungs-/Verarbeitungs-Einheiten oder auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder eine Netzwerkschnittstelle bei jeder Datenverarbeitungs-/Verarbeitungs-Einheit 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 jeweiligen Datenverarbeitungs-/Verarbeitungs-Einheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembleranweisungen, ISA-Anweisungen (ISA = Instruction Set Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, Daten zum Setzen von Zuständen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, zu denen eine objektorientierte Programmiersprache wie beispielsweise Smalltalk, C++ oder Ähnliches und herkömmliche prozedurale Programmiersprachen wie beispielsweise die Programmiersprache „C“ oder ähnliche Programmiersprachen gehören.
  • Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer eines Benutzers, teilweise auf dem Computer eines Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer eines Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Beim letztgenannten Szenario kann ein entfernt angeordneter Computer mit dem Computer eines Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (Local Area Network, LAN) oder über ein Weitverkehrsnetzwerk (Wide Area Network, WAN), oder die Verbindung kann zu einem externen Computer hergestellt sein (beispielsweise über das Internet unter Nutzung eines Internet-Dienstanbieters (Internet Service Provider)). Bei einigen Ausführungsformen können elektronische Schaltungen, zu denen beispielsweise programmierbare Logikschaltungen, vor Ort programmierbare Schaltungen (Field-Programmable Gate Arrays, FPGA) oder programmierbare logische Arrays (PLA) gehören, die durch einen Computer lesbaren Programmanweisungen ausführen, indem Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen genutzt werden, um die elektronische Schaltung zu personalisieren, sodass Aspekte der vorliegenden Erfindung durchgeführt werden.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Flussdiagrammdarstellungen und/oder Blockschemata von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird klar sein, dass jeder Block der Flussdiagramme und/oder der Blockschemata und Kombinationen von Blöcken in den Flussdiagrammen und/oder Blockschemata mit Hilfe von durch einen Computer lesbaren Programmanweisungen realisiert werden kann bzw. können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder anderer programmierbaren Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel schaffen, um die in einem Block bzw. in den Blöcken des Flussdiagramms bzw. der Flussdiagramme und/oder des Blockschemas bzw. der Blockschemata angegebenen Funktionen/Aktionen zu realisieren. Diese durch einen Computer lesbaren Programmanweisungen können ebenfalls in einem durch einen Computer lesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass das durch einen Computer lesbare Medium mit darauf gespeicherten Anweisungen ein Erzeugnis aufweist, das Anweisungen enthält, die die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebene Funktion/Aktion realisieren.
  • Die durch einen Computer lesbaren Programmanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Arbeitsschritten ausgeführt wird, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer, auf anderen programmierbaren Vorrichtungen oder Einheiten ausgeführt werden, die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebenen Funktionen/Aktionen realisieren.
  • Unter Bezugnahme auf 1 ist dort ein Beispiel einer Netzwerkumgebung 100 veranschaulicht. Die Netzwerkumgebung 100 ist dargestellt, um ein Beispiel einer Netzwerkumgebung zu zeigen, in der Systeme und Verfahren gemäß der Erfindung realisiert werden können. Die Netzwerkumgebung 100 ist beispielhaft und nicht als Einschränkung dargestellt. Tatsächlich können die hierin offenbarten Systeme und Verfahren außer auf die gezeigte Netzwerkumgebung 100 auf eine breite Vielfalt unterschiedlicher Netzwerkumgebungen anwendbar sein.
  • Wie gezeigt beinhaltet die Netzwerkumgebung 100 einen oder mehrere Computer 102, 106, die über ein Netzwerk 104 untereinander verbunden sind. Das Netzwerk 104 kann zum Beispiel ein lokales Netzwerk (Local Area Network, LAN) 104, ein Weitverkehrsnetzwerk (Wide Area Network, WAN) 104, das Internet 104, ein Intranet 104 oder dergleichen beinhalten. Bei bestimmten Ausführungsformen können die Computer 102, 106 sowohl Client-Computer 102 als auch Server-Computer 106 (die hierin auch als „Host-Systeme“ 106 bezeichnet werden) beinhalten. Im Allgemeinen leiten die Client-Computer 102 Datenübertragungssitzungen ein, während die Server-Computer 106 auf Anforderungen von den Client-Computern 102 warten. Bei bestimmten Ausführungsformen können sich die Computer 102 und/oder Server 106 mit einem oder mehreren internen oder externen direkt angeschlossenen Speichersystemen 110a (z.B. Anordnungen aus Festplattenlaufwerken, Festkörperlaufwerken, Bandlaufwerken usw.) verbinden. Diese Computer 102, 106 und direkt angeschlossenen Speichersysteme 110a können unter Verwendung von Protokollen wie beispielsweise ATA, SATA, SCSI, SAS, Fibre Channel oder dergleichen Daten austauschen.
  • Die Netzwerkumgebung 100 kann bei bestimmten Ausführungsformen ein Speichernetzwerk 108 hinter den Servern 106 wie beispielsweise ein Speichernetzwerk (Storage Area Network, SAN) 108 oder ein LAN 108 beinhalten (z.B. bei Verwendung von Network Attached Storage). Dieses Netzwerk 108 kann die Server 106 mit einem oder mehreren Speichersystemen wie beispielsweise Anordnungen 110b aus Festplattenlaufwerken oder Festkörperlaufwerken, Bandbibliotheken 110c, einzelnen Festplattenlaufwerken 110d oder Festkörperlaufwerken 110d, Bandlaufwerken 110e CD-ROM-Bibliotheken oder dergleichen verbinden. Um auf ein Speichersystem 110 zuzugreifen, kann ein Host-System 106 Daten über physische Verbindungen von einem oder mehreren Anschlüssen am Host 106 zu einem oder mehreren Anschlüssen auf dem Speichersystem 110 übertragen. Eine Verbindung kann über einen Switch, eine Struktur eine direkte Verbindung oder dergleichen erfolgen. Bei bestimmten Ausführungsformen können die Server 106 und Speichersysteme 110 unter Verwendung eines Vernetzungsstandards wie beispielsweise Fibre Channel (FC) Daten übertragen.
  • Unter Bezugnahme auf 2 ist dort eine Ausführungsform eines Speichersystems 110 veranschaulicht, das eine Anordnung aus Festplattenlaufwerken 204 und oder Festkörperlaufwerken 204 enthält. Wie gezeigt beinhaltet das Speichersystem 110 eine Speichersteuereinheit 200, einen oder mehrere Switches 202 und ein oder mehrere Speicherlaufwerke 204 wie beispielsweise Festplattenlaufwerke 204 oder Festkörperlaufwerke 204 (wie beispielsweise auf Flash-Memory beruhende Laufwerke 204). Die Speichersteuereinheit 200 kann einen oder mehrere Hosts 106 (z.B. Open-System- und/oder Großrechner-Server 106 aktivieren, auf denen Betriebssysteme wie beispielsweise z/OS, zVM oder dergleichen ausgeführt werden), um auf Daten auf dem einen oder den mehreren Speicherlaufwerken 204 zuzugreifen.
  • Bei ausgewählten Ausführungsformen beinhaltet die Speichersteuereinheit 200 einen oder mehrere Server 206. Die Speichersteuereinheit 200 kann außerdem Host-Adapter 208 und Einheitenadapter 210 beinhalten, um die Speichersteuereinheit 200 mit Host-Einheiten 106 bzw. Speicherlaufwerken 204 zu verbinden. Mehrere Server 206a, 206b können Redundanz bereitstellen, um zu gewährleisten, dass angeschlossenen Hosts 106 stets Daten zur Verfügung stehen. Somit kann, wenn ein Server 206a ausfällt, der andere Server 206b die E/A-Last des ausgefallenen Servers 206a übernehmen, um zu gewährleisten, dass E/A weiterhin zwischen den Hosts 106 und den Speicherlaufwerken 204 besteht. Dieser Prozess kann als „Ausweichbetrieb“ (Failover) bezeichnet werden.
  • Bei ausgewählten Ausführungsformen kann jeder Server 206 einen oder mehrere Prozessoren 212 und einen Speicher 214 beinhalten. Der Speicher 214 kann flüchtigen Speicher (z.B. RAM) sowie nicht-flüchtigen Speicher (z.B. ROM, EPROM, EEPROM, Festplatten, Flash-Speicher usw.) beinhalten. Der flüchtige und der nicht-flüchtige Speicher können bei bestimmten Ausführungsformen Softwaremodule speichern, die auf dem/den Prozessor(en) 212 ausgeführt werden und zum Zugreifen auf Daten in den Speicherlaufwerken 204 verwendet werden. Diese Softwaremodule können alle Lese- und Schreibanforderungen in Bezug auf logische Datenträger in den Speicherlaufwerken 204 verwalten.
  • Bei ausgewählten Ausführungsformen beinhaltet der Speicher 214 einen Cache 218 wie beispielsweise einen DRAM-Cache 218. Sobald ein Host 106 (z.B. ein Open-System- oder ein Großrechner-Server 106) eine Schreiboperation durchführt, kann der Server 206, der den Lesevorgang durchführt, Daten aus den Speicherlaufwerken 204 abrufen und diese in seinem Cache 218 für den Fall speichern, dass diese erneut benötigt werden. Wenn die Daten durch einen Host 106 erneut angefordert werden, kann der Server 206 anstelle des Abrufens aus dem Speicherlaufwerken 204 die Daten aus dem Cache 218 abrufen, wodurch sowohl Zeit als auch Ressourcen gespart werden. In ähnlicher Weise kann, wenn ein Host 106 einen Schreibvorgang durchführt, der Server 106, der die Schreibanforderung empfängt, den Schreibvorgang in seinem Cache 218 speichern und den Schreibvorgang zu einem späteren Zeitpunkt auf die Speicherlaufwerke 204 auslagern. Wenn ein Schreibvorgang im Cache 218 gespeichert wird, kann der Schreibvorgang ebenfalls in einem nichtflüchtigen Speicher (non-volatile storage, NVS) 220 des gegenüberliegenden Servers 206 gespeichert werden, sodass der Schreibvorgang durch den gegenüberliegenden Server 206 wiederhergestellt werden kann, wenn der erste Server 206 ausfällt. Bei bestimmten Ausführungsformen ist der NVS 220 als batteriegestützter Speicher im gegenüberliegenden Server 206 realisiert.
  • Ein Beispiel eines Speichersystems 110, das eine Architektur hat, die der in 2 veranschaulichten ähnelt, ist das Unternehmensspeichersystem IBM DS8000™. Beim DS8000™ handelt es sich um eine sehr leistungsfähige Speichersteuereinheit mit hoher Kapazität, die Plattenspeicher bereitstellt, der zur Aufrechterhaltung des Dauerbetriebs konzipiert ist. Ungeachtet dessen sind die hierin offenbarten Systeme und Verfahren nicht auf den Betrieb mit dem Unternehmensspeichersystem IBM DS8000™ 110 beschränkt, sondern können mit einem beliebigen vergleichbaren oder analogen Speichersystem 110 unabhängig von Hersteller, Produktbezeichnung, Komponenten oder Komponentenbezeichnungen betrieben werden, die dem System 110 zugehörig sind. Des Weiteren gilt ein beliebiges Speichersystem, das von einer oder mehreren Ausführungsformen der Erfindung profitieren könnte, als in den Schutzbereich der Erfindung fallend. Somit trägt das IBM DS8000™ beispielhaften Charakter und ist nicht als Einschränkung zu verstehen.
  • Unter Bezugnahme auf 3 können, wenn eine E/A-Anforderung durch eine Anwendung durchgeführt wird, die sich auf einem Host-System 106 befindet, mehrere Prozesse durchgeführt werden, um die Anforderung abzuarbeiten. Diese Prozesse beeinträchtigen unter Umständen die E/A-Latenz und die Reaktionszeit der Anwendung. zHyperLink ist eine Technologie, die zum Verringern von E/A-Latenz konzipiert ist, indem ein schneller, zuverlässiger und direkter Datenübertragungsweg 300 zwischen einem Host-System und einem Speichersystem 110 bereitgestellt wird. Dies kann erreicht werden, indem zHyperLink-Adapter auf dem-Host-System 106 und dem Speichersystem 110 installiert und die Komponenten unter Verwendung von zHyperLink-Kabeln verbunden werden. Diese Konfiguration erzeugt eine Punkt-zu-Punkt-Verbindung 300 zwischen dem Hosts-System 106 und der Speichersystemsteuereinheit 200. Diese Technologie kann E/A-Reaktionszeiten im Vergleich zur Verwendung eines herkömmlichen Daten Übertragungsweges 302 wie beispielsweise eines zHPF-Datenübertragungspfades 302 (zHPF = z High-Performance FICON®, zHPF) um das bis zu Zehnfache verringern. Derartige geringe Reaktionszeiten können erreicht werden, indem synchrone E/A-Anforderungen verwendet werden, die die Zeitdauer verringern, die für einige Funktionen wie beispielsweise E/A-Interrupts und E/A-Zuteilungsoperationen erforderlich ist.
  • Eine E/A-Standardverarbeitung, die bei Verwendung von Technologien wie beispielsweise zHPF zur Verfügung steht, erfordert, dass E/A-Operationen eine Reihe von zeitaufwendigen Aufgaben wie beispielsweise z/OS-Zuteilungen, Interrupt-Verarbeitung, CPU-Warteschlangeneinreihung und erneutes Laden des L1-/L2-Prozessor-Cache durchführen. Diese und andere zur E/A-Verarbeitung erforderlichen Aufgaben können im Vergleich zum Übertragen von Daten innerhalb eines virtuellen Speichers zu relativ langen E/A-Reaktionszeiten führen, wobei Reaktionszeiten 130+ Mikrosekunden plus Interrupt-Verarbeitung und CPU-Zuteilung betragen können.
  • Wenn eine synchrone E/A über den leistungsfähigeren Datenübertragungsweg 300 durchgeführt wird, kann die CPU auf dem Host-System 106 warten oder sich „im Leerlauf“ befinden, bis die E/A abgearbeitet ist oder ein Zeitüberschreitungswert erreicht ist. zHyperLink kann die Zeit erheblich verringern, die erforderlich ist, um die E/A abzuarbeiten, da das Zuteilen, die Interrupt-Verarbeitung, die CPU-Warteschlangenzeit und die Aktivitäten zum erneuten Laden des CPU-Cache nicht mehr nötig sind. Dies verringert Prozessorzeit, die zum Durchführen von zwei Kontextvertauschungen bei einer normalen E/A-Operation benötigt wird, bei der der Thread in den Ruhezustand versetzt und anschließend neu zugeteilt wird und der E/A-Interrupt durchgeführt wird.
  • Um die mit synchroner E/A in Zusammenhang stehenden verbesserten E/A-Reaktionszeiten zu erreichen, muss der zum Verarbeiten der E/A verwendete Codeweg in hohem Maße optimiert werden. Jedwede Bedingungen, die eine synchrone E/A-Operation verzögern, wie beispielsweise ein Cache-Fehltreffer, können dazu führen, dass eine Benachrichtigung an ein Host-System 106 zurückgegeben wird und die Operation über einen langsameren Datenübertragungsweg 302 wie beispielsweise zHPF erneut versucht wird. Synchrone E/A über den leistungsfähigeren Datenübertragungsweg 300 ist in der Regel nur erfolgreich, wenn Mikrocode eine synchrone E/A-Operation in einer sehr kurzen Zeitdauer wie beispielsweise in 10 bis 30 Mikrosekunden durchführen kann. Wenn eine synchrone E/A-Operation nicht innerhalb dieser Zeitdauer abgearbeitet werden kann, schlägt die synchrone E/A-Operation unter Umständen fehl, und das Host-System 106 muss unter Umständen die Operation über einen nichtoptimalen Weg 302 wie beispielsweise FICON erneut versuchen.
  • Unter Bezugnahme auf 4 und fortgesetzter allgemeiner Bezugnahme auf 3 sind die angeforderten Daten idealerweise im Cache 218 enthalten, um synchrone E/A in Bezug auf Daten durchzuführen, die in Datenträgern 304 des Speichersystems 110 gespeichert sind. Ein Cache-Fehltreffer kann dazu führen, dass die synchrone E/A-Operation fehlschlägt und über einen langsameren Datenübertragungsweg 302 wie beispielsweise zHPF erneut versucht werden muss. Um Cache-Trefferverhältnisse bei Daten zu verbessern, auf die unter Verwendung von synchroner E/A zugegriffen wird, können bei bestimmten Ausführungsformen Datenträger 304 auf einem Datenspeichersystem 110 in favorisierte Datenträger 304a und nichtfavorisierte Datenträger 304b unterteilt sein. Bei favorisierten Datenträgern 304a kann es sich um diejenigen Datenträger 304 handeln, auf die vorzugsweise unter Verwendung von synchroner E/A zugegriffen wird. Bei diesen kann es sich um Datenträger 304 handeln, die als wichtiger oder kritisch angesehen werden oder Daten enthalten, bei denen Leistungsfähigkeit wichtig oder kritisch ist (z.B. Verzeichnisse usw.). Im Gegensatz hierzu kann es sich bei nichtfavorisierten Datenträgern 304b um beliebige Datenträger 304 handeln, die nicht als favorisierte Datenträger 304a gekennzeichnet sind.
  • Wie in 4 gezeigt, können die Datenträger 304 aus Speicherelementen 402 wie beispielsweise Spuren bestehen. Speicherelemente 402 aus favorisierten Datenträgern 304a können als favorisierte Speicherelemente 402a gekennzeichnet sein, wohingegen Speicherelemente 402 aus nichtfavorisierten Datenträgern 304b als nichtfavorisierte Speicherelemente 402b gekennzeichnet sein können. Zu einem beliebigen gegebenen Zeitpunkt kann ein Cache 218 des Speichersystems 110 einen ersten Satz 404b von nichtfavorisierten Speicherelementen 402b und einen zweiten Satz 404a von favorisierten Speicherelementen 402a aus den nichtfavorisierten Datenträgern 304b bzw. den favorisierten Datenträgern 304a speichern. Da es sich bei den favorisierten Datenträgern 304a um diejenigen Datenträger 304 handelt, bei denen die Verwendung von synchroner E/A bevorzugt ist, können die favorisierten Speicherelemente 402a im Cache 218 gegenüber den nichtfavorisierten Speicherelementen 402b bevorzugt werden. Dies erhöht idealerweise Cache-Trefferverhältnisse bei den favorisierten Speicherelementen 402a, wodurch synchrone E/A optimiert und der Prozentsatz synchroner E/A-Operationen erhöht werden, die erfolgreich abgearbeitet werden.
  • Um eine bevorzugte Behandlung favorisierter Speicherelemente 402a gegenüber nichtfavorisierten Speicherelementen 402b im Cache 218 bereitzustellen, kann ein Optimierungsmodul 400 bereitgestellt werden. Unter anderem kann das Optimierungsmodul 400 Funktionalität bereitstellen, um zu kennzeichnen, welche Datenträger 304 favorisiert und nichtfavorisiert sind, sowie eine Strategie des erzwungenen Entfernens aus dem Cache realisieren, wobei favorisierte Speicherelemente 402a länger als nichtfavorisierte Speicherelemente 402b im Cache 218 verbleiben. Das Optimierungsmodul 400 und dessen Funktionalität werden im Zusammenhang mit 5 ausführlicher erörtert.
  • Unter Bezugnahme auf 5 ist dort ein Übersichtblockschema veranschaulicht, das das Optimierungsmodul 400 und zugehörige Untermodule zeigt. Das Optimierungsmodul 400 und zugehörige Untermodule können in Hardware, Software, Firmware oder Kombinationen davon realisiert sein. Das Optimierungsmodul 400 und zugehörige Untermodule sind beispielhaft und nicht als Einschränkung dargestellt. Bei unterschiedlichen Ausführungsformen können mehr oder weniger Untermodule bereitgestellt sein. Zum Beispiel kann die Funktionalität einiger Untermodule in einem einzigen oder in einer kleineren Anzahl von Submodulen kombiniert sein, oder die Funktionalität eines einzigen Untermoduls kann über mehrere Untermodule hinweg verteilt sein. Zwar sind das Optimierungsmodul 400 und zugehörige Untermodule innerhalb des Speichersystems 110 gezeigt, jedoch ist die gesamte Funktionalität weder zwangsläufig innerhalb des Speichersystems 110 realisiert noch auf eine Realisierung innerhalb des Speichersystems 110 beschränkt. Daher ist die Position des Optimierungsmoduls 400 und zugehöriger Untermodule beispielhaft und nicht als Einschränkung bereitgestellt.
  • Wie gezeigt beinhaltet das Optimierungsmodul 400 eines oder mehreres aus einem Einrichtungsmodul 500, einem Anpassungsmodul 502, einem Lebensdauer-Ermittlungsmodul 504, einem Verbleib-Ermittlungsmodul 506 und einem Modul 508 zum erzwungenen Entfernen aus dem Cache. Das Einrichtungsmodul 500 kann so konfiguriert sein, dass wie zuvor erörtert favorisierte Datenträger 304a und nichtfavorisierte Datenträger 304b gekennzeichnet werden. Bei bestimmten Ausführungsformen übermittelt das Host-System 106 diese Kennzeichnungen zum Speichersystem 110. Bei bestimmten Ausführungsformen werden die favorisierten/nichtfavorisierten Datenträger 304 unter Verwendung eines Online-Befehls oder einer Konfigurationsliste eingerichtet. Bei anderen Ausführungsformen kann eine Funktionalität in das Host-System 106 integriert sein, um zu ermitteln, welche Datenträger 304 favorisiert/nicht favorisiert werden sollen. Zum Beispiel kann das Host-System 106 E/A-Muster beobachten und feststellen, dass auf bestimmte Datenträger 304 unter Verwendung des schnelleren synchronen E/A-Prozesses zugegriffen werden sollte oder vorzugsweise zugegriffen wird. Das Host-System 106 kann diese Datenträger 304 zu dem Satz von favorisierten Datenträgern 304a hinzufügen.
  • Das Anpassungsmodul 502 kann anpassen, welche Datenträger 304 favorisiert/nichtfavorisiert werden. Zum Beispiel können sich im Laufe der Zeit Zugriffsmuster oder die Bedeutung von Daten auf den Datenträgern 304 ändern. Das Anpassungsmodul 502 kann bei bestimmten Ausführungsformen anpassen, welche Datenträger 304 als favorisiert/nichtfavorisiert betrachtet werden, während sich Zugriffsmuster oder die Bedeutung von Daten ändern. Alternativ kann das Anpassungsmodul 502 einem Benutzer ermöglichen, die Datenträger 304 manuell anzupassen, die als favorisiert/nicht-favorisiert betrachtet werden. Bei bestimmten Ausführungsformen sendet das Host-System 102, wie in Zusammenhang mit 7 ausführlicher erläutert wird, in regelmäßigen Abständen Befehle und/oder Listen an das Datenspeichersystem 110, um zu ändern oder zu aktualisieren, welche Datenträger 304 als favorisiert oder nichtfavorisiert betrachtet werden.
  • Das Lebensdauer-Ermittlungsmodul 504 kann so konfiguriert sein, dass die Lebensdauer (d.h. Verbleibdauer) von Speicherelementen (z.B. Spuren) im Cache 218 ermittelt wird. Zum Beispiel kann das Lebensdauer-Ermittlungsmodul 504 bei bestimmten Ausführungsformen so konfiguriert sein, das die Zeitdauer ermittelt wird, während der nichtfavorisierte Speicherelemente 402b im Cache 218 verbleiben, bevor sie zwangsweise entfernt werden. Bei der Lebensdauer kann es sich um eine Zahl zu einem bestimmten Zeitpunkt oder um einen Durchschnitt über einen Zeitraum hinweg handeln. Bei bestimmten Ausführungsformen wird die Lebensdauer berechnet, indem ein Zeitstempel eines am längsten nicht verwendeten nichtfavorisierten Speicherelements 402b im Cache 218 von einem Zeitstempel eines zuletzt verwendeten nichtfavorisierten Speicherelements 402b im Cache 218 subtrahiert wird, wobei die Zeitstempel angeben, wann zuletzt auf die nichtfavorisierten Speicherelemente 402b zugegriffen wurde.
  • Das Verbleib-Ermittlungsmodul 506 hingegen kann ermitteln, wie lange ein bestimmtes Speicherelement im Cache 218 verblieben ist. Die Verbleibdauer kann zum Beispiel ermittelt werden, indem der Zeitstempel eines Speicherelements 402 (der den Zeitpunkt angibt, zu dem zuletzt auf das Speicherelement 402 zugegriffen wurde) von der aktuellen Zeit subtrahiert wird.
  • Unter Verwendung der durch das Lebensdauer-Ermittlungsmodul 504 berechneten Lebensdauer und der durch das Verbleib-Ermittlungsmodul 506 berechneten Verbleibdauer kann das Modul 508 zum erzwungenen Entfernen aus dem Cache eine Strategie des erzwungenen Entfernens aus dem Cache ausführen, sodass die favorisierten Speicherelemente 402a über die Lebensdauer der nichtfavorisierten Speicherelemente 402b hinaus im Cache 218 aufrechterhalten werden. Zum Beispiel kann die Strategie des erzwungenen Entfernens aus dem Cache erfordern, dass favorisierte Speicherelemente 402a doppelt so lange wie die Lebensdauer von nichtfavorisierten Speicherelementen 402b im Cache 218 aufrechterhalten werden. Andere Vielfache (d.h. Zahlen, Dezimalzahlen oder Bruchzahlen größer als eins) sind möglich und fallen in den Schutzbereich der Erfindung. Ein Beispiel eines Verfahrens 600, das durch das Modul 508 zum erzwungenen Entfernen aus dem Cache ausgeführt werden kann, wird in Zusammenhang mit 6 beschrieben.
  • 6 zeigt eine Ausführungsform eines Verfahrens 600 zum erzwungenen Entfernen von Einträgen aus dem Cache 218, um freien Platz im Cache 218 zu schaffen. Das Verfahren 600 nimmt Bezug auf den ersten Satz 404b von nichtfavorisierten Speicherelementen 402b und den zweiten Satz 404a von favorisierten Speicherelementen 402a, die zuvor in Zusammenhang mit 4 beschrieben wurden. Bei bestimmten Ausführungsformen ist der erste Satz 404b von nichtfavorisierten Speicherelementen 402b in einer ersten LRU-Liste (d.h. einer „Nichtfavorisiert“-LRU-Liste) (LRU = least recently used, am längsten nicht verwendet) dokumentiert, und der zweite Satz 404a von favorisierten Speicherelementen 402a ist in einer zweiten LRU-Liste (d.h. einer „Favorisiert“-LRU-Liste) dokumentiert.
  • Wie gezeigt ermittelt 602 das Verfahren 600 zu Beginn, ob der Zeitpunkt gekommen ist, ein oder mehrere Speicherelemente 402 zwangsweise aus dem Cache 218 zu entfernen. Dieser Schritt 602 kann bei bestimmten Ausführungsformen ein Ermitteln einschließen, ob im Cache 218 wenig freier Platz zur Verfügung steht. Wenn der Zeitpunkt gekommen ist, Einträge zwangsweise aus dem Cache 218 zu entfernen, ermittelt 604 das Verfahren 600, ob die „Favorisiert“-LRU-Liste leer ist. Wenn dies der Fall ist, entfernt 606 das Verfahren 600 das älteste nichtfavorisierte Speicherelement 402b (d.h. das nichtfavorisierte Speicherelement 402b mit dem ältesten Zeitstempel) zwangsweise aus dem Cache 218, das in der „Nichtfavorisiert“-LRU-Liste aufgeführt ist. Wenn die „Favorisiert“-LRU-Liste nicht leer ist, ermittelt 608 das Verfahren 600, ob die „Nichtfavorisiert“-LRU-Liste leer ist. Wenn dies der Fall ist, entfernt 610 das Verfahren 600 das älteste favorisierte Speicherelement 402a zwangsweise aus dem Cache 218, das in der „Favorisiert“-LRU-Liste aufgeführt ist.
  • Wenn weder die „Nichtfavorisiert“-LRU-Liste noch die „Favorisiert“-LRU-Liste leer ist, ermittelt 612 das Verfahren 600, ob das älteste nichtfavorisierte Speicherelement 402b in der „Nichtfavorisiert“-LRU-Liste einen älteren Zeitstempel als das älteste favorisierte Speicherelement 402a in der „Favorisiert“-LRU-Liste hat. Wenn dies der Fall ist, entfernt 614 das Verfahren 600 das älteste nichtfavorisierte Speicherelement 402b in der „Nichtfavorisiert“-LRU-Liste zwangsweise aus dem Cache 218. Wenn nicht, geht das Verfahren 600 zu Schritt 616 über. Bei Schritt 616 ermittelt 616 das Verfahren 600, ob die Verbleibdauer eines ältesten favorisierten Speicherelements 402a im Cache 218 (d.h. die Zeitdauer, während der das älteste favorisierte Speicherelement 402a in der „Favorisiert“-LRU-Liste im Cache 218 verblieben ist) kürzer als das Vielfache N, multipliziert mit der Lebensdauer von nichtfavorisierten Speicherelementen 402b im Cache 218 ist. Wenn dies der Fall ist, entfernt 618 das Verfahren 600 das älteste nichtfavorisierte Speicherelement 402b in der „Nichtfavorisiert“-LRU-Liste zwangsweise aus dem Cache 218. Wenn im Gegensatz hierzu die Verbleibdauer eines ältesten favorisierten Speicherelements 402a in der „Favorisiert“-LRU-Liste länger als N * (Lebensdauer von nichtfavorisierten Speicherelementen 402b im Cache 218) ist, entfernt 620 das Verfahren 600 das älteste favorisierte Speicherelement 402a in der „Favorisiert“-LRU-Liste zwangsweise aus dem Cache 218. Bei der Variablen N handelt es sich um einen Verbleibmultiplikator, dessen Einzelheiten im Folgenden ausführlicher erläutert werden.
  • Unter Bezugnahme auf 7 kann ein Host-System 102 wie zuvor erwähnt in regelmäßigen Abständen Befehle und/oder Listen an das Speichersystem 110 senden, zu ändern oder zu aktualisieren, welche Datenträger 304 als favorisiert oder nichtfavorisiert betrachtet werden, und somit, welchen Speicherelementen 402 eine Cache-Bevorzugung gegeben wird. Bei bestimmten Ausführungsformen sendet das Host-System 102 in regelmäßigen Abständen einen Befehl mit einer Liste 700 von Datenträgern 304, die favorisiert werden sollten, an das Speichersystem 110. Diese Liste 700 von Datenträgern 304 kann sich jedes Mal ändern, wenn das Host-System 102 einen Befehl zum Speichersystem 110 ausgibt. Wenn ein Datenträger 304 zuvor in der Liste 700 als favorisiert gekennzeichnet war, aber in einer neuen Liste 700 nicht als solches gekennzeichnet ist, kann das Speichersystem 110 den Status des Datenträgers 304 in „Nichtfavorisiert“ ändern und das Bereitstellen einer Cache-Bevorzugung für den Datenträger 304 beenden.
  • Bei bestimmten Ausführungsformen kann das Host-System 102 einen Indikator (z.B. einen „FAVORISIERTEN CACHE ERZWINGEN“-Indikator) für einen bestimmten Datenträger 304 setzen, der angibt, dass der Datenträger 304 seinen „Favorisiert“-Status behalten soll, bis das Host-System 102 den Datenträgerstatus bekräftigend in „Nichtfavorisiert“ ändert. Das Host-System 102 kann einen „FAVORISIERTEN CACHE ENTFERNEN“-Befehl verwenden, um den Status eines Datenträgers 304 von „Favorisiert“ in „Nichtfavorisiert“ zu ändern. Bei bestimmten Ausführungsformen kann der „FAVORISIERTEN CACHE ERZWINGEN“-Indikator eine ihm beigefügte Dauer haben, die angibt, wie lange der Datenträger 304 den „Favorisiert“-Status haben sollte, bevor er in den „Nichtfavorisiert“-Status zurückkehrt. Nachdem die Dauer abgelaufen und der Datenträger 304 nicht mehr in der Liste 700 enthalten ist, kann der Status des Datenträgers 304 automatisch in „Nichtfavorisiert“ geändert werden, sodass er keine Cache-Bevorzugung erhält.
  • Da Datenträger 304 dynamisch vom „Favorisiert“- in den „Nichtfavorisiert“-Status und umgekehrt geändert werden können, können unter Bezugnahme auf 8 verschiedene Modifikationen an dem Verfahren 600 von 6 vorgenommen werden, um die Tatsache zu berücksichtigen, dass sich ein Status eines Datenträgers geändert haben kann. Dieser Status kann ein Verschieben von Speicherelementen 402 aus der „Nichtfavorisiert“-LRU-in die „Favorisiert“-LRU-Liste und umgekehrt rechtfertigen.
  • 8 zeigt eine Ausführungsform eines Verfahrens 800 zum erzwungenen Entfernen von Einträgen (d.h. Speicherelementen 402) aus dem Cache 218, um freien Platz im Cache 218 zu schaffen. Dieses Verfahren 800 ähnelt dem in 6 veranschaulichten Verfahren 600 mit der Ausnahme, dass das Verfahren 800 modifiziert wurde, um Datenträger 304 zu berücksichtigen, die sich vom „Favorisiert“- in den „Nichtfavorisiert“-Status und umgekehrt geändert haben können. Die Schritte des Verfahrens 800, bei denen es sich um dieselben wie beim Verfahren 600 von 6 handelt, sind mit derselben Nummerierung gezeigt, während neuen Schritten (d.h. den Schritten 802, 804 und 806) eine neue Nummerierung zugewiesen wurde. Der Ablauf des Verfahrens 800 wurde im Vergleich zum Verfahren 600 von 6 ebenfalls etwas geändert, um die neuen Schritte 802, 804 und 806 zu berücksichtigen.
  • Wie in 8 gezeigt, kann das Verfahren 800 nach dem Ermitteln 608, ob die „Nichtfavorisiert“-LRU-Liste leer ist, ermitteln 802, ob der älteste Eintrag der „Favorisiert“-LRU-Liste nicht mehr favorisiert ist. Mit anderen Worten, das Verfahren 800 kann ermitteln 802, ob der Status des ältesten Eintrags (d.h. Speicherelement 402) in der „Favorisiert“-LRU-Liste von „Favorisiert“ in „Nichtfavorisiert“ geändert wurde. Wenn dies der Fall ist, entfernt 610 das Verfahren 800 den ältesten Eintrag in der „Favorisiert“-LRU-Liste zwangsweise aus dem Cache 218.
  • Nachdem der Entscheidungsschritt 616 ausgeführt wurde, ermittelt 806 das Verfahren 800 in ähnlicher Weise, ob der älteste Eintrag in der „Nichtfavorisiert“-LRU-Liste jetzt favorisiert ist. Mit anderen Worten, das Verfahren 800 ermittelt 806, ob der Status des ältesten Eintrags (d.h. Speicherelement 402) in der „Nichtfavorisiert“-LRU-Liste von „Nichtfavorisiert“ in „Favorisiert“ geändert wurde. Wenn dies der Fall ist, verschiebt 804 das Verfahren 800 den Eintrag aus der „Nichtfavorisiert“-LRU-Liste an das zuletzt verwendete Ende der „Favorisiert“-LRU-Liste, und das Verfahren 800 kehrt zu Schritt 612 zurück. Wenn nicht, entfernt 618 das Verfahren 800 den ältesten Eintrag in der „Nicht-favorisiert“-LRU-Liste zwangsweise aus dem Cache 218.
  • Unter Bezugnahme auf 9 kann ein Host-System 102 wie zuvor erwähnt in regelmäßigen Abständen einen Befehl an ein Speichersystem 110 senden, der eine Liste 700 beinhaltet, welche Datenträger 304 favorisiert werden sollten. Bei bestimmten Ausführungsformen kann das Host-System 102 mit der Liste 700 einen Verbleibmultiplikator 902 beinhalten, der angibt, wie stark eine Cache-Bevorzugung auf die favorisierten Datenträger 304a angewendet werden soll. Je höher der Verbleibmultiplikator 902, desto stärker die Cache-Bevorzugung und somit desto länger die Zeit, während der favorisierte Datenträger 304a im Verhältnis zu nichtfavorisierten Datenträgern 304b im Cache 218 gehalten werden. Je kleiner der Verbleibmultiplikator 902, desto schwächer die Cache-Bevorzugung und somit desto kürzer die Zeit, während der favorisierte Datenträger 304a im Verhältnis zu nichtfavorisierten Datenträgern 304b im Cache 218 gehalten werden. Bei bestimmten Ausführungsformen ist ein einziger Verbleibmultiplikator 902 für alle favorisierten Datenträger 304a in der Liste 700 bereitgestellt. Bei anderen Ausführungsformen sind unterschiedliche Verbleibmultiplikatoren 902 für unterschiedliche favorisierte Datenträger 304a bereitgestellt, wie in Zusammenhang mit den 10 und 11 ausführlicher erläutert wird.
  • Ein Bevorzugungsabstimmungsmodul 900 kann auf dem Host-System 102 oder auf einem anderen System bereitgestellt sein, um zu ermitteln, welche Datenträger 304 als favorisierte Datenträger 304a behandelt werden sollten, sowie, um den/die Verbleibmultiplikator(en) 902 für jeden der favorisierten Datenträger 304a zu ermitteln. Im Allgemeinen kann das Bevorzugungsabstimmungsmodul 900 E/A zu den Datenträgern 304 auf dem Speichersystem 110 nachverfolgen und auf der Grundlage dieser Nachverfolgungsinformationen ermitteln, welche Datenträger 304 als favorisiert behandelt werden sollten. Unter Verwendung der Nachverfolgungsinformationen kann das Bevorzugungsabstimmungsmodul 900 außerdem ermitteln, wie stark die Cache-Bevorzugung für die favorisierten Datenträger 304a einzeln oder als Ganzes sein sollte.
  • Unter Bezugnahme auf 10 ist dort ein Übersichtblockschema veranschaulicht, das das Bevorzugungsabstimmungsmodul 900 und zugehörige Untermodule zeigt. Das Bevorzugungsabstimmungsmodul 900 und zugehörige Untermodule können in Hardware, Software, Firmware oder Kombinationen davon realisiert sein. Das Bevorzugungsabstimmungsmodul 900 und zugehörige Untermodule sind beispielhaft und nicht als Einschränkung dargestellt. Bei unterschiedlichen Ausführungsformen können mehr oder weniger Untermodule bereitgestellt sein. Zum Beispiel kann die Funktionalität einiger Untermodule in einem einzigen oder in einer kleineren Anzahl von Untermodulen kombiniert sein, oder die Funktionalität eines einzigen Untermoduls kann über mehrere Untermodule hinweg verteilt sein. Zwar sind das Bevorzugungsabstimmungsmodul 900 und zugehörige Untermodule innerhalb des Host-Systems 102 gezeigt, jedoch ist die gesamte Funktionalität weder zwangsläufig innerhalb des Host-Systems 102 realisiert noch auf eine Realisierung innerhalb des Host-Systems 102 beschränkt. Daher ist die Position des Bevorzugungsabstimmungsmoduls 900 und zugehöriger Untermodule beispielhaft und nicht als Einschränkung bereitgestellt.
  • Wie gezeigt beinhaltet das Bevorzugungsabstimmungsmodul 900 eines oder mehreres aus einem E/A-Nachverfolgungsmodul 1000, einem Datenträgereinstufungsmodul 1010, einem Listenerstellungsmodul 1012, einem Verbleibdauer-Ermittlungsmodul 1014, einem Multiplikatorberechnungsmodul 1016 und einem Übertragungsmodul 1018.
  • Das E/A-Nachverfolgungsmodul 1000 kann so konfiguriert sein, dass E/As nachverfolgt werden, die aus einem Host-System 102 zu einem Speichersystem 110 ausgegeben werden. Diese E/As können angeben, welche Datenträger 304 favorisiert werden sollten und auf die über einen schnelleren synchronen E/A-Prozess zugegriffen werden sollte. Eine größere Menge von E/As zu einem Datenträger 304 kann darauf hinweisen, dass ein Job in Bezug auf diesen Datenträger 304 ausgeführt wird und der Job unter Verwendung von synchronen E/As schneller und effizienter ausgeführt werden könnte. In einem derartigen Szenario kann dem Datenträger 304 eine Cache-Bevorzugung gewährt werden, um während einer längeren Zeitdauer mehr seiner Daten im Cache 218 zu halten, wodurch beim Zugreifen auf den Datenträger 304 ein höheres Cache-Trefferverhältnis gewährleistet wird.
  • Beim Nachverfolgen von E/As zu einem Datenträger 304 kann das E/A-Nachverfolgungsmodul 1000 zwischen unterschiedlichen Arten von E/As unterscheiden. Zum Beispiel kann das E/A-Nachverfolgungsmodul 1000 Lesevorgänge 1002 innerhalb von Transaktionen, Schreibvorgänge 1004 innerhalb von Transaktionen, Lesevorgänge 1006 außerhalb von Transaktionen und Schreibvorgänge 1008 außerhalb von Transaktionen nachverfolgen. Bei bestimmten Ausführungsformen kann das E/A-Nachverfolgungsmodul 1000 Zähler nutzen, um eine Menge jeder dieser unterschiedlichen Arten von E/As in Bezug auf einen Datenträger 304 nachzuverfolgen.
  • Unter Verwendung der Informationen, die durch das E/A-Nachverfolgungsmodul 1000 erfasst wurden, kann das Datenträgereinstufungsmodul 1010 Datenträger 304 auf dem Speichersystem 110 einstufen. Zum Beispiel kann das Datenträgereinstufungsmodul 1010 jeden Datenträger 304 unter Verwendung der Formel A * L + B M + C * P + D * Q einstufen, wobei A eine Zahl von Zugriffen auf einen Datenträger 304 bei Zugriffen innerhalb von Transaktionen ist, B eine Zahl von Zugriffen auf den Datenträger 304 bei Schreibvorgängen innerhalb von Transaktionen ist, C eine Anzahl von Zugriffen auf den Datenträger 304 bei Lesevorgängen außerhalb von Transaktionen ist und D eine Anzahl von Zugriffen auf den Datenträger 304 bei Schreibvorgängen außerhalb von Transaktionen ist. L, M, P und Q sind Gewichtungskoeffizienten (z.B. L = 4, M = 3, P = 2, Q = 1), wobei L > M > P > Q. Mit anderen Worten, Zugriffe auf Datenträger 304 innerhalb von Transaktionen können zum Zweck des Einrichtens einer Cache-Bevorzugung schwerer gewichtet sein als Zugriffe auf Datenträger 304 außerhalb von Transaktionen. Außerdem können Lesevorgänge auf Datenträger 304 zum Zweck des Einrichtens einer Cache-Bevorzugung schwerer gewichtet sein als Schreibvorgänge auf Datenträger 304.
  • Unter Verwendung der Ausgabe der vorstehend beschriebenen Berechnung für jeden Datenträger 304 kann das Datenträgereinstufungsmodul 1010 Datenträger auf dem Speichersystem 110 Datenträger 304 anhand der Größenordnung seines Ausgabewertes einstufen. Datenträger 304 mit höheren Anzahlen von E/A können im Allgemeinen einen größeren Ausgabewert haben und somit höher eingestuft werden als Datenträger 304 mit geringeren Anzahlen von E/A im selben Zeitraum. Das Listenerstellungsmodul 1012 kann dann eine Liste 700 von Datenträgern 304 erstellen, die favorisiert werden sollten und denen eine Cache-Bevorzugung bereitgestellt werden sollte. Dies kann eine bestimmte Anzahl der am höchsten eingestuften Datenträger 304, von Datenträgern 304 mit einem Ausgabewert oberhalb eines bestimmten Schwellenwertes oder dergleichen sein.
  • Das Verbleibdauer-Ermittlungsmodul 1014 kann die Verbleibdauer (d.h. Lebensdauer) von Speicherelementen 402 nichtfavorisierter Datenträger 304b innerhalb des Cache 218 ermitteln. Das Multiplikatorberechnungsmodul 1016 kann dann einen Verbleibmultiplikator 902 für favorisierte Datenträger 304a berechnen. Wenn zum Beispiel Speicherelemente 402 favorisierter Datenträger 304a doppelt so lange wie Speicherelemente 402 nichtfavorisierte Datenträger 304b im Cache 218 verbleiben sollen, kann der Verbleibmultiplikator 902 auf zwei festgelegt werden. Bei bestimmten Ausführungsformen wird der Verbleibmultiplikator 902 ermittelt, indem der vorstehend beschriebene Ausgabewert von einem favorisierten Datenträger 304a genommen und durch den Ausgabewert von einem nichtfavorisierten Datenträger 304b dividiert wird, sodass sich ein Verhältnis ergibt. Bei Bedarf kann ein Mindestwert für den Verbleibmultiplikator 902 festgelegt werden, sodass dieser unabhängig von dem Verhältnis nicht unter einen bestimmten Wert (z.B. zwei) abfällt. Dadurch wird gewährleistet, dass die Speicherelemente 402 favorisierter Datenträger 304a mindestens doppelt so lange wie die Zeitdauer der Speicherelemente 402 nichtfavorisierter Datenträger 304b im Cache 218 gehalten werden.
  • Sobald die Liste 700 erstellt und der Verbleibmultiplikator 902 ermittelt wurde, kann das Übertragungsmodul 1018 die Liste 700 und den Verbleibmultiplikator 902 aus dem Host-System 102 zum Speichersystem 110 übertragen. Wie zuvor erläutert kann bei bestimmten Ausführungsformen ein einziger Verbleibmultiplikator 902 für alle favorisierten Datenträger 304a in der Liste 700 berechnet werden. Bei anderen Ausführungsformen kann ein anderer Verbleibmultiplikator 902 (N) für jeden favorisierten Datenträger 304a in der Liste 700 berechnet werden, wie in 11 gezeigt. Wie in 11 veranschaulicht, dokumentiert die Liste 700 Datenträger 304, die in der Reihenfolge der Einstufung (d.h. in der Reihenfolge ihrer Ausgabewerte unter Verwendung der vorstehend beschriebenen Berechnung) favorisiert werden sollen. Jeder favorisierte Datenträger 304a hat einen anderen zugehörigen Verbleibmultiplikator 902. Je höher die Einstufung des Datenträgers 304, desto größer der Verbleibmultiplikator 902. Wie zuvor erwähnt kann der Verbleibmultiplikator 902 mit der Lebensdauer von Speicherelementen 402 nichtfavorisierter Datenträger 304b multipliziert werden, um die Zeitdauer zu ermitteln, während der Speicherelemente 402 favorisierte Datenträger 304a im Cache 218 gehalten werden sollten.
  • Unter Bezugnahme auf 12 können favorisierte Datenträger 304a in der Liste 700 bei bestimmten Ausführungsformen denselben Verbleibmultiplikator 902 gemeinsam nutzen und somit dieselbe bevorzugte Cache-Verbleibdauer haben. Zum Beispiel kann einem ersten Satz favorisierter Datenträger 304a (d.h. Datenträger A, B und C) ein erster Verbleibmultiplikator N1 zugewiesen sein, einem zweiten Satz favorisierter Datenträger 304a (d.h. Datenträger D und E) kann ein zweiter Verbleibmultiplikator N2 zugewiesen sein, und einem dritten Satz favorisierter Datenträger 304a (d.h. Datenträger F und G) kann ein dritter Verbleibmultiplikator N3 zugewiesen sein, wobei N1 > N2 > N3. Jeder Verbleibmultiplikator 902 gibt an, wie stark die Cache-Bevorzugung (d.h. bevorzugte Cache-Verbleibdauer) für seine jeweilige Gruppe favorisierter Datenträger 304a sein sollte. Bei bestimmten Ausführungsformen ist in einem Speichersystem 110 wie beispielsweise dem Unternehmensspeichersystem IBM DS8000™ 110 der Verbleibmultiplikator 902 für jeden Datenträger 304 in einem globalen Statusbereich (z.B. ein Bereich im Cache 218, der auf permanente Reihe Speicherlaufwerke 204 gespiegelt ist) gespeichert, sodass der Verbleibmultiplikator 902 bei Neustarts, Stromausfall, Betriebsstörungen oder dergleichen nicht verloren geht.
  • Unter Bezugnahme auf 13 wird bei bestimmten Ausführungsformen eine LRU-Liste 1300 für jeden Verbleibmultiplikator 902 und jede zugehörige Gruppe favorisierter Datenträger 304a erstellt. Eine LRU-Liste 1300d kann außerdem für alle nichtfavorisierten Datenträger 304b (d.h. Datenträger 304 ohne einen Verbleibmultiplikator 902 oder mit einem Verbleibmultiplikator 902 von eins) erstellt werden. Wenn ein nichtmodifiziertes Speicherelement 402 (z.B. eine nichtmodifizierte Spur) zum Cache 218 hinzugefügt wird, kann der dem Speicherelement 402 zugehörige Datenträger 304 geprüft werden, um festzustellen, ob es sich um einen favorisierten Datenträger 304a handelt, und wenn dies der Fall ist, wie der Verbleibmultiplikator 902 für den Datenträger 304 lautet. Auf der Grundlage des Verbleibmultiplikators 902 (oder dessen Fehlen) für den Datenträger 304, kann ein Eintrag, der dem nichtmodifizierten Speicherelement 402 zugehörig ist, zum zuletzt verwendeten Ende (most recently used, MRU) der entsprechenden LRU-Liste 1300 hinzugefügt werden. Falls keine LRU-Liste 1300 für den Verbleibmultiplikator 902 vorliegt, die dem Datenträger 304 zugehörig ist, kann eine LRU-Liste 1300 für den Verbleibmultiplikator 902 erstellt werden, und ein Eintrag, der dem nichtmodifizierten Speicherelement 402 zugehörig ist, kann der neu erstellten LRU-Liste 1300 hinzugefügt werden.
  • 14 zeigt ein Verfahren 1400 zum erzwungenen Entfernen von Speicherelementen aus dem Cache 218 unter Verwendung von LRU-Listen 1300 wie beispielsweise den in 13 veranschaulichten. Wie gezeigt ermittelt 1402 das Verfahren 1400 zu Beginn, ob der Zeitpunkt gekommen ist, ein oder mehrere Speicherelemente 402 zwangsweise aus dem Cache 218 zu entfernen. Dieser Schritt 1402 kann bei bestimmten Ausführungsformen ein Ermitteln einschließen, ob im Cache 218 wenig freier Platz zur Verfügung steht. Wenn der Zeitpunkt gekommen ist, Einträge zwangsweise aus dem Cache 218 zu entfernen (z.B. steht im Cache 218 wenig Speicherplatz zur Verfügung), ermittelt 1404 das Verfahren 1400, ob alle LRU-Listen 1300 leer sind, die favorisierten Datenträgern 304a zugehörig sind (die im Folgenden als „Favorisiert“-LRU-Listen 1300 bezeichnet werden). Wenn dies der Fall ist, entfernt 1406 das Verfahren 1400 zwangsweise das Speicherelement 402 aus dem Cache 218, das dem ältesten Eintrag (d.h. dem Eintrag am LRU-Ende der LRU-Liste) in der LRU-Liste 1300 zugehörig ist, für nichtfavorisierte Datenträger 304b (die hierin im Folgenden als „Nichtfavorisiert“-LRU-Liste 1300 bezeichnet wird).
  • Wenn andererseits nicht alle „Favorisiert“-LRU-Listen 1300 leer sind, berechnet 1410 das Verfahren 1400 eine „Dauer oberhalb der erforderlichen Verbleibdauer“ für nichtleere „Favorisiert“-LRU-Listen 1300. Bei bestimmten Ausführungsformen kann die „Dauer oberhalb der erforderlichen Verbleibdauer“ berechnet werden, indem die Verbleibdauer des ältesten Eintrags in der „Favorisiert“-LRU-Liste 1300 berechnet und von diesem Wert die mit dem Verbleibmultiplikator 902 berechnete „Lebensdauer“ subtrahiert wird. Wie zuvor erläutert kann die „Lebensdauer“ gleich der Zeitdauer sein, während der nichtfavorisierte Speicherelemente 402b im Cache 218 verbleiben, bevor sie zwangsweise entfernt werden. Im Allgemeinen ermittelt der Schritt 1410 den Betrag, um den ein ältester Eintrag in der „Favorisiert“-LRU-Liste 1300 seine bevorzugte Verbleibdauer im Cache 218 überschritten (oder unterschritten) hat.
  • Das Verfahren 1400 wählt 1412 dann die „Favorisiert“-LRU-Liste 1300 aus, in der die „Dauer oberhalb der erforderlichen Verbleibdauer“ für den ältesten Eintrag am größten ist. Das Verfahren 1400 ermittelt 1414 dann, ob diese „Dauer oberhalb der erforderlichen Verbleibdauer“ negativ ist (was bedeutet, dass das Speicherelement, das dem ältesten Eintrag in der „Favorisiert“-LRU-Liste 1300 zugehörig ist, während einer etwas kürzeren Zeitdauer als seiner bevorzugte Verbleibdauer im Cache 218 verblieben ist). Wenn die „Dauer oberhalb der erforderlichen Verbleibdauer“ negativ ist, ermittelt 1416 das Verfahren 1400, ob die „Nichtfavorisiert“-LRU-Liste 1300 leer ist. Wenn sie nicht leer ist, entfernt 1406 das Verfahren 1400 zwangsweise das Speicherelement 402 aus dem Cache 218, das dem ältesten Eintrag in der„Nichtfavorisiert"-LRU-Liste 1300 zugehörig ist.
  • Wenn bei Schritt 1414 die „Dauer oberhalb der erforderlichen Verbleibdauer“ nicht negativ ist (was bedeutet, dass der älteste Eintrag in der „Favorisiert“-Liste 1300 während einer Zeitdauer im Cache 218 verblieben ist, die größer oder gleich seiner bevorzugten Verbleibdauer ist), entfernt 1408 das Verfahren 1400 das Speicherelement zwangsweise aus dem Cache 218, das dem ältesten Eintrag in der „Favorisiert“-LRU-Liste 1300 mit der größten „Dauer oberhalb der erforderlichen Verbleibdauer“ zugehörig ist. Wenn in ähnlicher Weise bei Schritt 1416 festgestellt wird, dass die „Nichtfavorisiert“-LRU-Liste 1300 leer ist, entfernt 1408 das Verfahren 1400 ebenfalls den ältesten Eintrag in der „Favorisiert“-LRU-Liste 1300 mit der größten „Dauer oberhalb der erforderlichen Verbleibdauer“ zwangsweise aus dem Cache 218.

Claims (20)

  1. Verfahren zum Verbessern von Cache-Trefferverhältnissen bei ausgewählten Datenträgern beim Verwenden synchroner E/A, wobei das Verfahren aufweist: Einrichten, im Cache (218), eines ersten Satzes (404b) von nichtfavorisierten Speicherelementen aus nichtfavorisierten Speicherbereichen (402b); Einrichten, in dem Cache, eines zweiten Satzes (404a) von favorisierten Speicherelementen aus favorisierten Speicherbereichen (402a); Dokumentieren des ersten Satzes von nichtfavorisierten Speicherelementen in einer ersten LRU-Liste (1300a) und des zweiten Satzes von favorisierten Speicherelementen in einer zweiten LRU-Liste (1300b), wobei die nichtfavorisierten Speicherelemente aus dem Cache von einem LRU-Ende der ersten LRU-Liste entfernt werden und favorisierte Speicherelemente aus dem Cache von einem LRU-Ende der zweiten LRU-Liste entfernt werden; Zugreifen auf die favorisierten Speicherbereiche über einen synchronen E/A-Prozess; Zugreifen auf die nichtfavorisierten Speicherbereiche über einen nichtsynchronen E/A-Prozess; Berechnen einer Lebensdauer für die nichtfavorisierten Speicherelemente, während der sie im Cache verbleiben und Multiplizieren der Lebensdauer mit einem Verbleibmultiplikator, um eine Zeitdauer zu bestimmen, die sich die favorisierten Speicherelemente in dem Cache verbleiben sollen.
  2. Verfahren nach Anspruch 1, wobei der Verbleibmultiplikator berechnet wird, indem ein mit den favorisierten Speicherbereichen verknüpfter Ausgabewert durch einen mit den nichtfavorisierten Speicherbereichen verknüpften Ausgabewert dividiert wird.
  3. Verfahren nach Anspruch 1, wobei es sich bei den nichtfavorisierten Speicherbereichen um nichtfavorisierte Datenträger (304b) handelt und es sich bei den favorisierten Speicherbereichen um favorisierte Datenträger (304a) handelt.
  4. Verfahren nach Anspruch 1, wobei die favorisierten Speicherelemente während mindestens eines bestimmten Vielfachen der Lebensdauer der nichtfavorisierten Speicherelemente im Cache aufrechterhalten werden.
  5. Verfahren nach Anspruch 1, wobei das Berechnen der Lebensdauer ein Subtrahieren eines Zeitstempels eines am längsten nicht verwendeten nichtfavorisierten Speicherelements im ersten Satz von einem Zeitstempel eines zuletzt verwendeten nichtfavorisierten Speicherelements im ersten Satz aufweist.
  6. Verfahren nach Anspruch 1, ferner umfassend das Verschieben zwischen der ersten LRU-Liste und der zweiten LRU-Liste, wenn die Speicherelemente zwischen dem favorisierten und dem nichtfavorisierten Status wechseln.
  7. Verfahren nach Anspruch 1, wobei die nichtfavorisierten Speicherbereiche und/oder die favorisierten Speicherbereiche eingerichtet werden, indem mindestens eines aus einem Online-Befehl und einer Konfigurationsdatei verwendet wird.
  8. Computerprogrammprodukt zum Verbessern von Cache-Trefferverhältnissen bei ausgewählten Datenträgern, wenn synchrone E/A verwendet werden, wobei das Computerprogrammprodukt ein nichtflüchtiges, durch einen Computer lesbares Speichermedium aufweist, auf dem durch einen Computer nutzbarer Programmcode verkörpert ist, wobei der durch einen Computer nutzbare Programmcode so konfiguriert ist, dass bei Ausführung durch mindestens einen Prozessor Folgendes durchgeführt wird: Einrichten, im Cache (218), eines ersten Satzes (404b) von nichtfavorisierten Speicherelementen aus nichtfavorisierten Speicherbereichen (402b); Einrichten, in dem Cache, eines zweiten Satzes (404a) von favorisierten Speicherelementen aus favorisierten Speicherbereichen (402a); Dokumentieren des ersten Satzes von nichtfavorisierten Speicherelementen in einer ersten LRU-Liste (1300a) und des zweiten Satzes von favorisierten Speicherelementen in einer zweiten LRU-Liste (1300b), wobei die nichtfavorisierten Speicherelemente aus dem Cache von einem LRU-Ende der ersten LRU-Liste entfernt werden und favorisierte Speicherelemente aus dem Cache von einem LRU-Ende der zweiten LRU-Liste entfernt werden; Zugreifen auf die favorisierten Speicherbereiche über einen synchronen E/A-Prozess; Zugreifen auf die nichtfavorisierten Speicherbereiche über einen nichtsynchronen E/A-Prozess; Berechnen einer Lebensdauer für die nichtfavorisierten Speicherelemente, während der sie im Cache verbleiben und Multiplizieren der Lebensdauer mit einem Verbleibmultiplikator, um eine Zeitdauer zu bestimmen, die sich die favorisierten Speicherelemente in dem Cache verbleiben sollen.
  9. Computerprogrammprodukt nach Anspruch 8, wobei der Verbleibmultiplikator berechnet wird, indem ein mit den favorisierten Speicherbereichen verknüpfter Ausgabewert durch einen mit den nichtfavorisierten Speicherbereichen verknüpften Ausgabewert dividiert wird.
  10. Computerprogrammprodukt nach Anspruch 8, wobei es sich bei den nichtfavorisierten Speicherbereichen um nichtfavorisierte Datenträger (304b) handelt und es sich bei den favorisierten Speicherbereichen um favorisierte Datenträger (304a) handelt.
  11. Computerprogrammprodukt nach Anspruch 8, wobei die favorisierten Speicherelemente während mindestens eines bestimmten Vielfachen der Lebensdauer der nichtfavorisierten Speicherelemente im Cache aufrechterhalten werden.
  12. Computerprogrammprodukt nach Anspruch 8, wobei das Berechnen der Lebensdauer das Subtrahieren eines Zeitstempels eines am längsten nicht verwendeten, nichtfavorisierten Speicherelements im ersten Satz von einem Zeitstempel eines zuletzt verwendeten nichtfavorisierten Speicherelements im ersten Satz aufweist.
  13. Computerprogrammprodukt nach Anspruch 8, wobei der erste Satz von nichtfavorisierten Speicherelementen in einer ersten LRU-Liste dokumentiert wird und der zweite Satz von favorisierten Speicherelementen in einer zweiten LRU-Liste dokumentiert wird.
  14. Computerprogrammprodukt nach Anspruch 8, wobei der durch einen Computer nutzbare Programmcode ferner konfiguriert ist zum Verschieben zwischen der ersten LRU-Liste und der zweiten LRU-Liste, wenn die Speicherelemente zwischen dem favorisierten und dem nichtfavorisierten Status wechseln.
  15. System zum Verbessern von Cache-Trefferverhältnissen bei ausgewählten Datenträgern beim Verwenden synchroner E/A, wobei das System aufweist: mindestens einen Prozessor; mindestens eine Speichereinheit, die funktionsfähig mit dem mindestens einen Prozessor verbunden ist und in der Anweisungen zur Ausführung auf die mindestens einen Prozessor gespeichert sind, wobei die Anweisungen den mindestens einen Prozessor veranlassen zum: Einrichten, im Cache (218), eines ersten Satzes (404b) von nichtfavorisierten Speicherelementen aus nichtfavorisierten Speicherbereichen (402b); Einrichten, in dem Cache, eines zweiten Satzes (404a) von favorisierten Speicherelementen aus favorisierten Speicherbereichen (402a); Dokumentieren des ersten Satzes von nichtfavorisierten Speicherelementen in einer ersten LRU-Liste (1300a) und des zweiten Satzes von favorisierten Speicherelementen in einer zweiten LRU-Liste (1300b), wobei die nichtfavorisierten Speicherelemente aus dem Cache von einem LRU-Ende der ersten LRU-Liste entfernt werden und favorisierte Speicherelemente aus dem Cache von einem LRU-Ende der zweiten LRU-Liste entfernt werden; Zugreifen auf die favorisierten Speicherbereiche über einen synchronen E/A-Prozess; Zugreifen auf die nichtfavorisierten Speicherbereiche über einen nichtsynchronen E/A-Prozess; Berechnen einer Lebensdauer für die nichtfavorisierten Speicherelemente, während der sie im Cache verbleiben und Multiplizieren der Lebensdauer mit einem Verbleibmultiplikator, um eine Zeitdauer zu bestimmen, die sich die favorisierten Speicherelemente in dem Cache verbleiben sollen.
  16. System nach Anspruch 15, wobei der Verbleibmultiplikator berechnet wird, indem ein mit den favorisierten Speicherbereichen verknüpfter Ausgabewert durch einen mit den nichtfavorisierten Speicherbereichen verknüpften Ausgabewert dividiert wird.
  17. System nach Anspruch 15, wobei es sich bei den nichtfavorisierten Speicherbereichen um nichtfavorisierte Datenträger (304b) handelt und es sich bei den favorisierten Speicherbereichen um favorisierte Datenträger (304a) handelt.
  18. System nach Anspruch 15, wobei die favorisierten Speicherelemente während mindestens eines bestimmten Vielfachen der Lebensdauer der nichtfavorisierten Speicherelemente im Cache aufrechterhalten werden.
  19. System nach Anspruch 15, wobei das Berechnen der Lebensdauer ein Subtrahieren eines Zeitstempels eines am längsten nicht verwendeten nichtfavorisierten Speicherelements im ersten Satz von einem Zeitstempel eines zuletzt verwendeten, nichtfavorisierten Speicherelements im ersten Satz aufweist.
  20. System nach Anspruch 15, wobei die Anweisungen den mindestens einen Prozessor ferner veranlassen zum Verschieben zwischen der ersten LRU-Liste und der zweiten LRU-Liste, wenn die Speicherelemente zwischen dem favorisierten und dem nichtfavorisierten Status wechseln.
DE112020001089.9T 2019-05-12 2020-04-28 Verbessern von cache-trefferverhältnissen bei ausgewählten datenträgern in einem speichersystem Active DE112020001089B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/409,826 US11163698B2 (en) 2019-05-12 2019-05-12 Cache hit ratios for selected volumes using synchronous I/O
US16/409,826 2019-05-12
PCT/IB2020/053990 WO2020229921A1 (en) 2019-05-12 2020-04-28 Improving cache hit ratios for selected volumes in a storage system

Publications (2)

Publication Number Publication Date
DE112020001089T5 DE112020001089T5 (de) 2021-12-16
DE112020001089B4 true DE112020001089B4 (de) 2023-03-02

Family

ID=73047163

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112020001089.9T Active DE112020001089B4 (de) 2019-05-12 2020-04-28 Verbessern von cache-trefferverhältnissen bei ausgewählten datenträgern in einem speichersystem

Country Status (6)

Country Link
US (1) US11163698B2 (de)
JP (1) JP2022531968A (de)
CN (1) CN113811860A (de)
DE (1) DE112020001089B4 (de)
GB (1) GB2597634B (de)
WO (1) WO2020229921A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11176052B2 (en) * 2019-05-12 2021-11-16 International Business Machines Corporation Variable cache status for selected volumes within a storage system
WO2023277531A1 (en) * 2021-06-28 2023-01-05 Samsung Electronics Co., Ltd. Method and system for improving cache management in a 5g network function

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5043885A (en) 1989-08-08 1991-08-27 International Business Machines Corporation Data cache using dynamic frequency based replacement and boundary criteria
US20120166723A1 (en) 2010-12-27 2012-06-28 Hitachi, Ltd. Storage system and management method of control information therein
US20190324687A1 (en) 2018-04-24 2019-10-24 EMC IP Holding Company LLC Managing concurrent i/o operations

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5594885A (en) 1991-03-05 1997-01-14 Zitel Corporation Method for operating a cache memory system using a recycled register for identifying a reuse status of a corresponding cache entry
EP0566282A3 (de) 1992-04-14 1994-12-21 Honeywell Inc Verfahren für Zugriff auf speicherresidenter Echtzeitdaten.
US5381539A (en) 1992-06-04 1995-01-10 Emc Corporation System and method for dynamically controlling cache management
US5493667A (en) 1993-02-09 1996-02-20 Intel Corporation Apparatus and method for an instruction cache locking scheme
US5606688A (en) * 1994-08-31 1997-02-25 International Business Machines Corporation Method and apparatus for dynamic cache memory allocation via single-reference residency times
WO1999040516A1 (en) * 1998-02-04 1999-08-12 Hitachi, Ltd. Disk cache control method, disk array device, and storage device
US6425057B1 (en) 1998-08-27 2002-07-23 Hewlett-Packard Company Caching protocol method and system based on request frequency and relative storage duration
US6219283B1 (en) 1998-09-03 2001-04-17 Micron Technology, Inc. Memory device with local write data latches
US6886047B2 (en) 1998-11-13 2005-04-26 Jp Morgan Chase Bank System and method for managing information retrievals for integrated digital and analog archives on a global basis
JP3460617B2 (ja) 1999-03-30 2003-10-27 富士通株式会社 ファイル制御装置
US20020056025A1 (en) 2000-11-07 2002-05-09 Qiu Chaoxin C. Systems and methods for management of memory
EP1139232B1 (de) 2000-03-30 2003-06-04 INTERSHOP Software Entwicklungs GmbH Bestimmung der Cachezeit
US6651141B2 (en) 2000-12-29 2003-11-18 Intel Corporation System and method for populating cache servers with popular media contents
US6751753B2 (en) 2001-02-27 2004-06-15 Sun Microsystems, Inc. Method, system, and program for monitoring system components
US6615318B2 (en) 2002-01-22 2003-09-02 International Business Machines Corporation Cache management system with multiple cache lists employing roving removal and priority-based addition of cache entries
US7047366B1 (en) 2003-06-17 2006-05-16 Emc Corporation QOS feature knobs
US7216196B2 (en) 2003-12-29 2007-05-08 Micron Technology, Inc. Memory hub and method for memory system performance monitoring
CN1564138A (zh) 2004-03-26 2005-01-12 清华大学 快速同步高性能日志设备及其同步写操作方法
US8082397B1 (en) 2004-08-13 2011-12-20 Emc Corporation Private slot
US7464246B2 (en) * 2004-09-30 2008-12-09 International Business Machines Corporation System and method for dynamic sizing of cache sequential list
US7519510B2 (en) 2004-11-18 2009-04-14 International Business Machines Corporation Derivative performance counter mechanism
WO2007068122A1 (en) 2005-12-16 2007-06-21 Univ Western Ontario System and method for cache management
US8117396B1 (en) 2006-10-10 2012-02-14 Network Appliance, Inc. Multi-level buffer cache management through soft-division of a uniform buffer cache
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US7761664B2 (en) 2007-04-13 2010-07-20 International Business Machines Corporation Systems and methods for multi-level exclusive caching using hints
US7702857B2 (en) * 2007-08-22 2010-04-20 International Business Machines Corporation Adjusting parameters used to prefetch data from storage into cache
US8250306B2 (en) 2008-04-24 2012-08-21 International Business Machines Corporation Method for improving frequency-based caching algorithms by maintaining a stable history of evicted items
US8601213B2 (en) 2008-11-03 2013-12-03 Teradata Us, Inc. System, method, and computer-readable medium for spool cache management
US8321521B1 (en) 2011-06-24 2012-11-27 Limelight Networks, Inc. Write-cost optimization of CDN storage architecture
US9176708B2 (en) 2011-11-07 2015-11-03 Nexgen Storage, Inc. Primary data storage system with quality of service
US8688915B2 (en) 2011-12-09 2014-04-01 International Business Machines Corporation Weighted history allocation predictor algorithm in a hybrid cache
US9201804B1 (en) 2012-02-06 2015-12-01 Google Inc. Dynamically adapting the configuration of a multi-queue cache based on access patterns
US9645944B2 (en) 2012-05-07 2017-05-09 International Business Machines Corporation Enhancing data caching performance
EP2680152B1 (de) 2012-06-27 2017-05-03 Alcatel Lucent Verfahren zur Verwaltung des Speichers einer Liste von N-Items in einem Speichercache von C-Items eines Cachesystems
KR102020466B1 (ko) 2012-10-04 2019-09-10 에스케이하이닉스 주식회사 버퍼 메모리 장치를 포함하는 데이터 저장 장치
US9189422B2 (en) 2013-02-07 2015-11-17 Avago Technologies General Ip (Singapore) Pte. Ltd. Method to throttle rate of data caching for improved I/O performance
US9400544B2 (en) 2013-04-02 2016-07-26 Apple Inc. Advanced fine-grained cache power management
US9378153B2 (en) 2013-08-27 2016-06-28 Advanced Micro Devices, Inc. Early write-back of modified data in a cache memory
CN105493052B (zh) 2013-09-27 2019-05-03 英特尔公司 用于存储器管理的高速缓存操作
US9405695B2 (en) 2013-11-05 2016-08-02 Netapp, Inc. Cache modeling using random sampling and a timestamp histogram
US20150220438A1 (en) 2014-02-04 2015-08-06 Netapp, Inc. Dynamic hot volume caching
US9652154B2 (en) 2014-02-05 2017-05-16 Sandisk Technologies Llc Storage module and host device for storage module defragmentation
US10055352B2 (en) 2014-03-11 2018-08-21 Amazon Technologies, Inc. Page cache write logging at block-based storage
US9323463B2 (en) 2014-08-05 2016-04-26 Hitachi, Ltd. Storage system and cache control method
US9846650B2 (en) 2015-03-09 2017-12-19 Samsung Electronics Co., Ltd. Tail response time reduction method for SSD
US10108552B2 (en) 2015-08-21 2018-10-23 International Business Machines Corporation Using cache lists for processors to determine tracks to demote from a cache
US9996476B2 (en) * 2015-09-03 2018-06-12 International Business Machines Corporation Management of cache lists via dynamic sizing of the cache lists
CN106649349B (zh) 2015-10-30 2021-07-09 腾讯科技(深圳)有限公司 用于游戏应用的数据缓存方法、装置和系统
CN105447171A (zh) 2015-12-07 2016-03-30 北京奇虎科技有限公司 数据缓存方法与装置
JP2017117179A (ja) 2015-12-24 2017-06-29 富士通株式会社 情報処理装置、キャッシュ制御プログラムおよびキャッシュ制御方法
US10185668B2 (en) 2016-04-08 2019-01-22 Qualcomm Incorporated Cost-aware cache replacement
US10067883B2 (en) 2016-05-31 2018-09-04 International Business Machines Corporation Using an access increment number to control a duration during which tracks remain in cache
US10534712B1 (en) * 2016-08-29 2020-01-14 Infinidat Ltd. Service level agreement based management of a pre-cache module
US9965350B2 (en) * 2016-09-30 2018-05-08 International Business Machines Corporation Maintaining cyclic redundancy check context in a synchronous I/O endpoint device cache system
US20180300258A1 (en) 2017-04-13 2018-10-18 Futurewei Technologies, Inc. Access rank aware cache replacement policy
US10248330B2 (en) 2017-05-30 2019-04-02 Seagate Technology Llc Data storage device with buffer tenure management
US10613985B2 (en) 2017-07-06 2020-04-07 Seagate Technology Llc Buffer management in a data storage device wherein a bit indicating whether data is in cache is reset after updating forward table with physical address of non-volatile memory and jettisoning the data from the cache
CN107704401A (zh) 2017-11-02 2018-02-16 郑州云海信息技术有限公司 一种存储系统中缓存数据的置换方法、系统及存储系统
US20190250857A1 (en) * 2019-04-26 2019-08-15 Intel Corporation TECHNOLOGIES FOR AUTOMATIC WORKLOAD DETECTION AND CACHE QoS POLICY APPLICATION
US11151035B2 (en) 2019-05-12 2021-10-19 International Business Machines Corporation Cache hit ratios for selected volumes within a storage system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5043885A (en) 1989-08-08 1991-08-27 International Business Machines Corporation Data cache using dynamic frequency based replacement and boundary criteria
US20120166723A1 (en) 2010-12-27 2012-06-28 Hitachi, Ltd. Storage system and management method of control information therein
US20190324687A1 (en) 2018-04-24 2019-10-24 EMC IP Holding Company LLC Managing concurrent i/o operations

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GILL, Binny S.; MODHA, Dharmendra S. : SARC: Sequential Prefetching in Adaptive Replacement Cache. . In: USENIX Annual Technical Conference, General Track. 2005. S. 293-308., 2005, 293-308.

Also Published As

Publication number Publication date
WO2020229921A1 (en) 2020-11-19
CN113811860A (zh) 2021-12-17
GB202116905D0 (en) 2022-01-05
GB2597634B (en) 2022-12-21
DE112020001089T5 (de) 2021-12-16
US11163698B2 (en) 2021-11-02
GB2597634A (en) 2022-02-02
US20200356494A1 (en) 2020-11-12
JP2022531968A (ja) 2022-07-12

Similar Documents

Publication Publication Date Title
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
DE112012004798B4 (de) Anpassung der Auslagerungsgeschwindigkeit auf Grundlage von Anforderungen an Lese- und Schreib-Antwortzeiten
DE69729243T2 (de) Multiprozessorsystem mit Vorrichtung zur Optimierung von Spin-Lock-Operationen
DE112013000650B4 (de) Datenzwischenspeicherungsbereich
DE112017002941T5 (de) Arbeitslastoptimierte Datendeduplizierung mittels Phantomfingerabdrücken
DE112019001526T5 (de) Auswählen von einem von mehreren cache-bereinigungsalgorithmen, der zum entfernen einer spur aus dem cache verwendet werden soll
DE112013000891T5 (de) Verbessern der Prozessorleistung für Befehlsfolgen, die Sperrbefehle enthalten
DE112015004336T5 (de) Konfigurationsbasierte Auswahl eines Cachekohärenz-Protokolls
DE112013002355T5 (de) Steigern von Datenzwischenspeicherungsleistung
DE112012004796B4 (de) Periodische Auslagerungen von Innen- und Aussendurchmessern von Platten zum Verbessern von Lesereaktionszeiten
DE112012004209T5 (de) Dynamisch eingestellter Schwellenwert zum Belegen eines sekundären Cache-Speichers
DE102012224265A1 (de) Gemeinsame Nutzung dicht benachbarter Daten-Cachespeicher
DE112012002615T5 (de) Vorabladen von Datenspuren und Paritätsdaten zur Verwendung zum Auslagern aktualisierter Spuren
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
DE112012001660T5 (de) Speicher-Checkpointing in einem System gespiegelter virtueller Maschinen
DE112020001089B4 (de) Verbessern von cache-trefferverhältnissen bei ausgewählten datenträgern in einem speichersystem
DE112018004138B4 (de) Asynchrone aktualisierung von metadatenspuren in reaktion auf einen mittels einer e/a-operation über eine busschnittstelle erzeugten cachetreffer
DE112010003594T5 (de) Dynamische Ressourcen-Zuordnung für verteilte Gruppen-speichernetze
DE112018000900T5 (de) Verarbeiten eines Befehls zum Freigeben von Speicherplatz in einem Computersystem
DE102012218264A1 (de) Effiziente Datenbereinigung in einer komprimierten Journaldatei
DE112019000992T5 (de) Verwaltung virtueller Speicherlaufwerke in einem Datenspeichersystem
DE102006030879A1 (de) System zum Reduzieren der Latenzzeit von exklusiven Leseanforderungen in einem symmetrischen Multiprozessorsystem
DE102014017744A1 (de) Weiche partitionierung eines registerspeicher-caches
DE112010003675T5 (de) Adress-Server
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen

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