JP5943363B2 - キャッシュを有するストレージ・システムにおけるデータのキャッシングを決定するプログラム、システム、および方法 - Google Patents

キャッシュを有するストレージ・システムにおけるデータのキャッシングを決定するプログラム、システム、および方法 Download PDF

Info

Publication number
JP5943363B2
JP5943363B2 JP2014511990A JP2014511990A JP5943363B2 JP 5943363 B2 JP5943363 B2 JP 5943363B2 JP 2014511990 A JP2014511990 A JP 2014511990A JP 2014511990 A JP2014511990 A JP 2014511990A JP 5943363 B2 JP5943363 B2 JP 5943363B2
Authority
JP
Japan
Prior art keywords
attribute
condition
write request
track
write
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
JP2014511990A
Other languages
English (en)
Other versions
JP2014516179A (ja
Inventor
ベンヘイス、ミッチェル、トーマス
ガプタ、ロケッシュ、モーハン
カロス、マシュー、ジョセフ
ジル、ビニー、シャー
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 JP2014516179A publication Critical patent/JP2014516179A/ja
Application granted granted Critical
Publication of JP5943363B2 publication Critical patent/JP5943363B2/ja
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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list

Landscapes

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

Description

本発明は、シーケンシャル・アクセス・ストレージ・デバイス内の不揮発性ストレージ・キャッシュを含む複数のキャッシュを有するストレージ・システムにおいてデータをどこにキャッシュするかを決定するために書き込み要求の属性を使用するためのコンピュータ・プログラム製品(プログラム)、システム、および方法に関する。
キャッシュ管理システムは、読み出し操作および書き込み操作の結果として最近アクセスされたストレージ・デバイス内のトラックを、その要求されたトラックを記憶しているストレージ・デバイスよりも高速なアクセスの、メモリ等のストレージ・デバイスにバッファリングする。より高速なアクセスのキャッシュ・メモリ内のトラックに対する爾後の読み出し要求は、要求されたトラックをより低速のアクセスのストレージから返すよりも速い速度で返され、従って読み出し待ち時間を短縮する。キャッシュ管理システムは、ストレージ・デバイスに向けられた改変済みトラックがキャッシュ・メモリに書き込まれたとき、改変済みトラックがハード・ディスク・ドライブ等のストレージ・デバイスへ完全に書き込まれる前に、書き込み要求に対するコンプリートを返すこともできる。ストレージ・デバイスへの書き込み待ち時間は、通例、キャッシュ・メモリへの書き込みのための待ち時間より著しく長い。従って、キャッシュを使用すれば書き込み待ち時間も短縮される。
キャッシュ管理システムは、キャッシュに格納されている各トラックのために1つのエントリを有するリンク・リストを維持することができ、それは、ストレージ・デバイスへ書き込む前にキャッシュにバッファリングされた書き込みデータまたは読み出しデータを含むことができる。一般的に使用される最長時間未使用(Least Recently Used(LRU))キャッシュ手法では、キャッシュ内のトラックがアクセスされると、すなわちキャッシュ“ヒット”ならば、アクセスされるトラックのためのLRUリスト内のエントリは該リストの最短時間未使用(Most Recently Used(MRU))エンドへ移される。要求されたトラックがキャッシュ内に存在しなければ、すなわちキャッシュ・ミスならば、そのエントリが該リストのLRUエンドに存在するキャッシュ内のトラックが除去(あるいはストレージにデステージング)されることができ、ストレージからキャッシュへステージングされるトラック・データのためのエントリがLRUリストのMRUエンドに加えられる。このLRUキャッシュ手法では、より頻繁にアクセスされるトラックはキャッシュに残留しやすく、あまり頻繁にはアクセスされないデータは、新たにアクセスされるトラックのためにキャッシュ内に空間を作るために該リストのLRUエンドからより除去されやすいであろう。
LRUキャッシュ手法は、デステージング操作の数を最小にするためにすぐに再書き込みされる可能性の最も小さいトラックをデステージングするように時間的ローカリティを最適化しようとする、すなわち、デステージングされない書き込みがオーバーライトされるならば、そのオーバーライトされる書き込みのデステージングが回避され、それによりデータをキャッシュからディスクへ書き込む時間および労力を節約する。一方、空間的ローカリティを利用する仕方でデステージングを行いたいという希望もあり、そのことは、書き込まれるべき次の記憶場所に到達するためにストレージ・デバイス書き込みメカニズムおよび記憶媒体が動かされなければならない距離を最小にするために互いに最も近い記憶場所にデータが書き込まれるということを意味する。
時間的ローカリティおよび空間的ローカリティの両方を利用するための1つの手法はワイズ・オーダリング・フォー・ライツ(Wise Ordering for Writes(WOW))アルゴリズムである。WOWアルゴリズムは円形リンク・リストまたはクロックを使用し、該円形リンク・リストはキャッシュにバッファリングされている各書き込み要求について1つのエントリを有する。エントリは、該リンク・リストにおいて、空間的ローカリティの利益を利用するために関連する書き込み要求が向けられる記憶場所に応じて配列される。さらに、各エントリは、キャッシュ内の該記憶場所のための書き込みデータが最近更新されたか否かを示すビットを含む。エントリのための該ビットは、そのエントリのための書き込みデータが更新されるとセットされる。ポインタが、該円形リンク・リスト内の現在のエントリを指す。WOWアルゴリズムを使用するタスクは、ポインタによりアドレス指定されたエントリにアクセスする。キャッシュ内の該エントリのためのデータが最近更新されたことを該エントリのためのビットが示すならば、該ビットは、該書き込みデータが最近更新されていないことを示すようにセットされ、ポインタは、前に書き込まれた記憶場所の空間的近傍において次に最も近い記憶場所への書き込みデータを有するエントリが考慮されるように次のエントリを指すようにインクリメントされる。最後に書き込まれた記憶場所の空間的近傍において最も近くて、該エントリのための書き込みデータが最近更新されていないことをそのビットが示しているエントリが書き込みのために選択される。
このように、WOWアルゴリズムでは、最後にデステージングされた書き込み要求に空間的近傍において最も近い書き込まれるべき次のエントリが考慮されるべく選択されるので、空間的ローカリティが利用される。さらに、最近書き込まれたエントリは、ポインタがそのスキップされたエントリを考慮するべく回り戻ってくるまではスキップされるので、時間的ローカリティが利用される。
ディスク・ドライブは、書き込みトラックの線形位置および角度位置の両方を考慮するとともに、最小総サービス時間を決定するために現在の書き込みヘッド位置に関して両方を最適化するWOWアルゴリズムおよび他のアルゴリズムを実行することができる。このプロセスは“シークおよび回転最適化に基づくコマンド再配列(command re−ordering based on seek and rotational optimization)”と称される。ディスク・ドライブのロジック・ボードは、複数の書き込み要求を分析して、書き込まれるべきトラックの種々のシリンダおよび角度位置へシークするためにどれだけの時間がかかるか、およびヘッドの下で該データが回転するのを待つ間にどれだけの時間が経過するかの両方に基づいて、先にどれを行うかを決定する。
当該技術において、ストレージ・システムでキャッシュを使用する改善された手法に対するニーズが存在する。
シーケンシャル・アクセス・ストレージ・デバイス内の不揮発性ストレージ・キャッシュを含む複数のキャッシュを有するストレージ・システムにおいてデータをどこにキャッシュするかを決定するために書き込み要求の属性を使用するためのコンピュータ・プログラム製品、システム、および方法が提供される。受け取られた改変済みトラックは、その改変済みトラックをキャッシュするという決定に応答して該シーケンシャル・アクセス・ストレージ・デバイスと統合されている該不揮発性ストレージ・デバイスにキャッシュされる。改変済みトラックを有する書き込み要求が受け取られる。その受け取られた書き込み要求の属性が条件を満たすか否かが判定される。その書き込み要求のための受け取られた改変済みトラックは、該判定される属性が該条件を満たさないと判定したことに応答して該不揮発性ストレージ・デバイスにキャッシュされる。該条件を満たさない該判定される属性を有する該受け取られた書き込み要求のためにデステージング要求が要求キューに加えられる。該条件を満たす該判定された属性を有する書き込み要求のための受け取られた改変済みトラックは、該条件を満たさない該属性を有する書き込み要求のための改変済みトラックより高い優先順位で書き込まれる。
コンピューティング環境の実施態様を示す。 第1キャッシュ管理情報の実施態様を示す。 第2キャッシュ管理情報の実施態様を示す。 シーケンシャル・アクセス・ストレージ・デバイスの実施態様を示す。 第1キャッシュ制御ブロックの実施態様を示す。 第2キャッシュ制御ブロックの実施態様を示す。 不揮発性ストレージ・キャッシュ制御ブロックの実施態様を示す。 空間的インデックス・エントリの実施態様を示す。 トラックを第1キャッシュに加えるためのスペースを解放するために第1キャッシュ内のトラックを除去するか否か判定する操作の実施態様を示す。 第1キャッシュ内のスペースを解放する操作の実施態様を示す。 第1キャッシュにトラックを加える操作の実施態様を示す。 第2キャッシュへトラックをプロモートする操作の実施態様を示す。 第2キャッシュ内のスペースを解放する操作の実施態様を示す。 要求されたトラックのための読み出し要求を処理する操作の実施態様を示す。 書き込み要求を処理するためのシーケンシャル・アクセス・ストレージ・デバイスにおける操作の実施態様を示す。 書き込み要求のための改変済みトラックを不揮発性ストレージ・デバイスにキャッシュするか否か判定するためのシーケンシャル・アクセス・ストレージ・デバイスにおける操作の実施態様を示す。 要求キューを処理するためのシーケンシャル・アクセス・ストレージ・デバイスにおける操作の実施態様を示す。 要求キュー内のデステージング要求を処理するためのシーケンシャル・アクセス・ストレージ・デバイスにおける操作の実施態様を示す。 要求キューおよび書き込みバイパス・キュー内の書き込み要求を処理するためのシーケンシャル・アクセス・ストレージ・デバイスにおける操作の実施態様を示す。
図1は、コンピューティング環境の実施態様を示す。複数のホスト2a、2b・・・2nは、ストレージ10内のボリューム8(例えば、ロジカル・ユニット・ナンバ、ロジカル・デバイス、ロジカル・サブシステムなど)に存するデータにアクセスするためにネットワーク6を介してストレージ・コントローラ4に入力/出力(I/O)要求を提出することができる。ストレージ・コントローラ4は、単一のもしくは複数のコアを有する1つ以上のプロセッサを含むプロセッサ・コンプレックス12と、第1キャッシュ14と、キャッシュ14内のトラックをバックアップする第1キャッシュ・バックアップ・デバイス16と、第2キャッシュ18とを含む。第1キャッシュ14および第2キャッシュ18は、ホスト2a、2b・・・2nとストレージ10との間で転送されるキャッシュ・データをキャッシュする。第1キャッシュ・バックアップ・デバイス16は、第1キャッシュ14内のトラックの不揮発性記憶を提供することができる。さらなる実施態様では、第1キャッシュ・バックアップ・デバイス16は、第1キャッシュ14のそれとは異なる電力境界上のクラスタまたはハードウェア内に置かれ得る。
ストレージ・コントローラ4は、ホスト2a、2b・・・2nとストレージ10との間で転送されるトラックの転送を管理するためのストレージ・マネージャ22と、第1キャッシュ14、第1キャッシュ・バックアップ・デバイス16および第2キャッシュ18内のホスト2a、2b・・・2nとストレージ10との間で転送されるデータを管理するキャッシュ・マネージャ24とを含むメモリ20を有する。トラックは、ボリューム、ロジカル・デバイスなどのような複数のトラックのより大きなグルーピングの一部であるトラック、ロジカル・ブロック・アドレス(Logical Block Address(LBA))などのような、ストレージ10において構成されているデータの任意の単位を含み得る。キャッシュ・マネージャ24は、第1キャッシュ14および第2キャッシュ18内の読み出し(未改変)トラックおよび書き込み(改変済み)トラックを管理するために第1キャッシュ管理情報26および第2キャッシュ管理情報28を維持する。第1キャッシュ・バックアップ・デバイス・インデックス30は、第1キャッシュ・バックアップ・デバイス16内の位置に対するトラック識別子のインデックスを提供する。
ストレージ・マネージャ22およびキャッシュ・マネージャ24は、メモリ20にロードされてプロセッサ・コンプレックス12により実行されるプログラム・コードとして図1に示されている。代わりに、該機能の幾つかまたは全部は、特定用途向け集積回路(Application Specific Integrated Circuits(ASIC))などの、ストレージ・コントローラ4内のハードウェア・デバイスで実行され得る。
第2キャッシュ18は、トラックを、トラックが受け取られた順に書き込まれるログ・ストラクチャード・アレイ(log structured array(LSA))32に格納することができ、従って第2キャッシュ18に書き込まれたトラックの時間的配列を提供する。LSAでは、該LSA内に既に存在するトラックの遅いほうのバージョンはLSA32の末尾に書き込まれる。代わりの実施態様では、第2キャッシュ18は、LSA以外のフォーマットでデータを記憶することができる。
一実施態様では、第1キャッシュ14はダイナミック・ランダム・アクセス・メモリ(Dynamic Random Access Memory(DRAM))などのランダム・アクセス・メモリ(Random Access Memory(RAM))を含むことができ、第2キャッシュ18はソリッド・ステート・デバイスなどのフラッシュ・メモリを含むことができ、ストレージ10はハード・ディスク・ドライブおよび磁気テープなどの1つ以上のシーケンシャル・アクセス・ストレージ・デバイスから構成される。ストレージ10は、単一のシーケンシャル・アクセス・ストレージ・デバイスを含むことができ、あるいは、ジャスト・ア・バンチ・オブ・ディスクス(Just a Bunch of Disks(JBOD))、ダイレクト・アクセス・ストレージ・デバイス(Direct Access Storage Device(DASD))、リダンダント・アレイ・オブ・インディペンデント・ディスクス(Redundant Array of Independent Disks(RAID))アレイ、仮想化デバイスなどの複数のストレージ・デバイスのアレイを含むことができる。一実施態様では、第1キャッシュ14は第2キャッシュ18より高速のアクセスのデバイスであり、第2キャッシュ18はストレージ10より高速のアクセスのデバイスである。さらに、第1キャッシュ14は第2キャッシュ18より大きな単位記憶当たりコスト(cost per unit of storage)を有することができ、第2キャッシュ18はストレージ10内のストレージ・デバイスより大きな単位記憶当たりコストを有することができる。
第1キャッシュ14は、メモリ20の一部であることができ、あるいはDRAMなどの別のメモリ・デバイスに実装されることができる。一実施態様では、第1キャッシュ・バックアップ・デバイス16は、例えばバッテリー・バックアップされるランダム・アクセス・メモリ(RAM)、スタティックRAM(static RAM(SRAM))などの、不揮発性メモリのような不揮発性バックアップ・ストレージ(non−volatile backup storage(NVS))を含むことができる。
ネットワーク6は、ストレージ・エリア・ネットワーク(Storage Area Network(SAN))、ローカル・エリア・ネットワーク(Local Area Network(LAN))、ワイド・エリア・ネットワーク(Wide Area Network(WAN))、インターネット、およびイントラネットなどを含むことができる。
図2は、制御ブロック・ディレクトリ52内のブロックを制御するための第1キャッシュ14内のトラックのインデックスを提供するトラック・インデックス50と;第1キャッシュ14内の未改変シーケンシャル・トラックの時間的配列を提供する未改変シーケンシャルLRUリスト54と;第1キャッシュ14内の改変済みシーケンシャル・トラックおよび改変済みノンシーケンシャル・トラックの時間的配列を提供する改変済みLRUリスト56と;第1キャッシュ14内の未改変ノンシーケンシャル・トラックの時間的配列を提供する未改変ノンシーケンシャルLRUリスト58とを含む第1キャッシュ管理情報26の実施態様を示す。
或る実施態様では、第1キャッシュ・バックアップ・デバイス16が満杯であると判定すると、新たな改変済みトラックのために第1キャッシュ・バックアップ・デバイス16内に空間を作るために第1キャッシュ・バックアップ・デバイス16内の改変済みトラックのコピーが廃棄され得るように第1キャッシュ14から改変済みトラックをデステージングするために改変済みLRUリスト56が使用される。
図3は、制御ブロック・ディレクトリ72内のブロックを制御するための第2キャッシュ18内のトラックのインデックスを提供するトラック・インデックス70と;第2キャッシュ18内の未改変トラックの時間的配列を提供する未改変リスト74と;改変済みトラックが格納されているストレージ10内の物理的位置に基づいて第2キャッシュ18内の改変済みトラックの空間的配列を提供する空間的インデックス76とを含む第2キャッシュ管理情報28の実施態様を示す。
すべてのLRUリスト54、56、58、および74は、識別されたトラックが最後にアクセスされた時に応じて配列された第1キャッシュ14および第2キャッシュ18内のトラックのトラックIDを含むことができる。LRUリスト54、56、58、および74は、最も最近にアクセスされたトラックを示す最短時間未使用(most recently used(MRU))エンドと、最も古くに使用またはアクセスされたトラックを示すLRUエンドとを有する。キャッシュ14および18に加えられるトラックのトラックIDはLRUリストのMRUエンドに加えられ、キャッシュ14および18からデモートされるトラックはLRUエンドからアクセスされる。トラック・インデックス50および70および空間的インデックス76は、スキャッター・インデックス・テーブル(scatter index table(SIT))を含むことができる。キャッシュ14および18内のトラックの時間的配列および第2キャッシュ18内のトラックの空間的配列を提供するために代わりのタイプのデータ構造が使用され得る。
ノンシーケンシャル・トラックはオンライン・ライン・トランザクション・プロセッシング(Online Line Transaction Processing(OLTP))トラックを含むことができ、該トラックは、しばしば、完全にはランダムでなくて参照の或る程度のローカリティを有する、すなわち繰り返しアクセスされる確率を有する、小ブロック・ライトを含む。
図4は、シーケンシャル・アクセス・ストレージ・デバイス100の実施態様を示し、ここでストレージ10は1つまたは複数のシーケンシャル・アクセス・ストレージ・デバイス100で実装され得る。シーケンシャル・アクセス・ストレージ・デバイス100は、I/Oマネージャ102として示されている制御ロジックと、改変済みデータをバッファリングするための不揮発性ストレージ・デバイス104と、メモリ106とを含み、該メモリ106は、制御ブロック・ディレクトリ110内のブロックを制御するために不揮発性ストレージ・デバイス104内のトラックのインデックスを提供するトラック・インデックス108と;改変済みトラックが格納されているシーケンシャル・アクセス記憶媒体114内の物理的位置にある不揮発性ストレージ104内の改変済みトラックの空間的配列を提供する空間的インデックス112と;読み出し要求および書き込み要求が待機させられる要求キュー116とを含む。I/Oマネージャ102は、読み出し要求および書き込み要求を要求キュー116に加えるとともに、シーケンシャル・アクセス媒体114に対して実行するために要求キュー116からの読み出し要求および書き込み要求にアクセスする。I/Oマネージャ102は、読み出し/書き込みヘッド120を有する1つ以上のアクチュエータを、データが読み出されまたは書き込まれ得るシーケンシャル・アクセス記憶媒体114上の位置へ移動させるための制御信号を発生させる読み出し/書き込み制御ユニット118へコマンドを送ることができる。
メモリ106は、不揮発性ストレージ・デバイス104にキャッシュされなくてシーケンシャル・アクセス記憶媒体114に直接書き込まれるシーケンシャル書き込み要求およびそれらの改変済みトラックをバッファ124にバッファリングするための書き込みバイパス・キュー122をさらに含む。バッファ124は、読み出し入力要求および書き込み入力要求ならびに読み出し要求に対して返されるデータを一時的にバッファリングすることができる。バッファ124は、不揮発性ストレージ・デバイス104以外の別のデバイス内に存在することができるとともに、不揮発性ストレージ・デバイス104において利用可能であるよりも小さな記憶空間を含むことができる。
デバイス100内のバッファ124は、読み出し入力要求および書き込み入力要求ならびに読み出し要求に対して返されるデータを一時的にバッファリングすることができる。バッファ124は、シーケンシャル書き込み要求およびそれらの改変済みデータのためのものなど、不揮発性ストレージ・デバイスにおいて維持されない書き込み要求のための改変済みトラックを一時的にバッファリングするためにも使用され得る。バッファ124は、不揮発性ストレージ・デバイス104以外の別のデバイス内に存在することができるとともに、不揮発性ストレージ・デバイス104において利用可能であるよりも小さな記憶空間を含むことができる。あるいは、バッファ124の一部または全体は不揮発性ストレージ・デバイス内に実装されることができる。
シーケンシャル・アクセス記憶媒体114は、ハード・ディスク駆動装置のための1つ以上のハード・ディスク・ドライブ・プラッタまたは磁気テープを含むことができる。或る実施態様では、不揮発性ストレージ・デバイス104は、ソリッド・ステート・ストレージから構成されるフラッシュ・メモリ・デバイスを含むことができる。或る実施態様では、不揮発性ストレージ・デバイス104、例えばフラッシュ・メモリは、シーケンシャル・アクセス・ストレージ・デバイス100のコンポーネントを含むエンクロージャの中のシーケンシャル・アクセス・ストレージ・デバイス100回路基板上に実装される。例えば、8GBフラッシュ・メモリ・デバイスを含むことができる。
I/Oマネージャ102の機能の一部または全部は、シーケンシャル・アクセス・ストレージ・デバイス100内のプロセッサによって実行されるコードとして実装されることができる。あるいは、I/Oマネージャ102の機能の一部または全部は、シーケンシャル・アクセス・ストレージ・デバイス100上のASICに実装されることができる。
図5は、制御ブロック識別子(ID)152と、第1キャッシュ14内のトラックの物理的位置の第1キャッシュ位置154と、該トラックが改変済みであるか未改変であるかを示す情報156と、該トラックがシーケンシャル・アクセスであるかノンシーケンシャル・アクセスであるかを示す情報158とを含む、制御ブロック・ディレクトリ52内の第1キャッシュ制御ブロック150の実施態様を示す。
図6は、制御ブロック識別子(ID)162と、LSA32において該トラックが位置するLSA位置164とを含む、第2キャッシュ制御ブロック・ディレクトリ72内の第2キャッシュ制御ブロック160の実施態様を示す。
図7は、制御ブロック識別子(ID)172と、例えば該トラックが不揮発性ストレージ・デバイス上のLSAに格納されている場合のLSA位置などの、該トラックが位置する物理的位置174とを含む、不揮発性ストレージ104制御ブロック・ディレクトリ110内の不揮発性ストレージ制御ブロック170エントリの実施態様を示す。
図8は、不揮発性ストレージ・デバイス104内のトラックのトラック識別子182と、例えばシリンダ、プラッタ番号、シリンダ上の角度位置など、シーケンシャル・アクセス記憶媒体114において該トラックが格納されている物理的位置184とを含む空間的インデックス・エントリ180を示す。
図9は、未改変トラックを第1キャッシュ14からデモートするためにキャッシュ・マネージャ24により実行される操作の実施態様を示す。デモート操作は、第1キャッシュ14内のスペースを解放すると決定したときに開始され得る。第1キャッシュ14に加えられるトラックを収容するために第1キャッシュ14からトラックを除去するか否か判定する操作を(ブロック200で)開始すると、キャッシュ・マネージャ24は種々のタイプの未改変トラックへの予想されるヒットに基づいてノンシーケンシャル未改変トラックをデモートするかあるいはシーケンシャル未改変トラックをデモートするかを(ブロック202で)決定する。(ブロック204で)該決定が未改変シーケンシャル・トラックをデモートする決定であるならば、キャッシュ・マネージャ24は、デモートされるべき未改変シーケンシャル・トラックを未改変シーケンシャルLRUリストのLRUエンドから決定するために(ブロック206で)未改変シーケンシャルLRUリスト54を使用し、該トラックは第2キャッシュ18へプロモートされない。(ブロック204で)該決定が未改変ノンシーケンシャル・トラックをデモートする決定であるならば、キャッシュ・マネージャ24は、デモートされるべき未改変ノンシーケンシャル・トラックを(ブロック208で)決定するために未改変ノンシーケンシャルLRUリスト58を使用する。該未改変ノンシーケンシャル・トラックは(ブロック210で)第2キャッシュ18へプロモートされる。
図10は、改変済みトラックを第1キャッシュ14からデステージングするためにキャッシュ・マネージャ24により実行される操作の実施態様を示す。キャッシュ・マネージャ24は、スケジュールされた操作の一部として定期的にトラックをデステージングすることができるとともに第1キャッシュ・バックアップ・デバイス16においてスペースが必要ならばデステージングの速度を高めることができる。改変済みトラックをデステージングする操作を(ブロック250で)開始するとき、キャッシュ・マネージャ24は、LRUリスト56のLRUエンドから、デステージングされるべき改変済みトラックを決定するために改変済みLRUリスト56を(ブロック252で)処理する。キャッシュ・マネージャ24は、決定された改変済みトラック(シーケンシャルまたはノンシーケンシャル)を、第2キャッシュ18をバイパスしてストレージ10に(ブロック254で)書き込む。キャッシュ・マネージャ24は、デステージングされた改変済みトラックのコピーを第1キャッシュ・バックアップ・デバイス16から(ブロック260で)廃棄する。
図9および10の操作では、ノンシーケンシャル・トラックはデモートされるけれども第2キャッシュ18へプロモートされない。改変済みトラック(書き込み)は、第2キャッシュをバイパスして、ストレージ10に直接書き込まれる。シーケンシャルな未改変トラック(読み出し)は廃棄されてどこへもコピーされず、第1キャッシュ14からデモートされる未改変ノンシーケンシャル・トラックは第2キャッシュ18へプロモートされる。
図11はトラックを第1キャッシュ14に加える、すなわちプロモートするためにキャッシュ・マネージャ24により実行される操作の実施態様を示し、そのトラックは、ホスト2a、2b・・・2nからの書き込みあるいは改変済みトラック、読み出し要求に従い、結果として第1キャッシュ14へ移動させられる第2キャッシュ18内のノンシーケンシャル・トラック、または、キャッシュ14内にも18内にも見出されなくてストレージ10から取り出される読み出し要求されたデータであり得る。第1キャッシュ14に加えられるべきトラックを(ブロック300で)受け取ると、キャッシュ・マネージャ24は、第1キャッシュ14内の154位置と、該トラックが改変済み/未改変156であるかおよびシーケンシャル/ノンシーケンシャル158であるかとを示す、該加えられるべきトラックのための制御ブロック150(図5)を(ブロック301で)作成する。この制御ブロック150は、第1キャッシュ14の制御ブロック・ディレクトリ52に加えられる。キャッシュ・マネージャ24は、加えられるべきトラックのトラックIDと、制御ブロック・ディレクトリ52内の作成されたキャッシュ制御ブロック150へのインデックスとを有するエントリを第1キャッシュ・トラック・インデックス50に(ブロック302で)加える。加えられるべきトラックのトラック・タイプについてのエントリがLRUリスト54、56または58のMRUエンドに(ブロック304で)加えられる。(ブロック306で)加えられるべきトラックが改変済みノンシーケンシャル・トラックであれば、該加えられるべきトラックは第1キャッシュ・バックアップ・デバイス16に(ブロック308で)コピーもされ、その加えられるトラックのためのエントリが第1キャッシュ・バックアップ・デバイス・インデックス30に加えられ、(ブロック306で)加えられるべきトラックが未改変シーケンシャルであるならば、制御は終了する。
図12は、第1キャッシュ14からデモートされる未改変ノンシーケンシャル・トラックを第2キャッシュ18へプロモートするためにキャッシュ・マネージャ24により実行される操作の実施態様を示す。トラックを第2キャッシュ18へプロモートする操作を(ブロック350で)開始すると、キャッシュ・マネージャ24は、プロモートされるトラックを第2キャッシュ18内のLSA32に(ブロック352で)加えるとともに、該加えられるべきトラックのためのLSA32内のトラック位置164を示す制御ブロック160(図6)を(ブロック354で)作成する。プロモートされるトラックのトラックIDと、第2キャッシュ18のための制御ブロック・ディレクトリ72内の作成されたキャッシュ制御ブロック160へのインデックスとを有するエントリが第2キャッシュ・トラック・インデックス70に(ブロック356で)加えられる。キャッシュ・マネージャ24は、該トラックIDをMRUエンドに加えることなどにより、プロモートされるトラックを未改変LRUリスト74のMRUエンドに(ブロック360で)示す。
キャッシュ・マネージャ12は、第2キャッシュ18を未改変シーケンシャル・トラックだけのための読み出し専用キャッシュとして使用することができる。改変済みシーケンシャル・トラックおよび改変済みノンシーケンシャル・トラックはシーケンシャル・アクセス・ストレージ・デバイス100に直接書き込まれ、シーケンシャル・アクセス・ストレージ・デバイス100内の不揮発性ストレージ・デバイス104は改変済みノンシーケンシャル・トラックのための書き込みキャッシュを提供する。
図13は、第2キャッシュ18に加えられるべき新しいトラック、すなわち第1キャッシュ14からデモートされるトラックのために第2キャッシュ18内のスペースを解放するためにキャッシュ・マネージャ24により実行される操作の実施態様を示す。この操作を(ブロック400で)開始すると、キャッシュ・マネージャ24は、第2キャッシュ18内の未改変トラックを未改変LRUリスト74のLRUエンドから(ブロック402で)決定し、その決定された未改変トラックを(ブロック404で)無効にし、その無効にされた未改変トラックをストレージ10にデステージングしない。
図14は、読み出し要求のために要求されているトラックをキャッシュ14および18およびストレージ10から取り出すためにキャッシュ・マネージャ24により実行される操作の実施態様を示す。読み出し要求を処理するストレージ・マネージャ22は、要求されたトラックのための要求をキャッシュ・マネージャ24に提示することができる。該トラックのための要求を(ブロック450で)受け取ると、キャッシュ・マネージャ24は、要求されたトラックのすべてが第1キャッシュ14内にあるか否か判定するために第1キャッシュ・トラック・インデックス50を(ブロック454で)使用する。(ブロック454で)すべての要求されたトラックが第1キャッシュ14内にあるわけでは無ければ、キャッシュ・マネージャ24は、要求されたトラックのうちの第1キャッシュ14内にはなくて第2キャッシュ18内にあるものを判定するために第2キャッシュ・トラック・インデックス70を(ブロック456で)使用する。(ブロック458で)第1キャッシュ14および第2キャッシュ18内にない要求されたトラックがあるならば、キャッシュ・マネージャ24は、要求されたトラックのうちの、第1キャッシュ14および第2キャッシュ18内になくてストレージ10内にあるものを第2キャッシュ・トラック・インデックス70から(ブロック460で)判定する。キャッシュ・マネージャ24は、その後、判定されたトラックのうちの第2キャッシュ18およびストレージ10内のものを第1キャッシュ14へ(ブロック462で)プロモートする。キャッシュ・マネージャ24は、読み出し要求に返すために、要求されたトラックを第1キャッシュ14から取り出すために第1キャッシュ・トラック・インデックス50を(ブロック464で)使用する。取り出されたトラックのためのエントリは、取り出されたトラックのためのエントリを含むLRUリスト54、56、58のMRUエンドに(ブロック466で)移動させられる。図13の操作では、キャッシュ14および18は要求されたトラックの最も最近の改変済みバージョンを有するので、キャッシュ・マネージャ24は要求されたトラックを最高レベルのキャッシュ14から取り出し、その後に、ストレージ10へ移行する前に先ず第2キャッシュ18から取り出す。その最も最近のバージョンは、先ず第1キャッシュ14内に見出され、もし第1キャッシュ14内に見出されなければ第2キャッシュ18内に見出され、その後、もしどちらのキャッシュ14、18にも見出されなければストレージ10内に見出される。
図14の操作では、キャッシュ14および18は要求されたトラックへの最高速のアクセスを提供し、第1キャッシュ14は要求されたトラックの最も最近の改変済みバージョンを提供するので、キャッシュ・マネージャ24は、要求されたトラックを最高レベルのキャッシュ14から集め、次に、ストレージ10へ移行する前に先ず第2キャッシュ18から集める。
図15は、シーケンシャル・アクセス記憶媒体114のための改変済みトラックを伴う書き込み要求を処理するためにシーケンシャル・アクセス・ストレージ・デバイス100においてI/Oマネージャ102により実行される操作の実施態様を示す。書き込み要求を(ブロック500で)受け取ると、I/Oマネージャ102は該書き込み要求の属性が条件を満たすか否か(ブロック502で)判定する。該書き込み要求がシーケンシャル書き込み要求であるか、あるいは該書き込み要求のブロック・サイズが所定スレショルドを上回るなど、(ブロック502で)該条件が満たされれば、該書き込み要求は書き込みバイパス・キュー122に(ブロック504で)加えられる。該条件を満たす該書き込み要求の改変済みトラックはバッファ124に(ブロック506で)バッファリングされる。書き込みバイパス・キュー122内の書き込み要求は、不揮発性ストレージ・デバイス104にキャッシュされることなくバッファ124からシーケンシャル・アクセス記憶媒体114に直接書き込まれる。
一実施態様では、書き込み要求が不揮発性ストレージ・デバイス104にキャッシュされないでシーケンシャル・アクセス記憶媒体114に直接書き込まれるか否かを決定する条件は、書き込み要求がシーケンシャル書き込み要求を含むことであり得る。代わりの実施態様では、書き込み要求のブロック・サイズがスレショルド未満ならば改変済みトラックは不揮発性ストレージ・デバイスにキャッシュされ得るので、該スレショルド未満の数のブロックを有するシーケンシャル書き込み要求およびノンシーケンシャル書き込み要求は不揮発性ストレージ・デバイス104にキャッシュされる。
(ブロック502で)書き込み要求の属性が条件を満たさなければ、例えばノンシーケンシャル書き込み要求であるならば、I/Oマネージャ102は、受け取られた改変済みトラックを不揮発性ストレージ・デバイス104に(ブロック508で)加える。一実施態様では、該トラックは、不揮発性ストレージ・デバイス104内のLSAに加えられるか、あるいは他のフォーマットでデバイス104に格納され得る。I/Oマネージャ102は、各々の受け取られた改変済みトラックのために該改変済みトラックの不揮発性ストレージ・デバイス104内での位置(例えば、LSA位置)を示すキャッシュ制御ブロック170(図7)を(ブロック510で)作成する。不揮発性ストレージ・デバイス104内の改変済みトラックのトラックIDと、作成された制御ブロック170へのインデックスとを有するエントリがトラック・インデックス108に(ブロック512で)加えられる。
I/Oマネージャ102は、シーケンシャル・アクセス記憶媒体114において改変済みトラックが格納される物理的位置、例えば該媒体上のシリンダなど、を(ブロック514で)決定する。さらに、1つのさらなる実施態様では、空間的インデックス112に含まれる決定された物理的位置は改変済みトラックのシリンダ上での角度位置(セクタとも称される)をも含むことができる。I/Oマネージャ102は、改変済みトラックのトラックID182と、シーケンシャル・アクセス記憶媒体114上での該改変済みの決定された物理的位置184とを示すエントリを空間的インデックス112に(ブロック516で)加える。I/Oマネージャ102は、書き込まれるべき各トラックのためにデステージング要求を要求キュー116に(ブロック518で)さらに加える。このデステージング要求はデモートされるべき特定の改変済みトラックを特定しないかもしれなくて、それは、後に、書き込みを実行するための総アクセス時間を短縮するためのアルゴリズムを用いて決定される。
図16は、書き込み要求を要求キュー116に入れるかそれとも書き込みバイパス・キュー122に入れるかを決定するために書き込み要求の複数の属性をチェックするためにI/Oマネージャ102により実行される操作の実施態様を示す。書き込み要求が該条件を満たすか否か判定する操作を(ブロック530で)開始すると、I/Oマネージャ102は、受け取られた書き込み要求がシーケンシャル書き込み要求であるか否かを(ブロック532で)判定する。(ブロック532の「いいえ」ブランチから)該書き込み要求がノンシーケンシャルであるならば、I/Oマネージャ102は、該書き込み要求のための改変済みトラックを不揮発性ストレージ・デバイス104に(ブロック534で)格納するとともにデステージング要求を要求キュー116のMRUエンドに加える。(ブロック532で)書き込み要求がシーケンシャル書き込み要求であって(ブロック536で)該書き込みのサイズ、例えばブロックの数、がスレショルドを上回るならば、すなわち大きな書き込み要求であるならば、I/Oマネージャは(ブロック538で)該書き込み要求を書き込みバイパス・キュー122に加えるとともに該改変済みトラックをバッファ124に格納する。(ブロック536で)シーケンシャル書き込み要求のサイズが該スレショルドを上回らなければ、すなわち割合に小さいシーケンシャル書き込みであるならば、コントロールはブロック534へ進み、ここでその小さなサイズのシーケンシャル書き込みは不揮発性ストレージ・デバイス104にキャッシュされる。
図17は、要求キュー116で要求が待機させられている間継続的に反復され得る、要求キュー116を処理するためにI/Oマネージャ102により実行される操作の実施態様を示す。要求キュー116を処理する操作を(ブロック550で)開始すると、(ブロック552で)該要求が読み出し要求であるならば、I/Oマネージャ102は、該読み出し要求に返すために要求されたトラックのうちの不揮発性ストレージ・デバイス104内にあるものを(ブロック554で)集める。(ブロック556で)不揮発性ストレージ・デバイス104内にない要求されたトラックがあれば、I/Oマネージャ102は、要求されたトラックのうちの不揮発性ストレージ・デバイス104内に見出されないものを(ブロック558で)シーケンシャル・アクセス記憶媒体114から集める。すべての要求されたトラックを集めた後(ブロック558からまたはブロック556の「いいえ」ブランチから)、I/Oマネージャ102は、集められた読み出し要求されたトラックをストレージ・コントローラ4(図1)に(ブロック560で)返し、該読み出し要求されたトラックは不揮発性ストレージ・デバイス104にキャッシュすることはない。
(ブロック562で)要求がデステージング/書き込み要求ならば、コントロールは、そのデステージング/書き込み要求を処理するために(ブロック562で)図18のブロック600に進む。該デステージング要求を(ブロック600で)実行するために、I/Oマネージャ102は、(ブロック602で)シーケンシャル・アクセス記憶媒体114に関しての書き込みヘッド120の現在の位置を、空間的インデックス112において示されているおよび別様に決定される該シーケンシャル・アクセス記憶媒体上での改変済みトラックの物理的位置(例えば、シリンダおよび角度位置)と比較する。空間的インデックス112は、書き込みヘッドに時間的に最も近いトラックを判定するための所要の情報のすべて、例えば書き込まれるべきトラックのシリンダおよび角度位置など、を含むことができ、あるいは該情報の一部だけ、例えばシリンダ、を含むことができて、所要の物理的位置情報の残りは読み出し/書き込み制御ユニット118から判定されることができる。I/Oマネージャ102は、その比較に基づいて、書き込みヘッド120の現在の位置から最小の時間で書き込まれ得る改変済みトラックを(ブロック606で)選択し、その選択された改変済みトラックをシーケンシャル・アクセス記憶媒体114に(ブロック606で)書き込む。デステージングされた改変済みトラックは(ブロック608で)無効にされる。
シーケンシャル・アクセスストレージ・デバイスがハード・ディスク・ドライブを含み、シーケンシャル・アクセス記憶媒体114が磁気ディスクを含む1つの実施態様では、空間的インデックスは磁気ディスク上のトラックのシリンダを示す。書き込みヘッドの現在の位置から最小の時間でアクセスされ得る改変済みトラックを決定するために、I/Oマネージャ102は、書き込みヘッド120が改変済みトラックのシリンダへシークするとともに書き込みヘッド120の下のディスクを該改変済みトラックの角度位置へ到達するように回転させるために要する時間を推定するために空間的インデックス112内の改変済みトラックのシリンダおよび角度位置を解析することができる。I/Oマネージャは、その後、最小の推定アクセス時間を有する改変トラックを選択することができる。
さらなる実施態様では、シーケンシャル・アクセス・ストレージ・デバイス114は、複数のディスク・プラッタと各プラッタへの書き込みのための複数の書き込みヘッドとを有するハード・ディスク・ドライブを含み得る。I/Oマネージャ102は、該ディスク・プラッタにおいてアクセスするための最小推定時間を有する改変済みトラックを選択するために書き込みヘッドの現在の位置から各ディスク・プラッタ上の各改変済みトラックへシークし回転するための推定時間を決定することができる。
図19は、書き込みバイパス・キュー122内の書き込み要求を処理するとともに要求キュー116内の書き込み要求および読み出し要求を処理するためにI/Oマネージャ102によって実行される操作の実施態様を示す。要求キュー116内の読み出し要求または書き込み要求の処理を(ブロック650で)完了すると、I/Oマネージャ102は、書き込みバイパス要求キューが空であるか否か(ブロック652で)判定する。もしそうならば、I/Oマネージャ102は(ブロック654で)図17のブロック550に進んで要求キュー116内の要求を処理する。(ブロック652で)書き込みバイパス要求キュー122が空でなければ、I/Oマネージャ102は、処理される書き込み要求のためのバッファリングされている改変済みトラックを、不揮発性ストレージ・デバイス104をバイパスしてシーケンシャル・アクセス記憶媒体114に書き込むことによって、書き込みバイパス・キュー122内の書き込み要求を(ブロック656で)処理する。このようにして、要求キュー116より高い優先順位が書き込みバイパス・キュー122内の書き込み要求に提供される。書き込みバイパス・キュー122からの書き込み要求を処理した後、(ブロック658で)書き込みバイパス・キュー122内の連続的な第1所定数の書き込み要求が処理されると、要求キュー116内の要求の飢餓を避けるべくコントロールは要求キュー116内の第2所定数の要求を処理するために図17のブロック550に進む。そうではなくて、(ブロック658で)書き込みバイパス・キュー122からの該連続的第1所定数の書き込み要求が処理されていなければ、すなわち、該飢餓状態が発生していなければ、コントロールは書き込みバイパス・キュー122内のさらなる書き込み要求を処理するべくブロック656へ進み戻る。
さらに、不揮発性記憶媒体104内のスペースを解放するべく不揮発性ストレージ・デバイス104内の改変済みトラックをシーケンシャル・アクセス記憶媒体114へデステージングするためにデステージング操作が実行されなければならないとI/Oマネージャ102が判定すると、該デステージング操作は、該デステージング操作が完了するまで書き込みバイパス・キュー122内の書き込み要求の処理を中断させることができる。
記載された実施態様は、最高速アクセスの第1キャッシュ14が最も高価なスペース、バイトあたりコスト、を有し、第1キャッシュよりは安価であるがストレージよりは高速である第2キャッシュがシステム内でキャッシュされるデータの量を増やすために使用され得るときにキャッシュ・スペースを増やすために主要なあるいは第1レベルのキャッシュとストレージとの間の第2レベルのキャッシュの使用を可能にするための技術を提供する。より高速なアクセスのキャッシュ記憶スペースを増やせば、要求されたデータがキャッシュ内にあって、より低速のアクセスのより安価なストレージから取り出さなければならない代わりにキャッシュから返され得るときに、キャッシュされたデータへのアクセスが改善される。さらに、記載された実施態様では、ストレージへのトラックの書き込みを最適化するためにデステージングされるトラックがストレージ内の近接するあるいは連続する物理的位置にトラックのグループをなして書き込まれるように、未改変ノンシーケンシャル・トラックは、第1キャッシュにおける時間的配列に基づいて第2キャッシュに加えられ、その後に、シーケンシャル・アクセス・ストレージにおける空間的物理的位置に基づいて第2キャッシュにおいてソートされる。
記載された実施態様は、改変済みトラックのキャッシングを可能にするためにフラッシュ・メモリなどの不揮発性ストレージ・デバイス104をシーケンシャル・アクセス・ストレージ・デバイス100内にさらに設け、この場合、読み出し性能を向上させるために、トラックに対する読み出し要求は、それらがシーケンシャル・アクセス媒体114へデステージングされる前に不揮発性ストレージ・デバイス104から返されることができる。さらに、書き込みがシーケンシャル・アクセス記憶媒体114へデステージングされる前に不揮発性ストレージ・デバイス104に格納されたことに応答して書き込みへのコンプリートを返すことによって書き込み性能が改善され得る。
一定のタイプの書き込み要求、代表的にはあまり頻繁にはアクセスされないデータ、例えばシーケンシャル書き込みデータ、のための書き込み要求、をシーケンシャル・アクセス記憶媒体114に直接書き込み、ノンシーケンシャル書き込みトラックなどの、より頻繁にアクセスされそうな書き込みデータのために不揮発性ストレージ・デバイス104キャッシュ内により多くのスペースを提供するために不揮発性ストレージ・デバイス104キャッシュをバイパスすることによって、さらなる利益が実現される。これにより、要求されたより頻繁にアクセスされるデータにより低速のディスク・ドライブなどのシーケンシャル・アクセス記憶媒体114からアクセスしなければならない場合と比べて、より頻繁にアクセスされるデータがフラッシュ・メモリなどのより高速のアクセスの不揮発性ストレージ・デバイス104から読み出し要求に対して返されることが可能になる。
記載された操作は、ソフトウェア、ファームウェア、ハードウェア、あるいはそれらの任意の組み合わせを作るための標準的なプログラミングもしくはエンジニアリング技術またはその両方を用いて方法、装置またはコンピュータ・プログラム製品として実装され得る。従って、該実施態様の側面は、完全にハードウェアの実施態様、完全にソフトウェアの実施態様(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)あるいは本明細書において全く一般的に“回路”、“モジュール”もしくは“システム”と称され得るソフトウェア側面およびハードウェア側面を組み合わせた実施態様の形をとることができる。さらに、該実施態様の側面は、コンピュータ可読プログラム・コードがその上に具体化されている1つ以上のコンピュータ可読媒体において具体化されるコンピュータ・プログラム製品の形をとることができる。
1つ以上のコンピュータ可読媒体の任意の組み合わせが利用され得る。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であり得る。コンピュータ可読記憶媒体は、例えば、それに限定はされないが、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、もしくはデバイス、または前記のものの任意の適切な組み合わせであり得る。コンピュータ可読記憶媒体のより具体的な例(非網羅的なリスト)は、次のもの:1つ以上のワイヤを有する電気的接続、ポータブルなコンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能でプログラマブルな読み出し専用メモリ(EPROM(erasable programmable read−only memory)またはフラッシュ・メモリ)、光ファイバ、ポータブルなコンパクト・ディスク読み出し専用メモリ(compact disc read−only memory(CD−ROM))、光記憶装置、磁気記憶装置、あるいは前記のものの任意の適切な組み合わせ、を含む。この文書の文脈においては、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによりまたはこれらと関連して使用されるプログラムを包含または記憶できる任意の有形媒体であり得る。
コンピュータ可読信号媒体は、コンピュータ可読プログラム・コードが例えばベースバンドにあるいは搬送波の一部としてその中に具体化されている伝播されるデータ信号を含み得る。そのような伝播される信号は、電磁、光、あるいはそれらの任意の適切な組み合わせを含むがこれらに限定はされない種々の形のうちのいずれをもとることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなくて、命令実行システム、装置、またはデバイスによりまたはこれらと関連して用いられるプログラムを伝達、伝播、またはトランスポートすることのできる任意のコンピュータ可読媒体であり得る。コンピュータ可読媒体上に具体化されたプログラム・コードは、無線、ワイヤライン、光ファイバ・ケーブル、RFなど、あるいは前記のものの任意の適切な組み合わせを含むがこれらに限定はされない任意の適切な媒体を用いて送信され得る。
本発明の側面のための操作を実行するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++などのようなオブジェクト指向プログラミング言語ならびに“C”プログラミング言語もしくは類似のプログラミング言語のような在来の手続き型プログラミング言語を含む1つ以上のプログラミング言語の任意の組み合わせで書かれ得る。該プログラム・コードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上でかつ部分的にリモート・コンピュータ上で、あるいは完全にリモート・コンピュータまたはサーバ上で、実行することができる。後者のシナリオにおいては、リモート・コンピュータはローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザのコンピュータに接続されることができ、あるいは接続は(例えば、インターネット・サービス・プロバイダを用いてインターネットを通して)外部コンピュータに対してなされることができる。
本発明の側面は、本発明の実施態様に従う方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方と関連して上で記述されている。該フローチャート図もしくはブロック図またはその両方の各ブロック、ならびに該フローチャート図もしくはブロック図またはその両方のブロックの組み合わせがコンピュータ・プログラム命令によって実現され得るということが理解されるであろう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、特殊目的コンピュータ、またはマシンを作るための他のプログラマブルなデータ処理装置のプロセッサに、該コンピュータもしくは他のプログラマブルなデータ処理装置の該プロセッサを介して実行する該命令が該フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックにおいて明示される機能/行為を実行するための手段を生すように、提供されることができる。
これらのコンピュータ・プログラム命令は、コンピュータ可読媒体に格納された命令が該フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックにおいて明示される機能/行為を実行する命令を含む製造物品を作るように特定の仕方で機能するようにコンピュータ、他のプログラマブルなデータ処理装置、または他のデバイスに命令することのできるコンピュータ可読媒体に格納されることもできる。
該コンピュータ・プログラム命令は、コンピュータまたは他のプログラマブルな装置上で実行する命令がフローチャートもしくはブロック図またはその両方の1つまたは複数のブロックにおいて明示される機能/行為を実行するためのプロセスを提供するようにコンピュータ実行されるプロセスを作るために一連の操作ステップを該コンピュータ、他のプログラマブルな装置または他のデバイス上で実行させるためにコンピュータ、他のプログラマブルなデータ処理装置、または他のデバイスにロードされることもできる。
“an embodiment”、“embodiment”、“embodiments”、“the embodiment”、“the embodiments”、“one or more embodiments”、“some embodiments”、および“one embodiment”という用語は、明示的に別様に特定されていなければ、“one or more (but not all) embodiments of the present invention(s)(1つまたは複数の本発明の1つ以上の(けれども全部ではない)実施態様)”を意味する。
“including”、“comprising”、“having”およびこれらのバリエーションは、明示的に別様に特定されていなければ、“including but not limited to(含むけれども限定はされない)”を意味する。
列挙されたアイテムのリスティングは、明示的に別様に特定されていなければ、該アイテムのうちのいずれかまたは全部が相互に排他的であることを意味しない。
“a”、“an”および“the”は、明示的に別様に特定されていなければ、“one or more(1つ以上)”を意味する。
互いに通信するデバイス同士は、明示的に別様に特定されていなければ、互いに連続的に通信していなくてもよい。さらに、互いに通信するデバイス同士は直接にあるいは1つ以上の媒介を通して間接的に通信することができる。
互いに通信する数個のコンポーネントを有する実施態様についての記述は、そのようなコンポーネントがすべて必要であることを意味しない。反対に、本発明の広範な可能な実施態様を示すために多様な任意選択のコンポーネントが記載されている。
さらに、プロセス・ステップ、方法ステップ、アルゴリズムなどが順次に記載されているかも知れないけれども、そのようなプロセス、方法およびアルゴリズムは代わりの順序で働くように構成されることができる。換言すれば、記載され得るステップのシーケンスまたは順序は、該ステップがその順序で実行されなければならないことを必ずしも示さない。本明細書に記載されているプロセスのステップは任意の実際的な順序で実行されることができる。さらに、幾つかのステップは同時に実行され得る。
本明細書において単一のデバイスまたは物品が記載されるとき、単一のデバイス/物品の代わりに2つ以上のデバイス/物品(それらが協働してもしなくても)が使用され得ることは明白であろう。同様に、本明細書において2つ以上のデバイスまたは物品が記載される場合(それらが協働してもしなくても)、その2つ以上のデバイスまたは物品の代わりに単一のデバイス/物品が使用され得ることあるいはその示された数のデバイスまたはプログラムの代わりに異なる数のデバイス/物品が使用され得ることは明白であろう。デバイスの機能もしくはフィーチャまたはその両方は、そのような機能/フィーチャを持っていると明示的に記載されてはいない1つ以上の他のデバイスによって代わりに具体化されることができる。従って、本発明の他の実施態様は、そのデバイス自体を含んでいなくてもよい。
図7〜図19に示されている操作は、一定の順序で起こる一定のイベントを示す。代わりの実施態様では一定の操作は異なる順序で実行され、改変されあるいは除去されることができる。さらに、ステップが上記のロジックに加えられ、なお記載された実施態様に従うことができる。さらに、本明細書に記載された操作は順次に起こることができ、あるいは一定の操作は並行して処理されることができる。さらに、操作は単一の処理装置によってまたは分散された処理装置によって行われることができる。

Claims (17)

  1. シーケンシャル・アクセス記憶媒体に格納されているトラックに関連してシステムから読み出し要求および書き込み要求を受け取るシーケンシャル・アクセス・ストレージ・デバイスにおいてデータを管理するためのプログラムであって、
    受け取られた改変済みトラックを、前記改変済みトラックをキャッシュすると決定したことに応答して、前記シーケンシャル・アクセス・ストレージ・デバイスと統合されている不揮発性ストレージ・デバイスにキャッシュすることと、
    改変済みトラックを有する書き込み要求を受け取ることと、
    前記受け取られた書き込み要求の属性が条件を満たすか否か判定することであって、前記条件は前記属性がシーケンシャル書き込み要求であることを含み、前記判定される属性は、もし前記書き込み要求がノンシーケンシャル書き込み要求を含むならば、前記条件を満たさないと、判定することと、
    前記判定される属性が前記条件を満たさないと判定したことに応答して、前記書き込み要求のための前記受け取られた改変済みトラックを前記不揮発性ストレージ・デバイスにキャッシュすることと、
    前記条件を満たさない前記判定される属性を有する前記受け取られた書き込み要求のためにデステージング要求を要求キューに加えることと、
    前記条件を満たす前記判定される属性を有する前記書き込み要求のための前記受け取られた改変済みトラックを、前記条件を満たさない前記属性を有する書き込み要求のための改変済みトラックより高い優先順位で書き込むことと、
    をコンピュータに実行させるプログラム。
  2. 前記不揮発性ストレージ・デバイスは前記シーケンシャル・アクセス記憶媒体より高速のアクセスのデバイスである、請求項1に記載のプログラム。
  3. 前記シーケンシャル・アクセス・ストレージ・デバイスはバッファを含むハード・ディスク・ドライブを含み、前記不揮発性ストレージ・デバイスは前記バッファを含むデバイスとは別のフラッシュ・デバイスを含み、前記シーケンシャル・アクセス記憶媒体は少なくとも1つの磁気ディスクを含み、前記条件を満たす前記判定される属性を有する前記書き込み要求のための前記受け取られた改変済みトラックは、前記不揮発性ストレージ・デバイスに格納されることなく、前記シーケンシャル・アクセス記憶媒体に書き込まれるまで前記バッファに格納される、請求項1に記載のプログラム。
  4. 前記コンピュータに、
    前記不揮発性ストレージ・デバイス内の前記改変済みトラックを、前記シーケンシャル・アクセス記憶媒体におけるそれらの物理的位置に基づく配列で示す空間的インデックスを維持することと、
    前記要求キュー内のデステージング要求を処理することに応答して、前記不揮発性ストレージ・デバイスから前記シーケンシャル・アクセス記憶媒体へデステージングされるべき改変済みトラックとして、書き込みヘッドの現在の位置前記空間的インデックスにおいて示されている前記シーケンシャル・アクセス記憶媒体上の前記改変済みトラックの物理的位置比較に基づいて、前記書き込みヘッドの現在の位置から最小の時間で書き込まれ得る改変済みトラックを選択することとをさらに実行させ、前記条件を満たす前記判定される属性を有する書き込み要求では選択された前記改変済みトラックが前記シーケンシャル・アクセス記憶媒体に書き込まれる、
    請求項1に記載のプログラム。
  5. 前記判定される属性は前記受け取られた書き込み要求の一部としての書き込まれるべきブロックの数を含み、前記判定される属性は、もし書き込まれるべきブロックの前記判定された数がブロックのスレショルド数より大きければ前記条件を満たし、もしブロックの前記判定された数がブロックの前記スレショルド数より小さければ前記条件は満たされない、請求項1に記載のプログラム。
  6. 前記判定される属性は第1属性を含み、前記判定される条件は第1条件を含み、
    前記コンピュータに、
    前記第1属性が前記第1条件を満たすと判定したことに応答して前記書き込み要求の第2属性を判定することと、
    前記第2属性が第2条件を満たすか否か判定することと、
    前記判定される第2属性が前記第2条件を満たすと判定したことに応答して、前記書き込み要求をバイパス・キューに加えるとともに、前記受け取られた改変済みトラックをバッファにキャッシュすることと、
    前記第1条件を満たさない前記判定される第1属性を有する前記書き込み要求ならびに前記第1条件を満たす前記第1属性を有するけれども前記第2条件を満たさない前記第2属性を有する書き込み要求のためにデステージング要求を前記要求キューに加えることとをさらに実行させ、前記第1条件を満たす前記判定される第1属性と前記第2条件を満たす前記判定される第2属性とを有する前記書き込み要求のための前記受け取られた改変済みトラックは、前記第1条件を満たさない前記第1属性を有する書き込み要求のための改変済みトラックならびに前記第1条件を満たす前記第1属性を有するけれども前記第2条件を満たさない前記第2属性を有する書き込み要求のための改変済みトラックよりも高い優先順位で書き込まれる、
    請求項1に記載のプログラム。
  7. 前記判定される第1属性は前記書き込み要求がシーケンシャル書き込みであるのかノンシーケンシャル書き込みであるのかを示し、前記判定される第1属性は、もし前記第1属性がシーケンシャル書き込み要求であるならば前記第1条件を満たし、もし前記第1属性がノンシーケンシャル書き込み要求であるならば前記第1条件は満たされず、前記第2属性は前記受け取られた書き込み要求の一部としての書き込まれるべきブロックの数を含み、前記判定される第2属性は、もし書き込まれるべきブロックの前記判定された数がブロックのスレショルド数より大きければ前記第2条件を満たし、もしブロックの前記判定された数がブロックの前記スレショルド数より小さければ前記第2条件は満たされない、請求項に記載のプログラム。
  8. 前記コンピュータに、
    前記要求キュー内の1つの書き込み要求の処理を完了したことに応答して、バイパス・キューが空であるか否かを判定し、前記バイパス・キューが少なくとも1つの書き込み要求を有することに応答して前記バイパス・キュー内の1つの書き込み要求を処理すること、
    をさらに実行させる、請求項1に記載のプログラム。
  9. 前記コンピュータに、
    前記バイパス・キュー内の第1所定数の書き込み要求が処理されると、前記要求キュー内の第2所定数の要求を処理することを実行させる、
    請求項に記載のプログラム。
  10. シーケンシャル・アクセス記憶媒体に格納されているトラックに関連してシステムから読み出し要求および書き込み要求を受け取るシーケンシャル・アクセス・ストレージ・デバイスにおいてデータを管理する方法であって、
    受け取られた改変済みトラックを、前記改変済みトラックをキャッシュすると決定したことに応答して、前記シーケンシャル・アクセス・ストレージ・デバイスと統合されている不揮発性ストレージ・デバイスにキャッシュすることと、
    改変済みトラックを有する書き込み要求を受け取ることと、
    前記受け取られた書き込み要求の属性が条件を満たすか否か判定することであって、前記条件は前記属性がシーケンシャル書き込み要求であることを含み、前記判定される属性は、もし前記書き込み要求がノンシーケンシャル書き込み要求を含むならば、前記条件を満たさないと、判定することと、
    前記判定される属性が前記条件を満たさないと判定したことに応答して、前記書き込み要求のための前記受け取られた改変済みトラックを前記不揮発性ストレージ・デバイスにキャッシュすることと、
    前記条件を満たさない前記判定される属性を有する前記受け取られた書き込み要求のためにデステージング要求を要求キューに加えることと、
    前記条件を満たす前記判定される属性を有する前記書き込み要求のための前記受け取られた改変済みトラックを、前記条件を満たさない前記属性を有する書き込み要求のための改変済みトラックより高い優先順位で書き込むことと、
    を含む、方法。
  11. 前記シーケンシャル・アクセス・ストレージ・デバイスはバッファを含むハード・ディスク・ドライブを含み、前記不揮発性ストレージ・デバイスは前記バッファを含むデバイスとは別のフラッシュ・デバイスを含み、前記シーケンシャル・アクセス記憶媒体は少なくとも1つの磁気ディスクを含み、前記条件を満たす前記判定される属性を有する前記書き込み要求のための前記受け取られた改変済みトラックは、前記不揮発性ストレージ・デバイスに格納されることなく、前記シーケンシャル・アクセス記憶媒体に書き込まれるまで前記バッファに格納される、請求項10に記載の方法。
  12. 前記不揮発性ストレージ・デバイス内の前記改変済みトラックを、前記シーケンシャル・アクセス記憶媒体におけるそれらの物理的位置に基づく配列で示す空間的インデックスを維持することと、
    前記要求キュー内のデステージング要求を処理することに応答して、前記不揮発性ストレージ・デバイスから前記シーケンシャル・アクセス記憶媒体へデステージングされるべき改変済みトラックとして、書き込みヘッドの現在の位置前記空間的インデックスにおいて示されている前記シーケンシャル・アクセス記憶媒体上の前記改変済みトラックの物理的位置比較に基づいて、前記書き込みヘッドの現在の位置から最小の時間で書き込まれ得る改変済みトラックを選択することとをさらに含み、前記条件を満たす前記判定される属性を有する書き込み要求では選択された前記改変済みトラックが前記シーケンシャル・アクセス記憶媒体に書き込まれる、
    請求項10に記載の方法。
  13. 前記判定される属性は前記受け取られた書き込み要求の一部としての書き込まれるべきブロックの数を含み、前記判定される属性は、もし書き込まれるべきブロックの前記判定された数がブロックのスレショルド数より大きければ前記条件を満たし、もしブロックの前記判定された数がブロックの前記スレショルド数より小さければ前記条件は満たされない、請求項10に記載の方法。
  14. 前記判定される属性は第1属性を含み、前記判定される条件は第1条件を含み、
    前記第1属性が前記第1条件を満たすと判定したことに応答して前記書き込み要求の第2属性を判定することと、
    前記第2属性が第2条件を満たすか否か判定することと、
    前記判定される第2属性が前記第2条件を満たすと判定したことに応答して、前記書き込み要求をバイパス・キューに加えるとともに、前記受け取られた改変済みトラックをバッファにキャッシュすることと、前記第1条件を満たさない前記判定される第1属性を有する前記書き込み要求ならびに前記第1条件を満たす前記第1属性を有するけれども前記第2条件を満たさない前記第2属性を有する書き込み要求のためにデステージング要求を前記要求キューに加えることとをさらに含み、前記第1条件を満たす前記判定される第1属性と前記第2条件を満たす前記判定される第2属性とを有する前記書き込み要求のための前記受け取られた改変済みトラックは、前記第1条件を満たさない前記第1属性を有する書き込み要求のための改変済みトラックならびに前記第1条件を満たす前記第1属性を有するけれども前記第2条件を満たさない前記第2属性を有する書き込み要求のための改変済みトラックよりも高い優先順位で書き込まれる、
    請求項10に記載の方法。
  15. 前記判定される第1属性は前記書き込み要求がシーケンシャル書き込みであるのかノンシーケンシャル書き込みであるのかを示し、前記判定される第1属性は、もし前記第1属性がシーケンシャル書き込み要求であるならば前記第1条件を満たし、もし前記第1属性がノンシーケンシャル書き込み要求であるならば前記第1条件は満たされず、前記第2属性は前記受け取られた書き込み要求の一部としての書き込まれるべきブロックの数を含み、前記判定される第2属性は、もし書き込まれるべきブロックの前記判定された数がブロックのスレショルド数より大きければ前記第2条件を満たし、もしブロックの前記判定された数がブロックの前記スレショルド数より小さければ前記第2条件は満たされない、請求項14に記載の方法。
  16. システムからトラックのための読み出し要求および書き込み要求を受け取るストレージ・デバイスであって、
    トラックを記憶するシーケンシャル・アクセス記憶媒体と、
    不揮発性ストレージ・デバイスと、
    操作を行うべく実行するコンピュータ可読プログラム・コードがその中に具体化されているコンピュータ可読記憶媒体とを含み、前記操作は、
    受け取られた改変済みトラックを、前記改変済みトラックをキャッシュすると決定したことに応答して、前記不揮発性ストレージ・デバイスにキャッシュすることと、
    改変済みトラックを有する書き込み要求を受け取ることと、
    前記受け取られた書き込み要求の属性が条件を満たすか否か判定することであって、前記条件は前記属性がシーケンシャル書き込み要求であることを含み、前記判定される属性は、もし前記書き込み要求がノンシーケンシャル書き込み要求を含むならば、前記条件を満たさないと、判定することと、
    前記判定される属性が前記条件を満たさないと判定したことに応答して、前記書き込み要求のための前記受け取られた改変済みトラックを前記不揮発性ストレージ・デバイスにキャッシュすることと、
    前記条件を満たさない前記判定される属性を有する前記受け取られた書き込み要求のためにデステージング要求を要求キューに加えることと、
    前記条件を満たす前記判定される属性を有する前記書き込み要求のための前記受け取られた改変済みトラックを、前記条件を満たさない前記属性を有する書き込み要求のための改変済みトラックより高い優先順位で書き込むことと、
    を含む、ストレージ・デバイス。
  17. 記ストレージ・デバイスはバッファを含むハード・ディスク・ドライブを含み、前記不揮発性ストレージ・デバイスは前記バッファを含むデバイスとは別のフラッシュ・デバイスを含み、前記シーケンシャル・アクセス記憶媒体は少なくとも1つの磁気ディスクを含み、前記条件を満たす前記判定される属性を有する前記書き込み要求のための前記受け取られた改変済みトラックは、前記不揮発性ストレージ・デバイスに格納されることなく、前記シーケンシャル・アクセス記憶媒体に書き込まれるまで前記バッファに格納される、請求項16に記載のストレージ・デバイス。
JP2014511990A 2011-05-23 2012-05-22 キャッシュを有するストレージ・システムにおけるデータのキャッシングを決定するプログラム、システム、および方法 Active JP5943363B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/113,949 2011-05-23
US13/113,949 US8788742B2 (en) 2011-05-23 2011-05-23 Using an attribute of a write request to determine where to cache data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device
PCT/IB2012/052564 WO2012160514A1 (en) 2011-05-23 2012-05-22 Caching data in a storage system having multiple caches

Publications (2)

Publication Number Publication Date
JP2014516179A JP2014516179A (ja) 2014-07-07
JP5943363B2 true JP5943363B2 (ja) 2016-07-05

Family

ID=47216679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014511990A Active JP5943363B2 (ja) 2011-05-23 2012-05-22 キャッシュを有するストレージ・システムにおけるデータのキャッシングを決定するプログラム、システム、および方法

Country Status (6)

Country Link
US (2) US8788742B2 (ja)
JP (1) JP5943363B2 (ja)
CN (1) CN103562843B (ja)
DE (1) DE112012001302B4 (ja)
GB (1) GB2506042B (ja)
WO (1) WO2012160514A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5708216B2 (ja) * 2011-05-09 2015-04-30 ソニー株式会社 フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム
KR101374065B1 (ko) * 2012-05-23 2014-03-13 아주대학교산학협력단 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치
US9552297B2 (en) 2013-03-04 2017-01-24 Dot Hill Systems Corporation Method and apparatus for efficient cache read ahead
US9053038B2 (en) 2013-03-05 2015-06-09 Dot Hill Systems Corporation Method and apparatus for efficient read cache operation
US9684455B2 (en) 2013-03-04 2017-06-20 Seagate Technology Llc Method and apparatus for sequential stream I/O processing
US8930619B2 (en) * 2012-05-29 2015-01-06 Dot Hill Systems Corporation Method and apparatus for efficiently destaging sequential I/O streams
US20140189204A1 (en) * 2012-12-28 2014-07-03 Hitachi, Ltd. Information processing apparatus and cache control method
US9152563B2 (en) 2013-03-04 2015-10-06 Dot Hill Systems Corporation Method and apparatus for processing slow infrequent streams
US9158687B2 (en) 2013-03-04 2015-10-13 Dot Hill Systems Corporation Method and apparatus for processing fast asynchronous streams
US9473561B2 (en) * 2013-03-15 2016-10-18 International Business Machines Corporation Data transmission for transaction processing in a networked environment
WO2014143027A1 (en) * 2013-03-15 2014-09-18 Intel Corporation Hybrid input/output write operations
US10083117B2 (en) * 2014-09-09 2018-09-25 Hua Zhong University of Technology Filtering write request sequences
US9665493B2 (en) * 2014-10-03 2017-05-30 International Business Machines Corporation Increased cache performance with multi-level queues of complete tracks
CN106156065B (zh) * 2015-03-30 2019-09-20 华为技术有限公司 一种文件持久化方法、删除方法以及相关装置
US9600417B2 (en) * 2015-04-29 2017-03-21 Google Inc. Data caching
KR102333220B1 (ko) 2015-09-24 2021-12-01 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법
TWI588824B (zh) * 2015-12-11 2017-06-21 捷鼎國際股份有限公司 加快在不連續頁面寫入資料之電腦系統及其方法
CN108292278B (zh) * 2016-01-22 2021-02-26 株式会社日立制作所 计算机系统和计算机
US10037149B2 (en) * 2016-06-17 2018-07-31 Seagate Technology Llc Read cache management
US9842060B1 (en) * 2016-07-13 2017-12-12 Seagate Technology Llc Cache over-provisioning in a data storage device
US10289315B2 (en) * 2017-03-27 2019-05-14 Western Digital Technologies, Inc. Managing I/O operations of large data objects in a cache memory device by dividing into chunks
US10691566B2 (en) 2017-07-27 2020-06-23 International Business Machines Corporation Using a track format code in a cache control block for a track in a cache to process read and write requests to the track in the cache
US10409726B2 (en) 2017-10-30 2019-09-10 Micron Technology, Inc. Dynamic L2P cache
KR20190116641A (ko) * 2018-04-05 2019-10-15 성균관대학교산학협력단 가상화 시스템을 위한 저장 장치 및 그 동작 방법
US11151037B2 (en) * 2018-04-12 2021-10-19 International Business Machines Corporation Using track locks and stride group locks to manage cache operations
US11055001B2 (en) 2018-05-30 2021-07-06 Seagate Technology Llc Localized data block destaging
CN109684236A (zh) * 2018-12-25 2019-04-26 广东浪潮大数据研究有限公司 一种数据写缓存控制方法、装置、电子设备和存储介质

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4464713A (en) 1981-08-17 1984-08-07 International Business Machines Corporation Method and apparatus for converting addresses of a backing store having addressable data storage devices for accessing a cache attached to the backing store
JPH04119441A (ja) * 1990-09-11 1992-04-20 Hitachi Ltd ディスク・キャッシュ制御方式
AU661304B2 (en) 1991-03-05 1995-07-20 Zitel Corporation Cache memory system and method of operating the cache memory system
US5325509A (en) 1991-03-05 1994-06-28 Zitel Corporation Method of operating a cache memory including determining desirability of cache ahead or cache behind based on a number of available I/O operations
US5903776A (en) 1997-09-05 1999-05-11 Micron Electronics, Inc. Multiple priority accelerated graphics port (AGP) request queue
US6425050B1 (en) * 1999-09-17 2002-07-23 International Business Machines Corporation Method, system, and program for performing read operations during a destage operation
JP2002023962A (ja) * 2000-07-07 2002-01-25 Fujitsu Ltd ディスク装置及び制御方法
US6785771B2 (en) * 2001-12-04 2004-08-31 International Business Machines Corporation Method, system, and program for destaging data in cache
US7107385B2 (en) 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
US20040205297A1 (en) * 2003-04-14 2004-10-14 Bearden Brian S. Method of cache collision avoidance in the presence of a periodic cache aging algorithm
US7885921B2 (en) 2004-11-18 2011-02-08 International Business Machines Corporation Managing atomic updates on metadata tracks in a storage system
US7698501B1 (en) 2005-04-29 2010-04-13 Netapp, Inc. System and method for utilizing sparse data containers in a striped volume set
US8504597B2 (en) 2005-09-09 2013-08-06 William M. Pitts Distributed file system consistency mechanism extension for enabling internet video broadcasting
JP4788528B2 (ja) * 2005-09-22 2011-10-05 富士通株式会社 ディスク制御装置、ディスク制御方法、ディスク制御プログラム
US20070118695A1 (en) 2005-11-18 2007-05-24 International Business Machines Corporation Decoupling storage controller cache read replacement from write retirement
US7650341B1 (en) 2005-12-23 2010-01-19 Hewlett-Packard Development Company, L.P. Data backup/recovery
US7702870B2 (en) 2006-01-19 2010-04-20 Network Appliance Inc. Method and apparatus for defragmentation and for detection of relocated blocks
JP4794370B2 (ja) * 2006-06-20 2011-10-19 株式会社日立製作所 省電力とパフォーマンスを両立したストレージシステム及び記憶制御方法
US7411757B2 (en) * 2006-07-27 2008-08-12 Hitachi Global Storage Technologies Netherlands B.V. Disk drive with nonvolatile memory having multiple modes of operation
US7562203B2 (en) 2006-09-27 2009-07-14 Network Appliance, Inc. Storage defragmentation based on modified physical address and unmodified logical address
JP2008108145A (ja) 2006-10-26 2008-05-08 Hitachi Ltd 計算機システム及びこれを用いたデータの管理方法
JP5031341B2 (ja) 2006-11-30 2012-09-19 株式会社日立製作所 記憶システム及びデータ管理方法
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
US9088591B2 (en) 2008-04-28 2015-07-21 Vmware, Inc. Computer file system with path lookup tables
TWI476610B (zh) 2008-04-29 2015-03-11 Maxiscale Inc 同級間冗餘檔案伺服器系統及方法
US8103822B2 (en) * 2009-04-26 2012-01-24 Sandisk Il Ltd. Method and apparatus for implementing a caching policy for non-volatile memory
US8838903B2 (en) * 2010-02-04 2014-09-16 Dataram, Inc. Priority ordered multi-medium solid-state storage system and methods for use

Also Published As

Publication number Publication date
GB2506042B (en) 2014-07-30
US20120303877A1 (en) 2012-11-29
CN103562843A (zh) 2014-02-05
CN103562843B (zh) 2016-07-20
DE112012001302B4 (de) 2020-12-17
US20120303863A1 (en) 2012-11-29
US8788742B2 (en) 2014-07-22
JP2014516179A (ja) 2014-07-07
DE112012001302T5 (de) 2014-01-30
US8745325B2 (en) 2014-06-03
GB201321720D0 (en) 2014-01-22
GB2506042A (en) 2014-03-19
WO2012160514A1 (en) 2012-11-29

Similar Documents

Publication Publication Date Title
JP5943363B2 (ja) キャッシュを有するストレージ・システムにおけるデータのキャッシングを決定するプログラム、システム、および方法
US8650354B2 (en) Prefetching tracks using multiple caches
US8806122B2 (en) Caching data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device
US8935479B2 (en) Adaptive cache promotions in a two level caching system
JP6099059B2 (ja) ストレージのためのトラックのキャッシュ管理するプログラム、システム、および方法
US8799578B2 (en) Managing unmodified tracks maintained in both a first cache and a second cache
US8935477B2 (en) Managing caching of extents of tracks in a first cache, second cache and storage
US8825944B2 (en) Populating strides of tracks to demote from a first cache to a second cache
US8631190B2 (en) Prefetching data tracks and parity data to use for destaging updated tracks
US8825952B2 (en) Handling high priority requests in a sequential access storage device having a non-volatile storage cache
US8996789B2 (en) Handling high priority requests in a sequential access storage device having a non-volatile storage cache

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160105

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20160129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160404

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160426

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20160426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160517

R150 Certificate of patent or registration of utility model

Ref document number: 5943363

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150