DE112012004798B4 - Anpassung der Auslagerungsgeschwindigkeit auf Grundlage von Anforderungen an Lese- und Schreib-Antwortzeiten - Google Patents

Anpassung der Auslagerungsgeschwindigkeit auf Grundlage von Anforderungen an Lese- und Schreib-Antwortzeiten Download PDF

Info

Publication number
DE112012004798B4
DE112012004798B4 DE112012004798.2T DE112012004798T DE112012004798B4 DE 112012004798 B4 DE112012004798 B4 DE 112012004798B4 DE 112012004798 T DE112012004798 T DE 112012004798T DE 112012004798 B4 DE112012004798 B4 DE 112012004798B4
Authority
DE
Germany
Prior art keywords
destage
cache
ranks
rate
read
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
DE112012004798.2T
Other languages
English (en)
Other versions
DE112012004798T5 (de
Inventor
Michael Thomas Benhase
Lokesh Mohan Gupta
Christopher Strauss
Will Allen Wright
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 DE112012004798T5 publication Critical patent/DE112012004798T5/de
Application granted granted Critical
Publication of DE112012004798B4 publication Critical patent/DE112012004798B4/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

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

Abstract

Verfahren, aufweisend:durch eine Speichersteuereinheit, die einen Cache-Zwischenspeicher aufweist, Empfangen eines Befehls von einem Host, wobei ein Satz von Kriterien, die den Lese- und Schreib-Antwortzeiten zum Ausführen des Befehls für eine Anwendung mit strengen Anforderungen entsprechen, erfüllt sein muss;wobei Auslagerungs-Tasksteuerblöcke, die in der Speichersteuereinheit verwaltet werden, Informationen über Prozesse als zu schreibende Daten speichern, von dem Host durch den Cache an Speichereinheiten, die mit der Speichersteuereinheit verbunden sind, weitergeleitet werden; undAnpassen der Auslagerungsgeschwindigkeit, die den Rängen entspricht, die einer Mehrzahl von Datenträgern, die in den Speichereinheiten gespeichert, die mit der Speichersteuereinheit verbinden sind, entsprechen, wobei der Satz von Kriterien, die den Lese- und Schreib-Antwortzeiten zum Ausführen eines Kommandos, erfüllt ist, und wobei die angepasste Auslagerungsgeschwindigkeit, die den Rängen entspricht, durch eine Simulation einer Ausführung eines Benchmark bestimmt wird, und wobei die Simulation aufweist:Ermitteln, ob Lese-Spitzenwerte mit einer geringeren Geschwindigkeit von E/A-Operationen als eine Geschwindigkeit von E/A-Operationen vorliegen, bei der der Cache-Zwischenspeicher beginnt, sich zu füllen, und neue Schreibvorgänge warten müssen, bis Auslagerungen aus dem Cache-Zwischenspeicher abgeschlossen sind,in Reaktion auf die Feststellung, dass Lese-Spitzenwerte mit einer geringeren Geschwindigkeit von E/A-Operationen als eine Geschwindigkeit von E/A-Operationen vorliegen, bei der der Cache-Zwischenspeicher beginnt, sich zu füllen, und neue Schreibvorgänge warten müssen, bis Auslagerungen aus dem Cache-Zwischenspeicher abgeschlossen sind, Reduzieren der Auslagerungs-Tasksteuerblöcke um die Auslagerungsgeschwindigkeit, wobeieine Auslagerungsgeschwindigkeit-Anpassung-Anwendung bestimmt, welche Ränge den Anwendungen mit strengen Anforderungen zugewiesen sind, und wobei eine maximale Anzahl an Auslagerungs-Tasksteuerblöcken für einen Rang gesetzt wird durch eine Ausführung von:wenn der Rang ein Rang mit strengen Anforderungen ist, dann wird eine maximale Anzahl von Auslagerungs-Tasksteuerblöcken, die für den Rang mit strengen Anforderungen erlaubt ist, auf eine Anzahl gesetzt, die geringer als die Hälfte eine Standard-Auslagerungsgeschwindigkeit ist; undwenn der Rang kein Rang mit strengen Anforderungen ist, dann wird die maximale Anzahl von Auslagerungs-Tasksteuerblöcken, die für den Rang ohne strenge Anforderungen erlaubt ist, auf eine Standardanzahl gesetzt

Description

  • HINTERGRUND
  • Gebiet
  • Die Offenbarung betrifft ein Verfahren, System und einen Herstellungsgegenstand zur Anpassung der Auslagerungsgeschwindigkeit auf der Grundlage von Anforderungen in Bezug auf die Lese- und Schreib-Antwortzeiten.
  • Hintergrund
  • Eine Speichersteuereinheit kann eine Mehrzahl von Speichereinheiten steuern, zu denen Festplatten, Bänder usw. gehören können. Ein Cache-Zwischenspeicher kann ebenfalls durch die Speichersteuereinheit verwaltet werden, wobei der Cache-Zwischenspeicher einen schnellen Speicher aufweisen kann, auf den im Vergleich zu bestimmten anderen Speichereinheiten wie zum Beispiel Festplatten, Bänder usw. schneller zugegriffen werden kann. Der Gesamtbetrag der Speicherkapazität des Cache-Zwischenspeichers kann jedoch relativ kleiner sein, verglichen mit der Speicherkapazität bestimmter anderer Speichereinheiten wie zum Beispiel Festplatten usw., die durch die Speichersteuereinheit gesteuert werden. Der Cache-Zwischenspeicher kann aus einem oder mehreren Direktzugriffsspeichern (Random Access Memory, RAM), einer nichtflüchtigen Speichereinheit (Non-volatile Storage, NVS), Lese-Cache-Zwischenspeicher, Schreib-Cache-Zwischenspeicher usw. bestehen, die untereinander auf unterschiedliche Weise zusammenwirken können. Der NVS kann aus einem batteriegestützten Direktzugriffsspeicher bestehen und die Durchführung von Schreiboperationen mit hoher Geschwindigkeit ermöglichen. Die Speichersteuereinheit kann Eingabe-/Ausgabe Anforderungen (E/A-Anforderungen) von vernetzten Hosts in Bezug auf eine Mehrzahl von Speichereinheit verwalten.
  • Die durch die Speichersteuereinheit realisierten Zwischenspeicherungstechniken tragen dazu bei, die E/A-Latenz zu kaschieren. Der Cache-Zwischenspeicher kann eine schnelle Hauptspeicher- oder Speichereinheit aufweisen, die dazu dient, die tatsächliche Zeit zu verringern, die zum Lesen von Daten von einem langsameren Hauptspeicher oder einer langsameren Einheit oder Schreiben auf einen langsameren Hauptspeicher oder eine langsamere Einheit zu verringern. Der Cache-Zwischenspeicher dient zum schnellen Zugriff auf Daten, die von einem externen Speicher zwischengespeichert wurden, um Anforderungen in Bezug auf den Lesezugriff auf Daten zu bedienen und das Puffern geänderter Daten bereitzustellen. Schreib-Anforderungen werden in den Cache-Zwischenspeicher geschrieben und anschließend auf die externen Speichereinheiten geschrieben (d.h. ausgelagert).
  • NVS wurde eingeführt, um schnelle Schreibvorgänge zu ermöglichen. Im Allgemeinen müssen bei nicht vorhandenem NVS Datenschreibvorgänge synchron direkt auf die Speichereinheit geschrieben (d.h. ausgelagert) werden, um die Konsistenz, Korrektheit und Permanenz zu gewährleisten. Andernfalls kann ein Ausfall des Servers dazu führen, dass im Cache-Zwischenspeicher gespeicherte Daten verloren gehen. Im Allgemeinen überschreitet die Geschwindigkeit von Host-Schreibvorgängen die Geschwindigkeit der Speichereinheiten, sodass die Geschwindigkeit von Datenübertragungen auf Speichereinheiten ohne NVS niedrig sein kann. NVS ermöglicht schnelle Schreibvorgänge auf den Cache-Zwischenspeicher, auf dem die Schreibvorgänge in Bezug auf den NVS gespiegelt und sicher im NVS gespeichert werden, bis die Schreibvorgänge auf die externe Speichereinheit übertragen werden können. Die Daten werden später in asynchroner Weise aus dem Cache-Zwischenspeicher ausgelagert (und aus dem NVS gelöscht), wodurch die Schreiblatenz der Speichereinheit kaschiert wird. Der Cache-Zwischenspeicher und der NVS speichern normalerweise Aktualisierungen, die für mehrere Speichereinheiten vorgesehen sind. Um eine kontinuierlich niedrige Latenz für Schreibvorgänge zu garantieren, müssen die Daten im NVS möglicherweise bereinigt werden, um zu gewährleisten, dass stets etwas Platz für eingehende Schreibvorgänge vorhanden ist; anderenfalls werden nachfolgende Schreibvorgänge möglicherweise tatsächlich synchron, was die Reaktionszeit bei Host-Schreibvorgängen unter Umständen beeinträchtigt. Wenn die Schreibvorgänge aber andererseits zu aggressiv bereinigt werden, können die Vorteile des Zwischenspeicherns beim Schreiben nicht voll ausgenutzt werden, da die durchschnittliche Größe des genutzten NVS-Cache-Zwischenspeichers möglicherweise gering ist.
  • Ein Tasksteuerblock (Task Control Block, TCB) ist eine Datenstruktur im Betriebssystemkern, die die zur Verwaltung eines bestimmten Prozesses benötigten Informationen enthält. Speichersteuereinheiten können unter Verwendung von TCBs zur Verwaltung der Bewegung von Daten Informationen zu und von Speichereinheiten sowie zum und vom Cache-Zwischenspeicher (einschließlich des NVS) bewegen. Wenn von einem Host-Computer eine Schreib-Anforderung an eine Speichersteuereinheit ausgegeben wird, kann ein TCB vom Betriebssystemcode zugeordnet werden. Der TCB dient zur Verwaltung von Informationen über den Schreibprozess vom Beginn bis zum Ende, während zu schreibende Daten vom Host-Computer über den Cache-Zwischenspeicher an die sekundären Speichereinheiten übermittelt werden. Bei einem vollen Cache-Zwischenspeicher kann der TCB in eine Warteschlange eingereiht werden, bis vorhandene Daten im Cache-Zwischenspeicher ausgelagert (d.h. auf sekundäre Speichereinheiten geschrieben) werden können, um Speicherplatz freizugeben. Zu den Auslagerungsoperationen kann das Bewegen von Informationen aus dem Cache-Zwischenspeicher in einen RAID-Rang gehören, und Auslagerungs-TCBs können zum Durchführen der Auslagerungsoperationen zugeordnet werden.
  • In diesem Kontext gibt es bereits veröffentlichte Dokumente. Beispielsweise beschreibt das Dokument US 2011 / 0 191 534 A1 ein Verfahren zur Durchführung einer Datenübertragung von einem Schreib-Cache und NVS über einen Vorrichtungsadapter an einen Pool von Speichervorrichtungen durch einen Prozessor. Dabei variiert der Prozessor die Auslagerungsgeschwindigkeit abhängig von einer Auslastung des NVS für eine bestimmte Speichervorrichtung und Aktivitäten bezüglich der Speichervorrichtung.
  • Darüber hinaus beschreibt das Dokument US 2004 / 0 078 518 A1 , dass es wünschenswert ist, dass eine Cache-Trefferquote von einem Host oder einer Anwendung nicht durch ein Zugriffsmuster eines anderen Host beeinträchtigt wird. Um dies zu erreichen, wird durch eine Segment-Informationsetzvorrichtung Information in einer Segment-Informationsverwaltungstabelle basierend auf einem Einstellungskommando von einem Host geschrieben.
  • Trotzdem besteht ein Bedarf an - bzw. eine Aufgabe darin - ein Zugriffsverfahren auf Daten dahingehend zu verbessern, dass unternehmenskritische Anwendungen, Echtzeitanwendungen oder Anwendung im medizinischen Bereich besser unterstützt werden, welche strikte Anforderungen in Bezug auf Lese-Antwortzeiten aufweisen.
  • KURZDARSTELLUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Diese Aufgabe wird durch die Gegenstände der unabhängigen Ansprüche gelöst. Weitere Ausführungsbeispiele sind durch die abhängigen Ansprüche angegeben.
  • Gemäß bestimmten Aspekten ermöglicht die angepasste Auslagerungsgeschwindigkeit, die den Rängen des ersten Typs entspricht, eine Geschwindigkeit von E/A-Operationen zu den Rängen des ersten Typs zu maximieren, vorausgesetzt, dass die Lese- und Schreib-Antwortzeiten zum Ausführen des Befehls erfüllt sind. Die Menge von Kriterien legt fest, dass die durchschnittliche Lese-Antwortzeit geringer als ein erster Schwellenwert sein muss und ein vorgegebener Prozentsatz von Lesevorgängen in einer Zeit durchzuführen ist, die geringer als ein zweiter Schwellenwert ist. Die Menge von Kriterien legt ferner fest, dass die durchschnittliche Schreib-Antwortzeit geringer als ein dritter Schwellenwert sein muss, jeder Schreib-Burst (Schreib-Block) in einer Zeit abzuschließen ist, die geringer als ein vierter Schwellenwert ist, und das Intervall zwischen zwei beliebigen aufeinanderfolgenden Schreib-Bursts größer als ein fünfter Schwellenwert ist.
  • Gemäß weiteren Aspekten wird die angepasste Auslagerungsgeschwindigkeit, die Rängen des zweiten Typs entspricht, durch Simulieren der Ausführung eines Vergleichswertes ermittelt, wobei das Simulieren das Ermitteln aufweist, ob Schreib-Spitzenwerte mit einer geringeren Geschwindigkeit von E/A-Operationen als eine Geschwindigkeit von E/A-Operationen vorliegen, bei der der Cache-Zwischenspeicher beginnt, sich zu füllen und neue Schreibvorgänge warten müssen, bis Auslagerungen aus dem Cache-Zwischenspeicher abgeschlossen sind. Als Reaktion auf das Feststellen, dass die Lese-Spitzenwerte mit einer geringeren Geschwindigkeit von E/A-Operationen als eine Geschwindigkeit von E/A-Operationen vorliegen, bei der der Cache-Zwischenspeicher beginnt, sich zu füllen und neue Schreibvorgänge warten müssen, bis Auslagerungen aus dem Cache-Zwischenspeicher abgeschlossen sind, wird die Anzahl von Auslagerungs-Tasksteuerblöcken vermindert, um die Auslagerungsgeschwindigkeit zu verringern. Außerdem wird als Reaktion auf das Feststellen, dass die Lese-Spitzenwerte nicht mit einer geringeren Geschwindigkeit von E/A-Operationen als eine Geschwindigkeit von E/A-Operationen vorliegen, bei der der Cache-Zwischenspeicher beginnt, sich zu füllen und neue Schreibvorgänge warten müssen, bis Auslagerungen aus dem Cache-Zwischenspeicher abgeschlossen sind, die Anzahl von Auslagerungs-Tasksteuerblöcken erhöht, um die Auslagerungsgeschwindigkeit zu erhöhen.
  • Gemäß ergänzenden Aspekten wird das Ermitteln von Rängen des ersten Typs durchgeführt, indem eine Touch-Datei verarbeitet wird, die Ränge des ersten Typs kennzeichnet, oder durch Empfangen eines Hinweises bei der Steuereinheit, dass ein Datenträger für einen ersten Typ von Arbeitslast zu verwenden ist, und indem aus dem Hinweis ermittelt wird, welche Ränge vom ersten Typ sind.
  • Darüber hinaus kann das Ermitteln von Rängen des ersten Typs ferner das Verarbeiten von Schreib-Burst-Mustern weisen, die bei der Speichersteuereinheit empfangen wurden, um zu ermitteln, ob die Schreib-Burst-Muster mit einem vorgegebenen Typ übereinstimmen. Als Reaktion auf das Feststellen, dass die Schreib-Burst-Muster mit dem vorgegebenen Typ übereinstimmen, wird eine Feststellung dahingehend getroffen, dass Ränge, an die die Schreib-Burst-Muster gerichtet sind, vom ersten Typ sind.
  • Gemäß einem zusätzlichen Aspekt beträgt die angepasste Auslagerungsgeschwindigkeit, die Rängen des ersten Typs entspricht, weniger als die Hälfte der Standard-Auslagerungsgeschwindigkeit.
  • Figurenliste
  • Im Folgenden wird lediglich als Beispiel eine bevorzugte Ausführungsform der vorliegenden Erfindung unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, wobei:
    • 1 ein Blockschema einer Datenverarbeitungsumgebung veranschaulicht, die eine Speichersteuereinheit aufweist, die gemäß bestimmten Ausführungsformen mit einer Mehrzahl von Hosts und einer Mehrzahl von Speichereinheiten verbunden ist;
    • 2 ein Blockschema veranschaulicht, das beispielhafte Anforderungen in Bezug auf Lese-Antwortzeiten gemäß bestimmten Ausführungsformen zeigt;
    • 3 ein Blockschema veranschaulicht, das beispielhafte Anforderungen in Bezug auf Schreib-Antwortzeiten gemäß bestimmten Ausführungsformen zeigt;
    • 4 ein Blockschema veranschaulicht, das Parameter zur Anpassung der Auslagerungsgeschwindigkeit gemäß bestimmten Ausführungsformen zeigt;
    • 5 ein Blockschema veranschaulicht, das zeigt, wie Ränge eines vorgegebenen Typs gemäß bestimmten Ausführungsformen ermittelt werden;
    • 6 einen Ablaufplan veranschaulicht, der Operationen zum Ermitteln der Anzahl von Auslagerungs-Tasksteuerblöcken pro Rang für Auslagerungsdaten gemäß bestimmten Ausführungsformen zeigt;
    • 7 einen Ablaufplan veranschaulicht, der bestimmte Operationen zum Anpassen der Auslagerungsgeschwindigkeit gemäß bestimmten Ausführungsformen zeigt; und
    • 8 ein Blockschema eines Datenverarbeitungssystems veranschaulicht, das bestimmte Elemente zeigt, die die Speichersteuereinheit aus 1 gemäß bestimmten Ausführungsformen aufweisen kann.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die einen Teil hiervon bilden und mehrere Ausführungsformen veranschaulichen. Es versteht sich, dass andere Ausführungsformen genutzt und strukturelle und betriebstechnische Änderungen vorgenommen werden können.
  • Bestimmte Anwendungen wie zum Beispiel unternehmenskritische Anwendungen, Echtzeitanwendungen oder einige Anwendungen im medizinischen Bereich weisen strikte Anforderungen in Bezug auf Lese-Antwortzeiten auf. Derartige Anwendungen können als „Anwendungen mit strengen Anforderungen“ bezeichnet werden. Beispielsweise müssen bei bestimmten Anwendungen unter Umständen 99,99 % von Leseanforderungen in weniger als 600 Millisekunden durch die Speichersteuereinheit bedient werden. Bestimmte derartige Anwendungen können auch Arbeitslasten aufweisen, zu denen eine Abfolge großer Schreib-Bursts gehört. Beispielsweise kann jeder Schreib-Burst aus mehreren hundert Megabyte bis mehreren Gigabyte von Daten in kleinen Blöcken bestehen, und es können zu jedem Schreib-Burst Anforderungen in Bezug auf Schreib-Antwortzeiten und Beendigungszeiten vorliegen.
  • Wenn eine Speichersteuereinheit die Auslagerungsgeschwindigkeit zu hoch festlegt, sodass die großen Schreib-Bursts und die Anforderungen in Bezug auf die Beendigungszeit bei den Schreib-Bursts nicht berücksichtigt werden, kann die Speichersteuereinheit unter Umständen nicht schnell genug auf Lese-Anforderungen antworten, um die Anforderungen in Bezug auf die Lese-Antwortzeit zu erfüllen. Durch schnelles Auslagern von Daten aus dem Cache-Zwischenspeicher über eine hohe Auslagerungsgeschwindigkeit können Schreibvorgänge beschleunigt werden. Eine hohe Geschwindigkeit der Auslagerung kann jedoch eine niedrige Geschwindigkeit von Lesevorgängen aus sekundären Speichereinheiten verursachen, da Suchzeiten in Festplatten für Leseoperationen unter Umständen zunehmen, während Schreibvorgänge durchgeführt werden, oder Lesevorgänge müssen in eine Warteschlange eingereiht werden, um durchgeführt zu werden, nachdem Schreibvorgänge durchgeführt wurden.
  • Bestimmte Ausführungsformen ermitteln, welche Ränge von sekundärem Speicher für Anwendungen mit strikten Anforderungen in Bezug auf Lese-Antwortzeiten verwendet werden, bei denen auch große Schreib-Bursts auftreten, und passen die Auslagerungsgeschwindigkeit an eine Geschwindigkeit an, die geringer als eine Standard-Auslagerungsgeschwindigkeit ist. Bei bestimmten Ausführungsformen kann die Speichersteuereinheit in der Lage sein, zu ermitteln, welche Ränge derartigen angepassten Auslagerungsgeschwindigkeiten zu unterwerfen sind, die im Vergleich zu Standard-Auslagerungsgeschwindigkeiten verringert sind. Des Weiteren wird bei bestimmten Ausführungsformen ein Optimierungsmechanismus verwendet, um eine hohe Geschwindigkeit von Eingabe-/Ausgabeoperationen (E/A-Operationen) zur Festplatte zu erreichen und gleichzeitig die Anforderungen in Bezug auf die Lese- und Schreib-Antwortzeiten bei einer Anwendung mit strengen Anforderungen zu erfüllen.
  • 1 veranschaulicht ein Blockschema einer Datenverarbeitungsumgebung 100, die die Speichersteuereinheit 102 aufweist, die gemäß bestimmten Ausführungsformen mit einer Mehrzahl von Hosts 104a, 104b, ... 104n und einer Mehrzahl von Speichereinheiten 106 verbunden ist. Die Mehrzahl von Speichereinheiten 106 kann im Gegensatz zu dem Cache-Zwischenspeicher 108, den die Speichersteuereinheit 102 aufweist, als „sekundäre Speichereinheiten“ bezeichnet werden.
  • Die Speichersteuereinheit 102 und die Hosts 104a bis 104n können eine beliebige geeignete Datenverarbeitungseinheit einschließlich derjenigen aufweisen, die nach dem Stand der Technik bekannt sind, wie zum Beispiel einen Personal Computer, eine Workstation, einen Server, einen Großrechner, einen Handcomputer, einen Palmtop-Computer, eine Telefoneinheit, ein Netzwerkgerät, einen Blade-Computer, einen Server usw. Die Speichersteuereinheit 102 und die Hosts 104a bis 104n und die Mehrzahl von Speichereinheiten 106 können über ein Netzwerk wie zum Beispiel das Internet, ein Speichernetzwerk, ein Weitverkehrsnetzwerk, ein lokales Netzwerk usw. Daten austauschen.
  • Die Mehrzahl von Speichereinheiten 106 kann beliebige geeignete Speichereinheiten aufweisen wie zum Beispiel physische Festplatten, Halbleiterlaufwerke usw., die nach dem Stand der Technik bekannt sind. Die Speichereinheiten 106 können in Datenträger konfiguriert sein. Bei bestimmten Ausführungsformen können die Speichereinheiten 106 Festplatten sein, die als RAID-Ränge (RAID = Redundant Array of Independent Disk) konfiguriert sind. In 1 ist eine Mehrzahl von Rängen eines ersten Typs, die verwendet werden, um auf eine erste Art von Anwendung (z.B. Anwendungen, die strenge Anforderungen in Bezug auf Lese- und Schreib-Antwortzeiten aufweisen) zu antworten, mit den Bezugsziffern 110a bis 110m gezeigt, und eine zweite Mehrzahl von Rängen eines zweiten Typs, die verwendet werden, um auf andere Arten von Anwendungen zu antworten, ist mit den Bezugsziffern 112a bis 112p gezeigt. Die Ränge 110a bis 110m werden auch als „Ränge 111 mit strengen Anforderungen“ bezeichnet, und die Ränge 112a bis 112p werden auch als „andere Ränge 113“ bezeichnet.
  • Der Cache-Zwischenspeicher 108 kann eine oder mehrere unterschiedliche Arten von Speicher wie zum Beispiel RAMs, Schreib-Cache-Zwischenspeicher, Lese-Cache-Zwischenspeicher, NVS usw. aufweisen. Die unterschiedlichen Arten von Speicher, die der Cache-Zwischenspeicher aufweist, können untereinander zusammenwirken. Schreibvorgänge aus den Hosts 104a bis 104n können anfänglich auf den Cache-Zwischenspeicher 108 geschrieben und anschließend auf die Speichereinheiten 106 ausgelagert werden. Leseanforderungen von den Hosts 104a bis 104n können aus dem Cache-Zwischenspeicher 108 bedient werden, wenn die entsprechenden Informationen im Cache-Zwischenspeicher 108 zur Verfügung stehen, anderenfalls werden Informationen von den Speichereinheiten 106 auf den Cache-Zwischenspeicher 108 ausgelagert und anschließend den Hosts 104a bis 104n bereitgestellt.
  • Die Speichersteuereinheit 102 führt die Anwendung 114 zur Anpassung der Auslagerungsgeschwindigkeit aus, die die Anzahl von Tasksteuerblöcken (TCB) pro Rang anpasst, um bei bestimmten beispielhaften Anwendungen (z.B. bei der Anwendung 115 mit strengen Anforderungen, die im beispielhaften Host 104a gezeigt ist), bei denen eine Menge von Kriterien 120 in Bezug auf Lese- und Schreib-Antwortzeiten erfüllt sein muss, eine Standard-Auslagerungsgeschwindigkeit 116 an eine angepasste Auslagerungsgeschwindigkeit 118 anzupassen. Beispielhafte TCBs pro Rang sind mit den Bezugsnummern 122a, 122b bis 122s bezeichnet.
  • Bei bestimmten Ausführungsformen kann eine Anwendung mit Anforderungen an die Lese- und Schreib-Antwortzeiten einen Befehl vom Host 104a an die Speichersteuereinheit 102 senden. Die Anwendung mit Anforderungen an die Lese- und Schreib-Antwortzeiten kann als Anforderung 115 mit strengen Anforderungen oder als Anwendung eines ersten Typs bezeichnet werden. Der Befehl kann eine Lese- oder Schreibanforderung oder einen anderen Befehl aufweisen. Die Anwendung 114 zur Anpassung der Auslagerungsgeschwindigkeit ermittelt, welche Ränge der Anwendung 115 mit strengen Anforderungen zugeordnet sind, und kann feststellen, dass die Ränge des ersten Typs 110a bis 110m (Ränge 111 mit strengen Anforderungen) der Anwendung 115 mit strengen Anforderungen zugeordnet sind. Die Anwendung 114 zur Anpassung der Auslagerungsgeschwindigkeit kann den Cache-Zwischenspeicher 108 mit einer Standard-Auslagerungsgeschwindigkeit 116 betrieben haben, und um die Befehle von der Anwendung 115 mit strengen Anforderungen zu verarbeiten, kann die Anwendung 114 zur Anpassung der Auslagerungsgeschwindigkeit die Anzahl von TCBs pro Rang bei jedem der Ränge 110a bis 110m verringern, um eine angepasste Auslagerungsgeschwindigkeit 118 bereitzustellen, die geringer als die Standard-Auslagerungsgeschwindigkeit 116 ist, wobei die Standard-Auslagerungsgeschwindigkeit 116 bei Anwendungen verwendet wird, die sich von den Anwendungen 115 mit strengen Anforderungen unterscheiden. Beispielsweise kann die Anzahl von TCBs pro Rang bei bestimmten Anwendungen halbiert werden, sodass die angepasste Auslagerungsgeschwindigkeit 118 für die Anwendung 115 mit strengen Anforderungen die Hälfte der Standard-Auslagerungsgeschwindigkeit 116 für andere Anwendungen beträgt.
  • 2 veranschaulicht ein Blockschema 200, das beispielhafte Anforderungen in Bezug auf Lese-Antwortzeiten 202 bei beispielhaften Anwendungen 115 mit strengen Anforderungen gemäß bestimmten Ausführungsformen zeigt.
  • Bei bestimmten Ausführungsformen können die beispielhaften Anforderungen in Bezug auf Lese-Antwortzeiten folgende sein:
    • 1) Die durchschnittliche Lese-Antwortzeit muss geringer als 15,0 Millisekunden sein (mit der Bezugsnummer 204 bezeichnet);
    • 2) Anforderung mit vier Neunen: 99,99 % der Lesevorgänge müssen in einer Zeit abgeschlossen sein, die innerhalb von 600 Millisekunden liegt (mit der Bezugsnummer 206 bezeichnet);
    • 3) Anforderung mit drei Neunen: 99,9 % der Lesevorgänge müssen in einer Zeit abgeschlossen sein, die innerhalb von 200 Millisekunden liegt (mit der Bezugsnummer 208 bezeichnet); und
    • 4) Anforderung mit zwei Neunen: 99 % der Lesevorgänge müssen in einer Zeit abgeschlossen sein, die innerhalb von 60 Millisekunden liegt (mit der Bezugsnummer 210 bezeichnet).
  • Bei bestimmten Ausführungsformen wird, wenn die Wartezeit auf einen Lesevorgang mehr als 500 Millisekunden beträgt, der Lesevorgang durchgeführt, selbst wenn beliebige anstehende Schreibvorgänge vorliegen. Bei derartigen Ausführungsformen lässt sich die Anforderung mit vier Neunen unter Umständen leicht erfüllen, aber die Anforderungen mit drei Neunen und die Anforderungen mit zwei Neunen sind möglicherweise schwer zu erfüllen, wenn die Auslagerungsgeschwindigkeit zu hoch ist.
  • 3 veranschaulicht ein Blockschema 300, das beispielhafte Anforderungen in Bezug auf Schreib-Antwortzeiten 302 bei Anwendungen 115 mit strengen Anforderungen gemäß bestimmten Ausführungsformen zeigt.
  • Bei bestimmten Anwendungen mit strengen Anforderungen weist eine beispielhafte Arbeitslast einen großen Schreib-„Burst“ auf, der aus mehreren einhundert MB bis 2 GB mit Daten in kleinen Blöcken bestehen kann. Die Daten werden von den Hosts 104a bis 104n unter Verwendung mehrerer E/A-Datenströme so schnell wie möglich an die Speichereinheit 102 gesendet. Je nach der Größe des NVS im Cache-Zwischenspeicher 108 können die Auslagerungsanwendungen der Speichersteuereinheit offensiv und sehr effizient werden. Obwohl dies ein schnelles Auslagerungsverhalten bereitstellt, können die Speichereinheiten 106 die Schreibvorgänge vor anstehenden Lesevorgängen priorisieren. Dies ist hauptsächlich in der Tatsache begründet, dass die Suchzeiten zwischen den Schreibvorgängen minimiert werden, wodurch wiederum eine höhere Eingabe-/Ausgabeeffizienz (E/A-Effizienz) bereitgestellt wird. Die Anwendungen mit strengen Anforderungen benötigen konstant niedrige Lese-Antwortzeiten, unabhängig davon, ob ein Schreib-Burst-Ereignis auftritt (der Schreib-Burst tritt normalerweise ca. alle 80 Sekunden auf und kann bis zu 30 Sekunden dauern). Falls keine Anpassungen an der Standard-Auslagerungsgeschwindigkeit 116 vorgenommen werden, können kurze Zeit nach dem Beginn des Schreib-Bursts große Lese-Latenzzeiten (oder „Spitzen“-Latenzzeiten bei E/A-Lesevorgängen) auftreten und über das Ende des Schreib-Bursts hinaus andauern. Der Auslagerungsmechanismus kann aktiv daran arbeiten, den NVS-Cache-Zwischenspeicher zu leeren, und kann niedrige Lese-Antwortzeiten verursachen.
  • Die Anwendung 115 mit strengen Anforderungen kann auch Festplattensteuereinheit-Hardware empfehlen und kann Hardware mit einer hohen Zahl von E/A-Operationen pro Sekunde (IOPS) pro Festplatte bevorzugen. Das Konfigurationsziel der Speichersteuereinheit 102 besteht darin, die höchste Anzahl von IOPS pro Festplatte zu erreichen und gleichzeitig die Anforderungen 202 in Bezug auf Lese-Antwortzeiten und die Anforderungen 302 in Bezug auf Schreib-Antwortzeiten zu erfüllen.
  • Bei bestimmten Ausführungsformen können die beispielhaften Anforderungen 302 in Bezug auf Schreib-Antwortzeiten folgende sein:
    • 1) die durchschnittliche Schreib-Antwortzeit muss geringer als 1 Millisekunde sein (mit der Bezugsnummer 304 bezeichnet);
    • 2) jeder Schreib-Burst ist in weniger als 30 Sekunden abgeschlossen (mit der Bezugsnummer 306 bezeichnet); und
    • 3) das Zeitintervall zwischen aufeinanderfolgenden Schreib-Bursts ist größer als 50 Sekunden (mit der Bezugsnummer 308 bezeichnet).
  • 4 veranschaulicht ein Blockschema 400, das Parameter zur Anpassung 402 der Auslagerungsgeschwindigkeit gemäß bestimmten Ausführungsformen zeigt.
  • Bei bestimmten Ausführungsformen wird die Anzahl von Auslagerungsaufgaben so angepasst, dass die Speichersteuereinheit die höchstmögliche Anzahl von IOPS pro Festplatte bereitstellen kann, ohne die Anforderungen der Anwendung mit strengen Anforderungen in Bezug auf sowohl Lese- als auch Schreib-Antwortzeiten zu verletzen. Im Idealfall tritt die höchste Anzahl von IOPS an dem Punkt auf, an dem nahezu gleichzeitig sowohl Lese- als auch Schreib-Spitzenwerte vorliegen.
  • Daher versucht die Anwendung 114 zur Anpassung der Auslagerungsgeschwindigkeit, die Auslagerungsgeschwindigkeit so anzupassen, dass die Anzahl von IOPS pro Festplatte maximiert wird 404, während sowohl die Anforderungen in Bezug auf die Lese-Antwortzeit 406 als auch die Anforderungen in Bezug auf die Schreib-Antwortzeit 408 erfüllt werden.
  • Außer dem Anpassen der Auslagerungsgeschwindigkeit, um die Anzahl von IOPS pro Festplatte zu maximieren und gleichzeitig Anforderungen in Bezug auf Lese- und Schreib-Antwortzeiten zu erfüllen, kann die Speichersteuereinheit 102 auch bestimmte Ränge 110a bis 110m zuordnen, die speziell für die Anwendung 115 mit strengen Anforderungen zugeordnet werden müssen.
  • 5 veranschaulicht ein Blockschema 500, das zeigt, wie Ränge (z.B. die Ränge 110a bis 110m) des Typs mit strengen Anforderungen gemäß bestimmten Ausführungsformen ermittelt werden.
  • Es gibt mehrere Möglichkeiten, wie die Speichersteuereinheit 102 Ränge ermitteln kann, die für die Anwendung 115 mit strengen Anforderungen vorgesehen sind. Bei bestimmten Ausführungsformen (die mit der Bezugsnummer 504 bezeichnet sind) kann eine Touch-Datei einen Rang kennzeichnen, der der Anwendung 115 mit strengen Anforderungen entspricht. Die Touch-Datei kann ein Bitmap aufweisen, bei dem Bits für Ränge gesetzt sind, die für die Anwendung 115 mit strengen Anforderungen zu verwenden sind.
  • Bei anderen Ausführungsformen (die mit der Bezugsnummer 506 bezeichnet sind) kann die Anwendung 115 mit strengen Anforderungen einen Hinweis an einen Datenträger übermitteln, um anzuzeigen, dass der Datenträger für Arbeitslasten von Anwendungen mit strengen Anforderungen zu verwenden ist. Von diesen Datenträgern kann die Speichersteuereinheit 102 ermitteln, welche Ränge für die Anwendung 115 mit strengen Anforderungen zu verwenden sind. Anschließend kann die Speichersteuereinheit 102 ein Bitmap von Rängen aufbauen, die für Ränge 111 von Anwendungen 115 mit strengen Anforderungen zu verwenden sind.
  • Bei noch weiteren Ausführungsformen (die mit der Bezugsnummer 508 bezeichnet sind) ermittelt die Speichersteuereinheit 102 auf der Grundlage des Schreib-Burst-Musters aus der Anwendungssoftware mit strengen Anforderungen Ränge 111 mit strengen Anforderungen. Wenn ein Rang Schreib-Burst für weniger als 30 Sekunden erhält und 50 Sekunden lang keine Schreibvorgänge vorliegen, kann der Rang als Rang einer Anwendung mit strengen Anforderungen ermittelt werden. Die Speichersteuereinheit 102 baut anschließend ein Bitmap von Rängen auf, die für Arbeitslasten von Anwendungen mit strengen Anforderungen verwendet werden.
  • Bei bestimmten beispielhaften Ausführungsformen ist die maximale Anzahl von Auslagerungs-TCBs 122a bis 122s pro Rang wie folgt festgelegt:
    • 1) Wenn das Bit für den Rang gesetzt ist, um anzudeuten, dass es sich hierbei um einen Rang mit strengen Anforderungen handelt, wird die Anzahl der bei diesem Rang maximal zulässigen Auslagerungs-TCBs auf die Anzahl festgelegt, die für die Anwendung 115 mit strengen Anforderungen optimal ist. Bei bestimmten Ausführungsformen beträgt die optimale Anzahl 8; und
    • 2) wenn das Bit nicht gesetzt ist, um anzudeuten, dass es sich hierbei nicht um einen Rang mit strengen Anforderungen handelt, wird die Anzahl der bei diesem Rang zulässigen Auslagerungs-TCBs auf den Standardwert von 40 festgelegt.
  • 6 veranschaulicht einen Ablaufplan 600, der Operationen zum Ermitteln der Anzahl von Auslagerungs-Tasksteuerblöcken pro Rang für Auslagerungsdaten gemäß bestimmten Ausführungsformen zeigt. Die in 6 gezeigten Operationen können durch die Anwendung 114 zur Anpassung der Auslagerungsgeschwindigkeit durchgeführt werden, die in der Speichersteuereinheit 102 ausgeführt wird.
  • Die Steuerung beginnt bei Block 602, in dem die Anwendung 114 zur Anpassung der Auslagerungsgeschwindigkeit mit einer vorgegebenen Anzahl von Auslagerungs-Tasksteuerblöcken pro Rang beginnt. Die Steuerung geht zu Block 604 über, bei dem die Anwendung 114 zur Anpassung der Auslagerungsgeschwindigkeit die Ausführung des Vergleichswertes für Arbeitslasten der Anwendung 115 mit strengen Anforderungen simuliert, und die Simulation wird fortgesetzt, bis eine optimale Anzahl von Auslagerungs-TCBs ermittelt ist.
  • Von Block 604 geht die Steuerung zu Block 606 über, in dem die Anwendung 114 zur Anpassung der Auslagerungsgeschwindigkeit ermittelt, ob Lese-Spitzenwerte mit einer geringeren Geschwindigkeit von E/A-Operationen als eine Geschwindigkeit von E/A-Operationen vorliegen, bei der der Cache-Zwischenspeicher beginnt, sich zu füllen und neue Schreibvorgänge warten müssen, bis Auslagerungen aus dem Cache-Zwischenspeicher abgeschlossen sind. Als Reaktion auf das Feststellen („Ja“-Zweig aus Block 606), dass die Lese-Spitzenwerte mit einer geringeren Geschwindigkeit von E/A-Operationen als eine Geschwindigkeit von E/A-Operationen vorliegen, bei der der Cache-Zwischenspeicher beginnt, sich zu füllen und neue Schreibvorgänge warten müssen, bis Auslagerungen aus dem Cache-Zwischenspeicher abgeschlossen sind, wird die Anzahl von Auslagerungs-Tasksteuerblöcken vermindert (bei Block 608), um die Auslagerungsgeschwindigkeit zu verringern. Zusätzlich wird als Reaktion auf das Feststellen („Nein“-Zweig aus Block 606), dass die Lese-Spitzenwerte nicht mit einer geringeren Geschwindigkeit von E/A-Operationen als eine Geschwindigkeit von E/A-Operationen vorliegen, bei der der Cache-Zwischenspeicher beginnt, sich zu füllen und neue Schreibvorgänge warten müssen, bis Auslagerungen aus dem Cache-Zwischenspeicher abgeschlossen sind, die Anzahl von Auslagerungs-Tasksteuerblöcken erhöht (bei Block 610), um die Auslagerungsgeschwindigkeit zu erhöht.
  • Aus den Blöcken 608 und 610 kehrt die Steuerung zu Block 604 zurück, und die Simulation wird fortgesetzt. Die Simulation ermittelt die IOPS, bei denen Lese-Spitzenwerte und die Schreibvorgänge den Cache-Zwischenspeicher (z.B. den NVS) zu füllen beginnen und neue Schreibvorgänge warten müssen, bis Auslagerungen aus dem Cache-Zwischenspeicher (z.B. dem NVS) abgeschlossen sind.
  • Bei bestimmten Ausführungsformen kann möglicherweise eine beispielhafte optimale Anzahl von Auslagerungs-TCBs gefunden werden, bei der gleichzeitig Lese-Spitzenwerte und Schreib-Spitzenwerte erreicht werden. Bei bestimmten Ausführungsformen kann die Simulation mit 40 Auslagerungs-TCBs gestartet werden, und es kann möglicherweise festgestellt werden, dass die optimale Anzahl von Auslagerungs-TCBs bei Arbeitslasten von Anwendungen mit strengen Anforderungen 8 bis 10 Auslagerungs-TCBs beträgt. Als Ergebnis derartiger Simulationen können die IOPS pro Festplatte von 80 IOPS, wenn die Standardanzahl von TCBs pro Rang von 40 verwendet wird, auf über 200 IOPS erhöht werden, wenn 8 bis 10 Auslagerungs-TCBs pro Rang verwendet werden.
  • 7 veranschaulicht einen Ablaufplan 700, der bestimmte Operationen zum Anpassen der Auslagerungsgeschwindigkeit gemäß bestimmten Ausführungsformen zeigt. Die in 7 gezeigten Operationen können durch die Anwendung 114 zur Anpassung der Auslagerungsgeschwindigkeit durchgeführt werden, die in der Speichersteuereinheit 102 ausgeführt wird.
  • Die Steuerung beginnt bei Block 702, in dem die Speichersteuereinheit 102, die den Cache-Zwischenspeicher 108 aufweist, einen Befehl vom Host 104a empfängt, wobei die Menge von Kriterien 102, die der Lese-Antwortzeit 202 und der Schreib-Antwortzeit 302 zum Ausführen des Befehls entsprechen, erfüllt sein muss. Bei bestimmten Ausführungsformen kann der Befehl unter Umständen aus der Anwendung 115 mit strengen Anforderungen empfangen werden, die im Host 104a ausgeführt wird.
  • Die Speichersteuereinheit 102 ermittelt (bei Block 704) Ränge 110a bis 110m eines ersten Typs und Ränge 112a bis 112p eines zweiten Typs, die einer Mehrzahl von Datenträgern entsprechen, die mit der Speichersteuereinheit 102 verbunden sind, wobei der Befehl unter Berücksichtigung der Ränge 110a bis 110m des ersten Typs auszuführen ist. Bei bestimmten Ausführungsformen gelten die Ränge 110a bis 110m für die Anwendung 115 mit strengen Anforderungen, die auf dem Host 104 ausgeführt wird und von der der Befehl durch die Speichersteuereinheit 102 empfangen wurde.
  • Die Steuerung geht zu Block 706 über, bei dem die Auslagerungsgeschwindigkeit, die den Rängen des ersten Typs entspricht (d.h. des Typs mit strengen Anforderungen) so angepasst wird, dass sie geringer als die Standard-Auslagerungsgeschwindigkeit 116 ist, die den Rängen des zweiten Typs entspricht, wobei die Menge 120 von Kriterien, die den Lese- und Schreib-Antwortzeiten zum Ausführen des Befehls entsprechen, erfüllt ist.
  • Daher veranschaulicht 7 bestimmte Ausführungsformen, bei denen in der Speichersteuereinheit 102 der Anwendung mit strengen Anforderungen Ränge zugewiesen und anderen Anwendungen zugewiesene Ränge gekennzeichnet werden. Bei bestimmten Ausführungsformen wird eine Anordnung von Auslagerungs-TCBs bei Rängen verwendet, die der Anwendung 115 mit strengen Anforderungen zugeordnet sind, und eine andere Anordnung wird bei anderen Anwendungen verwendet. Bei bestimmten Ausführungsformen beträgt die angepasste Auslagerungsgeschwindigkeit, die Rängen des Typs mit strengen Anforderungen entspricht, weniger als die Hälfte der Standard-Auslagerungsgeschwindigkeit. Bei bestimmten anderen Ausführungsformen beträgt die angepasste Auslagerungsgeschwindigkeit, die Rängen des Typs mit strengen Anforderungen entspricht, weniger als ein Fünftel der Standard-Auslagerungsgeschwindigkeit.
  • Daher verringern bestimmte Ausführungsformen die Auslagerungsgeschwindigkeit im Vergleich zu einer Standard-Auslagerungsgeschwindigkeit, um maximale IOPS zu ermöglichen und gleichzeitig die Anforderungen an die Lese- und Schreib-Antwortzeiten bei Anwendungen mit strengen Anforderungen zu erfüllen. Bei Anwendungen, bei denen es sich nicht um Anwendungen mit strengen Anforderungen handelt, wird die Standard-Auslagerungsgeschwindigkeit verwendet.
  • Die beschriebenen Operationen können unter Verwendung von Standard-Programmiertechniken oder Standard-Entwicklungstechniken zur Erzeugung von Software, Firmware, Hardware oder einer beliebigen Kombination davon als Verfahren, Vorrichtung oder Computerprogrammprodukt realisiert sein. Dementsprechend können Aspekte der Ausführungsformen die Form einer vollständig in Hardware realisierten Ausführungsform, einer vollständig in Software realisierten Ausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform annehmen, in der Software- und Hardwareaspekte miteinander kombiniert sind, die hierin allgemein als „Schaltung“, „Modul“ oder „System“ bezeichnet werden. Ferner können Aspekte der Ausführungsformen die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert ist, auf denen computerlesbarer Programmcode verkörpert ist.
  • Es können beliebige Kombinationen eines oder mehrerer computerlesbarer Medien verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Zu computerlesbaren Speichermedien können beispielsweise, ohne darauf beschränkt zu sein, ein elektronisches, magnetisches, optisches oder elektromagnetisches System bzw. ein Infrarot- oder Halbleitersystem bzw. eine derartige Vorrichtung oder Einheit oder eine beliebige geeignete Kombination des Vorstehenden gehören. Zu den genaueren Beispielen (unvollständige Liste) computerlesbarer Speichermedien zählen unter anderem folgende: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination des Vorstehenden. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes beliebige vergegenständlichte Medium sein, das ein Programm enthalten oder speichern kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung genutzt werden kann.
  • Ein computerlesbares Signalmedium kann unter anderem ein im Basisband oder als Teil einer Trägerwelle übertragenes Datensignal mit darin verkörpertem computerlesbarem Programmcode aufweisen. Ein derartiges übertragenes Signal kann eine beliebige Mehrzahl von Formen annehmen, einschließlich, ohne darauf beschränkt zu sein, einer elektromagnetischen oder optischen Form oder einer beliebigen geeigneten Kombination davon. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, bei dem es sich nicht um ein computerlesbares Speichermedium handelt und das ein Programm übertragen, senden oder transportieren kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung genutzt werden kann.
  • Auf einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung jedes beliebigen geeigneten Mediums, einschließlich, ohne darauf beschränkt zu sein, drahtloser, drahtgebundener Medien, Lichtwellenleitern, HF usw. oder unter Verwendung einer beliebigen geeigneten Kombination des Vorstehenden übertragen werden.
  • Computerprogrammcode zur Ausführung von Operationen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen, darunter in einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder Ähnlichem und in herkömmlichen prozeduralen Programmiersprachen wie z.B. „C“ oder ähnlichen Programmiersprachen geschrieben sein. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. Beim letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (LAN) oder über ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (beispielsweise über das Internet unter Nutzung eines Internet-Dienstanbieters (Internet Service Provider)).
  • Nachstehend werden Aspekte der vorliegenden Erfindung unter Bezugnahme auf Ablaufpläne und/oder Blockschemata von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufpläne und/oder der Blockschemata und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschemata durch Computerprogrammanweisungen realisiert werden kann bzw. können. Diese Computerprogrammanweisungen können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder anderen 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 zum Realisieren der in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschemas angegebenen Funktionen/Aktionen schaffen.
  • Diese Computerprogrammanweisungen können ebenfalls in einem computerlesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass die im computerlesbaren Medium gespeicherten Anweisungen ein Erzeugnis schaffen, das die Anweisungen aufweist, die die in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschemas angegebene Funktion/Aktion realisieren.
  • Die Computerprogrammanweisungen 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 oder auf anderen programmierbaren Vorrichtungen ausgeführt werden, Prozesse zur Realisierung der in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschemas angegebenen Funktionen/Aktionen bereitstellen.
  • 8 veranschaulicht ein Blockschema eines Datenverarbeitungssystems, das bestimmte Elemente zeigt, die die Speichersteuereinheit 102 oder die Hosts 104a bis 104n gemäß bestimmten Ausführungsformen aufweisen können. Das System 800 kann die Speichersteuereinheit 102 oder die Hosts 104a bis 104n aufweisen, und es kann die Schaltung 802 aufweisen, die bei bestimmten Ausführungsformen mindestens den Prozessor 804 aufweisen kann. Das System 800 kann außerdem den Hauptspeicher 806 (z.B. eine flüchtige Speichereinheit) und den Speicher 808 aufweisen. Der Speicher 808 kann eine nichtflüchtige Speichereinheit (z.B. EEPROM, ROM, PROM, RAM, DRAM, SRAM, Flash-Speicher, Firmware, programmierbare Logik usw.), ein Magnetplattenlaufwerk, ein optisches Plattenlaufwerk, ein Bandlaufwerk usw. aufweisen. Der Speicher 808 kann eine interne Speichereinheit, eine angeschlossene Speichereinheit und/oder eine über ein Netzwerk zugängliche Speichereinheit aufweisen. Das System 800 kann die programmierbare Logik 100 einschließlich Code 812 aufweisen, der in den Hauptspeicher 806 geladen und durch den Prozessor 804 oder die Schaltung 802 ausgeführt werden kann. Bei bestimmten Ausführungsformen kann die Programmlogik 810 einschließlich des Codes 812 im Speicher 808 gespeichert sein. Bei bestimmten anderen Ausführungsformen kann die Programmlogik 810 in der Schaltung 802 realisiert sein. Daher kann die Programmlogik 810 im Hauptspeicher 806 und/oder in der Schaltung 802 realisiert sein, obwohl in 8 die Programmlogik 810 getrennt von anderen Elementen dargestellt ist.
  • Bestimmte Ausführungsformen können auf ein Verfahren zum Bereitstellen von Datenverarbeitungsanweisungen durch eine Person oder eine automatische Verarbeitung gerichtet sein, indem computerlesbarer Code in ein Datenverarbeitungssystem integriert wird, wobei der Code in Verbindung mit dem Datenverarbeitungssystem so ausgelegt ist, dass die Operationen der beschriebenen Ausführungsformen durchgeführt werden.
  • Einheiten, die in Verbindung untereinander stehen, brauchen nicht ununterbrochen miteinander in Verbindung zu stehen, sofern nicht ausdrücklich etwas anderes angegeben ist. Außerdem können untereinander in Verbindung stehende Einheiten über eine oder mehrere Vermittlereinheiten direkt oder indirekt miteinander kommunizieren.
  • Obwohl ferner Prozessschritte, Verfahrensschritte, Algorithmen und dergleichen in einer Reihenfolge beschrieben sein können, können derartige Prozesse, Verfahren und Algorithmen so gestaltet sein, dass sie in alternativen Reihenfolgen funktionieren. Anders ausgedrückt gibt ein möglicherweise beschriebener beliebiger Ablauf oder eine möglicherweise beschriebene beliebige Reihenfolge von Schritten nicht zwangsläufig ein Erfordernis an, dem zufolge die Schritte in dieser Reihenfolge durchgeführt werden müssen. Die hierin beschriebenen Schritte von Prozessen können in einer beliebigen praktisch durchführbaren Reihenfolge durchgeführt werden. Ferner können einige Schritte gleichzeitig durchgeführt werden.
  • Zumindest bestimmte Operationen, die in den Figuren veranschaulicht sein können, zeigen bestimmte Ereignisse, die in einer bestimmten Reihenfolge auftreten. Bei alternativen Ausführungsformen können bestimmte Operationen in einer anderen Reihenfolge durchgeführt, verändert oder entfernt werden. Darüber hinaus können Schritte zu der oben beschriebenen Logik hinzugefügt werden, die dann immer noch den beschriebenen Ausführungsschritten entspricht. Ferner können hierin beschriebene Operationen der Reihe nach auftreten, oder bestimmte Operationen können parallel verarbeitet werden. Weiterhin können Operationen durch eine einzelne Verarbeitungseinheit oder durch verteilte Verarbeitungseinheiten durchgeführt werden.

Claims (9)

  1. Verfahren, aufweisend: durch eine Speichersteuereinheit, die einen Cache-Zwischenspeicher aufweist, Empfangen eines Befehls von einem Host, wobei ein Satz von Kriterien, die den Lese- und Schreib-Antwortzeiten zum Ausführen des Befehls für eine Anwendung mit strengen Anforderungen entsprechen, erfüllt sein muss; wobei Auslagerungs-Tasksteuerblöcke, die in der Speichersteuereinheit verwaltet werden, Informationen über Prozesse als zu schreibende Daten speichern, von dem Host durch den Cache an Speichereinheiten, die mit der Speichersteuereinheit verbunden sind, weitergeleitet werden; und Anpassen der Auslagerungsgeschwindigkeit, die den Rängen entspricht, die einer Mehrzahl von Datenträgern, die in den Speichereinheiten gespeichert, die mit der Speichersteuereinheit verbinden sind, entsprechen, wobei der Satz von Kriterien, die den Lese- und Schreib-Antwortzeiten zum Ausführen eines Kommandos, erfüllt ist, und wobei die angepasste Auslagerungsgeschwindigkeit, die den Rängen entspricht, durch eine Simulation einer Ausführung eines Benchmark bestimmt wird, und wobei die Simulation aufweist: Ermitteln, ob Lese-Spitzenwerte mit einer geringeren Geschwindigkeit von E/A-Operationen als eine Geschwindigkeit von E/A-Operationen vorliegen, bei der der Cache-Zwischenspeicher beginnt, sich zu füllen, und neue Schreibvorgänge warten müssen, bis Auslagerungen aus dem Cache-Zwischenspeicher abgeschlossen sind, in Reaktion auf die Feststellung, dass Lese-Spitzenwerte mit einer geringeren Geschwindigkeit von E/A-Operationen als eine Geschwindigkeit von E/A-Operationen vorliegen, bei der der Cache-Zwischenspeicher beginnt, sich zu füllen, und neue Schreibvorgänge warten müssen, bis Auslagerungen aus dem Cache-Zwischenspeicher abgeschlossen sind, Reduzieren der Auslagerungs-Tasksteuerblöcke um die Auslagerungsgeschwindigkeit, wobei eine Auslagerungsgeschwindigkeit-Anpassung-Anwendung bestimmt, welche Ränge den Anwendungen mit strengen Anforderungen zugewiesen sind, und wobei eine maximale Anzahl an Auslagerungs-Tasksteuerblöcken für einen Rang gesetzt wird durch eine Ausführung von: wenn der Rang ein Rang mit strengen Anforderungen ist, dann wird eine maximale Anzahl von Auslagerungs-Tasksteuerblöcken, die für den Rang mit strengen Anforderungen erlaubt ist, auf eine Anzahl gesetzt, die geringer als die Hälfte eine Standard-Auslagerungsgeschwindigkeit ist; und wenn der Rang kein Rang mit strengen Anforderungen ist, dann wird die maximale Anzahl von Auslagerungs-Tasksteuerblöcken, die für den Rang ohne strenge Anforderungen erlaubt ist, auf eine Standardanzahl gesetzt
  2. Verfahren nach Anspruch 1, wobei die angepasste Auslagerungsgeschwindigkeit, die den Rängen des ersten Typs entspricht, eine Geschwindigkeit von E/A-Operationen zu den Rängen des ersten Typs zu maximieren ermöglicht, vorausgesetzt, dass die Lese- und Schreib-Antwortzeiten zum Ausführen des Befehls erfüllt sind, und wobei der Satz von Kriterien festlegt: die durchschnittliche Lese-Antwortzeit muss kürzer als ein erster Schwellenwert sein; ein vorgegebener Prozentsatz von Lesevorgängen muss in einer Zeit durchgeführt werden, die kürzer als ein zweiter Schwellenwert ist; die durchschnittliche Schreib-Antwortzeit muss kürzer als ein dritter Schwellenwert sein; jeder Schreib-Burst muss in einer Zeit abgeschlossen sein, die kürzer als ein vierter Schwellenwert ist; und das Intervall zwischen zwei beliebigen aufeinanderfolgenden Schreib-Bursts ist länger als ein fünfter Schwellenwert.
  3. Das Verfahren gemäß Anspruch 1, wobei, wenn die Speichersteuereinheit die Auslagerungsrate zu hoch setzt, um den Anforderungen an die durchschnittlichen Schreib-Antwortzeiten und die durchschnittlichen Ausführungszeitanforderungen für einen Schreib-Burst der vorherbestimmten Art zu entsprechen, dann ist die Speichersteuereinheit nicht in der Lage auf Leseanforderungen schnell genug zu reagieren, um auf die Lese-Antwortzeit-Anforderungen zu reagieren, die in dem Satz von Kriterien enthalten sind.
  4. Das Verfahren gemäß Anspruch 1, wobei das Verfahren weiterhin aufweist: Bestimmen, durch die Speichersteuereinheit, von Rängen einer ersten Art und Ränge einer zweiten Art, die der Mehrzahl der Datenträger entspricht, die mit der Speichersteuereinheit verbunden sind, wobei die Ränge der ersten Art basierend auf einem Hinweis bestimmt werden, der von der Speichersteuereinheit empfangen wird, wobei der Hinweis darauf hinweist, dass der Datenträger für eine erste Art von Arbeitslast zu verwenden ist, welche Schreib-Bursts einer vorher bestimmten Art enthält, wobei jeder Schreib-Burst der vorher bestimmten Art aus mindestens 200 MB an Blockdaten aufweist, und wobei der Satz der Kriterien Anforderungen hinsichtlich durchschnittlichen Schreib-Antwortzeiten und Ausführungszeitanforderungen für den Schreib-Burst der vorher bestimmten Art aufweist, und wobei ein Kommando mit Hinsicht auf die Ränge der ersten Art ausgeführt werden sollen; und Anpassen der Auslagerungsgeschwindigkeit entsprechend den Rängen der ersten Art, so dass sie halb so groß sind wie eine Standard- Auslagerungsgeschwindigkeit, und wobei in Reaktion auf die Feststellung, dass Lese-Spitzenwerte mit einer geringeren Geschwindigkeit von E/A-Operationen als eine Geschwindigkeit von E/A-Operationen vorliegen, bei der der Cache-Zwischenspeicher beginnt, sich zu füllen, und neue Schreibvorgänge warten müssen, bis Auslagerungen aus dem Cache-Zwischenspeicher abgeschlossen sind, Erhöhen der Anzahl der Auslagerungs-Tasksteuerblöcke, Erhöhen der Anzahl, um die Auslagerungsgeschwindigkeit zu erhöhen.
  5. Das Verfahren gemäß Anspruch 4, wobei die Bestimmung der Ränge der ersten Art und der Ränge der zweiten Art weiterhin aufweist: Verarbeiten der Schreib-Burst-Muster, die von der Speichersteuereinheit empfangen wurden, um festzustellen, ob die Schreib-Burst-Muster der vorher bestimmten Art entsprechen, und in Reaktion auf die Bestimmung, dass die Schreib-Burst-Muster der vorher bestimmten Art entsprechen, Bestimmen, dass die Ränge, an die die Schreib-Burst-Muster adressiert sind, der ersten Art entsprechen.
  6. Das Verfahren gemäß Anspruch 1, wobei die Auslagerungs-Tasksteuerblöcke, die in der Speichersteuereinheit verwaltet werden, eine Datenstruktur in einen Betriebssystemkern ist, die Informationen enthält, die erforderlich sind für einen Prozess der Auslagerung.
  7. System, aufweisend: einen Hauptspeicher; und einen mit dem Hauptspeicher verbundenen Prozessor, wobei der Prozessor Operationen entsprechend einem der Ansprüche 1 bis 6 durchführt.
  8. Computerprogrammprodukt, wobei das Computerprogrammprodukt aufweist: ein computerlesbares Speichermedium mit darauf verkörpertem computerlesbarem Code, wobei der computerlesbare Programmcode so konfiguriert ist, dass Operationen gemäß einem der Ansprüche 1 bis 6 ausgeführt werden.
  9. In Verbindung mit einem Host und einer Mehrzahl von Datenträgern stehende Speichersteuereinheit, wobei die Speichersteuereinheit aufweist: einen Prozessor; und einen mit dem Prozessor verbunden Cache-Zwischenspeicher, wobei die Speichersteuereinheit ein Verfahren nach einem der Ansprüche 1 bis 6 ausführt.
DE112012004798.2T 2011-11-17 2012-11-09 Anpassung der Auslagerungsgeschwindigkeit auf Grundlage von Anforderungen an Lese- und Schreib-Antwortzeiten Active DE112012004798B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/299,048 2011-11-17
US13/299,048 US9262321B2 (en) 2011-11-17 2011-11-17 Adjustment of destage rate based on read and write response time requirements
PCT/IB2012/056282 WO2013072824A1 (en) 2011-11-17 2012-11-09 Adjustment of destage rate based on read and write response time requirements

Publications (2)

Publication Number Publication Date
DE112012004798T5 DE112012004798T5 (de) 2014-07-31
DE112012004798B4 true DE112012004798B4 (de) 2022-05-05

Family

ID=48428075

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012004798.2T Active DE112012004798B4 (de) 2011-11-17 2012-11-09 Anpassung der Auslagerungsgeschwindigkeit auf Grundlage von Anforderungen an Lese- und Schreib-Antwortzeiten

Country Status (5)

Country Link
US (2) US9262321B2 (de)
CN (1) CN103946790B (de)
DE (1) DE112012004798B4 (de)
GB (1) GB2511970B (de)
WO (1) WO2013072824A1 (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8838905B2 (en) 2011-11-17 2014-09-16 International Business Machines Corporation Periodic destages from inside and outside diameters of disks to improve read response time via traversal of a spatial ordering of tracks
CN103514111A (zh) * 2012-06-21 2014-01-15 华为技术有限公司 一种Cache的替换方法及装置
US9423978B2 (en) * 2013-05-08 2016-08-23 Nexgen Storage, Inc. Journal management
US9658888B2 (en) 2013-08-05 2017-05-23 International Business Machines Corporation Thresholding task control blocks for staging and destaging
US10120716B2 (en) * 2014-10-02 2018-11-06 International Business Machines Corporation Task pooling and work affinity in data processing
CN107615249B (zh) * 2015-05-14 2020-11-27 爱德斯托科技有限公司 存储器装置和控制存储器装置的方法
CN106293503B9 (zh) * 2015-06-23 2019-06-28 株式会社东芝 磁盘装置及控制方法
CN106933495B (zh) * 2015-12-30 2019-07-23 华为技术有限公司 一种数据读取方法、raid控制器及存储设备
US10552320B2 (en) * 2016-04-01 2020-02-04 Intel Corporation Using a projected out of memory score to selectively terminate a process without transitioning to a background mode
WO2018061068A1 (ja) * 2016-09-27 2018-04-05 株式会社日立製作所 ストレージシステム及びストレージシステム管理方法
US10505832B2 (en) * 2017-05-10 2019-12-10 Sap Se Resource coordinate system for data centers
US10417139B2 (en) * 2017-08-18 2019-09-17 International Business Machines Corporation Cache management based on types of I/O operations
US10949354B2 (en) 2017-09-05 2021-03-16 International Business Machines Corporation Distributed safe data commit in a data storage system
US10929034B2 (en) * 2018-05-08 2021-02-23 International Business Machines Corporation Allocation of task control blocks in a storage controller for staging and destaging based on storage rank response time
US11321133B2 (en) * 2018-06-08 2022-05-03 International Business Machines Corporation Determining an allocation of stage and destage tasks by using a machine learning module
US10509723B1 (en) 2018-06-12 2019-12-17 International Business Machines Corporation Expedited cache destage for power interruption in a virtual storage appliance
US10747596B2 (en) 2018-07-31 2020-08-18 International Business Machines Corporation Determining when to send message to a computing node to process items using a machine learning module
US10628241B2 (en) 2018-07-31 2020-04-21 International Business Machines Corporation Determining when to send message to computing node to process items by training a machine learning module
US10901906B2 (en) 2018-08-07 2021-01-26 International Business Machines Corporation Write data allocation in storage system
US10901904B2 (en) 2018-10-25 2021-01-26 International Business Machines Corporation Using a machine learning module to perform destages of tracks with holes in a storage system
US11222265B2 (en) * 2018-10-25 2022-01-11 International Business Machines Corporation Perform destages of tracks with holes in a storage system by training a machine learning module
US10740238B2 (en) * 2018-11-12 2020-08-11 International Business Machines Corporation Dynamically determining cache destage rates for multiple storage arrays
JP2020155182A (ja) * 2019-03-20 2020-09-24 キオクシア株式会社 メモリシステム及び不揮発性メモリ
US11416407B2 (en) * 2020-05-22 2022-08-16 Dell Products, L.P. Method and apparatus for cache slot allocation based on data origination location or final data destination location
US11568506B2 (en) 2020-07-14 2023-01-31 Skyllful Inc. System of and method for facilitating on-device training and creating, updating, and disseminating micro-learning simulations

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040078518A1 (en) 2002-10-17 2004-04-22 Nec Corporation Disk array device managing cache memory by dividing cache memory into a plurality of cache segments
US20110191534A1 (en) 2010-02-01 2011-08-04 International Business Machines Corporation Dynamic management of destage tasks in a storage controller

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5084791A (en) 1988-05-10 1992-01-28 Quantum Corporation Head position control system for fixed drive including position encoder, temperature sensor and embedded fine servo information
JPH04215120A (ja) 1990-12-12 1992-08-05 Nec Corp ファイルシステム
US5715424A (en) 1992-12-10 1998-02-03 International Business Machines Corporation Apparatus and method for writing data onto rewritable optical media
US5542066A (en) 1993-12-23 1996-07-30 International Business Machines Corporation Destaging modified data blocks from cache memory
JP2000353126A (ja) 1999-06-09 2000-12-19 Mitsubishi Electric Corp 計算機システムのバッファキャッシュ再分割方法及びバッファキャッシュ再分割機能付き計算機システム
US7191207B2 (en) 2003-06-11 2007-03-13 International Business Machines Corporation Apparatus and method to dynamically allocate bandwidth in a data storage and retrieval system
US7539815B2 (en) 2004-12-29 2009-05-26 International Business Machines Corporation Method, system and circuit for managing task queues in a disk device controller
US7574556B2 (en) 2006-03-20 2009-08-11 International Business Machines Corporation Wise ordering for writes—combining spatial and temporal locality in write caches
US7783839B2 (en) 2007-01-08 2010-08-24 International Business Machines Corporation Using different algorithms to destage different types of data from cache
US7721043B2 (en) 2007-01-08 2010-05-18 International Business Machines Corporation Managing write requests in cache directed to different storage groups
US7680982B2 (en) 2007-02-20 2010-03-16 International Business Machines Corporation Preservation of cache data following failover
US20090222621A1 (en) * 2008-02-29 2009-09-03 International Business Machines Corporation Managing the allocation of task control blocks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040078518A1 (en) 2002-10-17 2004-04-22 Nec Corporation Disk array device managing cache memory by dividing cache memory into a plurality of cache segments
US20110191534A1 (en) 2010-02-01 2011-08-04 International Business Machines Corporation Dynamic management of destage tasks in a storage controller

Also Published As

Publication number Publication date
GB201410697D0 (en) 2014-07-30
US9256533B2 (en) 2016-02-09
GB2511970B (en) 2020-03-25
CN103946790A (zh) 2014-07-23
DE112012004798T5 (de) 2014-07-31
CN103946790B (zh) 2016-10-05
GB2511970A (en) 2014-09-17
US20130191596A1 (en) 2013-07-25
US20130132667A1 (en) 2013-05-23
US9262321B2 (en) 2016-02-16
WO2013072824A1 (en) 2013-05-23

Similar Documents

Publication Publication Date Title
DE112012004798B4 (de) Anpassung der Auslagerungsgeschwindigkeit auf Grundlage von Anforderungen an Lese- und Schreib-Antwortzeiten
DE112013002355B4 (de) Steigern von Datenzwischenspeicherungsleistung
DE112012004796B4 (de) Periodische Auslagerungen von Innen- und Aussendurchmessern von Platten zum Verbessern von Lesereaktionszeiten
DE112012002615B4 (de) Vorabladen von Datenspuren und Paritätsdaten zur Verwendung zum Auslagern aktualisierter Spuren
DE112011103290B4 (de) Intelligente Schreibcacheoperationen für sequenzielle Datenspuren
DE102012216022B4 (de) Verwaltung einer Zeitpunktkopie-Beziehung für platzsparende Datenträger
DE112013001284B4 (de) Adaptive Cachespeicher-Umstufungen in einem Caching-System mit zwei Stufen
DE112010003794B4 (de) Datenspeicherung unter Verwendung von Bitmaps
DE112012004540B4 (de) Selektive Speicherplatzfreigabe eines Datenspeichers unter Verwendung von Vergleichs- und Verlagerungskennzahlen
DE112014000254B4 (de) Mehrstufiges Zwischenspeichern und Migrieren in unterschiedlichen Granularitäten
DE112012000953B4 (de) Dynamisches Beseitigen von Leistungsungleichgewicht zur Laufzeit
DE102008022831B4 (de) Arbeitsverfahren für ein Speichersubsystem und Vorrichtungen zur Durchführung des Arbeitsverfahrens
DE102013200032B4 (de) Herabstufen von partiellen Speicherspuren aus einem ersten Cachespeicher in einen zweiten Cachespeicher
DE102012219907B4 (de) Erhöhen der Speicherkapazität in Systemen mit eingeschränkter elektrischer Leistungsaufnahme
DE112005001050T5 (de) Liefern eines alternativen Cachespeicherungsschemas auf der Speicherbereichnetzwerkebene
DE112017005868T5 (de) Verwaltung von e/a-abläufen für datenobjekte in einem speichersystem
DE112013000650B4 (de) Datenzwischenspeicherungsbereich
DE19961499A1 (de) Caching von Objekten in Platten-gestützten Datenbanken
DE112013004400B4 (de) Herstellen einer Zeitpunktkopie-Beziehung zwischen logischen Quellenadressen und logischen Zieladressen
DE102013210719B4 (de) Verfahren und Systeme zum Verwalten von Cache-Speichern
DE112012001660T5 (de) Speicher-Checkpointing in einem System gespiegelter virtueller Maschinen
DE112012001302T5 (de) Cachen von Daten in einem Speichersystem mit mehreren Cache-Speichern
DE112010004969T5 (de) Hybrides Speicherteilsystem
DE112009004503T5 (de) Optimierung der zugriffszeit von auf speichern gespeicherten dateien
DE102012219098A1 (de) Verwaltung von Teildatensegmenten in Systemen mit doppeltem Cachespeicher

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER PATENTANWAE, DE

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

Representative=s name: LIFETECH IP SPIES DANNER & PARTNER, PATENTANWA, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0003060000

Ipc: G06F0012080000

R082 Change of representative

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final