(57)【特許請求の範囲】
【請求項１】
データのブロックを伝送するための方法であって、
構造プロセッサが、少なくとも１つの高優先順位同期外れインジケータを、高優先順位同期外れ構造内に格納するステップであって、
前記個々の高優先順位同期外れインジケータは個々のデータのブロックに対応し、
前記個々のデータのブロック内の修正済みセグメントの数が前記修正済みセグメントの閾値に等しいか又は前記閾値よりも小さいという決定に応答して、前記構造プロセッサが、前記データのブロックのための高優先順位同期外れインジケータをセットし、
前記修正済みセグメントの数が前記修正済みセグメントの閾値よりも大きいという決定に応答して、前記構造プロセッサが、前記データのブロックのための高優先順位同期外れインジケータをリセットする、
前記格納するステップと、
少なくとも１つの高優先順位同期外れインジケータがセットされているという決定に応答して、データ移動エージェントが、前記データのブロックと関連し且つ１つのセットされた高優先順位同期外れインジケータと関連した修正済みセグメントにおける１つ又は複数のデータのサブブロックを転送するステップと
を含む方法。
【請求項２】
前記構造プロセッサが、前記データのブロックと関連した修正済みセグメントがないことを表すために前記１つの高優先順位同期外れインジケータをリセットするステップを更に含む、請求項１に記載の方法。
【請求項３】
前記構造プロセッサが、転送されたデータのサブブロックに対するデータのブロックのための同期外れインジケータを、前記データのブロックが転送される必要がないことを表すためにリセットするステップを更に含む、請求項１に記載の方法。
【請求項４】
前記構造プロセッサが、高優先順位同期外れインジケータがセットされていないという決定に応答して、データのブロックが転送されることになっていることを表すためにいずれかの同期外れインジケータがセットされているかどうかを決定するステップと、
前記データ移動エージェントが、少なくとも１つの同期外れインジケータがセットされているという決定に応答して、１つの同期外れインジケータと関連したデータのブロックを転送するステップと
を更に含む、請求項１に記載の方法。
【請求項５】
前記構造プロセッサが、データのブロックが転送される必要がないことを表すために、前記データのブロックのための前記１つの同期外れインジケータをリセットするステップを更に含む、請求項４に記載の方法。
【請求項６】
前記構造プロセッサが、前記１つの同期外れインジケータと関連したデータのブロックに対する修正済みセグメントがないことを表すために、高優先順位同期外れインジケータをリセットするステップを更に含む、請求項４に記載の方法。
【請求項７】
読み取りプロセスが、１つ又は複数のデータのサブブロックに対するホスト書込みを受けるステップと、
前記構造プロセッサが、前記データのブロックに対するデータのサブブロックを含む修正済みセグメントの数を前記修正済みセグメントの閾値と比較するステップと、
を更に含む、請求項１に記載の方法。
【請求項８】
データのブロックを伝送するためのコンピュータ・プログラムであって、前記コンピュータ・プログラムがコンピュータにより実行されるとき、前記コンピュータを、
構造プロセッサであって、
少なくとも１つの高優先順位同期外れインジケータを、高優先順位同期外れ構造内に格納し、
前記個々の高優先順位同期外れインジケータは個々のデータのブロックに対応し、
前記個々のデータのブロック内の修正済みセグメントの数が前記修正済みセグメントの閾値に等しいか又は前記閾値よりも小さいという決定に応答して、前記データのブロックのための高優先順位同期外れインジケータをセットし、
前記修正済みセグメントの数が前記修正済みセグメントの閾値よりも大きいという決定に応答して、前記データのブロックのための高優先順位同期外れインジケータをリセットする、
前記構造プロセッサと、
データ移動エージェントであって、少なくとも１つの高優先順位同期外れインジケータがセットされているという決定に応答して、前記データのブロックと関連し且つ１つのセットされた高優先順位同期外れインジケータと関連した修正済みセグメントにおける１つ又は複数のデータのサブブロックを転送させる、
前記データ移動エージェントとして動作させる、前記コンピュータ・プログラム。
【請求項９】
前記構造プロセッサが、前記データのブロックと関連した修正済みセグメントがないことを表すために前記１つの高優先順位同期外れインジケータをリセットする、
請求項８に記載のコンピュータ・プログラム。
【請求項１０】
前記構造プロセッサが、転送されたデータのサブブロックに対するデータのブロックのための同期外れインジケータを、前記データのブロックが転送される必要がないことを表すためにリセットする、
請求項８に記載のコンピュータ・プログラム。
【請求項１１】
前記構造プロセッサが、高優先順位同期外れインジケータがセットされていないという決定に応答して、データのブロックが転送されることになっていることを表すためにいずれかの同期外れインジケータがセットされているかどうかを決定し、
前記移動エージェントが、少なくとも１つの同期外れインジケータがセットされているという決定に応答して、１つの同期外れインジケータと関連したデータのブロックを転送する、
請求項８に記載のコンピュータ・プログラム。
【請求項１２】
前記構造プロセッサが、データのブロックが転送される必要がないことを表すために、前記データのブロックのための前記１つの同期外れインジケータをリセットする、請求項１１に記載のコンピュータ・プログラム。
【請求項１３】
前記構造プロセッサが、前記１つの同期外れインジケータと関連したデータのブロックに対する修正済みセグメントがないことを表すために、高優先順位同期外れインジケータをリセットする、
請求項１１に記載のコンピュータ・プログラム。
【請求項１４】
読み取りプロセスが、１つ又は複数のデータのサブブロックに対するホスト書込みを受け、
前記構造プロセッサが、前記データのブロックに対するデータのサブブロックを含む修正済みセグメントの数を前記修正済みセグメントの閾値と比較する、
請求項８に記載のコンピュータ・プログラム。
【請求項１５】
データのブロックを伝送するためのシステムであって、
構造プロセッサであって、少なくとも１つの高優先順位同期外れインジケータを、高優先順位同期外れ構造内に格納し、
前記個々の高優先順位同期外れインジケータは個々のデータのブロックに対応し、
前記個々のデータのブロック内の修正済みセグメントの数が前記修正済みセグメントの閾値に等しいか又は前記閾値よりも小さいという決定に応答して、前記構造プロセッサが、前記データのブロックのための高優先順位同期外れインジケータをセットし、
前記修正済みセグメントの数が前記修正済みセグメントの閾値よりも大きいという決定に応答して、前記構造プロセッサが、前記データのブロックのための高優先順位同期外れインジケータをリセットする、
前記構造プロセッサと、
データのブロックと関連した修正済みセグメントの数が修正済みセグメントの閾値よりも小さいか又は前記閾値に等しいことを表すようにいずれかの高優先順位同期外れインジケータがセットされているかどうかを決定する手段と、
少なくとも１つの高優先順位同期外れインジケータがセットされているという決定に応答して、前記データのブロックと関連し且つ１つのセットされた高優先順位同期外れインジケータと関連した修正済みセグメントにおける１つ又は複数のデータのサブブロックを転送する手段と
を含む、システム。
【請求項１６】
前記オペレーションが、前記データのブロックと関連した修正済みセグメントがないことを表すために前記１つの高優先順位同期外れインジケータをリセットする手段を更に含む、請求項１５に記載のシステム。
【請求項１７】
前記オペレーションが、転送されたデータのサブブロックに対するデータのブロックのための同期外れインジケータを、前記データのブロックが転送される必要がないことを表すためにリセットする手段を更に含む、請求項１５に記載のシステム。
【請求項１８】
前記オペレーションが、
高優先順位同期外れインジケータがセットされていないという決定に応答して、データのブロックが転送されることになっていることを表すためにいずれかの同期外れインジケータがセットされているかどうかを決定する手段と、
少なくとも１つの同期外れインジケータがセットされているという決定に応答して、１つの同期外れインジケータと関連したデータのブロックを転送する手段と
を更に含む、請求項１５に記載のシステム。
【請求項１９】
前記オペレーションが、データのブロックが転送される必要がないことを表すために、前記データのブロックのための前記１つの同期外れインジケータをリセットする手段を更に含む、請求項１８に記載のシステム。
【請求項２０】
前記１つの同期外れインジケータと関連したデータのブロックに対する修正済みセグメントがないことを表すために、高優先順位同期外れインジケータをリセットする手段を更に含む、請求項１８に記載のシステム。
【請求項２１】
１つ又は複数のデータのサブブロックに対するホスト書込みを受ける手段と、
前記データのブロックに対するデータのサブブロックを含む修正済みセグメントの数を前記修正済みセグメントの閾値と比較する手段と、
を更に含む、請求項１５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データのブロックを伝送するための優先順位方式に関するものである。
【背景技術】
【０００２】
災害時回復システムは、２つのタイプの障害、即ち、短時間での急激な破局的障害または或る期間にわたるデータ喪失、に対処する。この第２のタイプの漸進的災害では、データ記憶装置におけるボリュームに対する更新が喪失することがある。データ更新の回復を支援するために、データのコピーが遠隔地に設けられることがある。そのようなデュアル・コピー又はシャドー・コピーは、一般に、アプリケーション・システムが一次記憶装置に新たなデータを書き込んでいるときに行われる。本出願人のインターナショナル・ビジネス・マシーンズ・コーポレーション（ＩＢＭ）は、例えば、非同期のピア・ツー・ピア・リモート・コピー（ＰＰＲＣ（商標））・サービスを含む幾つかのリモート・ミラーリング・システムを提供している。
【０００３】
非同期のＰＰＲＣサービスは、最後の確実なバックアップとシステム障害との間で生じたデータ更新を回復するための技術を提供する。そのようなデータ・シャドウ・システムは、リモート・サイトにおけるローカル・アクセスのような非回復目的の付加的なリモート・コピーも提供し得る。
【０００４】
非同期のＰＰＲＣサービスを用いて、一次記憶サブシステムは二次記憶サブシステム上にデータのコピーを保持する。アプリケーションが一次記憶サブシステムにおけるデータを更新するとき、一次記憶サブシステムにおけるデータの変更が二次記憶サブシステムにコピーされる。従って、そのコピーは、漸進的および／または断続的障害があろうとなかろうと使用することが可能である。
【０００５】
一次記憶装置及び二次記憶装置におけるボリュームは、すべての書込みがそれらの論理的順序で転送されていたとき、即ち、すべての従属的書込みがそれに従属する書込みの前に先ず転送されたとき、整合している。銀行業務の例では、これは、預け入れが引き出しの前に二次ボリュームに書き込まれる。整合性グループは、整合状態に保たれている関連ボリュームの集合体であるといえる。整合性トランザクション・セットは、従属的書込みが整合態様で確保されるような一次ボリュームに対する更新の集合体であるといえる。整合性グループは、両ボリュームにわたってデータ整合性を維持する。例えば、障害が生じた場合、預け入れが、引き出しの前に二次ボリュームに書き込まれるであろう。従って、データが二次ボリュームから回復されるとき、その回復されたデータは一次記憶サブシステムにおけるデータと整合しているであろう。
【０００６】
非同期のＰＰＲＣサーバの場合、或る期間にわたってネットワーク帯域幅がその能力を超える場合、整合性グループの形成が一時停止することがあり、二次記憶サブシステムへの最後の転送以後にどのトラックが修正されたかを表すために使用される同期外れ（out of syn）ビットマップが非常に多数のビットをセットされることがあり、リカバリ・ポイント・オブジェクティブ（RecoveryPoint Objective - ＲＰＯ）が大きくなることがある。ＲＰＯは、二次記憶サブシステムにおけるデータが一次記憶サブシステムから時間的にどのくらい遅れているかを表す値であるともいえる（例えば、ＲＰＯが３０秒である場合、二次記憶サブシステムは、一次記憶サブシステムにおけるデータよりも３０秒以上古くないデータを含むものと思われる）。
【０００７】
キャッシュ停留時間（cache residency time）は、データがキャッシュから消滅される前にキャッシュ内に留まっている平均時間量であるといえる。ＲＰＯがキャッシュ停留時間を超える場合、二次記憶サブシステムに送られる必要のあるデータは、そのデータが転送される前に一次記憶サブシステムにおけるキャッシュから排出されることがある。これが生じる場合、データが最終的に一次記憶サブシステムから二次記憶サブシステムに送られるとき、全トラックが一次記憶サブシステムからステージされ（即ち、ディスクからキャッシュにコピーされ）、ネットワークを介して伝送される。
【０００８】
逐次書込みを行うアプリケーションに関しては、一般に、全トラックが転送され、従って、転送のためにトラックをステージしなければならないということは効率を下げることにはならない。そのような場合には、トラックをステージすること及びそれを転送することはディスク使用率を増す（即ち、ディスクが多くアクセスされる）が、ネットワーク使用率を増すことにはならない（即ち、一般に、そのような場合には、全トラックが送られるためである）。
【０００９】
アプリケーションがデータ（例えば、４キロバイト（ＫＢ）のデータ）に対してかなりの量の小さい無作為書込みを行っている場合、キャッシュからこれらのデータ変更を削除することは、更新されたデータ（例えば、４ＫＢのデータ）の代わりに、ネットワークを介して全トラック（例えば、或るメインフレーム・コンピュータに対してフォーマットされるカウント・キー・データに対する５４ＫＢ、または或る別のコンピュータに対してフォーマットされる固定ブロック・データに対する３２ＫＢまたは６４ＫＢ）を伝送させる。これは、ネットワーク使用の効率を減少させ、書込みバーストから回復するために必要な時間を長引かせる。書込みバーストは、或る特定の基準または尺度に従って１つ単位としてカウントされるデータ・シーケンスの書込みのことである。書込みオペレーションはデータを更新し得るし、新たなデータを書き込み得るし、或いは同じデータを再び書き込み得る。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
従って、この分野には、データのブロックを伝送するための優先順位方式に対する要求がある。本発明は、このような要求に応えることを目的とする。
【課題を解決するための手段】
【００１１】
本願では、データのブロックを伝送するための方法、コンピュータ・プログラム、及びシステムが提供される。データのブロックと関連した修正されたセグメント（以下、「修正済みセグメント」という）の数が修正済みセグメントの閾値よりも小さいか又はその閾値に等しいことを表すようにいずれかの高優先順位同期外れ（high priority out of sync &#8211; ＨＰＯＯＳ）インジケータがセットされているかどうかが決定される。少なくとも１つの高優先順位同期外れインジケータがセットされているという決定に応答して、そのデータのブロックと関連し且つ１つのセットされた高優先順位同期外れインジケータと関連した修正済みセグメントにおける１つ又は複数のデータのサブブロックが転送される。
【発明を実施するための最良の形態】
【００１２】
以下の説明では、本発明の一部を形成し、本発明の実施例を示す添付図面が参照される。本発明の範囲を逸脱することなく、他の実施例を利用し得ること及び構造上および操作上の変更を行い得ることは明らかである。
【００１３】
実施例によれば、修正済みデータの小さいブロックが、非同期サービス（例えば、非同期のＰＰＲＣ）を使って一次制御ユニットからネットワークを介して二次制御ユニットに優先的に伝送されるように、優先順位方式が使用される。実施例は、小さいブロックを伝送する代わりに、全トラックが一次記憶装置からステージされ、伝送されるという例を避けている。
【００１４】
図１は、或る実施例に従ってコンピューティング環境の詳細を示す。一次制御ユニット１００は、１つ又は複数のホスト１１４に一次記憶装置１１２へのアクセスを提供する。
【００１５】
一次記憶装置１１２は、データのブロックを含む記憶装置のブロックに分けることが可能である。或る実施例では、データのブロックはトラックの内容であり、一方、データのサブブロックはトラックのセクタの内容である。便宜上、トラックおよびセクタという用語は、本願では、データのブロックおよびデータのサブブロックの例として使用されるが、これらの用語の使用は本発明の実施例をトラックおよびセクタに限定することを意味するものではない。本発明の実施例は、任意のタイプの記憶装置、記憶装置のブロック、または任意の態様で分割されたデータのブロックに適用し得る。
【００１６】
一次制御ユニット１００は一次キャッシュ１１６を含み、一次記憶装置１１２におけるデータ・ブロックに対する更新情報は、その一次記憶装置１１２に書き込まれる（即ち、そのデータのブロックがデステージされる）までその一次キャッシュ１１６に維持される。更に、一次制御ユニット１００は不揮発性キャッシュ１１８を含む。不揮発性キャッシュ１１８は、例えば、データ更新の不揮発コピーを維持するための、バッテリ・バックアップされた揮発性メモリであってもよい。
【００１７】
一次制御ユニット１００は、データを読み取るための読取りプロセス１０２およびデータを書き込むための書込みプロセス１０４を含む。更に、一次制御ユニット１００は、その一次制御ユニット１００から、二次制御ユニット１２０における記憶装置のようなリモート記憶装置に、データを転送するための１つ又は複数のデータ移動エージェント１０６も含む。或る実施例では、データ移動エージェント１０６は、一次制御ユニット１００から二次制御ユニット１２０にデータを非同期的に転送する。一次制御ユニット１００は、或る構造（例えば、図３における構造３５０、３６０）を維持し（例えば、更新し又は読み取り）、エージェント（例えば、データ移動エージェント１０６）をディスパッチし、そして一次キャッシュ１１６を更新する構造プロセッサ１０８を含む。構造プロセッサ１０８はマイクロコード又はファームウェアであってもよい。
【００１８】
二次制御ユニット１２０は、１つ又は複数の回復システム１２４に二次記憶装置１２２へのアクセスを提供する。二次記憶装置１２２は、一次記憶装置１１２のボリュームすべてまたはそのサブセットのバックアップ・コピーを保持する。更に、二次記憶装置１２２は、データのブロックを含む記憶装置のブロックに分割され、その記憶装置のブロックは、更に、データのサブブロックを含む記憶装置のサブブロックに分割される。或る実施例では、データのブロックはトラックであり、一方、データのサブブロックはトラックのセクタである。便宜上、トラックおよびセクタという用語は、本願では、データのブロックおよびデータのサブブロックの例として使用されることがあるが、これらの用語の使用は本発明の実施例をトラックおよびセクタに限定することを意味するものではない。本発明の実施例は、任意のタイプの記憶装置、記憶装置のブロック、または任意の態様で分割されたデータのブロックに適用可能である。
【００１９】
或る実施例では、取外し可能記憶装置（二次記憶装置１２２のようなリモート記憶装置の代わりの記憶装置、又はリモート記憶装置のほかの記憶装置）が一次記憶装置１１２すべて又はそれのサブセットのバックアップ・コピーを保持するために使用されてもよい。本発明の実施例はリモート記憶装置よりもむしろ取外し可能記憶装置にデータを転送する。取外し可能記憶装置は、一次制御ユニット１００に結合されてもよい。
【００２０】
或る実施例では、一次制御ユニット１００および／または二次制御ユニット１２０は、メインフレーム、サーバ、パーソナル・コンピュータ、ワークステーション、ラップトップ、ハンドヘルド・コンピュータ、電話装置、ネットワーク・アプライアンス、仮想化装置、記憶装置コントローラ等のようなその分野において知られている任意のコンピューティング装置を含み得る。
【００２１】
一次サイトは、複数の一次制御ユニット、一次記憶装置、及びホスト・コンピュータを含み得る。二次サイトは、複数の二次制御ユニット、回復システム、及び二次記憶装置を含み得る。
【００２２】
或る実施例では、一次記憶装置１１２及び二次記憶装置１２２がダイレクト・アクセス・ストレージ・デバイス（ＤＡＳＤ）であってもよい。
【００２３】
或る実施例では、一次制御ユニット１００および／または二次制御ユニット１２０は、ネットワークを介して結合されてもよい。そのネットワークは、例えば、ストレージ・エリア・ネットワーク（ＳＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、インターネット、イントラネット等のような任意のタイプのネットワークを含み得る。
【００２４】
或る実施例では、一次制御ユニット１００および／または二次制御ユニット１２０は、高速の直接伝送回線（例えば、エンタープライズ・システム・コネクション（ＥＳＣＯＮ（商標））・リンクのような通信パスを介して通信を行う。しかし、通信パスは、ネットワーク伝送回線、光ファイバケーブル等を含むその分野で知られている他の任意のタイプの通信手段を含み得る。
【００２５】
或る実施例では、データがボリューム・ペアで保持される。ボリューム・ペアは、一次記憶装置（例えば、一次記憶装置１１２）におけるボリューム及びその一次ボリューム内に保持されたデータの整合するコピーを含む二次記憶装置（例えば、二次記憶装置１２２）における対応ボリュームから成る。例えば、一次記憶装置１１２は、ボリューム１及びボリューム２を含み得るし、二次記憶装置１２２は、対応するボリューム１及びボリューム２を含み得る。
【００２６】
先ず、ホスト１１４が一次キャッシュ１１６におけるトラックにデータを書き込む。書込みオペレーションが一次キャッシュ１１６におけるトラックを修正し、一次キャッシュ１１６の内容が一次記憶装置１１２に書き込まれる。その後、一次キャッシュ１１６の内容が一次記憶装置１１２に非同期的に書き込まれる。一次キャッシュ１１６におけるデータの一次記憶装置１１２への書込みはデステージ・オペレーションと呼ばれる。デステージ・オペレーションの場合、キャッシュされたトラックは一次キャッシュ１１６から削除されない。他のデータのためのスペースをフリーにするために、キャッシュされたトラックが一次キャッシュ１１６から削除されなければならないとき、そのキャッシュされたトラックはデモートされると言われる。一次記憶装置１１２から一次キャッシュ１１６にトラックすべてまたはその一部分をコピーすることは、ステージング・オペレーションと呼ばれる。
【００２７】
図２は、或る実施例に従って記憶装置のブロックを示す。記憶装置のブロック２１０はデータのブロックを含み、更に、データのサブブロックを記憶する記憶装置のサブブロック２１０Ａ、２１０Ｂ、・・・２１０Ｎ（２１０Ａ〜２１０Ｎ、但し、Ｎは任意の数でよい）に細分される。
【００２８】
図３は、或る実施例に従ってキャッシュ１１６及び１１８の更なる詳細を示す。一次キャッシュ１１６はデータを記憶するためのセグメント及びディレクトリ３７０を含む。詳しく云えば、一次キャッシュ１１６の一部分がセグメント（例えば、３１０、３２０、３３０、３４０）に区分される。各セグメントは１つまたは複数のデータのサブブロックを記憶し得る。図４は、或る実施例に従って一次キャッシュ１１６におけるセグメントの更なる詳細を示す。セグメント１  ３１０は、データのブロック１のサブブロックＡ及びデータのブロック１のサブブロックＥを記憶する。サブブロックＡ及びＥはデータのブロック１の修正済みサブブロックである。或る実施例では、セグメントは４Ｋのデータを記憶し、データのブロック１のサブブロックは５１２バイトとの記憶装置を使用する。
【００２９】
データのブロックをアクセスするとき、ディレクトリ３７０はそのデータのブロックが一次キャッシュ１１６にあるかどうかを決定するために使用される。そのデータのブロックが一次キャッシュ１１６にある場合、ディレクトリ３７０はそのデータのブロックのロケーションを表すエントリを含む。そのデータのブロックが一次キャッシュ１１６にない場合、ディレクトリ３７０はそのデータのブロックに対するエントリを含まず、そのデータのブロックはプロモートされる。データのブロックがデモートされるとき、そのデモートされたデータのブロックに対するディレクトリ３７０におけるエントリは削除される。
【００３０】
不揮発性キャッシュ１１８は同期外れ（ＯＯＳ）構造１５０（例えば、ビットマップ）及び高優先順位同期外れ（ＨＰＯＯＳ）構造３６０（例えば、ビットマップ）を含む。或る代替の実施例では、ＨＰＯＯＳ構造３６０は一次キャッシュ１１６に記憶される。
【００３１】
同期外れ構造１５０は、データのブロックのうちの特定の修正済みデータのサブブロックに関係なく、どのデータのブロックが二次制御ユニット１２０への最後の転送以後に修正されたかを決定するために使用される。同期外れ構造１５０は、データのブロックが二次制御ユニット１２０にコピーされた最後の時点以後にデータのブロックにおけるいずれかの部分が修正されたかどうかを表す同期外れ（ＯＯＳ）インジケータ（例えば、ビット）を含む。或る実施例では、一次記憶装置１１２における各ボリュームに対して１つの同期外れ構造１５０が存在する。或る実施例では、同期外れ構造１５０は、一次記憶装置１１２におけるコピーと共に一次キャッシュ１１６のような揮発性キャッシュに常駐し、同期外れ構造１５０に対する変更だけが不揮発性キャッシュ１１８に記憶される。データのブロックを二次制御ユニット１２０に転送するための時間が来るとき、そのデータのブロックのうちの１つのデータのサブブロックだけ（例えば、データ・ボリュームの１％よりも少ない）が修正されたとしても、セットされたＯＯＳインジケータを伴うデータのブロックがその全体を送られる。
【００３２】
図５は、本発明の或る実施例に従ってＨＰＯＯＳ構造３６０の更なる詳細を示す。実施例はＨＰＯＯＳ３６０に高い優先順位の仕事を与える。各データのブロック１５０〜１５４（例えば、トラック）に対して、ＨＰＯＯＳ構造３６０は、そのデータのブロックと関連した修正済みセグメントが修正済みセグメントの閾値よりも少ないか又はそれに等しいかどうかを表すインジケータ（ＨＰＯＯＳインジケータと呼ばれる）を含む。修正済みセグメントは、少なくとも１つの修正済みデータのサブブロックを含む一次キャッシュ１１６におけるセグメントであるといえる。修正済みセグメントの閾値は実験によって決定されてもよく、或いはユーザ（例えば、システム・アドミニストレータ）によって設定されてもよい。１つの例として、修正済みセグメントの閾値が３である場合、及び精々３個のセグメント（例えば、３２０、３３０、及び３４０）が１つのデータのブロックに対する修正済みサブブロックを含む場合、そのデータのブロックに対するインジケータは、そのデータのブロックと関連した修正済みセグメントが修正済みセグメントの閾値よりも少ないか又はそれに等しいことを表すようにＨＰＯＯＳ構造３６０にセットされる。各セグメントは１つ又は複数のデータのサブブロックを記憶し得るので、修正済みセグメントの数が修正済みセグメントの閾値よりも少ないか又はそれに等しくても、修正済みデータのサブブロックの数が修正済みセグメントの閾値よりも大きいことがある。
【００３３】
図６は、或る実施例に従ってデータを書き込むためのロジックを示す。制御は、ブロック６００において、一次制御ユニット１００が１つのデータのブロックにおける１つ又は複数のサブブロックに対してホスト１１４からのホスト書込みを受けることによって始まる。その書込みは、データを更新するか、新たなデータを書き込むか、又は同じデータを再び書き込むことがある。ブロック６０２において、構造プロセッサ１０８が、必要に応じて、１つ又は複数のデータのサブブロックを一次キャッシュ１１６にプロモートし、そのプロモートされた１つ又は複数のデータのサブブロックを更新する。ブロック６０４において、構造プロセッサ１０８がその更新されたデータを一次記憶装置１１２に記憶する。ブロック６０６において、構造プロセッサ１０８が、その受けた書込みに対するデータのサブブロックを含むデータのブロックと関連したインジケータをセットするように同期外れ構造３５０を更新する。この場合、インジケータは、そのデータのブロックが二次制御ユニット１２０に転送されるべきものであることを表す。
【００３４】
ブロック６０８において、構造プロセッサ１０８がそのデータのブロックに対するデータのサブブロックを含む修正済みセグメントの数を修正済みセグメントの閾値と比較する。ブロック６１０において、高優先順位の同期外れ構造３６０が更新されるべきかどうかを決定する。それが肯定される場合、処理はブロック６１２に続く。一方、それが否定される場合、処理は終了する。ブロック６１２において、構造プロセッサ１０８が高優先順位の同期外れ構造３６０を更新する。詳しく云えば、ホスト書込みによって修正されるべきデータのサブブロックは一次キャッシュ１１６におけるセグメントに記憶されるので、ホスト書込みが受け取られるとき、ホスト書込みによって影響されるデータのブロックに関して、そのデータのブロックに対するデータのサブブロックを含む修正済みセグメントの数が修正済みセグメントの閾値と比較される。修正済みセグメントの数が修正済みセグメントの閾値に等しいか又はそれよりも少ない場合、高優先順位の同期外れ・インジケータがそのデータのブロックに対してセットされる。修正済みセグメントの数が修正済みセグメントの閾値よりも大きい場合、高優先順位の同期外れ・インジケータがリセットされる。
【００３５】
データ移動エージェント１０６はＯＯＳ構造３５０及びＨＰＯＯＳ構造３６０をレビューし、データを転送する。或る実施例では、ＨＰＯＯＳ構造３６０はより高い優先順位であることに基づいて処理される。例えば、多くのデータ移動エージェント１０６がＨＰＯＯＳ構造３６０を処理するために割り当てられてもよく、一方、少ないデータ移動エージェント１０６がＨＰＯＯＳ構造３５０を処理するために割り当てられてもよい。このように、転送されるべき大量のデータ（即ち、データのブロック及び／またはデータのサブブロック）が存在するとき、わずかな修正済みデータのサブブロックを共にそのデータのブロックが、一次キャッシュ１１６からフラッシュ・アウトされる前に伝送されることは大いにあり得ることである。
【００３６】
図７は、或る実施例に従ってデータ移動エージェント１０６によって遂行される処理を示す。ブロック７００において、データのブロックと関連した修正済みセグメントの数が修正済みセグメントの閾値よりも少ないか又はそれに等しいことを表すために、ＨＰＯＯＳインジケータがＨＰＯＯＳ構造３６０においてセットされるかどうかをデータ移動エージェント１０６が決定することによって制御が始まる。これが肯定される場合、処理はブロック７０２に続き、これが否定される場合、処理はブロック７０８に続く。或る別の実施例では、処理は、ブロック７０８に続くのではなく、ＨＰＯＯＳインジケータが変更されるのを待ち、そのインジケータを処理することも可能である。
【００３７】
ブロック７０２において、データ移動エージェント１０６が、１つのデータのブロックと関連した修正済みセグメントにおけるデータのサブブロック及び１つのセットされたＨＰＯＯＳインジケータを一次キャッシュ１１６から二次キャッシュ１２０に転送する。複数のＨＰＯＯＳインジケータがセットされているとき、種々の要素（例えば、逐次選択、各セットされたＨＰＯＯＳインジケータと関連した修正済みセグメントの数に基づいた選択等）を使用して１が選択され得る。ブロック７０４において、そのデータのブロックと関連した修正済みセグメントが存在しないことを表すために、データ移動エージェント１０６がＨＰＯＯＳ構造３６０におけるＨＰＯＯＳインジケータをリセットする。ブロック７０６において、転送されたデータのサブブロックに対するデータのブロックに関して転送されるのを待っている修正済みデータのサブブロックがないことを表すために、データ移動エージェント１０６がそのデータのブロックのためのＯＯＳインジケータをリセットする。処理はブロック７０６からブロック７００に続く。
【００３８】
セットされたＨＰＯＯＳインジケータがない場合、データ移動エージェントはＯＯＳ構造３５０を処理することがある。ブロック７０８において、１つのデータのブロックが転送されることになっていることを表すために、いずれかのＯＯＳインジケータがＯＯＳ構造３５０においてセットされているかどうかを、データ移動エージェント１０６が決定する。それが肯定される場合、処理はブロック７１０に続き、それが否定される場合、処理はブロック７００に続く。ブロック７１０において、データ移動エージェント１０６が１つのＯＯＳインジケータと関連したデータのブロックを転送する。ブロック７１２において、データ移動エージェント１０６は、転送されたデータのサブブロックに対するデータのブロックに関して、そのデータのブロックに対する修正済みサブブロックがないことを表すために、そのデータのブロックのためのＯＯＳインジケータをリセットする。ブロック７１４において、データ移動エージェント１０６は、そのデータにブロックと関連した修正済みセグメントがないことを表すために、ＨＰＯＯＳ構造３６０におけるＨＰＯＯＳインジケータをリセットする。
【００３９】
従って、実施例は、非同期のサービスを使用するとき、大きいブロック書込みよりも高い優先順位を、ネットワークを介した小さいブロック書込みの伝送に与える。実施例は、データのわずかなサブブロック（例えば、わずかなセクタ）が更新されたとき、データのブロック（例えば、全トラックのデータ）がネットワークを介して伝送されるという可能性を小さくする。
【００４０】
更に、実施例は、データを伝送するための及び書込みバーストから回復するためのネットワーク効率を改善する。理論的な評価は、ネットワーク効率が、実施例によっては８〜１２倍だけ増加することを表した。
【００４１】
ＰＰＲＣ及びＥＳＣＯＮは、インターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。
【００４２】
以下では、更なる実施例の詳細を示す。上記のオペレーションは、標準的なプログラミングおよび／またはエンジニアリング・テクニックを使ってソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せを生成する方法、コンピュータ・プログラム、又は装置として実施し得るものである。
【００４３】
それらの実施例の各々は、全体的にハードウェアの実施例、全体的にソフトウェアの実施例、またはハードウェアおよびソフトウェアの実施例の両方を含む実施例の形を取り得る。それらの実施例は、ファームウェア、常駐ソフトウェア、マイクロコード等を含むがそれに限定されないソフトウェアで実施することが可能である。
【００４４】
更に、それらの実施例は、コンピュータ又は任意の命令実行システムによって又はそれと関連して使用するためのプログラム・コードを提供するコンピュータ使用可能媒体又はコンピュータ可読媒体からアクセスし得るコンピュータ・プログラムの形を取り得る。この説明のためには、コンピュータ使用可能媒体又はコンピュータ可読媒体は、命令実行システム、装置、又はデバイスによってまたはそれと関連して使用するためのプログラムを含み、記憶し、伝送し、伝播し、又は搬送し得る任意の装置であってもよい。
【００４５】
上記のオペレーションは、コンピュータ使用可能媒体又はコンピュータ可読媒体に保持されたコードとして具現化することが可能であり、その場合、プロセッサがそのコンピュータ可読媒体からそのコードを読み取り且つ実行ことが可能である。その媒体は、電子的、磁気的、光学的、電磁気的、赤外線、または半導体システム（または装置、またはデバイス）、或いは伝播媒体であってもよい。コンピュータ可読媒体の例は、半導体またはソリッド・ステート・メモリ、磁気テープ、取外し可能コンピュータ・ディスケット、固定磁気ディスク、光ディスク、磁気記憶媒体（例えば、ハードディスク・ドライブ、フロッピ・ディスク、テープ等）、揮発性および不揮発性メモリ装置（例えば、ランダム・アクセス・メモリ（ＲＡＭ）、ＤＡＲＭ、ＳＲＡＭ、リード・オンリ・メモリ（ＲＯＭ）ＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ、ファームウェア、プログラミング・ロジック等）を含む。光ディスクの現行の例は、コンパクト・ディスク−リード・オンリ・メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク−リード／ライト（ＣＤ−Ｒ／Ｗ）、およびＤＶＤを含む。
【００４６】
上記のオペレーションを具現化するコードは、更に、ハードウェア・ロジック（例えば、集積回路チップ、プログラマブル・ゲート・アレイ（ＰＧＡ）、アプリケーション固有集積回路（ＡＳＩＣ）等）においても具現化することが可能である。更に、上記のオペレーションを具現化するコードは、「伝送信号」において具現化することも可能である。この場合、伝送信号は、空間を通して、または光ファイバ、銅線等のような伝送媒体を通して伝播し得る。コードまたはロジックがエンコードされる伝送信号は、更に、無線信号、衛星通信、高周波信号、赤外線信号、Bluetooth 等を含み得る。コードまたはロジックがエンコードされる伝送信号は、送信ステーションによって送信され、受信ステーションによって受信されることが可能である。その場合、伝送信号におけるエンコードされたコードまたはロジックは、受信および送信ステーションまたはデバイスにおいてデコードされ、ハードウェアまたはコンピュータ可読媒体に記憶される。
【００４７】
従って、コンピュータ・プログラムは、コードを具現化し得るコンピュータ使用可能またはコンピュータ可読媒体、ハードウェア・ロジック、および／または伝送信号を構成し得る。勿論、本発明の範囲を逸脱することなくこの構成に対して多くの修正を行い得ること、およびコンピュータ・プログラムがこの分野では知られた任意の適当な情報保持媒体を構成し得ることは当業者には明らかであろう。
【００４８】
ロジックという用語は、例えば、ソフトウェア、ハードウェア、および／または、ソフトウェアおよびハードウェアの組合せを含み得る。
【００４９】
或る実施例は、人または自動処理がコンピュータ可読コードをコンピューティング・システムに統合することによってコンピューティング・インフラストラクチャを配置するための方法と関連する。この場合、コードは、コンピューティング・システムと組み合わせて、上記実施例のオペレーションを実行することを可能にされる。
【００５０】
図６および図７のロジックは、特定の順序で生じる特定のオペレーションを記述している。代替の実施例では、或る論理オペレーションを、異なる順序で実行したり、修正したり、または除去することもあり得る。更に、上記のロジックにオペレーションが付加され、それが上記の実施例に依然として適応することもあり得る。更に、本願において説明されたオペレーションは逐次に生じ得るし、或るオペレーションは並行して処理され得るし、単一のプロセスによって実行されるものと説明されたオペレーションが分散プロセスによって実行されることも可能である。
【００５１】
図７および図８に示されたロジックは、ソフトウェア、ハードウェア、プログラマブル及び非プログラマブル・ゲート・アレイ・ロジック、或いは、ハードウェア、ソフトウェア、またはゲート・アレイ・ロジックの組合せで具現化することも可能である。
【００５２】
図８は、或る実施例に従って使用することが可能なシステム（コンピュータ）・アーキテクチャ８００を示す。一次制御ユニット１００及び二次制御ユニット１２０がシステム・アーキテクチャ８００を具現化し得る。システム・アーキテクチャ８００は、プログラム・コードを記憶および／または実行するに適しており、システム・バス８２０を介してメモリ素子８０４に直接にまたは間接的に接続された少なくとも１つのプロセッサ８０２を含む。メモリ素子８０４は、プログラム・コードの実際の実行中に使用されるローカル・メモリと、大容量記憶装置と、コードが実行中に大容量記憶装置から検索されなければならない回数を少なくするために少なくとも幾つかのプログラム・コードの一時的記憶を行うキャッシュ・メモリとを含み得る。メモリ素子８０４は、オペレーティング・システム８０５および１つまたは複数のコンピュータ・プログラム８０６を記憶し得る。
【００５３】
入出力またはＩ／Ｏ装置８１２、８１４（キーボード、ディスプレイ、ポインティング・デバイス等を含むが、それに限定されない）は、直接にまたは介在するＩ／Ｏコントローラ８１０を通してシステムに接続することが可能である。
【００５４】
データ処理システムが介在の私設ネットワークまたは公衆ネットワークを介して他のデータ処理システムまたはリモート・プリンタまたは記憶装置に接続されることを可能にするために、ネットワーク・アダプタ８０８がシステムに接続されてもよい。幾つかの現在使用可能なタイプのネットワーク・アダプタ８０８はモデム、ケーブル・モデム、及びイーサネット・カードである。
【００５５】
システム・アーキテクチャ８００は記憶装置８１６（例えば、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブ等のような不揮発性記憶エリア）に接続することが可能である。その記憶装置８１６は、内部記憶装置または接続済みのまたはネットワーク・アクセス可能な記憶装置を含み得る。記憶装置８１６におけるコンピュータ・プログラム８０６は、メモリ素子８０４にロードされ、その分野では既知の方法でプロセッサ８０２によって実行され得る。
【００５６】
システム・アーキテクチャ８００は、説明したものよりも少ないコンポーネント、本明細書では説明されなかった付加的なコンポーネント、または説明されたコンポーネント及び付加的なコンポーネントの或る組合せを含み得る。システム・アーキテクチャ８００は、メインフレーム、サーバ、パーソナル・コンピュータ、ワークステーション、ラップトップ、ハンドヘルド・コンピュータ、電話装置、ネットワーク・アプライアンス、仮想化装置、記憶装置コントローラ等のようなその分野では知られている任意のコンピューティング装置を含み得る。
【００５７】
本発明の実施例に関する上記の記述は、例証及び説明を目的に示された。それは、網羅的であること又は開示された形態そのものに実施例を限定することを意図するものではない。上記の教示事項から見て、多くの修正および変更が可能である。発明の範囲はこの詳細な説明によって限定されるものではなく、むしろ、「特許請求の範囲」によって限定されるべきである。上記詳述、例示、およびデータは、実施例の構成体の製造および用途に関する十分な説明を提供するものである。本発明の真意および範囲から逸脱することなく多くの実施例が得られるので、それらの実施例は「特許請求の範囲」の記載およびその均等の範囲に属する。
【図面の簡単な説明】
【００５８】
【図１】一実施例に従ってコンピューティング環境の詳細を示す図である。
【図２】一実施例に従って記憶装置のブロックを示す図である。
【図３】一実施例に従ってキャッシュの更なる詳細を示す図である。
【図４】一実施例に従って一次キャッシュにおけるセグメントの更なる詳細を示す図である。
【図５】本発明の一実施例に従って高優先順位同期外れ（High Priority Out of Sync &#8211; ＨＰＯＯＳ）構造の更なる詳細を示す図である。
【図６】一実施例に従ってデータを書き込むためのロジックを示す図である。
【図７】一実施例に従ってデータ移動エージェントによって遂行される処理を示す図である。
【図８】一実施例に従って使用されるシステム・アーキテクチャを示す図である。
【図１】
0005390067.tif 000002
【図２】
0005390067.tif 000003
【図３】
0005390067.tif 000004
【図４】
0005390067.tif 000005
【図５】
0005390067.tif 000006
【図６】
0005390067.tif 000007
【図７】
0005390067.tif 000008
【図８】
0005390067.tif 000009