JP3810738B2 - ディスクにあるデータの適応的な事前取得 - Google Patents

ディスクにあるデータの適応的な事前取得 Download PDF

Info

Publication number
JP3810738B2
JP3810738B2 JP2002541538A JP2002541538A JP3810738B2 JP 3810738 B2 JP3810738 B2 JP 3810738B2 JP 2002541538 A JP2002541538 A JP 2002541538A JP 2002541538 A JP2002541538 A JP 2002541538A JP 3810738 B2 JP3810738 B2 JP 3810738B2
Authority
JP
Japan
Prior art keywords
data
reading
acquisition policy
data set
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.)
Expired - Lifetime
Application number
JP2002541538A
Other languages
English (en)
Other versions
JP2004513456A (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.)
EMC Corp
Original Assignee
EMC 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 EMC Corp filed Critical EMC Corp
Publication of JP2004513456A publication Critical patent/JP2004513456A/ja
Application granted granted Critical
Publication of JP3810738B2 publication Critical patent/JP3810738B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

【0001】
(発明の分野)
本発明は、ディスクストレージシステムに関し、より詳細には、ユーザーからのディスク内のデータに対する要求の予測に関する。
【0002】
(背景)
ディスクからデータを要求するユーザーは、データを取得するために複雑かつ時間のかかる一連の事象を開始する。例えば、当該データを取得する際に、ディスクコントローラは、ディスクのアームの位置を調整し、読取ヘッドとデータが記憶されているディスクのシリンダとを揃える必要がある。次に、ディスクコントローラは、所望のデータを記憶しているトラックが読取ヘッドの下を通過し始めるまで待機しなければならない。ディスクコントローラは、ディスクの回転によって読取ヘッドの下に所望のデータが来たら、読取操作を開始しなければならない。ユーザーからのデータ要求を満たすための処理においては、これらの事象によってかなり長い待ち時間が発生する。
【0003】
読取ヘッドとトラックの先頭との位置合わせに付随する待ち時間は、経済的取引における固定費に相当する。ディスクストレージシステムがトラックの先頭とヘッドとの位置合わせの待ち時間を発生させた場合、所望のデータのみを読み取るのに要する時間は、トラック全体を読み取るのに要する時間と大差なくなる。
【0004】
トラック全体を読み取るためのわずかな費用の増分は、トラックの先頭とディスクのアームとの位置合わせに要する固定費よりも低いが、可能であれば費用の増加を回避することが望まれる。特に、ディスクストレージシステムが、複数台のディスクにアクセスする複数のユーザーに対してサービスを提供している場合は、トラック全体に対する不要な操作によって多くの帯域幅が消費され、他のユーザーのディスクアクセス操作に大きな支障が生じる。
【0005】
トラック全体を読み取るべきか、或いは要求されたデータのみをトラックから読み取るべきかの判断を下すためには、当該トラックに存在する他のデータが今後要求されるか否かをディスクストレージシステムが予測する必要がある。これを実現するための公知の方法として、多数のディスクと通信しているホストコンピュータとバックエンドプロセッサとの両方からアクセス可能なグローバルキャッシュメモリをディスクストレージシステムが維持管理する方法がある。グローバルキャッシュメモリは、多数のスロットから構成される論理ボリュームに分割されており、各論理ボリュームは、ディスクにある物理トラックに対応するサイズを有する。ディスクの各トラックは、他の多数のトラックから構成される論理ボリュームに割り当てられている。これらトラックの一部は、グローバルキャッシュメモリ内の対応するスロットに既にコピーされていることがある。上記の構造を有するディスクストレージシステムは、バッチマット(Bachmat)に付与された米国特許第6,003,114号に記載されている。その内容は、参照によりここに援用される。
【0006】
ディスクストレージシステムは、データ要求を受け取ると、まずそのデータが既にキャッシュスロットにあるか否かを判定する。データが既にキャッシュスロットにある場合、ディスクストレージシステムはそのデータをキャッシュスロットから直接取得する。この事象は「読取ヒット」と呼ばれる。キャッシュスロットから読み取ることで、物理ディスクドライブからの読込みに付随する待ち時間を回避することができるため、読取ヒットが発生することが望まれる。
【0007】
時として、ディスクストレージシステムが、所望のデータがグローバルキャッシュメモリに全く存在しないことを検知することがある。所望のデータは、グローバルキャッシュメモリにはなく、ディスクに存在する。このような場合、ディスクストレージシステムは、ディスクコントローラに対し、ディスクの適切なトラックから所望のデータを取得するように指示する。この事象は、「読取ミス」と呼ばれる。この操作によって、ディスクドライブの機械的動作に付随する待ち時間が発生するほか、グローバルキャッシュメモリとディスクドライブとの間のデータ転送に付随する待ち時間が発生する可能性があるため、読取ミスが発生することは望ましくない。
【0008】
読取ミスが発生すると、バックエンドプロセッサは所望のデータを取得し、そのデータをグローバルキャッシュメモリに転送する。バックエンドプロセッサが、特定の時間間隔の間に当該トラックにあるデータに対する次の要求を受信した場合、トラックの残りを取得してこの要求に応える。
【0009】
上記の方法の不都合な点は、読取ミスに対処する毎回の処理において、近いうちに同じトラックから別のデータが要求されることが考慮されない点にある。あるトラックを含む論理ボリュームからデータが要求されると、その後同じ論理ボリュームにあるデータに対する要求が確実に再発生しているにもかからわず、この点が考慮されていない。
【0010】
(概要)
本発明による方法は、回避可能な読取ミス及び不可避な読取ミスの発生頻度の観察に基づいて、最適事前取得ポリシーを適応的に選択する。回避可能な読取ミス及び不可避な読取ミスの相対発生頻度は、時間の経過とともに変動する。このため、本発明による方法では、所望のデータを読み取ることによって、データセットにある所望のデータに対する要求が満たされる第1事前取得ポリシーと、データセットを読み取ることによって、データセットにある所望のデータに対する要求が満たされる第2事前取得ポリシーとの間で事前取得ポリシーを切り替えている。
【0011】
回避可能な読取ミス回数に関して収集された統計値に基づいて、第1しきい値が定義される。不可避な読取ミスが検知されると、乱数が生成され、しきい値と比較される。しきい値と乱数との差の符号に基づいて、第1及び第2事前取得ポリシーのうちから最適事前取得ポリシーが選択される。
【0012】
回避可能な読取ミスの発生頻度を決定するための統計値は、回避可能な読取ミスが検知されたときに値が更新されるランダムウォーク変数として実現される。したがって、ランダムウォーク変数の値は、回避可能な読取ミスの尤度を表す。また、ランダムウォーク変数の値は、不可避な読取ミスが検知されたときにも更新される。
【0013】
限界読取ミス確率を決定することによって、ランダムウォーク変数が変更され得る。この限界値で、最適事前取得ポリシーが、第1事前取得ポリシーから第2事前取得ポリシーに切り替わる。その後、ランダムウォーク変数の値が、限界読取ミス確率に依存した量だけ変更される。
【0014】
また、本方法は、読取ミスを回避可能な読取ミスと不可避な読取ミスに分類するステップを有することがある。このステップは、データセットに関連するフラグを維持管理することにより実行され得る。このフラグの値は、そのデータセットにあるデータが以前要求されたか否かによって決定される。データセットにあるデータが前に要求されたか否かを表し、データセットに関連するフラグを調べることによって、読取ミスを分類することができる。複数のディスクストレージシステムから構成される分散型ディスクストレージシステムでは、このフラグに、データ要求が発生したシステムの識別子を表す情報を含めることができる。
【0015】
(詳細説明)
本発明による方法を実行するディスクストレージシステム10は、複数のホストコンピュータ16a〜16mと通信しているフロントエンド14と、複数のディスクコントローラ20a〜20nと通信しているバックエンド18とを有するグローバルメモリ12を備える。各バックエンド18は、対応する論理ボリューム22a〜22nからのデータの読取りを制御する。論理ボリューム22aは、ディスクコントローラ20aの制御下にある多数の物理ボリュームからなることもある。別法として、論理ボリューム22aは、少なくとも1つの物理ボリュームに由来するトラックからなることがある。グローバルメモリ12は、制御部24とデータ部26とに区切られている。
【0016】
データ部26は、固定サイズのスロット28a〜28mに区切られており、各スロットは、論理ボリューム22a〜22nに由来するトラックを収容するように構成されているいる。これらスロットのうち、28a,28bは、対応する論理ボリューム22a,22bの対応するトラックに記憶されているデータの一部のコピーを有する。別の論理ボリューム28cは、対応する論理ボリュームのトラック全体のコピーを有する。さらに別の論理ボリューム28mは、対応する論理ボリューム22nのトラックの中ほどからトラックの終端まで存在するデータのコピーを有する。
【0017】
制御部24は、グローバルメモリ管理部30と、データ部26にある固定サイズのスロット28a〜28mの内容を管理するための補助的情報とを含む。
グローバルメモリ管理部30は、ディスク22a〜22nから頻繁にアクセスされるデータのイメージを、固定サイズのスロット28a〜28mに維持管理している。このため、ホストコンピュータ16aは、アクセスが頻繁なデータを容易に取得できる。また、アクセスがあまり頻繁ではないデータも存在する。このようなデータは、論理ボリューム22a〜22nに記憶されているが、グローバルメモリ12には記憶されていない。このため、このようなデータへのアクセスに要する待ち時間は、既にグローバルメモリ12にあるデータへのアクセスに要する待ち時間よりも長くなる。
【0018】
グローバルメモリ管理部30は、ホストコンピュータ16aからのデータ要求に応じるために、グローバルメモリ12の内容を最初に調べ、そのデータが既に存在するか否かを判定する。この判定の結果は、データがグローバルメモリ12に存在するか、或いはデータが物理ディスクドライブには存在するが、グローバルメモリ12には存在しないかのいずれかになる。
【0019】
データがグローバルメモリ12に存在する場合、メモリ管理部30は、当該データをグローバルメモリ12から取得する。この事象は「読取ヒット」と呼ばれる。
【0020】
データがグローバルメモリ12に存在しない場合、グローバルメモリ管理部30は、適切なディスクコントローラ20aに対してメッセージを送信して、論理ボリューム22aからデータを取得するようにディスクコントローラ20aに要求する。この事象は「読取ミス」と呼ばれる。
【0021】
グローバルメモリ12からのデータの読取りは高速で行なわれるため、データ要求のたびに読取ヒットが発生することが好ましい。これは、全論理ボリューム22a〜22nのコピーを記憶できるようグローバルメモリ12の容量を十分大きくすることで実現される。しかし、大容量のグローバルメモリ12を備えるには費用がかかるため、この方法は現実的ではない。
【0022】
通常、ディスクに記憶されている全データのコピーを記憶できるほどグローバルメモリ12の容量が大きくないため、ディスクストレージシステム10からデータを取得するための平均待ち時間を短縮するようにグローバルメモリを割り当てる必要がある。これを実現するには、ディスクストレージシステム10に記憶されている全データを、アクセスが頻繁なデータとアクセスが頻繁ではないデータとの2つに分類する必要がある。アクセスが頻繁なデータはグローバルメモリ12に記憶するが、アクセスが頻繁ではないデータはグローバルメモリ12に記憶しない。
【0023】
時間の経過に伴い、アクセスが頻繁なデータに対する要求が低下し、アクセスが頻繁ではないデータに対する要求が増大することがある。このため、アクセスが頻繁なデータとアクセスが頻繁ではないデータとに分類する処理は、好適には論理ボリュームにあるデータに対する要求の変化を検知する動的な処理である。本発明による方法により、データの分類を実行するための、統計に基づいた処理が提供される。グローバルメモリ12内の記憶領域が消費されるのを防止するため、本発明による方法は、好適にはディスクコントローラ20aによって実行される。
【0024】
図2において、本発明による方法を実行するディスクコントローラ20aは、キャッシュメモリ32を備える。このほかに、ディスクコントローラ20aは、グローバルメモリ12、キャッシュメモリ32及び論理ボリューム22aと通信しているバックエンドプロセッサ34を備える。
【0025】
論理ボリューム22aに関連付けられている各トラックは、多数のブロックから構成されている。各ブロックには、そのブロックがグローバルメモリ12内のキャッシュスロットにコピーされているか否かを表すフラグが存在する。ディスクコントローラ20aは、読取ミスの結果ディスクコントローラ20aに対する読取要求が発生するたびに、発生した読取ミスを、このフラグを用いて回避可能な読取ミスと不可避な読取ミスとに分類する。
【0026】
回避可能なトラックの読取ミスは、データを記憶しているブロックのみならず、トラック全体がディスクコントローラ20aによって事前取得されていれば回避することができた読取ミスである。トラック全体が事前取得されていたならば、物理ドライブからではなく、グローバルメモリ12から所望のデータを直接取得することによって、読取ミスを生じさせた読取要求に応じることができたはずである。
【0027】
当該トラックの前の部分がキャッシュスロットに既に存在することがトラックのフラグの分布からわかる場合、ディスクコントローラ20aは、その読取ミスを「回避可能な」読取ミスに分類する。グローバルメモリ12内のキャッシュスロットに当該トラックの前の部分が存在しないことがフラグからわかる場合、ディスクコントローラ20aは、この読取ミスを「不可避な」読取ミスに分類する。回避可能な読取ミスが過度に発生している場合は、ディスクコントローラ20aは、一回のトラック全体の事前取得をもっと頻繁に実施すべきである。同様に、不可避な読取ミスが過度に発生している場合は、ディスクコントローラは、トラック全体ではなく該当データのみを取得して、データ要求に応答すべきである。
【0028】
ディスクコントローラ20aは、回避可能な読取ミス及び不可避な読取ミスの発生回数を用いて、所望のデータのみを取得する第1ポリシーと、所望のデータと所望のデータを記憶しているトラックの残りの部分とを取得する第2ポリシーとのいずれかを選択することが可能である。第1ポリシーと第2ポリシーのいずれを選択するかは、ディスクコントローラ20aによって収集された統計値から推論されるように、読取ミスが回避可能な読取ミスである場合の確率に基づいている。この事象の確率がポリシー移行確率を上回る場合、ディスクコントローラ20aは第2ポリシーを選択する。この事象の確率がポリシー移行確率を超えない場合は、ディスクコントローラ20aは第1ポリシーを選択する。
【0029】
第1ポリシーと第2ポリシーのいずれかを選択する際に用いられるポリシー移行確率は、2つの費用関数の交点となる。これらの費用関数の一般的な形を図3に示す。図3の縦軸は、データ要求に応じるための待ち時間などの費用を表す。横軸は、読取ミスは回避可能な読取ミスである場合の確率であるを表す。図3の第1曲線38は、コントローラが、ユーザーから要求されたデータのみを取得する第1ポリシーに従う場合の費用を表す。第2曲線40は、コントローラが、ユーザーから要求されたデータを記憶しているトラックの全データを取得する第2ポリシーに従う場合の費用を表す。
【0030】
不可避な読取ミスが大半を占める場合、第1ポリシーが最適ポリシーであることが図3から明白である。回避可能な読取ミスの尤度が増大するにつれ、第1ポリシーと第2ポリシーとの費用の差が小さくなる。やがて、ポリシー移行確率42において第1曲線38と第2曲線40とが交わり、第1ポリシーが最適ポリシーではなくなる。
【0031】
この2つの費用関数の形状と、この2つの交点から導出されるポリシー移行確率42とは、ディスクストレージシステム10の特性によって決まる。例えば、ディスクストレージシステム10の帯域幅が非常に狭い場合、第2曲線40は図4にみるように上に移動し、その結果、交点44が右にシフトする。非常に遅いアームを備えたディスクがディスクストレージシステム10に用いられている場合、図5にみるように第1曲線38が上に移動し、その結果、交点44が左にシフトする。
【0032】
上記の方法は、時間の経過に伴って、論理ボリューム22aから事前取得されるトラックが増えるという難点を有する。この結果、当該論理ボリューム22aを読み取るための読取ミス回数が減り、読取ヒット数が増える。しかし、ディスクコントローラ20aは読取ミスしか検知できない。読取要求の予測を行なわなくても、読取要求に応えれば読取ヒットとなるため、ディスクコントローラ20aは読取ヒットを検知できない。この結果、時間がある程度経つと、ディスクコントローラ20aは、回避可能な読取ミス回数及び不可避な読取ミス回数の統計値を維持管理することができなくなる。
【0033】
ディスクコントローラ20aによって維持管理される統計値が古くなるのを回避できない結果、グローバルメモリが非効率的に使用されることになる。より詳細には、ディスクコントローラ20aは、論理ボリューム22aにあるデータに対する要求が低下してからかなり経過したにもかかわらず、関連する論理ボリューム22aにあるトラック全体の事前取得を続けていることがある。新たに読取ミスが検知されなくなった場合に、回避可能な読取ミス回数及び不可避な読取ミス回数の変動を検知する方法が存在しないため、ディスクコントローラ20aは、最適とは呼べなくなったポリシーに従うことになる。この結果、ディスクコントローラ20aは、以前の最適ポリシー(つまり、トラック全体を積極的に事前取得すること)が、最適ポリシーではなくなったとことを知るすべもない。この状態では、ディスクストレージシステム10の資源が無駄に浪費される。
【0034】
図2に戻ると、バックエンドプロセッサ34は、読取ミスを検知し、これを回避可能なミスと不可避なミスとに分類する監視処理を実行することによって統計値を新しい状態に維持している。さらにこの監視処理は、ディスクコントローラのキャッシュメモリ32内にランダムウォーク変数48を維持することによって、計測された回避可能な読取ミス及び不可避な読取ミスの相対発生頻度を監視している。
【0035】
通常、ランダムウォーク変数48は、下限値と上限値(通常は0と255)の間の整数値を取るランダムな変数である。簡潔を記すために、ランダムウォーク変数は0と1の間の値を取るとする。一般にランダムウォーク変数48には初期値が与えられ、初期値は通常上限値と下限値の中間値である。監視処理36は、回避可能な読取ミス及び不可避な読取ミスを検知すると、ランダムウォーク変数48の値を変更する。さらに、バックエンドプロセッサは、トラックを事前取得するか否かを決定するポリシー選択処理50を実行する。監視処理36とポリシー選択処理50とは相互に連携し、図6のアルゴリズムを実施するための命令を実行する。
【0036】
読取ミスが検知されると(ステップ52)、監視処理は、この読取ミスを回避可能な読取ミスと不可避な読取ミス(ステップ54)とに分類する。当該トラックの前の部分が既にグローバルメモリ12に存在することがそのトラックのフラグの分布からわかる場合、そのトラックのデータに対する読取ミスが回避可能と分類される。そのトラックの前の部分が既にグローバルメモリ12に存在しない場合、読取ミスは不可避と分類される。
【0037】
データ収集処理が、読取ミスが回避可能な読取ミスであると判定すると、データ収集処理は、好適には図7に示す方法によりランダムウォーク変数(ステップ56)を更新する。
【0038】
次に図7において、監視処理は、ランダムウォーク変数の値を増加させて、この変数の値を更新する(ステップ58)。ランダムウォーク変数の増分は、ポリシー移行確率Xと、大きな整数Nとによって決まる。
【0039】
監視処理は、ランダムウォーク変数を更新する際に、ランダムウォーク変数を増加させた結果、変数の値が上限値以上になるか否かを判定する(ステップ60)。上限値以上になる場合、監視処理は、ランダムウォーク変数の値を上限値を超えない最大の値に設定して、この変数を更新する(ステップ62)。これにより、詳細を下に記載するように、回避可能な読取ミスが多く発生した後でも、トラックにあるデータを事前取得するか否かを決定する上でランダムウォーク変数が有用であることが保証される。
【0040】
図6に戻ると、ポリシー選択処理は、回避可能な読取ミスを検知すると、所望のデータ以外にも、所望のデータを記憶しているトラックの残りの全データも取得するようにディスクコントローラに指示する(ステップ64)。図6には、ランダムウォーク変数を更新するステップ(ステップ56)の後にトラックのデータを取得するステップが示されている(ステップ64)が、ランダムウォーク変数の増分は非常に小さいため(ステップ58)、これらのステップのいずれが先に実行されても実用上差し支えないことが理解される。
【0041】
監視処理が、検知された読取ミスが不可避な読取ミスであると判定すると、監視処理は、乱数を生成する(ステップ66)。これは、均一に分散している乱数で、ランダムウォーク変数の上限値と下限値の間の値を取る。次に、監視処理は乱数の値とランダムウォーク変数の値とを比較する(ステップ68)。
【0042】
乱数の値がランダムウォーク変数の値よりも大きい場合、ポリシー選択処理は、所望のデータ以外にも、所望のデータを記憶しているトラックの残りの全データも取得するようにディスクコントローラに指示する(ステップ64)。乱数の値がランダムウォーク変数の値以下の場合、監視処理はランダムウォーク変数を更新する(ステップ72)。
【0043】
次は図8において、監視処理は、ランダムウォーク変数の値を減少させて、この変数の値を更新する(ステップ74)。ランダムウォーク変数の減分は、図7に示したポリシー移行確率Xと、大きな整数Nとによって決まる。
【0044】
監視処理は、ランダムウォーク変数を更新する際に、ランダムウォーク変数を減少させた結果、変数の値が下限値以下になるか否かを判定する(ステップ76)。下限値以下になる場合、監視処理は、ランダムウォーク変数の値を下限値を下回らない最小の値に設定して、この変数を更新する(ステップ78)。
【0045】
図6に戻ると、ポリシー選択処理は、不可避な読取ミスを検知すると、所望のデータのみを取得するようにディスクコントローラに指示する(ステップ80)。図6には、ランダムウォーク変数を更新するステップ(ステップ72)の後にトラック上のデータを取得するステップが示されている(ステップ80)が、ランダムウォーク変数が増加される増分は非常に小さいため(ステップ58)、これらのステップのいずれが先に実行されても実用上差し支えないことが理解される。これら2つのステップは互いに独立しており、これら2つをどのような順序で実行してもよいし、同時に実行してもよい。
【0046】
上記のポリシー選択方法においては、回避可能な読取ミスの確率が高い場合、ランダムウォーク変数は1に限りなく近い値を取り続ける。逆に、不可避な読取ミスの確率が低い場合、ランダムウォーク変数は0に限りなく近い値を取り続ける。所望のデータのみの取得が好ましいポリシーから、トラック全体の事前取得が好ましいポリシーに最適ポリシーが遷移した場合、ランダムウォーク変数は約(N/(l−X))ステップ後に1に近づく。逆に、トラック全体の事前取得が好ましいポリシーから、所望のデータのみの取得が好ましいポリシーに最適ポリシーが遷移した場合、ランダムウォーク変数は約(N/X)ステップ後に0に近づく。したがって、Nの値の選択は、最適ポリシーの遷移に対する本方法の感受性を決定する。このため、データストレージシステムが、最適ポリシーの変化に対して所望の感受性を有するように、Nの値が選択される。
【0047】
図9に示すように、データを要求しているホストプロセッサ86が接続されている第1のディスクストレージシステム84以外の第2のディスクストレージシステム82に関連するディスク81に、所望のデータを記憶することが可能である。第1及び第2のディスクストレージシステム82,84が遠く隔たっており、使用料金が高額で帯域幅が比較的狭い通信チャネル88でのみ接続されていることもある。
【0048】
本発明による方法は、図9に示す構成にも等しく適用することが可能である。図9に示す分散型システムの場合、図3〜5の費用関数を変更しなければならないことがある。また、所望のデータを有するトラックからコピーされたデータを記憶しているキャッシュスロットを、ディスクストレージシステム82,84のうちのいずれが有しているかを表す情報をフラグに追加しなければならないことがある。
【0049】
上に、新規であり、特許により保護されるものとして特許を請求する本発明並びにその好適な実施形態を記載した。
【図面の簡単な説明】
【図1】 複数のディスクコントローラを有するディスクストレージシステムを示す図。
【図2】 図1のディスクストレージシステムにあるディスクコントローラが動作モードにある状態を示す図。
【図3】 ユーザーを誤って分類することによる影響を示す費用関数を示すグラフ図。
【図4】 ユーザーを誤って分類することによる影響を示す費用関数を示すグラフ図。
【図5】 ユーザーを誤って分類することによる影響を示す費用関数を示すグラフ図。
【図6】 本発明による事前取得ポリシーの選択方法を示すフローチャート図。
【図7】 ランダムウォーク変数を増加させる図6のステップを示すフローチャート。
【図8】 ランダムウォーク変数を減少させる図6のステップを示すフローチャート。
【図9】 図1のディスクストレージシステムを少なくとも2つ有する分散型ディスクストレージシステムを示す図。

Claims (11)

  1. 所望のデータを読み取ることによってデータセットにある前記所望のデータに対する要求が満たされる第1事前取得ポリシーと、
    データセットを読み取ることによって前記データセットにある所望のデータに対する要求が満たされる第2事前取得ポリシーとから最適事前取得ポリシーを適応的に選択するための方法であって、
    回避可能な読取ミス回数に関する統計値を収集するステップと、
    前記統計値に基づいて、第1しきい値を定義するステップと、
    不可避な読取ミスが検知されたときに、
    乱数を生成し、かつ
    前記しきい値と前記乱数との差の符号に基づいて、前記第1事前取得ポリシーと前記第2事前取得ポリシーとから最適な事前取得ポリシーを選択するステップとからなる方法。
  2. 前記データセットがディスクのトラックに由来するデータを含むように、同データセットを選択するステップをさらに有する請求項1に記載の方法。
  3. 前記統計値を収集するステップは、回避可能な読取ミスの尤度を表す値を有するランダムウォーク変数を維持するステップを有する請求項1に記載の方法。
  4. 前記乱数を生成するステップは、上限と下限とによって定義される区間において均一な確率で分散する乱数を生成することを含む、請求項1に記載の方法。
  5. 前記統計値を収集するステップは、読取ミスを、回避可能な読取ミスか不可避な読取ミスかに分類するステップを含む、請求項1に記載の方法。
  6. 少なくとも1つのホストコンピュータに所望のデータを提供するための大規模ストレージシステムであって、前記大規模ストレージシステムは、
    前記所望のデータを有するデータセットが記憶されているデータストレージ装置と、
    前記データストレージ装置と通信しているコントローラからなり、前記コントローラは、
    回避可能な読取ミス回数を表す統計値を記憶するためのメモリ要素と、
    不可避な読取ミスの検知に応答して、乱数を生成するための乱数生成器と、
    前記メモリ要素及び前記乱数生成器と通信し、かつ、不可避な読取ミスが検知されたときに、前記統計値に基づいて定義されるしきい値と、前記乱数との差の符号に基づいて最適事前取得ポリシーを選択するためのプロセッサとからなり、前記最適事前取得ポリシーは、
    所望のデータを読み取ることによってデータセットにある前記所望のデータに対する要求が満たされる第1事前取得ポリシーと、
    データセットを読み取ることによって前記データセットにある所望のデータに対する要求が満たされる第2事前取得ポリシーとから選択される大規模ストレージシステム。
  7. 前記データセットがディスクのトラックに由来するデータを含む、請求項6に記載の大規模ストレージシステム。
  8. 前記メモリ要素に記憶されている前記統計値は回避可能な読取ミスの尤度を表す値を有するランダムウォーク変数からなる、請求項6に記載の大規模ストレージシステム。
  9. 前記乱数生成器は、上限と下限とによって定義される区間において均一な確率で分散す る乱数を生成する均一分布乱数生成器を備える、請求項6に記載の大規模ストレージシステム。
  10. 回避可能な読取ミスと不可避な読取ミスとを区別する分類器をさらに備える、請求項6に記載の大規模ストレージシステム。
  11. 所望のデータを読み取ることによってデータセットにある前記所望のデータに対する要求が満たされる第1事前取得ポリシーと、
    データセットを読み取ることによって前記データセットにある所望のデータに対する要求が満たされる第2事前取得ポリシーとから最適事前取得ポリシーを適応的に選択するための、コード化されているソフトウェアを有するコンピュータ可読媒体であって、
    前記ソフトウェアは、コンピュータを、
    回避可能な読取ミス回数に関する統計値を収集する手段として機能させる命令と、
    前記統計値に基づいて、第1しきい値を定義する手段として機能させる命令と、
    不可避な読取ミスを検知したときに乱数を生成する手段として機能させる命令と、
    不可避な読取ミスを検知したときに前記しきい値と前記乱数との差の符号に基づいて前記第1事前取得ポリシーと前記第2事前取得ポリシーとから最適事前取得ポリシーを選択する手段として機能させる命令とからなる媒体。
JP2002541538A 2000-11-03 2001-10-24 ディスクにあるデータの適応的な事前取得 Expired - Lifetime JP3810738B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/705,991 US6529998B1 (en) 2000-11-03 2000-11-03 Adaptive prefetching of data from a disk
PCT/US2001/045437 WO2002039283A2 (en) 2000-11-03 2001-10-24 Adaptive pre-fetching of data from a disk

Publications (2)

Publication Number Publication Date
JP2004513456A JP2004513456A (ja) 2004-04-30
JP3810738B2 true JP3810738B2 (ja) 2006-08-16

Family

ID=24835762

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002541538A Expired - Lifetime JP3810738B2 (ja) 2000-11-03 2001-10-24 ディスクにあるデータの適応的な事前取得

Country Status (5)

Country Link
US (1) US6529998B1 (ja)
JP (1) JP3810738B2 (ja)
DE (1) DE10196886T1 (ja)
GB (1) GB2383658B (ja)
WO (1) WO2002039283A2 (ja)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6721870B1 (en) 2001-06-12 2004-04-13 Emc Corporation Prefetch algorithm for short sequences
US6880041B2 (en) * 2002-02-20 2005-04-12 International Business Machines Corporation Method and apparatus to transfer information between different categories of servers and one or more data storage media
US6922754B2 (en) * 2002-12-09 2005-07-26 Infabric Technologies, Inc. Data-aware data flow manager
US7047366B1 (en) 2003-06-17 2006-05-16 Emc Corporation QOS feature knobs
US7139878B2 (en) * 2003-06-20 2006-11-21 Freescale Semiconductor, Inc. Method and apparatus for dynamic prefetch buffer configuration and replacement
JP4532931B2 (ja) * 2004-02-25 2010-08-25 株式会社日立製作所 プロセッサ、および、プリフェッチ制御方法
JP4521206B2 (ja) * 2004-03-01 2010-08-11 株式会社日立製作所 ネットワークストレージシステム、コマンドコントローラ、及びネットワークストレージシステムにおけるコマンド制御方法
US9323680B1 (en) * 2007-09-28 2016-04-26 Veritas Us Ip Holdings Llc Method and apparatus for prefetching data
US7899996B1 (en) * 2007-12-31 2011-03-01 Emc Corporation Full track read for adaptive pre-fetching of data
EP2539821B1 (en) 2010-02-24 2019-08-28 Marvell World Trade Ltd. Caching based on spatial distribution of accesses to data storage devices
US20150286571A1 (en) * 2014-04-04 2015-10-08 Qualcomm Incorporated Adaptive cache prefetching based on competing dedicated prefetch policies in dedicated cache sets to reduce cache pollution
US10459892B2 (en) 2014-04-23 2019-10-29 Qumulo, Inc. Filesystem hierarchical aggregate metrics
US11132336B2 (en) 2015-01-12 2021-09-28 Qumulo, Inc. Filesystem hierarchical capacity quantity and aggregate metrics
US9836480B2 (en) 2015-01-12 2017-12-05 Qumulo, Inc. Filesystem capacity and performance metrics and visualizations
US9892066B1 (en) 2016-10-31 2018-02-13 International Business Machines Corporation Dynamically adjusting read data return sizes based on interconnect bus utilization
US9684461B1 (en) 2016-10-31 2017-06-20 International Business Machines Corporation Dynamically adjusting read data return sizes based on memory interface bus utilization
US10095729B2 (en) 2016-12-09 2018-10-09 Qumulo, Inc. Managing storage quotas in a shared storage system
US10721212B2 (en) * 2016-12-19 2020-07-21 General Electric Company Network policy update with operational technology
US10462187B2 (en) * 2017-08-28 2019-10-29 General Electric Company Network security policy configuration based on predetermined command groups
US11360936B2 (en) 2018-06-08 2022-06-14 Qumulo, Inc. Managing per object snapshot coverage in filesystems
CN111104054B (zh) 2018-10-29 2023-10-27 伊姆西Ip控股有限责任公司 管理输入/输出操作的方法、装置和计算机程序产品
US11151092B2 (en) 2019-01-30 2021-10-19 Qumulo, Inc. Data replication in distributed file systems
US10614033B1 (en) * 2019-01-30 2020-04-07 Qumulo, Inc. Client aware pre-fetch policy scoring system
US11055022B2 (en) 2019-03-25 2021-07-06 Western Digital Technologies, Inc. Storage system and method for early host command fetching in a low queue depth environment
US11874773B2 (en) * 2019-09-20 2024-01-16 Intel Corporation Apparatuses, methods, and systems for dual spatial pattern prefetcher
US11281981B2 (en) 2019-12-09 2022-03-22 Western Digital Technologies, Inc. Storage system and sorting-based method for random read command prediction in a multi-queue system
US10860372B1 (en) 2020-01-24 2020-12-08 Qumulo, Inc. Managing throughput fairness and quality of service in file systems
US10795796B1 (en) 2020-01-24 2020-10-06 Qumulo, Inc. Predictive performance analysis for file systems
US11151001B2 (en) 2020-01-28 2021-10-19 Qumulo, Inc. Recovery checkpoints for distributed file systems
US10936538B1 (en) 2020-03-30 2021-03-02 Qumulo, Inc. Fair sampling of alternate data stream metrics for file systems
US10936551B1 (en) 2020-03-30 2021-03-02 Qumulo, Inc. Aggregating alternate data stream metrics for file systems
US11775481B2 (en) 2020-09-30 2023-10-03 Qumulo, Inc. User interfaces for managing distributed file systems
US11157458B1 (en) 2021-01-28 2021-10-26 Qumulo, Inc. Replicating files in distributed file systems using object-based data storage
US11461241B2 (en) 2021-03-03 2022-10-04 Qumulo, Inc. Storage tier management for file systems
US11132126B1 (en) 2021-03-16 2021-09-28 Qumulo, Inc. Backup services for distributed file systems in cloud computing environments
US11567660B2 (en) 2021-03-16 2023-01-31 Qumulo, Inc. Managing cloud storage for distributed file systems
US11669255B2 (en) 2021-06-30 2023-06-06 Qumulo, Inc. Distributed resource caching by reallocation of storage caching using tokens and agents with non-depleted cache allocations
US11294604B1 (en) 2021-10-22 2022-04-05 Qumulo, Inc. Serverless disk drives based on cloud storage
US11354273B1 (en) 2021-11-18 2022-06-07 Qumulo, Inc. Managing usable storage space in distributed file systems
US11599508B1 (en) 2022-01-31 2023-03-07 Qumulo, Inc. Integrating distributed file systems with object stores
US11722150B1 (en) 2022-09-28 2023-08-08 Qumulo, Inc. Error resistant write-ahead log
US11729269B1 (en) 2022-10-26 2023-08-15 Qumulo, Inc. Bandwidth management in distributed file systems
US11966592B1 (en) 2022-11-29 2024-04-23 Qumulo, Inc. In-place erasure code transcoding for distributed file systems
US11934660B1 (en) 2023-11-07 2024-03-19 Qumulo, Inc. Tiered data storage with ephemeral and persistent tiers
US11921677B1 (en) 2023-11-07 2024-03-05 Qumulo, Inc. Sharing namespaces across file system clusters

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5253351A (en) * 1988-08-11 1993-10-12 Hitachi, Ltd. Memory controller with a cache memory and control method of cache memory including steps of determining memory access threshold values
US5495591A (en) * 1992-06-30 1996-02-27 Bull Hn Information Systems Inc. Method and system for cache miss prediction based on previous cache access requests
US5649153A (en) * 1995-06-19 1997-07-15 International Business Machines Corporation Aggressive adaption algorithm for selective record caching
US6003114A (en) 1997-06-17 1999-12-14 Emc Corporation Caching system and method providing aggressive prefetch
US6098153A (en) * 1998-01-30 2000-08-01 International Business Machines Corporation Method and a system for determining an appropriate amount of data to cache

Also Published As

Publication number Publication date
WO2002039283A2 (en) 2002-05-16
GB0306155D0 (en) 2003-04-23
DE10196886T1 (de) 2003-12-04
GB2383658A (en) 2003-07-02
JP2004513456A (ja) 2004-04-30
WO2002039283A3 (en) 2003-04-03
US6529998B1 (en) 2003-03-04
GB2383658B (en) 2004-11-24

Similar Documents

Publication Publication Date Title
JP3810738B2 (ja) ディスクにあるデータの適応的な事前取得
US5253351A (en) Memory controller with a cache memory and control method of cache memory including steps of determining memory access threshold values
US9355112B1 (en) Optimizing compression based on data activity
CN110058786B (zh) 用于控制存储系统中的写请求的方法、装置和计算机程序产品
US6745295B2 (en) Designing a cache with adaptive reconfiguration
US5893139A (en) Data storage device and storage method in which algorithms are provided for calculating access frequencies of data
US6721870B1 (en) Prefetch algorithm for short sequences
US7743216B2 (en) Predicting accesses to non-requested data
US5734861A (en) Log-structured disk array with garbage collection regrouping of tracks to preserve seek affinity
US8225044B2 (en) Storage system which utilizes two kinds of memory devices as its cache memory and method of controlling the storage system
US5895488A (en) Cache flushing methods and apparatus
US4875155A (en) Peripheral subsystem having read/write cache with record access
US5761717A (en) System and method for determining what position in cache memory to store data elements
US8386708B2 (en) Method for coupling sub-LUN load measuring metadata size to storage tier utilization in dynamic storage tiering
US20130332693A1 (en) Allocating storage memory based on future file size or use estimates
US6098153A (en) Method and a system for determining an appropriate amount of data to cache
US7120759B2 (en) Storage system and method for prestaging data in a cache for improved performance
EP3425513B1 (en) Cache management method and apparatus for non-volatile storage device
US5606679A (en) Method for optimal retrieval of non-volume-specific data
JPH0524533B2 (ja)
US6715039B1 (en) Cache slot promotion in a replacement queue cache using determinations of probabilities and costs
US7664917B2 (en) Device and method for caching control, and computer product
WO2012023953A1 (en) Improving the i/o efficiency of persisent caches in a storage system
JPH11506238A (ja) キャッシュ管理システムにおける順次性検出用のシステムと方法
JPH08263380A (ja) ディスクキャッシュ制御方式

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051115

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060215

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060501

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: 20060523

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060524

R150 Certificate of patent or registration of utility model

Ref document number: 3810738

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100602

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100602

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110602

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120602

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120602

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130602

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term