(57)【要約】【課題】複数のデータ・ストレージ・システムにおける同期されたセーフ・データ・コミット・スキャンのためのコンピュータ・プログラム製品、システム、および方法を提供する。【解決手段】本明細書の１つの態様において、分散型データ・ストレージ・システムの個々のデータ・ストレージ・システムのセーフ・データ・コミット・スキャン動作は、入出力（Ｉ／Ｏ）レスポンス時間の低下の発生を低減させるために同期されてもよい。１つの実施形態において、分散型データ・ストレージ・システムの個々のデータ・ストレージ・システムのセーフ・データ・コミット・スキャン動作のセットは、同期されたセーフ・データ・コミット・スキャン・セット・インターバルの範囲外の入出力レスポンス時間の低下の発生を低減または除去するために、単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバルの中で時間が実質的に重複するように同期してタイミングを合わされる。特定の用途に応じて、他の特徴および態様が実現されてもよい。【選択図】図４
2021515926.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第１のセットを同期させることを含み、各セーフ・データ・コミット・スキャン動作が、データ・ストレージ・システムのキャッシュにキャッシュされたデータを、データ・ストレージ・システムのデータ・ストレージ・ユニットにデステージし、セーフ・データ・コミット・スキャン動作の前記第１のセットを同期させることが、
第１のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第１のセットの第１のセーフ・データ・コミット・スキャン動作を開始することと、
前記第１のデータ・ストレージ・システムから第２のデータ・ストレージ・システムに、第１のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、
前記第１のスタート・セーフ・コミット・スキャン動作メッセージに応答して、前記第２のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第１のセットの第２のセーフ・データ・コミット・スキャン動作を開始することと
を含む、方法。
【請求項２】
前記複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第２のセットを同期させることをさらに含み、セーフ・データ・コミット・スキャン動作の前記第２のセットを同期させることが、
第１のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第１のセットの前記第１のセーフ・データ・コミット・スキャン動作が完了すると、前記第１のデータ・ストレージ・システムにおける時間インターバルのタイミングを合わせることと、
前記第２のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第１のセットの前記第２のセーフ・データ・コミット・スキャン動作が完了すると、前記第２のデータ・ストレージ・システムにおける時間インターバルのタイミングを合わせることと、
前記第１のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせの満了に応答して、前記第１のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第２のセットの第１のセーフ・データ・コミット・スキャン動作を開始することと、
前記第１のデータ・ストレージ・システムから前記第２のデータ・ストレージ・システムに第２のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと
を含む、請求項１に記載の方法。
【請求項３】
前記第１のデータ・ストレージ・システムから前記第２のデータ・ストレージ・システムへの前記第１のスタート・セーフ・データ・コミット・スキャン動作メッセージが、前記第１のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミングを合わせる持続期間を定義するタイマー・インターバル持続期間パラメータを含み、前記第２のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせの持続期間が、前記第１のデータ・ストレージ・システムからの前記第１のスタート・セーフ・データ・コミット・スキャン動作メッセージの前記タイマー・インターバル持続期間パラメータの関数である、請求項２に記載の方法。
【請求項４】
前記第２のデータ・ストレージ・システムにおける前記時間インターバルの前記持続期間が、前記第１のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミングを合わせる持続期間より長くなるようにセットされる、請求項３に記載の方法。
【請求項５】
セーフ・データ・コミット・スキャン動作の前記第２のセットを同期させることが、
前記第２のスタート・セーフ・コミット・スキャン動作メッセージに応答して、前記第２のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミングを合わせることが満了していない場合、前記第２のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第２のセットの第２のセーフ・データ・コミット・スキャン動作を開始することと、
前記第２のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせの満了に応答して、第２のスタート・セーフ・コミット・スキャン動作メッセージが前記第１のデータ・ストレージ・システムから受信されていない場合、前記第２のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第２のセットの第２のセーフ・データ・コミット・スキャン動作を開始することと
をさらに含む、請求項２に記載の方法。
【請求項６】
前記複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第３のセットを同期させることをさらに含み、セーフ・データ・コミット・スキャン動作の前記第３のセットを同期させることが、
前記第１のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第２のセットの前記第１のセーフ・データ・コミット・スキャン動作が完了すると、前記第１のデータ・ストレージ・システムにおける別の時間インターバルのタイミングを合わせることと、
前記第２のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第２のセットの前記第２のセーフ・データ・コミット・スキャン動作が完了すると、前記第２のデータ・ストレージ・システムにおける別の時間インターバルのタイミングを合わせることと、
を含む、請求項５に記載の方法。
【請求項７】
セーフ・データ・コミット・スキャン動作の前記第２のセットを同期させることが、
前記第２のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせの満了、および、前記第２のスタート・セーフ・コミット・スキャン動作メッセージが前記第１のデータ・ストレージ・システムから受信されていないこと、に応答して、前記第１のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第２のセットの第１のセーフ・データ・コミット・スキャン動作のステータスを確かめるために、前記第１のデータ・ストレージ・システムに接触すること、および、前記第１のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第２のセットの第１のセーフ・データ・コミット・スキャン動作の前記ステータスに応じて、前記第２のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせをリセットするべきか、前記第２のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第２のセットの第２のセーフ・データ・コミット・スキャン動作を開始するべきかについて、決定すること
をさらに含む、請求項２に記載の方法。
【請求項８】
前記第１のデータ・ストレージ・システムが、マスタ・データ・ストレージ・システムであり、前記第２のデータ・ストレージ・システムが、サブ・データ・ストレージ・システムであり、セーフ・データ・コミット・スキャン動作の前記第１のセットを前記同期させることが、
前記マスタ・データ・ストレージ・システムから別のサブ・データ・ストレージ・システムに第２のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、
前記第２のスタート・セーフ・コミット・スキャン動作メッセージに応答して、別のサブ・データ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第１のセットの第３のセーフ・データ・コミット・スキャン動作を開始することと
をさらに含む、請求項１に記載の方法。
【請求項９】
前記第１のデータ・ストレージ・システムが、１次データ・ストレージ・システムであり、前記第２のデータ・ストレージ・システムが、２次データ・ストレージ・システムであり、セーフ・データ・コミット・スキャン動作の前記第１のセットを前記同期させることが、
前記第１のスタート・セーフ・コミット・スキャン動作メッセージに応答して、前記２次データ・ストレージ・システムから３次データ・ストレージ・システムに第２のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、
前記第２のスタート・セーフ・コミット・スキャン動作メッセージに応答して、前記３次データ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第１のセットの第３のセーフ・データ・コミット・スキャン動作を開始することと
をさらに含む、請求項１に記載の方法。
【請求項１０】
ストレージ・コントローラ、およびストレージ・コントローラによって制御され、データを格納するように構成されたデータ・ストレージ・ユニットをそれぞれが備える複数のデータ・ストレージ・システムと共に使用するためのコンピュータ・プログラム製品であって、各データ・ストレージ・システムの前記ストレージ・コントローラが、プロセッサおよびキャッシュを備え、前記コンピュータ・プログラム製品が、プログラム命令が具現化されたコンピュータ可読ストレージ媒体を備え、前記プログラム命令が、プロセッサ動作を行わせるようにストレージ・コントローラのプロセッサによって実行可能であり、前記プロセッサ動作が、
複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第１のセットを同期させることを含み、各セーフ・データ・コミット・スキャン動作が、データ・ストレージ・システムのキャッシュにキャッシュされたデータを、データ・ストレージ・システムのデータ・ストレージ・ユニットにデステージし、セーフ・データ・コミット・スキャン動作の前記第１のセットを同期させることが、
第１のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第１のセットの第１のセーフ・データ・コミット・スキャン動作を開始することと、
前記第１のデータ・ストレージ・システムから第２のデータ・ストレージ・システムに、第１のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、
前記第１のスタート・セーフ・コミット・スキャン動作メッセージに応答して、前記第２のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第１のセットの第２のセーフ・データ・コミット・スキャン動作を開始することと
を含む、コンピュータ・プログラム製品。
【請求項１１】
前記プロセッサ動作が、
前記複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第２のセットを同期させることをさらに含み、セーフ・データ・コミット・スキャン動作の前記第２のセットを同期させることが、
第１のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第１のセットの前記第１のセーフ・データ・コミット・スキャン動作が完了すると、前記第１のデータ・ストレージ・システムにおける時間インターバルのタイミングを合わせることと、
前記第２のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第１のセットの前記第２のセーフ・データ・コミット・スキャン動作が完了すると、前記第２のデータ・ストレージ・システムにおける時間インターバルのタイミングを合わせることと、
前記第１のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせの満了に応答して、前記第１のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第２のセットの第１のセーフ・データ・コミット・スキャン動作を開始することと、
前記第１のデータ・ストレージ・システムから前記第２のデータ・ストレージ・システムに第２のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと
を含む、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１２】
前記第１のデータ・ストレージ・システムから前記第２のデータ・ストレージ・システムへの前記第１のスタート・セーフ・データ・コミット・スキャン動作メッセージが、前記第１のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミングを合わせる持続期間を定義するタイマー・インターバル持続期間パラメータを含み、前記第２のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせの持続期間が、前記第１のデータ・ストレージ・システムからの前記第１のスタート・セーフ・データ・コミット・スキャン動作メッセージの前記タイマー・インターバル持続期間パラメータの関数である、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１３】
前記第２のデータ・ストレージ・システムにおける前記時間インターバルの前記持続期間が、前記第１のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミングを合わせる持続期間より長くなるようにセットされる、請求項１２に記載のコンピュータ・プログラム製品。
【請求項１４】
セーフ・データ・コミット・スキャン動作の前記第２のセットを同期させることが、
前記第２のスタート・セーフ・コミット・スキャン動作メッセージに応答して、前記第２のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミングを合わせることが満了していない場合、前記第２のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第２のセットの第２のセーフ・データ・コミット・スキャン動作を開始することと、
前記第２のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせの満了に応答して、第２のスタート・セーフ・コミット・スキャン動作メッセージが前記第１のデータ・ストレージ・システムから受信されていない場合、前記第２のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第２のセットの第２のセーフ・データ・コミット・スキャン動作を開始することと
をさらに含む、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１５】
前記プロセッサ動作が、
前記複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第３のセットを同期させることをさらに含み、セーフ・データ・コミット・スキャン動作の前記第３のセットを同期させることが、
前記第１のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第２のセットの前記第１のセーフ・データ・コミット・スキャン動作が完了すると、前記第１のデータ・ストレージ・システムにおける別の時間インターバルのタイミングを合わせることと、
前記第２のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第２のセットの前記第２のセーフ・データ・コミット・スキャン動作が完了すると、前記第２のデータ・ストレージ・システムにおける別の時間インターバルのタイミングを合わせることと
を含む、請求項１４に記載のコンピュータ・プログラム製品。
【請求項１６】
セーフ・データ・コミット・スキャン動作の前記第２のセットを同期させることが、
前記第２のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせの満了、および、前記第２のスタート・セーフ・コミット・スキャン動作メッセージが前記第１のデータ・ストレージ・システムから受信されていないこと、に応答して、前記第１のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第２のセットの第１のセーフ・データ・コミット・スキャン動作のステータスを確かめるために、前記第１のデータ・ストレージ・システムに接触すること、および、前記第１のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第２のセットの第１のセーフ・データ・コミット・スキャン動作の前記ステータスに応じて、前記第２のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせをリセットするべきか、前記第２のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第２のセットの第２のセーフ・データ・コミット・スキャン動作を開始するべきかについて、決定すること
をさらに含む、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１７】
前記第１のデータ・ストレージ・システムが、マスタ・データ・ストレージ・システムであり、前記第２のデータ・ストレージ・システムが、サブ・データ・ストレージ・システムであり、セーフ・データ・コミット・スキャン動作の前記第１のセットを前記同期させることが、
前記マスタ・データ・ストレージ・システムから別のサブ・データ・ストレージ・システムに第２のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、
前記第２のスタート・セーフ・コミット・スキャン動作メッセージに応答して、別のサブ・データ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第１のセットの第３のセーフ・データ・コミット・スキャン動作を開始することと
をさらに含む、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１８】
前記第１のデータ・ストレージ・システムが、１次データ・ストレージ・システムであり、前記第２のデータ・ストレージ・システムが、２次データ・ストレージ・システムであり、セーフ・データ・コミット・スキャン動作の前記第１のセットを前記同期させることが、
前記第１のスタート・セーフ・コミット・スキャン動作メッセージに応答して、前記２次データ・ストレージ・システムから３次データ・ストレージ・システムに第２のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、
前記第２のスタート・セーフ・コミット・スキャン動作メッセージに応答して、前記３次データ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第１のセットの第３のセーフ・データ・コミット・スキャン動作を開始することと
をさらに含む、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１９】
複数のデータ・ストレージ・システムであって、各データ・ストレージ・システムが、ストレージ・コントローラ、およびストレージ・コントローラによって制御され、データを格納するように構成されたデータ・ストレージ・ユニットを備え、各データ・ストレージ・システムの前記ストレージ・コントローラが、プロセッサおよびキャッシュを備え、前記複数のデータ・ストレージ・システムが、１次データ・ストレージ・システムとして構成された第１のデータ・ストレージ・システム、および２次データ・ストレージ・システムとして構成された第２のデータ・ストレージ・システムを含む、前記複数のデータ・ストレージ・システムと、
プログラム命令が具現化されたコンピュータ可読ストレージ媒体を備えるコンピュータ・プログラム製品と
を備え、前記プログラム命令が、プロセッサ動作を行わせるようにストレージ・コントローラのプロセッサによって実行可能であり、前記プロセッサ動作が、
複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第１のセットを同期させることを含み、各セーフ・データ・コミット・スキャン動作が、データ・ストレージ・システムのキャッシュにキャッシュされたデータを、データ・ストレージ・システムのデータ・ストレージ・ユニットにデステージし、セーフ・データ・コミット・スキャン動作の前記第１のセットを同期させることが、
第１のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第１のセットの第１のセーフ・データ・コミット・スキャン動作を開始することと、
前記第１のデータ・ストレージ・システムから第２のデータ・ストレージ・システムに、第１のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、
前記第１のスタート・セーフ・コミット・スキャン動作メッセージに応答して、前記第２のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第１のセットの第２のセーフ・データ・コミット・スキャン動作を開始することと
を含む、システム。
【請求項２０】
前記プロセッサ動作が、
前記複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第２のセットを同期させることをさらに含み、セーフ・データ・コミット・スキャン動作の前記第２のセットを同期させることが、
第１のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第１のセットの前記第１のセーフ・データ・コミット・スキャン動作が完了すると、前記第１のデータ・ストレージ・システムにおける時間インターバルのタイミングを合わせることと、
前記第２のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第１のセットの前記第２のセーフ・データ・コミット・スキャン動作が完了すると、前記第２のデータ・ストレージ・システムにおける時間インターバルのタイミングを合わせることと、
前記第１のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせの満了に応答して、前記第１のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第２のセットの第１のセーフ・データ・コミット・スキャン動作を開始することと、
前記第１のデータ・ストレージ・システムから前記第２のデータ・ストレージ・システムに第２のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと
を含む、請求項１９に記載のシステム。
【請求項２１】
前記第１のデータ・ストレージ・システムから前記第２のデータ・ストレージ・システムへの前記第１のスタート・セーフ・データ・コミット・スキャン動作メッセージが、前記第１のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミングを合わせる持続期間を定義するタイマー・インターバル持続期間パラメータを含み、前記第２のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせの持続期間が、前記第１のデータ・ストレージ・システムからの前記第１のスタート・セーフ・データ・コミット・スキャン動作メッセージの前記タイマー・インターバル持続期間パラメータの関数である、請求項２０に記載のシステム。
【請求項２２】
前記第２のデータ・ストレージ・システムにおける前記時間インターバルの前記持続期間が、前記第１のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミングを合わせる持続期間より長くなるようにセットされる、請求項２１に記載のシステム。
【請求項２３】
セーフ・データ・コミット・スキャン動作の前記第２のセットを同期させることが、
前記第２のスタート・セーフ・コミット・スキャン動作メッセージに応答して、前記第２のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミングを合わせることが満了していない場合、前記第２のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第２のセットの第２のセーフ・データ・コミット・スキャン動作を開始することと、
前記第２のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせの満了に応答して、第２のスタート・セーフ・コミット・スキャン動作メッセージが前記第１のデータ・ストレージ・システムから受信されていない場合、前記第２のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第２のセットの第２のセーフ・データ・コミット・スキャン動作を開始することと
をさらに含む、請求項２０に記載のシステム。
【請求項２４】
前記プロセッサ動作が、
前記複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第３のセットを同期させることをさらに含み、セーフ・データ・コミット・スキャン動作の前記第３のセットを同期させることが、
前記第１のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第２のセットの前記第１のセーフ・データ・コミット・スキャン動作が完了すると、前記第１のデータ・ストレージ・システムにおける別の時間インターバルのタイミングを合わせることと、
前記第２のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第２のセットの前記第２のセーフ・データ・コミット・スキャン動作が完了すると、前記第２のデータ・ストレージ・システムにおける別の時間インターバルのタイミングを合わせることと
を含む、請求項２３に記載のシステム。
【請求項２５】
セーフ・データ・コミット・スキャン動作の前記第２のセットを同期させることが、
前記第２のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせの満了、および、前記第２のスタート・セーフ・コミット・スキャン動作メッセージが前記第１のデータ・ストレージ・システムから受信されていないこと、に応答して、前記第１のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第２のセットの第１のセーフ・データ・コミット・スキャン動作のステータスを確かめるために、前記第１のデータ・ストレージ・システムに接触すること、および、前記第１のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第２のセットの第１のセーフ・データ・コミット・スキャン動作の前記ステータスに応じて、前記第２のデータ・ストレージ・システムにおける前記時間インターバルの前記タイミング合わせをリセットするべきか、前記第２のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の前記第２のセットの第２のセーフ・データ・コミット・スキャン動作を開始するべきかについて、決定すること
をさらに含む、請求項２０に記載のシステム。
【請求項２６】
前記第１のデータ・ストレージ・システムが、マスタ・データ・ストレージ・システムであり、前記第２のデータ・ストレージ・システムが、サブ・データ・ストレージ・システムであり、セーフ・データ・コミット・スキャン動作の前記第１のセットを前記同期させることが、
前記マスタ・データ・ストレージ・システムから別のサブ・データ・ストレージ・システムに第２のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、
前記第２のスタート・セーフ・コミット・スキャン動作メッセージに応答して、別のサブ・データ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第１のセットの第３のセーフ・データ・コミット・スキャン動作を開始することと
をさらに含む、請求項１９に記載のシステム。
【請求項２７】
前記第１のデータ・ストレージ・システムが、１次データ・ストレージ・システムであり、前記第２のデータ・ストレージ・システムが、２次データ・ストレージ・システムであり、セーフ・データ・コミット・スキャン動作の前記第１のセットを前記同期させることが、
前記第１のスタート・セーフ・コミット・スキャン動作メッセージに応答して、前記２次データ・ストレージ・システムから３次データ・ストレージ・システムに第２のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、
前記第２のスタート・セーフ・コミット・スキャン動作メッセージに応答して、前記３次データ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の前記第１のセットの第３のセーフ・データ・コミット・スキャン動作を開始することと
をさらに含む、請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータ・ストレージ・システムにおける同期されたセーフ・データ・コミット・スキャンのためのコンピュータ・プログラム製品、システム、および方法に関する。
【背景技術】
【０００２】
データ・ストレージ・システムは、特に企業レベルでは、通常、データ・ストレージ・システムの構成要素の故障時のデータ喪失のリスクを減らすために、高レベルの冗長性をもたらすように設計される。それ故に、個々のデータ・ストレージ・システムが地理的に拡散される可能性がある分散型データ・ストレージ・システムの複数のシステムに、データの複数のコピーが頻繁に格納される。したがって、分散型データ・ストレージ・システムに格納されることになるホストからのデータは、典型的には、ローカル・サイトにある１次データ・ストレージ・システムの１次デバイスに向けられ、次に、１次データ・ストレージ・システムから地理的に遠く離れたシステムである可能性のある２次データ・ストレージ・システムの１つまたは複数の２次デバイスに複製される。１つの１次デバイスは、１次デバイスに向けられたデータが、複数の２次デバイスに複製される複数の２次的関係を有することができる。
【０００３】
２次データ・ストレージ・デバイスにデータを複製する、すなわちコピーまたはミラーリングする処理は、１次データ・ストレージ・デバイスと２次データ・ストレージ・デバイスとの間の同期関係または非同期関係のいずれかでセットアップされることが可能である。同期関係では、１次データ・ストレージ・デバイスへのどのような更新も、典型的には、データ・ストレージ入出力（Ｉ／Ｏ）動作が成功裏に完了したことを、１次データ・ストレージ・デバイスがホストにレポートする前に、２次データ・ストレージ・デバイスと同期される、すなわち、２次データ・ストレージ・デバイスに成功裏にコピーされる。非同期関係では、１次データ・ストレージ・デバイスへの成功した更新は、典型的には、更新が２次データ・ストレージ・デバイスに複製されるのを待たずに、成功したストレージ入出力動作としてホストにレポートされる。
【０００４】
ストレージ・コントローラは、ハードディスク、テープ、ソリッド・ステート・ドライブ等を含むことができる複数のストレージ・デバイスを制御し得る。また、キャッシュは、ストレージ・コントローラによって維持され得るし、ここで、キャッシュは、ハードディスク、テープ等などの一定の他のストレージ・デバイスと比べて、より素早くアクセス可能な高速ストレージを備え得る。しかし、キャッシュのストレージ容量の総量は、ストレージ・コントローラによって制御されるハードディスク等などの一定の他のストレージ・デバイスのストレージ容量に比べて、比較的小さい可能性がある。キャッシュは、種々の方式で互いに相互に動作させることができる、ランダム・アクセス・メモリ（ＲＡＭ）、不揮発性ストレージ・デバイス（ＮＶＳ：non-volatile storage device）、リード・キャッシュ、ライト・キャッシュ等の１つまたは複数で構成され得る。ＮＶＳは、バッテリ・バックアップ型ランダム・アクセス・メモリで構成され得るし、高速に書込み動作が行われるのを可能にすることができる。ストレージ・コントローラは、ネットワーク化されたホストから複数のストレージ・デバイスへの入出力（Ｉ／Ｏ）リクエストを管理し得る。
【０００５】
ストレージ・コントローラによって実行されるキャッシュ技術は、入出力（Ｉ／Ｏ）レイテンシを見えなくするのを支援する。キャッシュは、読込みデータ・アクセス・リクエストをサービスするため、および、修正されたデータのバッファリングを行うために、外部ストレージからステージされたデータへの素早いアクセスのために使用される。書込みリクエストは、キャッシュに書き込まれ、次に、外部ストレージ・デバイスに書き込まれる（すなわち、デステージされる）。
【０００６】
書込みのために低レイテンシが継続されることを保証するために、ＮＶＳ内のデータは、入って来る書込みのためにいくらかの空の場所が常にあることを保証するように、空ける、すなわちデステージされなければならず、そうしないと、後続の書込みが事実上同時になる可能性があり、ホストの書込みのためのレスポンス時間に不利な影響を及ぼす可能性がある。ストレージ・コントローラは、ストレージにデステージされることになる（しばしば「汚染された」と呼ばれる）修正されたデータのためにキャッシュ・ディレクトリをスキャンするセーフ・データ・コミット処理を頻繁に用いる。キャッシュ・ディレクトリのこのようなスキャンは、例えば、正時になど、周期的にスキャンを開始するために、タイマーを使用して開始され得る。また、セーフ・データ・コミット処理は、例えば、特定のキャッシュにデータをキャッシュするプロセッサに対するプログラム負荷など他のイベントの予想時、または、１次データ・ストレージ・システムと２次データ・ストレージ・システムの１次的役割と２次的役割の交換時に、キャッシュを完全に空にするために開始され得る。
【０００７】
セーフ・データ・コミット・スキャン動作が完了すると、スキャンがスタートされた時間は、典型的には「タイムスタンプ」としてログ記録され、「タイムスタンプ」は、セーフ・データ・コミット・スキャン・スタート時間より前に、データ・ストレージ・システムのキャッシュに書き込まれたどのようなものも、データ・ストレージ・システムのストレージに成功裏にデステージされ、安全に格納されたことをオペレータに保証することを可能にする。しかし、このようなセーフ・データ・コミット・スキャン動作は、かなりのシステム・リソースを消費する可能性があり、同時に発生する入出力動作のレスポンス時間を著しく減速させる。レスポンス時間のこのような減速は、分散型データ・ストレージ・システムの個々のデータ・ストレージ・システムが、セーフ・データ・コミット・スキャン動作を行うたびに繰り返される可能性がある。その結果、分散型データ・ストレージ・システムのオペレータは、分散型データ・ストレージ・システムの様々な個々のデータ・ストレージ・システムによって、セーフ・データ・コミット・スキャン動作が行われているとき、入出力動作のレスポンス時間の多くのこのような減速に遭遇する可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
したがって、当技術分野において、前述の問題に対処する必要がある。
【課題を解決するための手段】
【０００９】
複数のデータ・ストレージ・システムにおける同期されたセーフ・データ・コミット・スキャンを用いるコンピューティング環境の１つの一般的な態様は、複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第１のセットを同期させることを含み、各セーフ・データ・コミット・スキャン動作が、データ・ストレージ・システムのキャッシュにキャッシュされたデータを、データ・ストレージ・システムのデータ・ストレージ・ユニットにデステージする。１つの態様において、セーフ・データ・コミット・スキャン動作の第１のセットを同期させることは、第１のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の第１のセットの第１のセーフ・データ・コミット・スキャン動作を開始することと、第１のデータ・ストレージ・システムから第２のデータ・ストレージ・システムに、第１のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、を含む。第１のスタート・セーフ・コミット・スキャン動作メッセージに応答して、第２のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の第１のセットの第２のセーフ・データ・コミット・スキャン動作が開始される。
【００１０】
１つの態様によれば、ストレージ・コントローラ、およびストレージ・コントローラによって制御され、データを格納するように構成されたデータ・ストレージ・ユニットをそれぞれが備える複数のデータ・ストレージ・システムと共に使用するためのコンピュータ・プログラム製品であって、各データ・ストレージ・システムのストレージ・コントローラが、プロセッサおよびキャッシュを備え、コンピュータ・プログラム製品が、プログラム命令が具現化されたコンピュータ可読ストレージ媒体を備え、プログラム命令が、プロセッサ動作を行わせるようにストレージ・コントローラのプロセッサによって実行可能であり、プロセッサ動作が、複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第１のセットを同期させることを含み、各セーフ・データ・コミット・スキャン動作が、データ・ストレージ・システムのキャッシュにキャッシュされたデータを、データ・ストレージ・システムのデータ・ストレージ・ユニットにデステージし、セーフ・データ・コミット・スキャン動作の第１のセットを同期させることが、第１のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の第１のセットの第１のセーフ・データ・コミット・スキャン動作を開始することと、第１のデータ・ストレージ・システムから第２のデータ・ストレージ・システムに、第１のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、第１のスタート・セーフ・コミット・スキャン動作メッセージに応答して、第２のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の第１のセットの第２のセーフ・データ・コミット・スキャン動作を開始することと、を含む、コンピュータ・プログラム製品が提供される。
【００１１】
１つの態様によれば、複数のデータ・ストレージ・システムであって、各データ・ストレージ・システムが、ストレージ・コントローラ、およびストレージ・コントローラによって制御され、データを格納するように構成されたデータ・ストレージ・ユニットを備え、各データ・ストレージ・システムのストレージ・コントローラが、プロセッサおよびキャッシュを備え、複数のデータ・ストレージ・システムが、１次データ・ストレージ・システムとして構成された第１のデータ・ストレージ・システム、および２次データ・ストレージ・システムとして構成された第２のデータ・ストレージ・システムを含む、複数のデータ・ストレージ・システムと、プログラム命令が具現化されたコンピュータ可読ストレージ媒体を備えるコンピュータ・プログラム製品と、を備え、プログラム命令が、プロセッサ動作を行わせるようにストレージ・コントローラのプロセッサによって実行可能であり、プロセッサ動作が、複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第１のセットを同期させることを含み、各セーフ・データ・コミット・スキャン動作が、データ・ストレージ・システムのキャッシュにキャッシュされたデータを、データ・ストレージ・システムのデータ・ストレージ・ユニットにデステージし、セーフ・データ・コミット・スキャン動作の第１のセットを同期させることが、第１のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の第１のセットの第１のセーフ・データ・コミット・スキャン動作を開始することと、第１のデータ・ストレージ・システムから第２のデータ・ストレージ・システムに、第１のスタート・セーフ・データ・コミット・スキャン動作メッセージを送信することと、第１のスタート・セーフ・コミット・スキャン動作メッセージに応答して、第２のデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作の第１のセットの第２のセーフ・データ・コミット・スキャン動作を開始することと、を含む、システムが提供される。
【００１２】
１つの実施形態において、特定のデータ・ストレージ・システムの各セーフ・データ・コミット・スキャン動作は、スタート・メッセージ、または同期タイマー・インターバルの満了、の両方ではなく、どちらかによって開始される。
【００１３】
説明される技術の実装形態は、ハードウェア、方法、もしくは処理、または、コンピュータ・アクセス可能媒体上のコンピュータ・ソフトウェアを含んでもよい。特定の用途に応じて、他の特徴および態様が実現されてもよい。
【００１４】
次に、添付の図面を参照しながら、単なる例として、本発明の実施形態が説明される。
【図面の簡単な説明】
【００１５】
【図１】本明細書の１つの実施形態による、複数のデータ・ストレージ・システムにおける同期されたセーフ・データ・コミット・スキャンを用いるコンピューティング環境の実施形態を示す図である。
【図２】本明細書の１つの実施形態による同期されたセーフ・データ・コミット・スキャンを用いるストレージ・マネージャをデータ・ストレージ・システムが備える、図１のコンピューティング環境におけるデータ・ストレージ・システムの例を示す図である。
【図３】図１のコンピューティング環境におけるホストの例を示す図である。
【図４】本明細書の１つの実施形態による同期されたセーフ・データ・コミット・スキャンを用いる分散型データ・ストレージ・システムの１次データ・ストレージ・システムの動作の例を示す図である。
【図５】本明細書の１つの実施形態による同期されたセーフ・データ・コミット・スキャンを用いる分散型データ・ストレージ・システムの１次、２次、および３次データ・ストレージ・システムの動作のタイムラインの例を描写する図である。
【図６】本明細書の１つの実施形態による同期されたセーフ・データ・コミット・スキャンを用いる分散型データ・ストレージ・システムの１次、２次、および３次データ・ストレージ・システムの動作のタイムラインの例を描写する図である。
【図７】本明細書の１つの実施形態による同期されたセーフ・データ・コミット・スキャンを用いる分散型データ・ストレージ・システムの１次、２次、および３次データ・ストレージ・システムの動作のタイムラインの例を描写する図である。
【図８】本明細書の１つの実施形態による同期されたセーフ・データ・コミット・スキャンを用いる分散型データ・ストレージ・システムの２次データ・ストレージ・システムの動作の例を示す図である。
【図９】本明細書の１つの実施形態による同期されたセーフ・データ・コミット・スキャンを用いる分散型データ・ストレージ・システムの３次データ・ストレージ・システムの動作の例を示す図である。
【図１０】本明細書の１つの実施形態による同期されたセーフ・データ・コミット・スキャンを用いる分散型データ・ストレージ・システムのマスタおよびサブ（subsidiary）・データ・ストレージ・システムの動作のタイムラインの例を描写する図である。
【図１１】本明細書の１つの実施形態による同期されたセーフ・データ・コミット・スキャンを用いるコンピュータ実施形態を示す図である。
【発明を実施するための形態】
【００１６】
上述のように、以前の分散型データ・ストレージ・システムのオペレータは、分散型データ・ストレージ・システムの個々のデータ・ストレージ・システムによってセーフ・データ・コミット・スキャン動作が行われるとき、入出力動作のレスポンス時間の多くの減速に遭遇することがある。多くのこのような以前の分散型データ・ストレージ・システムにおいて、セーフ・データ・コミット・スキャン動作を開始するために、分散型データ・ストレージ・システムの各個々のデータ・ストレージ・システムによって用いられるタイマーは、典型的には、様々な個々のデータ・ストレージ・システムの中で互いに独立しているということが本明細書において理解される。例えば、１次、２次、および３次データ・ストレージ・システムなど、例えば、３つの個々のデータ・ストレージ・システムを備える以前の分散型データ・ストレージ・システムにおいて、データ・ストレージ・システムのそれぞれにおいて３つの異なるおよび別個の時間に、３つの別々のセーフ・データ・コミット・スキャンが独立して行われることにより、分散型データ・ストレージ・システムのオペレータがＩ／Ｏレスポンス時間の減速に遭遇する３つもの異なるおよび別個の時間がある可能性がある。
【００１７】
本明細書の１つの実施形態において、分散型データ・ストレージ・システムの個々のデータ・ストレージ・システムのセーフ・データ・コミット・スキャン動作は、Ｉ／Ｏレスポンス時間の低下の発生を低減させるために同期されてもよい。１つの実施形態において、分散型データ・ストレージ・システムの個々のデータ・ストレージ・システムのセーフ・データ・コミット・スキャン動作のセットは、同期されたセーフ・データ・コミット・スキャン・セット・インターバルの範囲外の入出力レスポンス時間の低下の発生を低減または除去するために、単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバルの中で時間が実質的に重複するように同期してタイミングを合わされる。
【００１８】
例えば、１つの実施形態において、１次データ・ストレージ・システムなどのデータ・ストレージ・システムにおいてセーフ・データ・コミット・スキャン動作を開始すると、１次データ・ストレージ・システムは、２次データ・ストレージ・システムなどの別のデータ・ストレージ・システムに、スタート・セーフ・データ・コミット・スキャン動作メッセージを送信してもよい。スタート・セーフ・コミット・スキャン動作メッセージに応答して、２次データ・ストレージ・システムは、２次データ・ストレージ・システムのセーフ・データ・コミット・スキャン動作を開始する。この処理は、２次データ・ストレージ・システムによって繰り返されてもよく、３次データ・ストレージ・システムなどの別のデータ・ストレージ・システムに、スタート・セーフ・データ・コミット・スキャン動作メッセージを送信し、それに応じて、３次データ・ストレージ・システムのセーフ・データ・コミット・スキャン動作を開始する。このように、分散型データ・ストレージ・システムの様々な個々のストレージ・システムのセーフ・データ・コミット・スキャン動作のセットは、分散型データ・ストレージ・システムのＩ／Ｏ動作のレスポンス時間の減速の発生を低減させるために同期されてもよく、コンピュータ技術の改善をもたらす。
【００１９】
本明細書の別の実施形態において、１次データ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作を完了させると、１次データ・ストレージ・システムは、同期されたセーフ・データ・コミット・スキャン動作の別のセットに、グローバル同期タイマー・インターバルのタイミングを合わせるグローバル・タイマーをスタートしてもよい。１次データ・ストレージ・システムにおけるグローバル同期タイマー・インターバルの満了に応答して、１次データ・ストレージ・システムは、別のスタート・セーフ・データ・コミット・スキャン動作メッセージを２次データ・ストレージ・システムに送信することによって、セーフ・データ・コミット・スキャン動作の別の同期されたセットを開始してもよく、２次データ・ストレージ・システムは、別のスタート・セーフ・データ・コミット・スキャン動作メッセージを３次データ・ストレージ・システムに送信する。このように、分散型データ・ストレージ・システムの様々な個々のストレージ・システムのセーフ・データ・コミット・スキャン動作の別のセットは、分散型データ・ストレージ・システムのＩ／Ｏ動作のレスポンス時間の減速の発生を低減させるために同期されてもよい。
【００２０】
本明細書のさらなる別の実施形態において、２次および３次データ・ストレージ・システムなどのデータ・ストレージ・システムは、同様に、これらのそれぞれのデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作を完了させると、同期されたセーフ・データ・コミット・スキャン動作の次のセットに、同期ローカル・タイマー・インターバルのタイミングを合わせるローカル・タイマーをそれぞれスタートしてもよい。したがって、ローカル同期タイマー・インターバルが満了する時間までに、スタート・セーフ・データ・コミット・スキャン動作メッセージがタイムリに受信されない場合、それでもなお、別のセーフ・データ・コミット・スキャン動作が、ローカル同期タイマー・インターバルの満了に応答して開始されてもよい。
【００２１】
本明細書のさらなる別の実施形態において、スタート・セーフ・データ・コミット・スキャン動作メッセージを受信すると、ローカル同期タイマー・インターバルは、ローカル同期タイマー・インターバルのその後の満了に応答して再び開始されるのではなく、受信されたスタート・メッセージによってのみ、セーフ・データ・コミット・スキャン動作が開始されるように、リセットされる。このように、特定のデータ・ストレージ・システムの各セーフ・データ・コミット・スキャン動作は、スタート・メッセージ、またはローカル同期タイマー・インターバルの満了、の両方ではなく、どちらかによって開始される。
【００２２】
したがって、分散型データ・ストレージ・システムの様々な個々のストレージ・システムのセーフ・データ・コミット・スキャン動作のセットは、スタート・セーフ・データ・コミット・スキャン・メッセージの受信に応答して、または、スタート・セーフ・データ・コミット・スキャン・メッセージがタイムリに受信されない場合、同期タイマー・インターバルの満了に応答して、個々のデータ・ストレージ・システムによって同期されてもよい。その結果、分散型データ・ストレージ・システムの様々な個々のストレージ・システムのセーフ・データ・コミット・スキャン動作の各セットを同期させることによって、分散型データ・ストレージ・システムのＩ／Ｏ動作のレスポンス時間の減速の発生は、低減または最小化される可能性があり、コンピュータ技術の改善をもたらす。特定の用途に応じて、他の実施形態および長所が実現されてもよい。
【００２３】
１つまたは複数のコンピュータのシステムは、本明細書による同期されたセーフ・データ・コミット・スキャン動作を動作時にシステムに行わせるシステムにインストールされたソフトウェア、ファームウェア、ハードウェア、またはこれらの組合せを備えることによって、本明細書による同期されたセーフ・データ・コミット・スキャンのために構成されてもよい。例えば、１つまたは複数のコンピュータ・プログラムが、データ処理装置によって実行されたときにアクションを装置に行わせる命令を含むことによって、同期されたセーフ・データ・コミット・スキャンを行うように構成されてもよい。
【００２４】
本明細書において説明される動作は、手動で行われるものとして示された場合を除いて、システム・オペレータの介入がほとんどないまたは全くない、自動的にまたは実質的に自動的に動作を行うように構成されたロジックによって行われる。したがって、本明細書において使用されるように、用語「自動的（automatic）」は、両方完全に自動的、すなわち、グラフィカル・ユーザ選択インターフェースへのユーザ入力など、人間の介入がない、１つまたは複数のハードウェアまたはソフトウェア制御の機械によって行われる動作を含む。本明細書において使用されるように、用語「自動的」は、主として自動的、をさらに含み、すなわち、動作の大部分（例えば５０％より多いなど）は、グラフィカル・ユーザ選択インターフェースへのユーザ入力など、人間の介入がない、１つまたは複数のハードウェアまたはソフトウェア制御の機械によって行われ、残りの動作（例えば５０％より少ない）は手動で行われ、すなわち、手動動作は、動作の実行を指図するためのグラフィカル・ユーザ選択インターフェースへのユーザ入力など、人間の介入がある、１つまたは複数のハードウェアまたはソフトウェア制御の機械によって行われる。
【００２５】
本明細書において説明される機能要素の多くは、これらの実行の独立性をさらに具体的に強調するために、「ロジック」としてラベルを付けられた。例えば、ロジック要素は、カスタムＶＬＳＩ回路もしくはゲート・アレイを備えるハードウェア回路、論理チップなどの市販の半導体、トランジスタ、または他の個別のコンポーネントとして実装されてもよい。また、ロジック要素は、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル・ロジック・デバイス、または同様のものなど、プログラマブル・ハードウェア・デバイスに実装されてもよい。
【００２６】
また、ロジック要素は、様々なタイプのプロセッサによる実行のためにソフトウェアに実装されてもよい。例えば、実行可能コードを含むロジック要素は、オブジェクト、手順、または機能として構成されてもよいコンピュータ命令の１つまたは複数の物理または論理ブロックを備えてもよい。それでも、識別されたロジック要素の実行可能ファイルは、物理的に一緒に配置される必要はないが、一緒に論理的に結合されるとき、ロジック要素を備え、ロジック要素のための決められた目的を実現する、異なる位置に格納された完全に異なる命令を備えてもよい。
【００２７】
実際は、ロジック要素のための実行可能コードは、単一の命令、または多くの命令であってもよく、異なるプログラム間の、異なるプロセッサ間の、および、いくつかのメモリ・デバイスにわたる、いくつかの異なる符号セグメント上に分散させることさえできる。同様に、動作データが、ロジック要素内に本明細書において識別され、示されてもよく、任意の適切な形で具現化され、任意の適切なタイプのデータ構造の中に構成されてもよい。動作データは、単一のデータ・セットとして集められてもよく、または、異なるストレージ・デバイス上を含む異なる位置にわたって分散されてもよい。
【００２８】
説明される技術の実装形態は、ハードウェア、方法もしくは処理、または、コンピュータ・アクセス可能媒体上のコンピュータ・ソフトウェアを含んでもよい。図１、図２は、本明細書による同期されたセーフ・データ・コミット・スキャンを用いるコンピューティング環境の実施形態を示す。複数のホスト１ａ、１ｂ〜１ｎは、データを読み込む、または書き込むために、１つまたは複数のデータ・ストレージ・デバイスまたはシステム２ａ、２ｂ、２ｃ、２（図２）に、ネットワーク６で入出力（Ｉ／Ｏ）リクエストをサブミットしてもよい。ホスト１ａ、１ｂ〜１ｎは、別々の物理デバイスであってもよく、または、例えば、サーバの区画の割り当てられたリソースを使用して実装される仮想デバイスであってもよい。同様に、１つまたは複数のデータ・ストレージ・システム２（図２）、２ａ、２ｂ、２ｃは、別々の物理デバイスであってもよく、または、例えば、１つまたは複数のサーバの区画の割り当てられたリソースを使用して実装される仮想デバイスであってもよい。
【００２９】
図示の実施形態において、データ・ストレージ・システム２ａは、１次データ・ストレージ・システムとして少なくとも最初に識別され、データ・ストレージ・システム２ｂは、２次データ・ストレージ・システムとして少なくとも最初に識別され、ここで、ホストによって１次データ・ストレージ・システム２ａに格納されたデータは、２次データ・ストレージ・システム２ｂにミラーリングされる。図１に描写された実施形態は、単一の２次データ・ストレージ・システム２ｂを描写するが、１次データ・ストレージ・システム２ａは、２つ以上の２次データ・ストレージ・システムを備えてもよいということが理解される。第３のデータ・ストレージ・システム２ｃは、３次データ・ストレージ・システムとして少なくとも最初に識別され、ここで、２次データ・ストレージ・システム２ｂにミラーリングされたデータは、次に３次データ・ストレージ・システム２ｃにミラーリングされる。
【００３０】
各データ・ストレージ・システム２（図２）、２ａ、２ｂ、２ｃは、ストレージ・コントローラ、すなわち、制御ユニット４（図２）、４ａ、４ｂ、４ｃをそれぞれ含み、制御ユニットは、ストレージ１０、１０ａ、１０ｂ、１０ｃそれぞれの複数のデータ・ストレージ・ユニットに格納されたデータにアクセスする。ストレージ１０、１０ａ、１０ｂ、１０ｃの各データ・ストレージ・ユニットは、当技術分野で知られた物理ハードディスク、ソリッド・ステート・デバイス、等など、データを格納することができる任意の適切なデバイスを備えてもよい。したがって、１つの実施形態において、ストレージ１０、１０ａ、１０ｂ、１０ｃは、ハードディスク・ドライブおよび磁気テープなど、１つもしくは複数の順次アクセス・ストレージ・デバイスで構成されてもよく、または、例えば、ソリッド・ステート・デバイス（ＳＳＤ）などの非順次アクセス・ストレージ・デバイスを含んでもよい。ストレージ１０（図２）、１０ａ、１０ｂ、１０ｃの各デバイスは、データ・ストレージのための単一の順次もしくは非順次アクセス・デバイスを備えてもよく、または、ＪＢＯＤ（単純ディスク束）、ＤＡＳＤ（ダイレクト・アクセス・ストレージ・デバイス）、ＲＡＩＤ（独立ディスクの冗長アレイ（Redundant Array of Independent Disks））アレイ、仮想化デバイス、テープ・ストレージ、フラッシュ・メモリ等など、データ・ストレージのためのデバイスのアレイを備えてもよい。
【００３１】
一定の実施形態において、例えば、ストレージ・ユニットは、ＲＡＩＤ（独立ディスクの冗長アレイ）のストレージ・ランクまたはアレイ１１ａ（図２）〜１１ｎとして構成されたディスクであってもよく、ここで、１つまたは複数のＲＡＩＤストレージ・ランクは、ハードディスクの喪失時のデータ・リカバリを容易にするための、ＲＡＩＤ構成のハードディスクのアレイである。また、ストレージ１０、１０ａ、１０ｂのストレージ・ユニットは、ソリッド・ステート・デバイスの喪失時のデータ・リカバリを容易にするための、ＲＡＩＤ構成のソリッド・ステート・デバイスなど、他のタイプのストレージを含んでもよい。ストレージ１０（図２）、１０ａ、１０ｂ、１０ｃのストレージ・ユニットは、ボリューム、トラック等など、データ・ストレージのサブユニットに、データを格納するように構成されてもよい。
【００３２】
各ストレージ・コントローラ４（図２）、４ａ、４ｂ、４ｃは、それぞれが単一または複数のプロセッサ・コアを備える、１つまたは複数のプロセッサまたは中央処理装置によって提供されるプロセッサ・リソースを含むＣＰＵ複合体１２（図２）を含む。本実施形態において、プロセッサ・コアは、例えば、算術論理演算装置（ＡＬＵ）、浮動小数点ユニット（ＦＰＵ）、または、（Ｌ１およびＬ２キャッシュなどの）様々なレベルのキャッシュ、あるいはその組合せなど、命令の実行に従事するＣＰＵの構成要素を含む。プロセッサ・コアは、本明細書において述べられたものに加えて、またはその代わりに、他のロジック要素を備えてもよいということが理解される。
【００３３】
各ストレージ・コントローラ４（図２）、４ａ、４ｂ、４ｃは、ホストからのＩ／Ｏデータ・リクエスト、または、別のデータ・ストレージ・システムからミラーリングされたデータに応答して、関連付けられたストレージ１０（図２）、１０ａ、１０ｂ、１０ｃにデータを書き込むこと、または、そこからデータを読み込むことを含むストレージ動作を管理するためのストレージ・マネージャ２４を含むメモリ２０をさらに備える。メモリ２０のキャッシュ２８は、ＲＡＭ、ライト・キャッシュ、リード・キャッシュ、ＮＶＳ等など、種々のタイプのメモリの１つまたは複数を備えてもよい。キャッシュを備える種々のタイプのメモリは、互いに相互に動作してもよい。各ストレージ・コントローラ４（図２）、４ａ、４ｂ、４ｃのＣＰＵ複合体１２は、プロセッサの複数のクラスタを備えてもよく、各クラスタは、独自の割り当てられたメモリ２０、ストレージ・マネージャ２４、キャッシュ２８、等を備える。各クラスタに割り当てられた処理およびメモリ・リソースは、特定の用途に応じて、物理的なもの、仮想のもの、共有されるもの、移送可能なもの、または専用のものであってよい。
【００３４】
ホスト１ａ〜１ｎからの書込みは、１次ストレージ・コントローラ４ａのキャッシュ２８に最初に書き込まれ、次に、１次ストレージ・システム２ａのストレージ１０ａに後でデステージされてもよい。ホスト１ａ〜１ｎからの読込みリクエストは、対応する情報がこのキャッシュ２８において利用可能である場合、１次ストレージ・コントローラ４ａのキャッシュ２８から充足されてもよく、そうでなければ、情報は、ストレージ１０ａからキャッシュ２８にステージされ、次に、リクエストするホスト１ａ〜１ｎに提供される。
【００３５】
１次ストレージ・コントローラ４ａのキャッシュ２８およびストレージ１０ａに最初に書き込まれたホスト１ａ〜１ｎからの書込みは、１次ストレージ・コントローラ４ａのストレージ・マネージャ２４によって、２次ストレージ・コントローラ４ｂにミラーリングされてもよい。ミラーリングされたデータは、２次ストレージ・コントローラ４ｂのキャッシュ２８に最初に書き込まれ、次に、２次ストレージ・システム２ｂの２次ストレージ・コントローラ４ｂによって制御されたストレージ１０ｂに後でデステージされてもよい。２次ストレージ・コントローラ４ｂのキャッシュ２８およびストレージ１０ｂにミラーリングされたデータは、２次ストレージ・コントローラ４ｂのストレージ・マネージャ２４によって、３次ストレージ・コントローラ４ｃにミラーリングされてもよい。ミラーリングされたデータは、３次ストレージ・コントローラ４ｃのキャッシュ２８に最初に書き込まれ、次に、３次データ・ストレージ・システム２ｃの３次ストレージ・コントローラ４ｃによって制御されたストレージ１０ｃに後でデステージされてもよい。
【００３６】
ストレージ・コントローラ４（図２）、４ａ、４ｂ、４ｃのメモリ２０は、ストレージ１０（図２）、１０ａ、１０ｂ、１０ｃに格納されたトラックのデータをキャッシュ２８に移送するプレステージ動作もしくはステージ動作の結果として、または、キャッシュ２８にデータを書き込み、その後、ストレージ１０（図２）、１０ａ、１０ｂ、１０ｃの１つもしくは複数の対応するトラックにデステージするホストもしくはミラー書込み動作の結果として、キャッシュ２８に格納されたデータを含むトラックを識別するキャッシュ・ディレクトリ３０を含む。図示の実施形態において、キャッシュ・ディレクトリ３０は、キャッシュ２８における全トラックのハッシュ・テーブルである既知のデータ構造の形で実装される。各トラックは、キャッシュ・ディレクトリ３０のスロットにハッシュされ、トラック識別（ＩＤ）、および、トラックのデータが「汚染された」かどうか、すなわち、ストレージ１０（図２）、１０ａ、１０ｂ、１０ｃの対応するトラックに、まだ安全にデステージされていないかどうかについての指示、を含む。スロットにハッシュされた複数のトラックは、共にリンクされる。他のタイプのデータ構造を使用して、適切なキャッシュ・ディレクトリが実装されてもよいということが理解される。
【００３７】
ストレージ・マネージャ２４のＩ／Ｏ動作を含む動作は、キャッシュ書込み動作、ステージ動作、プレステージ動作、およびデステージ動作を含み、例えば、図示の実施形態におけるメモリ２０のタスク制御ブロック（ＴＣＢ：Task Control Block）３２を利用する。各ＴＣＢは、特定のプロセスを管理するのに必要な情報を含むオペレーティング・システム・カーネルにおけるデータ構造である。ストレージ・コントローラは、ＴＣＢを使用してデータの移動を管理することによって、ストレージとの間で、およびキャッシュとの間で、情報を移動してもよい。ホストからストレージ・コントローラに書込みリクエストが出るとき、または、１次データ・ストレージ・システムから２次データ・ストレージ・システムにデータがミラーリングされるとき、ＴＣＢは、オペレーティング・システム符号からアロケートされてもよい。ＴＣＢは、書き込まれることになるデータが、発生元からキャッシュを通じてストレージに送られるとき、始まりから終わりまでの書込み処理についての情報を維持するために使用される。キャッシュがいっぱいである場合、ＴＣＢは、場所を解放するために、キャッシュ内に存在しているデータがデステージされる（すなわち、ストレージに書き込まれる）ことが可能になるまで、待ち行列に入れられてもよい。
【００３８】
本明細書の１つの実施形態において、ストレージ・マネージャ２４は、同期ロジック３４を含み、同期ロジック３４は、１次データ・ストレージ・システムとして構成された第１のデータ・ストレージ・システム２ａ、２次データ・ストレージ・システムとして構成された第２のデータ・ストレージ・システム２ｂ、および、３次データ・ストレージ・システムとして構成された第３のデータ・ストレージ・システム２ｃを含む複数のデータ・ストレージ・システムにおいて、複数のセーフ・データ・コミット・スキャン動作が行われるのを自動的に同期するように構成される。各データ・ストレージ・システム２ａ、２ｂ、２ｃのストレージ・マネージャ２４は、セーフ・データ・コミット・ロジック４０を含み、セーフ・データ・コミット・ロジック４０は、関連付けられたストレージ１０ａ、１０ｂ、１０ｃにそれぞれ（図１）、汚染されたデータをデステージするために、関連付けられたデータ・ストレージ・システムのキャッシュ・ディレクトリ３０を定期的にスキャンする。セーフ・データ・コミット処理は、セーフ・データ・コミット・スキャン・スタート時間より前に、関連付けられたデータ・ストレージ・システムのキャッシュ２８に書き込まれたどのようなものも、関連付けられたデータ・ストレージ・システムのストレージ１０ａ、１０ｂ、１０ｃに成功裏にデステージされ、安全に格納されたことをオペレータに保証することを可能にする。
【００３９】
ストレージ・マネージャ２４は、ストレージ・マネージャ２４のデータ複製ロジック４４（図２）をさらに含み、データ複製ロジック４４は、２次データ・ストレージ・システム２ｂによって表されるような２次データ・ストレージ・システムの２次ボリューム２（図１）として、１次データ・ストレージ・システム２ａの１次ボリューム１（図１）のコピーを同期して生成するように構成される。ボリュームの１次と２次のペアであるボリューム１、ボリューム２は、１次ボリューム１への更新が、各２次ボリューム２に同期してミラーリングされるように、同期されたコピー関係またはミラー関係４８にある。代替として、ボリュームの１次と２次のペアであるボリューム１、ボリューム２は、１次ボリューム１への更新が、各２次ボリューム２に同期せずにミラーリングされるように、非同期されたコピー関係またはミラー関係４８にあってもよいということが理解される。
【００４０】
図１に示された構成において、ストレージ・コントローラ４ａおよびデータ・ストレージ・ドライブ１０ａは、１次データ・ストレージ・システム２ａの１次ストレージ制御ユニットおよび１次ストレージとしてそれぞれ構成された。同様に、ストレージ・コントローラ４ｂおよびそのデータ・ストレージ・ドライブ１０ｂは、２次データ・ストレージ・システム２ｂの２次ストレージ制御ユニットおよび２次ストレージとしてそれぞれ構成された。したがって、図１に描写された構成において、ストレージ・コントローラ４ａは、１次ストレージ・コントローラまたは制御ユニット４ａと呼ばれることになり、データ・ストレージ・ドライブ１０ａは、１次ストレージ・ドライブ１０ａと呼ばれることになる。同様に、ストレージ・コントローラまたは制御ユニット４ｂは、２次ストレージ・コントローラまたは制御ユニット４ｂと呼ばれることになり、データ・ストレージ・ドライブ１０ｂは、２次データ・ストレージ・ドライブ１０ｂと呼ばれることになる。本実施形態において、コピー関係が、マルチ・ターゲット関係とも呼ばれる１対多の関係であることが可能になるように、複数の２次データ・ストレージがあってもよい。
【００４１】
特定のコピー関係において、ソース・ユニットは１次と呼ばれることが多く、ターゲット・ユニットは、２次と呼ばれることが多い。複製関係は、１次データ・ストレージ・ドライブ１０ａのストレージ・ユニットと、２次データ・ストレージ・ドライブ１０ｂのストレージ・ユニットとの間で、定義される。データ・ストレージ・ドライブ１０ａが「１次」として、およびデータ・ストレージ１０ｂが「２次」として呼ばれることにかかわらず、データ・ストレージ１０ａ、１０ｂの特定のストレージ・ユニットは、特定のコピー関係に応じて、１次（またはソースの役割）と２次の（またはターゲットの役割）の両方の役割を演じてもよい。
【００４２】
１次ストレージ・コントローラ４ａは第１のサイトにあり、２次ストレージ・コントローラ４ｂは、第１のサイトから地理的または機能的に離れている可能性のある第２のサイトにある。したがって、この例では、第１のサイトは、ローカル・サイトにあってもよく、第２のサイトは、ローカル・サイトから、および互いから、短いまたは長い地理的距離によって地理的に隔てられたリモート・サイトにあってもよい。代替として、ローカルおよびリモート・サイトは、ネットワーク６の、同じ一般的な地理的位置にある異なる建物の中、同じ建物の異なる部屋の中、同じ部屋にある異なる機械の中、または、同じ機械の異なる部分もしくは区画の中など、比較的接近していてもよい。
【００４３】
同様に、２次データ・ストレージ・システム２ｂのストレージ・マネージャ２４は、データ複製ロジック４４（図２）を備え、データ複製ロジック４４は、３次データ・ストレージ・システム２ｃによって表されるような３次データ・ストレージ・システムの３次ボリューム３（図１）として、２次データ・ストレージ・システム２ｂの１次ボリューム２（図１）のコピーを同期して生成するように構成される。ボリュームの１次と２次のペアであるボリューム２、ボリューム３は、ボリューム２への更新が、３次ボリューム３に同期してミラーリングされるように、同期されたコピー関係またはミラー関係４８にある。本明細書による同期されたセーフ・データ・コミット・スキャンは、非同期式データ・ストレージ・システムにおいて同様に用いられてもよいということが理解される。
【００４４】
各データ・ストレージ・システム２ａ、２ｂ、２ｃのストレージ・マネージャ２４は、１次−２次役割交換ロジック５２をさらに含み、１次−２次役割交換ロジック５２は、１次データ・ストレージ・システム２ａなどの１次データ・ストレージ・システム、および、２次データ・ストレージ・システム２ｂなどの２次データ・ストレージ・システムの、１次−２次の役割を交換するように構成される。したがって、１次−２次役割交換が成功裏に完了すると、２次データ・ストレージ・システムとして本来構成されたデータ・ストレージ・システム２ｂは、１次データ・ストレージとして再構成される。逆に、１次データ・ストレージ・システムとして本来構成されたデータ・ストレージ・システム２ａは、新しい１次データ・ストレージ・システム、すなわち、１次−２次役割交換の結果を受けたデータ・ストレージ・システム２ｂに対する２次データ・ストレージ・システムとして再構成される。
【００４５】
１つの実施形態において、ストレージ・デバイス１０、１０ａ、１０ｂ、１０ｃは、ハードディスク・ドライブおよび磁気テープなどの、１つもしくは複数の順次アクセス・ストレージ・デバイスで構成されてもよく、または、例えばソリッド・ステート・デバイス（ＳＳＤ）などの、非順次アクセス・ストレージ・デバイスを含んでもよい。各ストレージ・デバイス１０、１０ａ、１０ｂ、１０ｃは、単一の順次もしくは非順次アクセス・ストレージ・デバイスを備えてもよく、または、ＪＢＯＤ（単純ディスク束）、ＤＡＳＤ（ダイレクト・アクセス・ストレージ・デバイス）、ＲＡＩＤ（独立ディスクの冗長アレイ）アレイ、仮想化デバイス、テープ・ストレージ、フラッシュ・メモリ、等などのストレージ・デバイスのアレイを備えてもよい。
【００４６】
図示の実施形態において、同期ロジック３４、セーフ・データ・コミット・スキャン・ロジック４０、および１次−２次役割交換ロジック５２を含むストレージ・マネージャ２４は、メモリ２０に格納され、ＣＰＵ複合体１２によって実行されるソフトウェアとして描写される。しかし、ストレージ・マネージャ２４の論理機能は、特定の用途に応じて、ハードウェア、ソフトウェア、ファームウェア、または、これらの１つもしくは複数の組合せとして実装されてもよいということが理解される。
【００４７】
ストレージ・マネージャ２４（図２）は、１つの実施形態において、キャッシュ２８にデータを格納し、キャッシュ２８と、トラック内のストレージ１０（図２）、１０ａ、１０ｂ、１０ｃ（図１）との間でデータを移送してもよい。トラックをキャッシュに書き込む際、ＴＣＢは、キャッシュ・ストレージの１つまたは複数のセグメントをアロケートしてトラックに書き込む。同様に、ストレージ・マネージャ２４（図２）は、１つの実施形態において、トラック内の１次ストレージ・ドライブ１０ａ（図１）から２次ストレージ・ドライブ１０ｂに、または、トラック内の２次ストレージ・ドライブ１０ｂから３次ストレージ・ドライブ１０ｃに、データを移送してもよい。
【００４８】
本明細書において使用されるように、用語トラックは、ディスク・ストレージ・ユニット、ソリッド・ステート・ストレージ・ユニット、もしくは他のタイプのストレージ・ユニットの、データまたはストレージのサブユニットを指してもよい。トラックに加えて、ストレージ・ユニットは、ビット、バイト、ワード、セグメント、ページ、ブロック（論理ブロック・アドレス（ＬＢＡ）など）、シリンダ、セグメント、エクステント、ボリューム、論理デバイス等、もしくは、これらのいずれかの部分、などのストレージもしくはデータの他のサブユニット、または、移送もしくはストレージに適した他のサブユニット、を備えてもよい。したがって、本明細書において使用されるように、セグメントは、トラックのサブユニットである。したがって、本明細書によるキャッシュ書込みおよびセーフ・データ・コミット処理時に処理されるデータのサブユニットの大きさは、特定の用途に応じて、変化してもよい。したがって、本明細書において使用されるように、用語「トラック」または用語「セグメント」は、データ・ストレージまたは移送の任意の適切なサブユニットを指す。
【００４９】
システム構成要素１ａ（図１）、１ｂ〜１ｎ、４（図２）、４ａ（図１）、４ｂ、４ｃは、これらの構成要素間の通信を可能にするネットワーク６に接続される。したがって、ネットワークはファブリックを含み、ストレージ・エリア・ネットワーク（ＳＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、イントラネット、インターネット、広域ネットワーク（ＷＡＮ）、ピアツーピア・ネットワーク、ワイヤレス・ネットワーク、アービトレーテッド・ループ・ネットワーク等を含んでもよい。ストレージ・サブシステムからホスト１ａ、１ｂ〜１ｎへの通信経路は、例えば、ファイバ接続（ＦＩＣＯＮ（Ｒ））などの、特定のホスト付属プロトコルに基づいてもよい。ファブリックの他の通信経路は、例えば、ファイバ・チャネル・アービトレーテッド・ループ構成、シリアル・ループ・アーキテクチャ、または、ＰＣＩ−Ｅｘｐｒｅｓｓインターフェースなどのペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）インターフェースなどのバス・インターフェースを備えてもよい。また、ファブリックの通信経路は、個々のネットワーク（インターネット・プロトコル）アドレスを各ノードが有するように、例えばイーサネット（Ｒ）・ネットワークの一部であってもよい。特定の用途に応じて、モデム電話経路、ワイヤレス・ネットワーク、等など、他のタイプの通信経路が利用されてもよい。
【００５０】
通信経路と関連付けられた通信ソフトウェアは、もしあれば、通信プロトコル、および通信プロトコルによる通信ハードウェアの動作、を制御する命令および他のソフトウェアを含む。特定の用途に応じて、他の通信経路プロトコルが利用されてもよいということが理解される。
【００５１】
図３のホスト１ａによって表されるような典型的なホストは、ＣＰＵ複合体２０２、および、ストレージ・コントローラ４、４ａ、４ｂ、４ｃを介してストレージ１０（図２）、１０ａ、１０ｂ、１０ｃからデータを読み込み、ストレージにデータ更新を書き込むように協働するオペレーティング・システム２０６とアプリケーション２０８を含むメモリ２０４を含む。適切なオペレーティング・システムの例は、ｚ／ＯＳ（Ｒ）オペレーティング・システムである。特定の用途に応じて、他のタイプのオペレーティング・システムが用いられてもよいということが理解される。
【００５２】
図４は、データ・ストレージ・システムの全体的な性能を改善するために、実質的に同時に、および実質的に単一の同期されたセット・インターバルで、セーフ・データ・コミット・スキャン動作のセットが発生するように、複数のデータ・ストレージ・システムのそれぞれにおけるセーフ・データ・コミット・スキャン・ロジック４０のセーフ・データ・コミット・スキャン動作のセットを同期する際の、１次データ・ストレージ・システムの同期ロジック３４（図２）の自動的動作の１つの例を描写する。例えば、セーフ・データ・コミット・スキャン動作のセットは、実質的に同時に、および実質的に単一の同期されたセット・インターバルで発生するので、セーフ・データ・コミット・スキャン動作のセットによるＩ／Ｏレスポンス時間の、結果として生じる何らかの低減は同様に、実質的に同じ時間インターバルで発生し、インターバルの範囲外のセーフ・データ・コミット・スキャン動作のセットのインパクトを低減または除去する。図４に描写された１次データ・ストレージ・システム２ａの動作は、図８および図９にそれぞれ描写された、２次および３次データ・ストレージ・システム２ｂおよび２ｃそれぞれのものと、同時発生して同期され、同時進行して動作する。
【００５３】
図５は、１次データ・ストレージ・システム２ａ（図１）、２次データ・ストレージ・システム２ｂ、および３次データ・ストレージ・システム２ｃそれぞれにおけるセーフ・データ・コミット・スキャン・ロジック４０によってそれぞれ行われる、セーフ・データ・コミット・スキャン動作の第１のセットである１次セーフ・データ・コミット・スキャン１、２次セーフ・データ・コミット・スキャン２、および、３次セーフ・データ・コミット・スキャン３の例を描写する。各セーフ・データ・コミット・スキャン動作であるスキャン１（図５）、スキャン２、スキャン３は、関連付けられたデータ・ストレージ・システム２ａ（図１）、２ｂ、２ｃそれぞれのキャッシュ２８（図２）にキャッシュされたデータを、関連付けられたデータ・ストレージ・システム２ａ、２ｂ、２ｃそれぞれのデータ・ストレージ・ユニット１０ａ、１０ｂ、１０ｃそれぞれにデステージする。
【００５４】
図５、図６は、水平の時間軸「時間」に平行に向けられた、３つの水平のタイムラインである１次タイムライン１、２次タイムライン２、３次タイムライン３それぞれにおける、各データ・ストレージ・システム２ａ、２ｂ、２ｃにおける同期ロジック３４およびセーフ・データ・コミット・スキャン・ロジック４０の自動的動作を描写する。図５に示されるように、セーフ・データ・コミット・スキャン動作の第１のセットであるスキャン１、スキャン２、スキャン３は、データ・ストレージ・システム２ａ、２ｂ、２ｃにおけるセーフ・データ・コミット・スキャン動作によって引き起こされる、同期されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ１の範囲外の入出力レスポンス時間の低下の発生を低減または除去するために、単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ１の中でタイムラインが実質的に重複するように同期してタイミングを合わされる。比較すると、以前のデータ・ストレージ・システムでは、１次、２次、および３次データ・ストレージ・システムのそれぞれは、典型的には、非同期式独立タイマーによって独立してセーフ・データ・コミット・スキャンを開始した。その結果、データ複製動作のレスポンス時間の悪化は、分散型データ・ストレージ・システムの様々なデータ・ストレージ・システムの各非同期式非重複セーフ・データ・コミット・スキャン動作に対する複数の非重複インターバルにおいて独立して発生する可能性がある。したがって、以前のシステムのオペレータは、複数の非同期されたセーフ・データ・コミット・スキャン動作によるレスポンス時間の複数の明らかな急上昇に遭遇する可能性がある。
【００５５】
図５の例では、１次データ・ストレージ・システム２ａの同期ロジック３４は、１次データ・ストレージ・システムにおける同期タイマー・インターバルを開始する（ブロック４１０、図４）ように構成される。例えば、図５は、１次データ・ストレージ・システム２ａ（図１）の１次タイムライン１における時間Ｔ０において開始された１次同期タイマー・インターバル＿０を描写する。１つの実施形態において、タイマー・インターバル＿０は、本明細書においてグローバル同期タイマー・インターバルとも呼ばれ、例えば１時間、セットされてもよい。特定の用途に応じて、他の持続期間が選択されてもよいということが理解される。下記で詳細に説明されるように、本明細書において、１次データ・ストレージ・システムの同期タイマー・インターバルは、セーフ・データ・コミット・スキャン動作の各セットの全てのセーフ・データ・コミット・スキャン動作のタイミングに影響を及ぼす可能性があるので、「グローバル」と呼ばれる。
【００５６】
グローバル同期タイマー・インターバル＿０（図５）が満了すると（ブロック４１４、図４）、１次データ・ストレージ・システム２ａの同期ロジック３４は、１次タイムライン１におけるセーフ・データ・コミット・スキャン（ＳＤＣＳ）動作を、１次データ・ストレージ・システムにおいて開始する（４１８、図５）ように構成される。図５の例では、ＳＤＣＳ動作の第１のセットのセーフ・データ・コミット・スキャン動作であるスキャン１は、１次データ・ストレージ・システム２ａ（図１）において時間Ｓ１に開始され、時間Ｓ１は、ＳＤＣＳ動作の第１のセットに対する同期されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ１の始まりを示す。セーフ・データ・コミット・スキャン（ＳＤＣＳ）動作であるスキャン１は、１次データ・ストレージ・システム２ａの同期ロジック３４によって開始される（ブロック４１８、図４）のに応答して、１次データ・ストレージ・システムのセーフ・データ・コミット・スキャン・ロジック４０によって行われる。
【００５７】
１次データ・ストレージ・システム２ａの同期ロジック３４が、１次データ・ストレージ・システム２ａにおいてセーフ・データ・コミット・スキャン（ＳＤＣＳ）動作を開始する（４１８、図５）のと同じ時間Ｓ１にまたはほぼ同じ時間Ｓ１に、１次データ・ストレージ・システム２ａの同期ロジック３４は、スタート・セーフ・データ・コミット・スキャン（ＳＤＣＳ）メッセージを２次データ・ストレージ・システムに送信する（ブロック４２２、図４）ようにさらに構成される。図５の例では、「スタートＳＤＣＳメッセージ１」が時間Ｓ１に、２次データ・ストレージ・システム２ｂ（図１）に送信される。
【００５８】
図８について下記でより詳細に説明されるように、２次データ・ストレージ・システム２ｂは、１次データ・ストレージ・システムからのスタートＳＤＣＳメッセージ１を使用して、１次データ・ストレージ・システム２ａにおける同時発生かつ同時進行のセーフ・データ・コミット・スキャン動作（１次セーフ・データ・コミット・スキャン１）と、２次データ・ストレージ・システム２ｂにおけるセーフ・データ・コミット・スキャン動作を同期して開始する。その結果、セーフ・データ・コミット・スキャン動作であるスキャン１とスキャン２の両方が、セーフ・データ・コミット・スキャン動作の第１のセットに対する単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ１において発生する。同様に、図９について下記でより詳細に説明されるように、２次データ・ストレージ・システム２ｂは、さらに、スタートＳＤＣＳメッセージであるスタートＳＤＣＳメッセージ２を３次データ・ストレージ・システムに送信し、３次データ・ストレージ・システムは、２次データ・ストレージ・システムからのスタートＳＤＣＳメッセージ２を使用して、１次データ・ストレージ・システム２ａおよび２次データ・ストレージ・システム２ｂそれぞれにおける同時発生かつ同時進行のセーフ・データ・コミット・スキャン動作（１次セーフ・データ・コミット・スキャン１および２次セーフ・データ・コミット・スキャン２）と、３次データ・ストレージ・システム２ｃにおけるセーフ・データ・コミット・スキャン動作を同期して開始する。その結果、ＳＤＣＳ動作の第１のセットの３つの同期されたセーフ・データ・コミット・スキャン動作であるスキャン１、スキャン２、およびスキャン３全ては、セーフ・データ・コミット・スキャン動作の第１のセットに対する単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ１において発生する。
【００５９】
図８に描写された２次データ・ストレージ・システム２ｂの同期ロジック３４の自動的動作、および図９に描写された３次データ・ストレージ・システム２ｃの同期ロジック３４の自動的動作に移る前に、１次データ・ストレージ・システム２ａの同期ロジック３４は、セーフ・データ・コミット・スキャン動作（この例ではスキャン１）が完了したかどうかを判定する（ブロック４２６、図４）ように構成されるということに留意されたい。完了した場合、セーフ・データ・コミット・スキャン動作であるスキャン１の開始時間、この例ではＳ１（図５）は、ログ記録動作であるログ１（図５）で、適切なセーフ・データ・コミット・スキャン・ログにタイムスタンプとしてログ記録される（ブロック４３０、図４）。この例では、セーフ・データ・コミット・スキャン動作であるスキャン１の完了、および、セーフ・データ・コミット・スキャン・スタート・タイムスタンプＳ１のログ記録は、セーフ・データ・コミット・スキャン・スタート時間Ｓ１より前に、１次データ・ストレージ・システム２ａのキャッシュ２８に書き込まれたどのようなものも、１次データ・ストレージ・システム２ａのストレージ１０ａに成功裏にデステージされ、安全に格納されたことをオペレータに保証することを可能にする。
【００６０】
また、１次データ・ストレージ・システム２ａの同期ロジック３４は、セーフ・データ・コミット・スキャン動作、この例ではスキャン１が完了すると、１次データ・ストレージ・システム２ａにおいて、別のグローバル同期タイマー・インターバルである１次グローバル・タイマー・インターバル１（図５、図６）を時間Ｉ１に開始する（ブロック４１０、図４）ように構成される。１つの実施形態において、グローバル・タイマー・インターバル１は、例えば１時間など、最初のグローバル同期タイマー・インターバル＿０と同じ持続期間、セットされてもよい。特定の用途に応じて、他の持続期間が選択されてもよいということが理解される。下記でより詳細に説明されるように、次のグローバル同期タイマー・インターバル１が満了すると、上述の処理は、ＳＤＣＳ動作の別のセットに対して、１次データ・ストレージ・システム２ａにおいて繰り返す。
【００６１】
次に、図４および図９それぞれに描写された１次および３次データ・ストレージ・システム２ａおよび２ｃそれぞれのものと同期され、同時発生する２次データ・ストレージ・システム２ｂの動作に移ると、図８は、複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作のセットを同期する際の、２次データ・ストレージ・システムの同期ロジック３４の自動的動作の例を描写する。２次データ・ストレージ・システムの同期ロジック３４の動作は、複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の各セットを同期する際に、１次および３次データ・ストレージ・システムのそれぞれの同期ロジック３４の動作と同期してかつ同時進行して動作する。
【００６２】
２次データ・ストレージ・システム２ｂの同期ロジック３４は、１次データ・ストレージ・システムによって２次データ・ストレージ・システムに送信された（ブロック４２２、図４）スタート・セーフ・データ・コミット・スキャン（ＳＤＣＳ）メッセージを受信する（ブロック４５０、図８）ように構成される。図５の例では、「スタートＳＤＣＳメッセージ１」が、時間Ｓ１にまたはほぼ時間Ｓ１に、１次データ・ストレージ・システム２ａによって送信され（１次セーフ・データ・コミット・スキャン１のスタート）、１次データ・ストレージ・システム２ａから２次データ・ストレージ・システム２ｂへの伝送遅延の量に応じて、同じ時間Ｓ１またはほぼ同じ時間Ｓ１である、時間Ｓ２におけるまたはほぼ時間Ｓ２における時間に、２次データ・ストレージ・システム２ｂ（図１）によって受信される。１次データ・ストレージ・システム２ａから２次データ・ストレージ・システム２ｂへの伝送遅延の量は、１次データ・ストレージ・システム２ａと２次データ・ストレージ・システム２ｂとの間にある地理的距離および他の信号伝送要因に応じて、例えば、無視できるほどの秒からおよそ数秒まで、変化してもよいということが理解される。特定の用途および環境に応じて、より長いまたはより短い遅延に遭遇することもある。
【００６３】
２次データ・ストレージ・システム２ｂにおいて「スタートＳＤＣＳメッセージ１」が受信されるのに応答して、２次データ・ストレージ・システム２ｂの同期ロジック３４は、２次データ・ストレージ・システムにおける２次タイムライン２の、この例では時間Ｓ２に、セーフ・データ・コミット・スキャン（ＳＤＣＳ）動作を開始する（ブロック４５４、図８）ようにさらに構成される。図５の例では、２次データ・ストレージ・システムにおいて開始されたＳＤＣＳ動作は、２次データ・ストレージ・システム２ｂ（図１）における２次セーフ・データ・コミット・スキャン動作であるスキャン２である。その結果、１次データ・ストレージ・システム２ａおよび２次データ・ストレージ・システム２ｂそれぞれのセーフ・データ・コミット・スキャン動作であるスキャン１とスキャン２の両方が、セーフ・データ・コミット・スキャン動作の第１のセットに対する単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ１において発生する。セーフ・データ・コミット・スキャン（ＳＤＣＳ）動作であるスキャン２は、２次データ・ストレージ・システム２ｂの同期ロジック３４によって開始される（ブロック４５４、図８）のに応答して、２次データ・ストレージ・システムのセーフ・データ・コミット・スキャン・ロジック４０によって行われる。
【００６４】
２次データ・ストレージ・システム２ｂにおけるセーフ・データ・コミット・スキャン（ＳＤＣＳ）動作であるスキャン２を、２次データ・ストレージ・システム２ｂの同期ロジック３４が開始する（４５４、図５）のと同じ時間Ｓ２にまたはほぼ同じ時間Ｓ２に、２次データ・ストレージ・システム２ｂの同期ロジック３４は、スタート・セーフ・データ・コミット・スキャン（ＳＤＣＳ）メッセージを３次データ・ストレージ・システムに送信する（ブロック４５８、図８）ようにさらに構成される。図５の例では、「スタートＳＤＣＳメッセージ２」が、２次データ・ストレージ・システム２ｂによって、３次データ・ストレージ・システム２ｃ（図１）に送信される。
【００６５】
図９について下記でより詳細に説明されるように、３次データ・ストレージ・システム２ｃは、２次データ・ストレージ・システムからのスタートＳＤＣＳメッセージ２を使用して、２次データ・ストレージ・システム２ｂにおける同時発生かつ同時進行のセーフ・データ・コミット・スキャン動作（２次セーフ・データ・コミット・スキャン２）と、３次データ・ストレージ・システム２ｃにおけるセーフ・データ・コミット・スキャン動作を同期して開始する。上記に示されたように、２次データ・ストレージ・システム２ｂにおけるセーフ・データ・コミット・スキャン動作であるスキャン２は、さらに、１次データ・ストレージ・システム２ａにおける同時発生かつ同時進行のセーフ・データ・コミット・スキャン動作（１次セーフ・データ・コミット・スキャン１）と同期される。その結果、データ・ストレージ・システム２ａ、２ｂ、２ｃそれぞれのセーフ・データ・コミット・スキャン動作であるスキャン１、スキャン２、およびスキャン３は、実質的に同時発生かつ同時進行して動くように同期される。したがって、ＳＤＣＳ動作の第１のセットの３つの同期されたセーフ・データ・コミット・スキャン動作であるスキャン１、スキャン２、およびスキャン３全ては、セーフ・データ・コミット・スキャン動作の第１のセットに対する単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ１において発生する。その結果、セーフ・データ・コミット・スキャン動作の第１のセットにより低下したレスポンス時間のいずれかのインターバルは、同様に、同期されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ１に対して実質的に同時発生し、実質的に限定される。
【００６６】
２次データ・ストレージ・システム２ｂの同期ロジック３４は、２次データ・ストレージ・システム２ｂのセーフ・データ・コミット・スキャン動作（この例ではスキャン２）が完了したかどうかを判定する（ブロック４６２、図８）ように構成される。完了した場合、セーフ・データ・コミット・スキャン動作であるスキャン２の開始時間、この例ではＳ２（図５）は、ログ記録動作であるログ２（図５）で、適切なセーフ・データ・コミット・スキャン・ログにタイムスタンプとしてログ記録される（ブロック４６６、図８）。この例では、セーフ・データ・コミット・スキャン動作であるスキャン２の完了と、セーフ・データ・コミット・スキャン・スタート・タイムスタンプＳ２のログ記録は、スキャン２のセーフ・データ・コミット・スキャン・スタート時間Ｓ２より前に、２次データ・ストレージ・システム２ｂのキャッシュ２８に書き込まれたどのようなものも、２次データ・ストレージ・システム２ｂのストレージ１０ｂに成功裏にデステージされ、安全に格納されたことをオペレータに保証することを可能にする。
【００６７】
２次データ・ストレージ・システム２ｂの同期ロジック３４は、２次データ・ストレージ・システム２ｂにおける２次セーフ・データ・コミット・スキャン２が完了すると、２次データ・ストレージ・システム２ｂにおいて、別の同期タイマー・インターバルである２次ローカル・タイマー・インターバル２（図５、図６）を開始する（ブロック４６６、図８）ようにさらに構成される。２次データ・ストレージ・システム２ｂおよび３次データ・ストレージ・システム２ｃの同期タイマー・インターバルは、これらの同期タイマー・インターバルによる同期タイミングへの影響が、１次データ・ストレージ・システムのグローバル・タイマー・インターバルよりローカルなものであってもよいので、本明細書では「グローバル」ではなく「ローカル」と呼ばれる。
【００６８】
２次ローカル・タイマー・インターバル２は、２次データ・ストレージ・システム２ｂ（図１）の２次タイムライン２における時間Ｉ２に開始される。下記でより詳細に説明されるように、次のローカル同期タイマー・インターバル２の満了は、スタートＳＤＣＳメッセージをタイムリに受信できなかったにもかかわらず、ＳＤＣＳ動作の別のセットに対して、２次データ・ストレージ・システム２ｂにおいて上述の処理が繰り返すのを可能にすることができる。
【００６９】
本明細書の１つの実施形態において、１次データ・ストレージ・システム２ａから２次データ・ストレージ・システム２ｂにおいて受信された「スタートＳＤＣＳメッセージ１」は、同期されたタイマー・インターバル持続期間パラメータ・データを含む。１つの実施形態において、１次データ・ストレージ・システム２ａからのスタートＳＤＣＳメッセージ１にパッケージされた、同期されたタイマー・インターバル持続期間データは、１次データ・ストレージ・システム２ａの同期している１次グローバル・タイマー・インターバル１のインターバルを定義する。２次データ・ストレージ・システム２ｂの同期ロジック３４は、１次データ・ストレージ・システム２ａからのスタートＳＤＣＳメッセージ１の中で１次データ・ストレージ・システム２ａから受信された、同期されたタイマー・インターバル持続期間データに応じて、２次データ・ストレージ・システム２ｂにおける２次ローカル・タイマー・インターバル２（図５、図６）の持続期間をセットするようにさらに構成される。したがって、１つの実施形態において、２次データ・ストレージ・システム２ｂにおける２次ローカル・タイマー・インターバル２（図５、図６）の持続期間は、１次データ・ストレージ・システム２ａにおける１次グローバル同期タイマー・インターバル１（図５、図６）の持続期間より長い、小さいパーセンテージ（例えば１０％〜２０％など）または短い時間（例えば５分〜１０分など）になるようにセットされてもよい。したがって、１つの実施形態において、タイマー・インターバル２は、例えば１時間より長い、小さいパーセンテージまたは短い時間にセットされてもよい。特定の用途に応じて、他の持続期間が選択されてもよいということが理解される。
【００７０】
２次同期タイマー・インターバル２の持続期間を、１次同期タイマー・インターバル１の持続期間に近いものにセットすることは、比較的制約されたセーフ・データ・コミット・スキャン・セット・インターバルにとどまるように、同期されたＳＤＣＳ動作の第１のセットのＳＤＣＳ動作であるスキャン１およびスキャン２を同期させることを容易にするということが理解される。同時に、２次同期タイマー・インターバル２の持続期間が、１次同期タイマー・インターバル１の持続期間よりわずかに大きくなるようにセットすることは、下記で詳細に説明されるように、２次および３次データ・ストレージ・システムにおける同期インターバルの満了ではなく、スタートＳＤＣＳメッセージに基づいて、２次および３次データ・ストレージ・システムのＳＤＣＳ動作を同期させることを容易にするということが理解される。
【００７１】
次に、図４と図８それぞれに描写された１次および２次データ・ストレージ・システム２ａおよび２ｂそれぞれの動作と同期され、同時発生する３次データ・ストレージ・システム２ｃの動作に移ると、図９は、複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の各セットを同期する際の、３次データ・ストレージ・システムの同期ロジック３４の自動的動作の例を描写する。３次データ・ストレージ・システムの同期ロジック３４の動作は、複数のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の各セットを同期する際に、１次および２次データ・ストレージ・システムのそれぞれの同期ロジック３４の動作と同期してかつ同時進行して動作する。
【００７２】
２次データ・ストレージ・システム２ｂについて上述されたものに類似の様式で、３次データ・ストレージ・システム２ｃの同期ロジック３４は、２次データ・ストレージ・システムによって３次データ・ストレージ・システムに送信された（ブロック４５８、図８）スタート・セーフ・データ・コミット・スキャン（ＳＤＣＳ）メッセージを受信する（ブロック５０４、図９）ように構成される。図５の例では、「スタートＳＤＣＳメッセージ２」が、時間Ｓ２にまたはほぼ時間Ｓ２に、２次データ・ストレージ・システム２ｂによって送信され、２次データ・ストレージ・システム２ｂから３次データ・ストレージ・システム２ｃへの伝送遅延の量に応じて、同じ時間Ｓ２またはほぼ同じ時間Ｓ２である、時間Ｓ３にまたはほぼ時間Ｓ３に、３次データ・ストレージ・システム２ｃ（図１）によって受信される。２次データ・ストレージ・システム２ｂから３次データ・ストレージ・システム２ｃへの伝送遅延の量は、例えば、２次データ・ストレージ・システム２ｂと３次データ・ストレージ・システム２ｃとの間にある地理的距離および他の信号伝送要因に応じて、例えば、無視できるほどの秒からおよそ数秒まで、変化してもよいということが理解される。特定の用途および環境に応じて、より長いまたはより短い遅延に遭遇することもある。
【００７３】
３次データ・ストレージ・システム２ｃにおいて「スタートＳＤＣＳメッセージ２」が受信されるのに応答して、３次データ・ストレージ・システム２ｃの同期ロジック３４は、３次データ・ストレージ・システムにおける３次タイムライン３の、この例では時間Ｓ３に、セーフ・データ・コミット・スキャン（ＳＤＣＳ）動作を開始する（ブロック５０８、図９）ようにさらに構成される。図５の例では、３次データ・ストレージ・システムにおいて開始されたＳＤＣＳ動作は、３次データ・ストレージ・システム２ｃ（図１）における３次セーフ・データ・コミット・スキャン動作であるスキャン３である。その結果、１次データ・ストレージ・システム２ａ、２次データ・ストレージ・システム２ｂ、および３次データ・ストレージ・システム２ｃそれぞれの、３つの同期されたセーフ・データ・コミット・スキャン動作であるスキャン１、スキャン２、およびスキャン３全ては、セーフ・データ・コミット・スキャン動作の第１の同期されたセットに対する単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ１において発生する。セーフ・データ・コミット・スキャン（ＳＤＣＳ）動作であるスキャン３は、３次データ・ストレージ・システム２ｃの同期ロジック３４によって開始される（ブロック５０８、図９）のに応答して、３次データ・ストレージ・システムのセーフ・データ・コミット・スキャン・ロジック４０によって行われる。
【００７４】
３次データ・ストレージ・システム２ｃの同期ロジック３４は、３次データ・ストレージ・システム２ｃのセーフ・データ・コミット・スキャン動作（この例ではスキャン３）が完了したかどうかを判定する（ブロック５１２、図９）ように構成される。完了した場合、セーフ・データ・コミット・スキャン動作であるスキャン３の開始時間、この例ではＳ３（図５）は、ログ記録動作であるログ３（図５）で、適切なセーフ・データ・コミット・スキャン・ログにタイムスタンプとしてログ記録される（ブロック５１６、図９）。この例では、セーフ・データ・コミット・スキャン動作であるスキャン３の完了、および、セーフ・データ・コミット・スキャン・スタート・タイムスタンプＳ３のログ記録は、スキャン３のセーフ・データ・コミット・スキャン・スタート時間Ｓ３より前に、３次データ・ストレージ・システム２ｃのキャッシュ２８に書き込まれたどのようなものも、３次データ・ストレージ・システム２ｃのストレージ１０ｃに成功裏にデステージされ、安全に格納されたことをオペレータに保証することを可能にする。
【００７５】
セーフ・データ・コミット・スキャン動作の第１のセットの最後のセーフ・データ・コミット・スキャン動作の完了は、セーフ・データ・コミット・スキャン動作の第１のセットに対する同期されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ１の終わりを示す。図５の例では、３次データ・ストレージ・システム２ｃの３次セーフ・データ・コミット・スキャン動作であるスキャン３の完了は、セーフ・データ・コミット・スキャン動作の第１のセットに対する同期されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ１の終わりを示す。最後に完了することになるセーフ・データ・コミット・スキャン動作の同期されたセットの特定のセーフ・データ・コミット・スキャン動作は、各セーフ・データ・コミット・スキャン動作における正確な開始時間、およびデステージされることになるデータの量、ならびに、個々のデータ・ストレージ・システムの他の動作条件に応じて、変化することもあるということが理解される。それでも、動作のセットのセーフ・データ・コミット動作の時間の重複の量は、本明細書による同期動作によって実質的に増加しても、最大化してもよい。したがって、この例では、ＳＤＣＳ動作の第１の同期されたセットの、３つの同期されたセーフ・データ・コミット・スキャン動作であるスキャン１、スキャン２、およびスキャン３全ては、セーフ・データ・コミット・スキャン動作の第１の同期されたセットに対する単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ１において発生するように、時間が実質的に重複し、実質的に同時発生する。その結果、セーフ・データ・コミット・スキャン動作により低下したレスポンス時間のいずれかのインターバルは、同様に、システム性能を改善するために、同期されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ１に対して実質的に同時発生し、実質的に限定される。
【００７６】
３次データ・ストレージ・システム２ｃの同期ロジック３４は、３次データ・ストレージ・システム２ｃにおける３次セーフ・データ・コミット・スキャン３が完了すると、３次データ・ストレージ・システム２ｃにおいて、別の同期タイマー・インターバルである３次ローカル・タイマー・インターバル３（図５、図６）を開始する（ブロック５１６、図９）ようにさらに構成される。３次ローカル・タイマー・インターバル３は、３次データ・ストレージ・システム２ｃ（図１）の３次タイムライン３における時間Ｉ３に開始される。下記でより詳細に説明されるように、次のローカル同期タイマー・インターバル３の満了は、スタートＳＤＣＳメッセージをタイムリに受信できなかったにもかかわらず、ＳＤＣＳ動作の別の同期されたセットに対して、３次データ・ストレージ・システム２ｃにおいて上述の処理が繰り返すのを可能にすることができる。
【００７７】
図６は、１次データ・ストレージ・システム２ａ（図１）、２次データ・ストレージ・システム２ｂ、および３次データ・ストレージ・システム２ｃのそれぞれにおけるセーフ・データ・コミット・スキャン・ロジック４０によってそれぞれ行われる、セーフ・データ・コミット・スキャン動作の第２の同期されたセットである１次セーフ・データ・コミット・スキャン４、２次セーフ・データ・コミット・スキャン５、および３次セーフ・データ・コミット・スキャン６の例を描写する。ここでも、各セーフ・データ・コミット・スキャン動作であるスキャン４（図６）、スキャン５、スキャン６は、関連付けられたデータ・ストレージ・システム２ａ（図１）、２ｂ、２ｃそれぞれのキャッシュ２８（図２）にキャッシュされたデータを、関連付けられたデータ・ストレージ・システム２ａ、２ｂ、２ｃそれぞれのデータ・ストレージ・ユニット１０ａ、１０ｂ、１０ｃそれぞれにデステージする。
【００７８】
図６は、セーフ・データ・コミット・スキャン動作の別のセットを同期させることについて、３つの水平タイムラインである１次タイムライン１、２次タイムライン２、３次タイムライン３それぞれに、各データ・ストレージ・システム２ａ、２ｂ、２ｃにおける同期ロジック３４およびセーフ・データ・コミット・スキャン・ロジック４０のさらなる動作を描写する。図６に示されたように、セーフ・データ・コミット・スキャン動作の第２の同期されたセットであるスキャン４、スキャン５、スキャン６は、図５について説明されたセーフ・データ・コミット・スキャン動作の第１の同期されたセットのように、データ・ストレージ・システム２ａ、２ｂ、２ｃにおけるセーフ・データ・コミット・スキャン動作によって引き起こされる、同期されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ２の範囲外の入出力レスポンス時間の低下の発生を低減または除去するために、単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ２の中でタイムラインが実質的に重複するように同期してタイミングを合わされる。
【００７９】
図４、および、１次データ・ストレージ・システム２ａの同期ロジック３４の自動的動作に戻ると、上述のように、１次データ・ストレージ・システム２ａの同期ロジック３４は、１次データ・ストレージ・システム２ａのセーフ・データ・コミット・スキャン動作であるスキャン１が完了すると、データ・ストレージ・システム２ａ、２ｂ、２ｃのセーフ・データ・コミット・スキャン動作の別のセットを同期するために、１次データ・ストレージ・システム２ａにおいて、別の同期タイマー・インターバルである１次グローバル・タイマー・インターバル１（図５、図６）を時間Ｉ１（図５）に開始する（ブロック４１０、図４）。タイマー・インターバル１（図６）が満了すると（ブロック４１４、図４）、１次データ・ストレージ・システム２ａの同期ロジック３４は、同期されたセーフ・データ・コミット・スキャン（ＳＤＣＳ）動作の次のセットの１次セーフ・データ・コミット・スキャン動作を開始する（４１８、図５）。図６の例では、同期されたＳＤＣＳ動作の次のセットは、１次セーフ・データ・コミット・スキャン（ＳＤＣＳ）動作であるスキャン４を、１次データ・ストレージ・システムにおける１次タイムライン１に含む。図６に示されるように、セーフ・データ・コミット・スキャン動作であるスキャン４は、１次データ・ストレージ・システム２ａ（図１）において時間Ｓ４に開始され、同期されたＳＤＣＳ動作の第２のセットに対する同期されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ２の始まりを示す。
【００８０】
さらに、１次データ・ストレージ・システム２ａにおいて別のセーフ・データ・コミット・スキャン（ＳＤＣＳ）動作を、１次データ・ストレージ・システム２ａの同期ロジック３４が開始する（４１８、図６）のと同じ時間Ｓ４にまたはほぼ同じ時間Ｓ４に、１次データ・ストレージ・システム２ａの同期ロジック３４は、別のスタート・セーフ・データ・コミット・スキャン（ＳＤＣＳ）メッセージを２次データ・ストレージ・システムに送信する（ブロック４２２、図４）。図６の例では、「スタートＳＤＣＳメッセージ３」が、時間Ｓ４にまたはほぼ時間Ｓ４に、２次データ・ストレージ・システム２ｂ（図１）に送信される。図８について下記でより詳細に説明されるように、２次データ・ストレージ・システム２ｂは、１次データ・ストレージ・システム２ａからのスタートＳＤＣＳメッセージ３を使用して、１次データ・ストレージ・システム２ａにおける同期されたＳＤＣＳ動作の次のセットの同時発生かつ同時進行の１次セーフ・データ・コミット・スキャン動作であるスキャン５と、同期されたＳＤＣＳ動作の次のセットのセーフ・データ・コミット・スキャン動作を、２次データ・ストレージ・システム２ｂにおいて同期する。
【００８１】
図８、および、２次データ・ストレージ・システム２ｂの同期ロジック３４の自動的動作に戻ると、２次データ・ストレージ・システム２ｂの同期ロジック３４は、２次データ・ストレージ・システム２ｂにおける２次セーフ・データ・コミット・スキャン２（図５）が完了すると、２次データ・ストレージ・システム２ｂ（図１）の２次タイムライン２における時間Ｉ２（図５）に、２次データ・ストレージ・システムにおける同期タイマー・インターバルである２次ローカル・タイマー・インターバル２（図５、図６）を開始する（ブロック４６６、図８）。２次データ・ストレージ・システム２ｂの同期ロジック３４は、１次データ・ストレージ・システムによって２次データ・ストレージ・システム２ｂに送信された（ブロック４２２、図４）次のスタート・セーフ・データ・コミット・スキャン（ＳＤＣＳ）メッセージであるスタートＳＤＣＳメッセージ３が受信されたかどうかを判定する（ブロック４８０、図８）ように構成される。図６の例では、「スタートＳＤＣＳメッセージ３」が、１次データ・ストレージ・システム２ａによって送信され、同期している２次ローカル・タイマー・インターバル２の満了前に、２次データ・ストレージ・システム２ｂによって受信される。前述のように、２次データ・ストレージ・システム２ｂにおける２次ローカル・タイマー・インターバル２（図５、図６）の持続期間は、１つの実施形態において、１次データ・ストレージ・システムの同期している１次グローバル・タイマー・インターバル１の持続期間のものよりわずかに長くなるようにセットされてもよい。その結果、同期されたＳＤＣＳ動作の典型的なセットにおいて、スタートＳＤＣＳメッセージは、２次データ・ストレージ・システムの同期している２次ローカル・タイマー・インターバルの満了前に、１次データ・ストレージ・システムから受信されることになる。
【００８２】
２次データ・ストレージ・システム２ｂにおいて「スタートＳＤＣＳメッセージ３」が時間Ｓ５に受信されるのに応答して、２次データ・ストレージ・システム２ｂの同期ロジック３４は、（ローカル・タイマー・インターバル２の末端のハッシュで示された部分によって表されるような）ローカル・タイマー・インターバル２をリセット（ブロック４８２）し、２次データ・ストレージ・システムにおける２次タイムライン２の、この例では時間Ｓ５に、別のセーフ・データ・コミット・スキャン（ＳＤＣＳ）動作であるスキャン５を開始する（ブロック４５４、図８）。その結果、１次データ・ストレージ・システム２ａおよび２次データ・ストレージ・システム２ｂそれぞれのセーフ・データ・コミット・スキャン動作であるスキャン４とスキャン５の両方が、セーフ・データ・コミット・スキャン動作の第２の同期されたセットに対する単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ２の中で発生する。
【００８３】
さらに、スタート・セーフ・データ・コミット・スキャン・メッセージ３を受信すると、ローカル・タイマー・インターバル２がリセット（ブロック４８２）されるので、セーフ・データ・コミット・スキャン動作は、その後のローカル同期タイマー・インターバル２の満了に応答して再び開始されるのではなく、受信されたスタート・メッセージ３によってのみ開始される（ブロック４５４）。このように、特定のデータ・ストレージ・システムの各セーフ・データ・コミット・スキャン動作は、例えば、セーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ２などの任意の１つのセーフ・データ・コミット・スキャン・セット・インターバルにおいて、スタート・メッセージ、またはローカル同期タイマー・インターバルの満了、の両方ではなく、どちらかによって開始される。
【００８４】
さらに、２次データ・ストレージ・システム２ｂの同期ロジック３４は、図５のスタートＳＤＣＳメッセージ２について上述されたものに類似の様式で、別のスタート・セーフ・データ・コミット・スキャン・メッセージであるスタートＳＤＣＳメッセージ４（図６）を３次ストレージ・システムに送信する（ブロック４５８、図８）。３次データ・ストレージ・システム２ｃにおいて「スタートＳＤＣＳメッセージ４」（図６）が受信される（ブロック５２４、図９）のに応答して、３次データ・ストレージ・システム２ｃの同期ロジック３４は、ローカル・タイマー・インターバル３をリセット（ブロック５２６）し、３次データ・ストレージ・システムにおける３次タイムライン３の、この例では時間Ｓ６に、別のセーフ・データ・コミット・スキャン（ＳＤＣＳ）動作であるスキャン６を開始する（ブロック５０８、図９）。その結果、１次データ・ストレージ・システム２ａ、２次データ・ストレージ・システム２ｂ、および３次データ・ストレージ・システム２ｃそれぞれの３つの同期されたセーフ・データ・コミット・スキャン動作であるスキャン４、スキャン５、およびスキャン６全ては、セーフ・データ・コミット・スキャン動作の第２の同期されたセットに対する単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ２の中で発生する。
【００８５】
２次データ・ストレージ・システム２ｂについて上述されたものに類似の様式で、ローカル・タイマー・インターバル３は、ローカル同期タイマー・インターバル３のその後の満了に応答して再び開始されるのではなく、受信されたスタート・メッセージ４によってのみ、セーフ・データ・コミット・スキャン動作が開始されるように、時間Ｓ６にリセット（ブロック５２６）される。このように、各セーフ・データ・コミット・スキャン動作は、例えば、セーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ２などの任意の１つのセーフ・データ・コミット・スキャン・セット・インターバルにおいて、任意の１つのデータ・ストレージ・システムにおける、スタート・メッセージ、またはローカル同期タイマー・インターバルの満了、の両方ではなく、どちらかによって開始される。
【００８６】
図７は、同期している２次ローカル・タイマー・インターバル２の満了後、時間Ｓ５’に、スタートＳＤＣＳメッセージ３’が、１次データ・ストレージ・システム２ａによって送信される、または、２次データ・ストレージ・システム２ｂによって受信される例を示す。スタートＳＤＣＳメッセージ３’は、図６のスキャン４およびスタートＳＤＣＳメッセージ３について上述されたものに類似の様式で、グローバル・タイマー・インターバル１の満了後に、および、１次セーフ・データ・コミット・スキャン４の開始に関連して、１次データ・ストレージ・システム２ａによって送信される。
【００８７】
スタートＳＤＣＳメッセージ３’は、ネットワークの混雑、および、１次データ・ストレージ・システム２ａにおける動作上の問題、を含む様々な要因により、２次データ・ストレージ・システム２ｂへの到着が遅れることがある。しかし、２次データ・ストレージ・システム２ｂにおける２次ローカル・タイマー・インターバル２（図５、図６）の持続期間は、１つの実施形態において、１次データ・ストレージ・システムの同期している１次グローバル・タイマー・インターバル１の持続期間のものよりわずかに長くなるようにセットされてもよいので、２次データ・ストレージ・システムにおける２次タイムライン２の、この例では時間Ｓ５’における、別のセーフ・データ・コミット・スキャン（ＳＤＣＳ）動作であるスキャン５’の開始（ブロック４５４、図８）の遅れは限定的である。
【００８８】
したがって、次のスタート・セーフ・データ・コミット・スキャン（ＳＤＣＳ）メッセージがまだ受信されていないことを、２次データ・ストレージ・システム２ｂの同期ロジック３４が判定する（ブロック４８０、図８）と、２次データ・ストレージ・システム２ｂの同期ロジック３４は、同期タイマー・インターバル２が満了しているかどうかを判定する（ブロック４８４、図８）。２次同期タイマー・インターバル２の満了（ブロック４８４、図８）、および、スタート・セーフ・データ・コミット・スキャン・メッセージ３が事前に受信されていないこと（ブロック４８０）に応答して、２次データ・ストレージ・システム２ｂの同期ロジック３４は、図７の２次データ・ストレージ・システムにおける２次タイムライン２の、この例では時間Ｓ５’に、別のセーフ・データ・コミット・スキャン（ＳＤＣＳ）動作であるスキャン５’（図７）を開始する（ブロック４５４、図８）。さらに、２次データ・ストレージ・システム２ｂの同期ロジック３４は、図５のスタートＳＤＣＳメッセージ２について上述されたものに類似の様式で、別のスタート・セーフ・データ・コミット・スキャン・メッセージであるスタートＳＤＣＳメッセージ４’（図７）を３次ストレージ・システムに送信する（ブロック４５８、図８）。
【００８９】
したがって、１次データ・ストレージ・システムからスタートＳＤＣＳメッセージ３’を事前に受信せずに、同期している２次ローカル・タイマー・インターバル２が満了すると、２次ＳＤＣＳ動作であるスキャン５’は、スタートＳＤＣＳメッセージ３’をさらに待たずに、開始されてもよい。その結果、スタートＳＤＣＳメッセージ３’の送信または受信の遅れにかかわらず、２次ＳＤＣＳ動作であるスキャン５’は、ＳＤＣＳ動作の第２のセットに対するセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ２の中で開始され、完了されてもよい。
【００９０】
図７のローカル・タイマー・インターバル２などのローカル・タイマー・インターバルの満了に応答して、例えば、スキャン５’などのセーフ・データ・コミット・スキャン動作が開始されると、メッセージ３’（図７）などの遅れたスタート・セーフ・データ・コミット・スキャン・メッセージのその後の受信は実質的に無視され、別のセーフ・データ・コミット・スキャン動作を開始するために使用されない。逆に、図６について上述されたように、ローカル・タイマー・インターバル２の満了前の、タイムリなスタート・セーフ・データ・コミット・スキャン・メッセージ３（図６）の受信に応答して、セーフ・データ・コミット・スキャン動作が開始されると、ローカル・タイマー・インターバル２は、上述のようにリセットされ、別のセーフ・データ・コミット・スキャン動作を開始するために使用されない。このように、２次データ・ストレージ・システム２ｂの各セーフ・データ・コミット・スキャン動作は、同じセーフ・データ・コミット・スキャン・セット・インターバルにおいて、スタートＳＤＣＳメッセージ、またはローカル同期タイマー・インターバルの満了、の両方ではなく、どちらかによって開始される。
【００９１】
代替実施形態において、同期している２次ローカル・タイマー・インターバル２の満了、および、同期している２次ローカル・タイマー・インターバル２の満了までに１次データ・ストレージ・システムから第２のスタート・セーフ・コミット・スキャン動作メッセージ３’が受信されていないこと、に応答して、２次データ・ストレージ・システム２ｂの同期ロジック３４は、セーフ・データ・コミット・スキャン動作の第２の同期されたセットの１次セーフ・データ・コミット・スキャン動作であるスキャン４のステータスを確かめるために、１次データ・ストレージ・システム２ａに接触するように構成されてもよい。１次データ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第２の同期されたセットのセーフ・データ・コミット・スキャン動作のステータスに応じて、第２のデータ・ストレージ・システムにおける時間の同期タイマー・インターバルのタイミング合わせをリセットするべきか、第２のデータ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作の第２の同期されたセットのセーフ・データ・コミット・スキャン動作を開始するべきかについて、２次データ・ストレージ・システム２ｂの同期ロジック３４によって決定されてもよい。
【００９２】
例えば、１次データ・ストレージ・システムからのステータス情報は、１次データ・ストレージ・システムと２次データ・ストレージ・システムとの間のコピー関係が依然として有効であること、または、様々な理由で終了したこと、を示してもよい。関係が終了していた場合、セーフ・データ・コミット・スキャン動作は、このような終了によって不要になっていた可能性がある。したがって、２次データ・ストレージ・システムにおける同期タイマー・インターバルはリセットされてもよい。逆に、１次データ・ストレージ・システムにおいてセーフ・データ・コミット・スキャンが進んでいることを１次データ・ストレージ・システムからのステータス情報が示す場合、スタート・セーフ・データ・コミット・スキャン・メッセージが、２次データ・ストレージ・システムによって受信されなかったことにかかわらず、同時発生かつ同時進行のセーフ・データ・コミット・スキャン動作が、２次データ・ストレージ・システムにおいて開始されてもよい。
【００９３】
図９、および、３次データ・ストレージ・システム２ｃの同期ロジック３４の動作に戻ると、３次データ・ストレージ・システム２ｃの同期ロジック３４は、３次データ・ストレージ・システム２ｃにおける３次セーフ・データ・コミット・スキャン３が完了すると（ブロック５１２、図９）、３次データ・ストレージ・システム２ｃ（図１）の３次タイムライン３における時間Ｉ３（図５）に、３次データ・ストレージ・システムにおける同期タイマー・インターバルである３次ローカル・タイマー・インターバル３（図５、図６）を開始する（ブロック５１６、図９）。３次データ・ストレージ・システム２ｃの同期ロジック３４は、２次データ・ストレージ・システム２ｂによって３次データ・ストレージ・システム２ｃに送信された（ブロック４５８、図８）次のスタート・セーフ・データ・コミット・スキャン（ＳＤＣＳ）メッセージであるスタートＳＤＣＳメッセージ４’が受信されたかどうかを判定する（ブロック５２４、図９）ように構成される。図７の例では、スタートＳＤＣＳメッセージ４’は、２次データ・ストレージ・システム２ｂによって送信されるか、または、同期している３次ローカル・タイマー・インターバル３の満了後、３次データ・ストレージ・システム２ｃによって受信される。比較すると、図６の例では、スタートＳＤＣＳメッセージ４は、２次データ・ストレージ・システム２ｂによって送信され、同期している３次ローカル・タイマー・インターバル３の満了前に、３次データ・ストレージ・システム２ｃによって受信される。
【００９４】
本明細書の１つの実施形態において、上記で論じられたスタートＳＤＣＳメッセージ１に類似の様式で、２次データ・ストレージ・システム２ｂから３次データ・ストレージ・システム２ｃにおいて受信されたスタートＳＤＣＳメッセージ２は、同期されたタイマー・インターバル持続期間パラメータ・データを含む。１つの実施形態において、２次データ・ストレージ・システム２ａからのスタートＳＤＣＳメッセージ２にパッケージされた、同期されたタイマー・インターバル持続期間パラメータ・データは、１次グローバル・タイマー・インターバル１または２次ローカル・タイマー・インターバル２などの同期タイマー・インターバルのインターバルを定義する。３次データ・ストレージ・システム２ｃの同期ロジック３４は、２次データ・ストレージ・システム２ｂからのスタートＳＤＣＳメッセージ２の中で２次データ・ストレージ・システム２ｂから受信された、同期されたタイマー・インターバル持続期間パラメータ・データに応じて、３次データ・ストレージ・システム２ｃにおける３次ローカル・タイマー・インターバル３（図５、図６）の持続期間をセットするようにさらに構成される。
【００９５】
したがって、１つの実施形態において、３次データ・ストレージ・システム２ｃにおける３次ローカル・タイマー・インターバル３（図５、図６）の持続期間は、１次同期タイマー・インターバル１（図５、図６）または２次同期タイマー・インターバル２の持続期間より長い、小さいパーセンテージ（例えば１０％〜２０％など）または短い時間（例えば５分〜１０分など）になるようにセットされてもよい。したがって、１つの実施形態において、タイマー・インターバル３は、例えば１時間より長い、小さいパーセンテージまたは短い時間にセットされてもよい。特定の用途に応じて、他の持続期間が選択されてもよいということが理解される。
【００９６】
３次同期タイマー・インターバル３の持続期間を、１次または２次同期タイマー・インターバルに近いものにセットすることは、比較的制約されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ２にとどまるように、同期されたＳＤＣＳ動作の第２のセットのＳＤＣＳ動作であるスキャン３、スキャン４、およびスキャン５を同期させることを容易にするということがさらに理解される。同時に、２次同期タイマー・インターバル２の持続期間が、１次または２次同期タイマー・インターバルのものよりわずかに長くなるようにセットすることは、下記で詳細に説明されるように、データ・ストレージ・システムにおいて、どちらが最初に発生しても、同期インターバルの満了ではなく、スタートＳＤＣＳメッセージに基づいて、１次、２次、および３次データ・ストレージ・システムのＳＤＣＳ動作を同期させることを容易にするということが理解される。
【００９７】
前述のように、３次データ・ストレージ・システム２ｃにおける３次ローカル・タイマー・インターバル３（図５、図６）の持続期間は、１つの実施形態において、２次データ・ストレージ・システムの同期している２次ローカル・タイマー・インターバル２の持続期間のものよりわずかに長くなるようにセットされてもよい。その結果、図６に描写されたものなど、同期されたＳＤＣＳ動作の典型的なセットにおいて、スタートＳＤＣＳメッセージは、３次データ・ストレージ・システムの同期している３次ローカル・タイマー・インターバルの満了前に、２次データ・ストレージ・システムから受信されることになる。したがって、同期されたＳＤＣＳ動作の典型的なセットにおいて、ＳＤＣＳ動作は、３次データ・ストレージ・システムの同期している３次ローカル・タイマー・インターバルの満了ではなく、２次データ・ストレージ・システムから受信されたスタートＳＤＣＳメッセージに応答して開始されることになる。しかし、２次データ・ストレージ・システムからのスタートＳＤＣＳメッセージが非常に長い期間遅れる場合、ＳＤＣＳ動作は、下記で説明されるように、３次データ・ストレージ・システムの同期している３次ローカル・タイマー・インターバルの満了に応答して開始されることになる。
【００９８】
したがって、次のスタート・セーフ・データ・コミット・スキャン（ＳＤＣＳ）メッセージがまだ受信されていないことを、３次データ・ストレージ・システム２ｃの同期ロジック３４が判定する（ブロック５２４、図９）と、３次データ・ストレージ・システム２ｃの同期ロジック３４は、同期タイマー・インターバル３が満了しているかどうかを判定する（ブロック５３０、図９）。例えば、図７は、同期している３次ローカル・タイマー・インターバル３の満了を過ぎて、スタートＳＤＣＳメッセージ４’が遅れた例を描写する。したがって、３次同期タイマー・インターバル３の満了（ブロック５３０、図９）に応答して、３次データ・ストレージ・システム２ｃの同期ロジック３４は、３次データ・ストレージ・システムにおける３次タイムライン３の、この例では時間Ｓ６’に、別のセーフ・データ・コミット・スキャン（ＳＤＣＳ）動作であるスキャン６’（図７）を開始する（ブロック５０８、図９）。
【００９９】
スタートＳＤＣＳメッセージ４’は、ネットワークの混雑、および、２次データ・ストレージ・システム２ｂにおける動作上の問題、を含む様々な要因により、３次データ・ストレージ・システム２ｃへの到着が遅れることがある。しかし、３次データ・ストレージ・システム２ｃにおける３次ローカル・タイマー・インターバル３（図５、図６）の持続期間は、１つの実施形態において、２次データ・ストレージ・システムの同期している２次ローカル・タイマー・インターバル２の持続期間のものよりわずかに長くなるようにセットされてもよいので、３次データ・ストレージ・システムにおける３次タイムライン２の、この例では時間Ｓ６’に、別のセーフ・データ・コミット・スキャン（ＳＤＣＳ）動作であるスキャン６’の開始（ブロック５０８、図９）のその後の遅れは限定的である。したがって、同期している３次ローカル・タイマー・インターバル３が満了し、２次データ・ストレージ・システムからスタートＳＤＣＳメッセージが受信されていない場合、３次ＳＤＣＳ動作であるスキャン６’は、スタートＳＤＣＳメッセージ４’をさらに待たずに、開始されてもよい。その結果、スタートＳＤＣＳメッセージ４’の送信または受信の遅れにもかかわらず、３次ＳＤＣＳ動作であるスキャン６’は、ＳＤＣＳ動作の第２のセットに対するセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ２の中で開始され、完了されてもよい。
【０１００】
ＳＤＣＳ動作であるスキャン１、スキャン２、およびスキャン３について上述されたものに類似の様式で、図６のＳＤＣＳ動作であるスキャン４、スキャン５、およびスキャン６が完了すると、ＳＤＣＳ動作であるスキャン４、スキャン５、およびスキャン６の開始時間を示すタイムスタンプは、図６に示されるように、データ・ストレージ・システム２ａ、２ｂ、２ｃそれぞれのログ記録動作であるログ４、ログ５、およびログ６でログ記録される。さらに、同期タイマー・インターバルであるインターバル４、インターバル５、およびインターバル６が、同期されたＳＤＣＳ動作の次のセットに対して、図６に示されるように、データ・ストレージ・システム２ａ、２ｂ、２ｃ、それぞれにおいて開始される。
【０１０１】
図７の例では、図７のＳＤＣＳ動作であるスキャン４、スキャン５’、およびスキャン６’が完了すると、ＳＤＣＳ動作であるスキャン４、スキャン５’、およびスキャン６’の開始時間を示すタイムスタンプは、図７に示されるように、データ・ストレージ・システム２ａ、２ｂ、２ｃそれぞれのログ記録動作であるログ４、ログ５’、およびログ６’でログ記録される。さらに、同期タイマー・インターバルであるインターバル４、インターバル５’、およびインターバル６’が、同期されたＳＤＣＳ動作の次のセットに対して、図７に示されるように、データ・ストレージ・システム２ａ、２ｂ、２ｃそれぞれにおいて開始される。
【０１０２】
本明細書による同期されたセーフ・データ・コミット・スキャン動作は、上述の１次、２次、３次階層構造以外の、様々な異なる階層構造を備えるデータ・ストレージ・システムにおいて用いられてもよいということが理解される。例えば、データ・ストレージ・システムは、４次レベル、５次レベル、等など、３次を超える階層レベルを備えてもよい。また、データ・ストレージ・システムは、１次データ・ストレージ・システムが、複数の２次データ・ストレージ・システムを備えることができるように、２次データ・ストレージ・システムが複数の３次データ・ストレージ・システムを備えることができるように等、１対多のコピー関係を可能にしてもよい。
【０１０３】
図１０は、階層式データ・ストレージ・システムにおける同期されたセーフ・データ・コミット・スキャン動作の別の例を描写し、ここで、分散型データ・ストレージ・システムにおいて、１つのデータ・ストレージ・システムが、マスタ・データ・ストレージ・システムとして選択され、複数のデータ・ストレージ・システムが、マスタ・データ・ストレージ・システムに対するサブ・データ・ストレージ・システムとして選択された。例えば、データ・ストレージ・システム２ａ、２ｂ、および２ｃ（図１）は、この例では、マスタ・データ・ストレージ・システム、第１のサブ・データ・ストレージ・システム、および第２のサブ・データ・ストレージ・システムそれぞれとして構成されてもよい。また、マスタおよびサブ・データ・ストレージ・システム２ａ、２ｂ、および２ｃは、上述ものに類似の様式で、ミラーコピー関係の１次データ・ストレージ・システム、２次データ・ストレージ・システム、または３次データ・ストレージ・システム、あるいはその組合せとして構成されてもよい。したがって、マスタ・データ・ストレージ・システム２ａは、同様に、例えばミラーコピー関係の１次データ・ストレージ・システムであってもよい。しかし、マスタ・データ・ストレージ・システムは、他の実施形態において、２次または３次データ・ストレージ・システムであってもよいということが理解される。
【０１０４】
マスタ・データ・ストレージ・システムのタイムライン＿Ｍ１（図１０）において、最初の同期マスタ・タイマー・インターバル＿Ｍ０が満了すると、セーフ・データ・コミット・スキャン動作であるスキャン＿Ｍ１が、ＭＳ１に示された時間に開始される。マスタ・セーフ・データ・コミット・スキャン動作であるスキャン＿Ｍ１が開始される時間ＭＳ１にまたはほぼ時間ＭＳ１に、マスタ・データ・ストレージ・システムは、同時発生またはほぼ同時発生のスタートＳＤＣＳメッセージであるメッセージ＿Ｓ２およびメッセージ＿Ｓ３を、直接的に２つのサブ・データ・ストレージ・システムに発行する。同時発生かつ同時進行のスタートＳＤＣＳメッセージであるメッセージ＿Ｓ２およびメッセージ＿Ｓ３は、２つのサブ・データ・ストレージ・システムによって直接的に受信された単一のブロードキャスト・メッセージとして、または、例えば、マスタ・データ・ストレージ・システムから直接、サブ・データ・ストレージ・システムのそれぞれに、同時進行して、もしくは連続的に、別々に発行された別個のメッセージとして、実行されてもよい。比較すると、図５〜図７の実施形態において、スタート・セーフ・データ・コミット・スキャン・メッセージは、２次データ・ストレージ・システムから３次データ・ストレージ・システムに伝搬または中継された。
【０１０５】
スタートＳＤＣＳメッセージが、マスタ・データ・ストレージ・システムから直接的に受信されたのに応答して、セーフ・データ・コミット・スキャン動作であるスキャン＿Ｓ２が、１つのサブ・データ・ストレージ・システムに対して、タイムライン＿Ｓ２におけるＳＳ２に示された時間に開始される。同様に、スタートＳＤＣＳメッセージが、マスタ・データ・ストレージ・システムから直接的に受信されたのに応答して、セーフ・データ・コミット・スキャン動作であるスキャン＿Ｓ３が、図１０の例では、他のサブ・データ・ストレージ・システムに対して、タイムライン＿Ｓ３におけるＳＳ３に示された時間に開始される。
【０１０６】
したがって、サブ・データ・ストレージ・システムは、マスタ・データ・ストレージ・システムから直接的に受信された１つまたは複数のスタートＳＤＣＳメッセージを使用して、マスタ・データ・ストレージ・システムにおける同時発生かつ同時進行のセーフ・データ・コミット・スキャン動作と、サブ・データ・ストレージ・システムにおけるセーフ・データ・コミット・スキャン動作を同期させる。その結果、マスタおよび２つのサブ・データ・ストレージ・システム２ａ、２ｂ、２ｃそれぞれのセーフ・データ・コミット・スキャン動作であるスキャン＿Ｍ１、スキャン＿Ｓ２、およびスキャン＿Ｓ３は、実質的に同時発生かつ同時進行で動くように同期される。したがって、図１０のＳＤＣＳ動作の第１のセットの３つの同期されたセーフ・データ・コミット・スキャン動作であるスキャン＿Ｍ１、スキャン＿Ｓ２、およびスキャン＿Ｓ３全ては、セーフ・データ・コミット・スキャン動作の第１の同期されたセットに対する単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ＿Ｍ１の中で発生する。その結果、セーフ・データ・コミット・スキャン動作により低下したレスポンス時間のいずれかのインターバルは、同様に、同期されたセーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ＿Ｍ１に対して実質的に同時発生し、実質的に限定される。
【０１０７】
ＳＤＣＳ動作であるスキャン１（図５）、スキャン２、およびスキャン３について上述されたものに類似の様式で、図１０のＳＤＣＳ動作であるスキャン＿Ｍ１、スキャン＿Ｓ２、およびスキャン＿Ｓ３の第１のセットが完了すると、ＳＤＣＳ動作であるスキャン＿Ｍ１、スキャン＿Ｓ２、およびスキャン＿Ｓ３の開始時間を示すタイムスタンプが、図１０に示されるように、データ・ストレージ・システム２ａ、２ｂ、２ｃそれぞれのログ記録動作であるログ＿Ｍ１、ログ＿Ｓ２、およびログ＿Ｓ３それぞれでログ記録される。さらに、同期タイマー・インターバルであるマスタ・タイマー・インターバル＿Ｍ１、サブ・タイマー・インターバル＿Ｓ２、およびサブ・タイマー・インターバル＿Ｓ３が、同期されたＳＤＣＳ動作の次のセットに対して、図１０に示されるように、データ・ストレージ・システム２ａ、２ｂ、２ｃそれぞれにおいて、時間ＭＩ１、ＳＩ２、ＳＩ３それぞれに、開始される。
【０１０８】
同期サブ・タイマー・インターバルであるインターバル＿Ｓ２およびインターバル＿Ｓ３の持続期間は、１つの実施形態において、マスタ・データ・ストレージ・システムの同期マスタ・タイマー・インターバル＿Ｍ１の持続期間のものより、わずかに長くなるようにセットされてもよい。その結果、同期されたＳＤＣＳ動作の典型的なセットにおいて、スタートＳＤＣＳメッセージは、サブ・データ・ストレージ・システムの同期サブ・タイマー・インターバルの満了前に、マスタ・データ・ストレージ・システムから受信されることになる。したがって、同期されたＳＤＣＳ動作の典型的なセットにおいて、ＳＤＣＳ動作は、図７について上述されたものに類似の様式で、サブ・データ・ストレージ・システムの同期サブ・タイマー・インターバルの満了に応答するのではなく、図６について上述されたものに類似の様式で、マスタ・データ・ストレージ・システムからスタートＳＤＣＳメッセージが受信されたのに応答して、開始されることになる。しかし、特定のサブ・データ・ストレージ・システムにおいて、マスタ・データ・ストレージ・システムからのスタートＳＤＣＳメッセージが、非常に長い期間、遅れた場合、そのサブ・データ・ストレージ・システムにおけるＳＤＣＳ動作は、図７について上述されたものに類似の様式で、関連付けられたデータ・ストレージ・システムの同期サブ・タイマー・インターバルの満了に応答して、開始されることになる。
【０１０９】
その結果、マスタおよびサブ・データ・ストレージ・システムのセーフ・データ・コミット・スキャン動作の各同期されたセットの全ての同期されたＳＤＣＳ動作は、ＳＤＣＳ動作がマスタ・データ・ストレージ・システムからのスタートＳＤＣＳメッセージによってトリガされようと、ローカルな同期サブ・タイマー・インターバルの満了によってトリガされようと、セーフ・データ・コミット・スキャン・セット・インターバル＿ＳＥＴ＿Ｍ１などの単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバルの中で発生することになる。したがって、サブ・データ・ストレージ・システムにおける各セーフ・データ・コミット・スキャン動作は、いずれか１つのデータ・ストレージ・システム、および、同期されたセーフ・データ・コミット・スキャン動作の特定のセットに対するセーフ・データ・コミット・スキャン・セット・インターバルなどのセーフ・データ・コミット・スキャン・セット・インターバル、において、スタート・メッセージ、またはローカル同期タイマー・インターバルの満了、の両方ではなく、どちらかによって開始される。
【０１１０】
分散型データ・ストレージ・システムの個々のデータ・ストレージ・システムのセーフ・データ・コミット・スキャン動作の同期されたセットは、同期されたセーフ・データ・スキャン・コミット・インターバルの範囲外の入出力レスポンス時間の低下の発生を低減または除去するために、単一の同期されたセーフ・データ・コミット・スキャン・セット・インターバルの中で時間が実質的に重複するように同期してタイミングを合わされるということが上記からわかる。特定の用途に応じて、他の実施形態および長所が実現されてもよい。
【０１１１】
図の計算構成要素は、それぞれ、図１１に示されたコンピュータ・システム１００２など、１つまたは複数のコンピュータ・システムにおいて実行されてもよい。コンピュータ・システム／サーバ１００２は、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的な背景で説明されてもよい。一般に、プログラム・モジュールは、特定のタスクを行う、または、特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造、などを含んでもよい。コンピュータ・システム／サーバ１００２は、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクが行われる分散型クラウド・コンピューティング環境で実践されてもよい。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルとリモート両方のコンピュータ・システム・ストレージ媒体の中に配置されてもよい。
【０１１２】
図１１に示されるように、コンピュータ・システム／サーバ１００２は、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム／サーバ１００２の構成要素は、１つまたは複数のプロセッサまたは処理ユニット１００４、システム・メモリ１００６、および、システム・メモリ１００６を含む様々なシステム構成要素をプロセッサ１００４に連結するバス１００８を含んでもよいがこれらに限定されない。バス１００８は、メモリ・バスまたはメモリ・コントローラ、周辺機器バス、アクセラレイティッド・グラフィックス・ポート、および、様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含む、バス構造のいくつかのタイプのいずれかの１つまたは複数に相当する。例として、および限定ではなく、このようなアーキテクチャは、インダストリ・スタンダード・アーキテクチャ（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、エンハンストＩＳＡ（ＥＩＳＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション（ＶＥＳＡ）ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バスを含む。
【０１１３】
コンピュータ・システム／サーバ１００２は、典型的には、様々なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム／サーバ１００２によってアクセス可能な任意の利用可能な媒体であってもよく、揮発性媒体と不揮発性媒体の両方、取外し可能媒体と取外し不能媒体の両方を含む。
【０１１４】
システム・メモリ１００６は、ランダム・アクセス・メモリ（ＲＡＭ）１０１０またはキャッシュ・メモリ１０１２あるいはその両方など、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム／サーバ１００２は、他の取外し可能／取外し不能な、揮発性／不揮発性のコンピュータ・システム・ストレージ媒体をさらに含んでもよい。ほんの一例として、（図示されていないが、典型的には「ハード・ドライブ」と呼ばれる）取外し不能な不揮発性磁気媒体を読み書きするために、ストレージ・システム１０１３が提供されることが可能である。図示されていないが、取外し可能な不揮発性磁気ディスク（例えば「フロッピー（Ｒ）・ディスク」）を読み書きするための磁気ディスク・ドライブ、および、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、または他の光媒体などの取外し可能な不揮発性光ディスクを読み書きするための光ディスク・ドライブが提供されることが可能である。このような事例では、それぞれが、１つまたは複数のデータ媒体インターフェースによってバス１００８に接続されることが可能である。下記でさらに描写され、説明されることになるように、メモリ１００６は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセット（例えば、少なくとも１つ）を備える少なくとも１つのプログラム製品を含んでもよい。
【０１１５】
オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データだけでなく、プログラム・モジュール１０１６のセット（少なくとも１つ）を備えるプログラム／ユーティリティ１０１４が、例として、および限定ではなく、メモリ１００６に格納されてもよい。オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、のそれぞれ、またはこれらのいくつかの組合せは、ネットワーキング環境の実装形態を含んでもよい。コンピュータ・システム１００２の構成要素は、本明細書において説明されるような、本発明の実施形態の機能または方法あるいはその両方を一般に実行するプログラム・モジュール１０１６として実装されてもよい。図１のシステムは、１つまたは複数のコンピュータ・システム１００２に実装されてもよく、ここで、複数のコンピュータ・システム１００２でこれらが実行される場合、コンピュータ・システムは、ネットワークで通信してもよい。
【０１１６】
また、コンピュータ・システム／サーバ１００２は、キーボード、ポインティング・デバイス、ディスプレイ１０２０、等などの１つもしくは複数の外部デバイス１０１８、コンピュータ・システム／サーバ１００２とユーザが対話できるようにする１つもしくは複数のデバイス、または、１つもしくは複数の他のコンピューティング・デバイスとコンピュータ・システム／サーバ１００２が通信できるようにする任意のデバイス（例えば、ネットワーク・カード、モデム、等）、あるいはその組合せ、と通信してもよい。このような通信は、入出力（Ｉ／Ｏ）インターフェース１０２２を介して発生することが可能である。さらに、コンピュータ・システム／サーバ１００２は、ローカル・エリア・ネットワーク（ＬＡＮ）、一般的な広域ネットワーク（ＷＡＮ）、または、パブリック・ネットワーク（例えばインターネット）、あるいはその組合せなどの１つまたは複数のネットワークと、ネットワーク・アダプタ１０２４を介して通信することができる。描写されるように、ネットワーク・アダプタ１０２４は、コンピュータ・システム／サーバ１００２の他の構成要素と、バス１００８を介して通信する。図示されていないが、他のハードウェアまたはソフトウェア構成要素あるいはその両方が、コンピュータ・システム／サーバ１００２と共に使用される可能性があるということが理解されよう。例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、および、データ・アーカイブ・ストレージ・システム、等を含むがこれらに限定されない。
【０１１７】
ｉ、ｊ、およびｎなどの、本明細書において使用される参照文字は、同じ値または異なる値を表すことがある要素の不定数の事例を表すために使用され、様々な説明される事例における異なる要素または同じ要素と共に使用されるときに同じ値または異なる値を表すことがある。
【０１１８】
本発明は、システム、方法、または、コンピュータ・プログラム製品、あるいはその組合せであってもよい。コンピュータ・プログラム製品は、本発明の態様によるプロセッサ動作をプロセッサに行わせるためのコンピュータ可読プログラム命令を保持するコンピュータ可読ストレージ媒体（または複数の媒体）を含んでもよい。
【０１１９】
コンピュータ可読ストレージ媒体は、命令実行デバイスによる使用のための命令を保持し、格納することができる有形デバイスであることが可能である。例えば、コンピュータ可読ストレージ媒体は、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述のいずれかの適切な組合せであってもよいが、これらに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の完全に網羅されていないリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）、消去可能プログラマブル・リード・オンリ・メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー（Ｒ）・ディスク、命令が記録されたパンチ・カードまたは溝内隆起構造などの機械的にエンコードされたデバイス、および、前述のいずれかの適切な組合せを含む。コンピュータ可読ストレージ媒体は、本明細書において使用されるように、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通じて伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、または、ワイヤを通じて伝送される電気信号など、それ自体が一時的な信号であると解釈されるべきではない。
【０１２０】
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から個々のコンピューティング／処理デバイスに、あるいは、例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくはワイヤレス・ネットワーク、またはその組合せといったネットワークを介して外部コンピュータまたは外部ストレージ・デバイスに、ダウンロードされることが可能である。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えてもよい。各コンピューティング・デバイス／処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、個々のコンピューティング・デバイス／処理デバイス内のコンピュータ可読ストレージ媒体に格納するためにコンピュータ可読プログラム命令を転送する。
【０１２１】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ（ＩＳＡ）命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋、もしくは同様のものなどのオブジェクト指向プログラミング言語、および、「Ｃ」プログラミング言語、もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む１つもしくは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードのどちらか、であってもよい。コンピュータ可読プログラム命令は、スタンド・アロンのソフトウェア・パッケージとして、全面的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で実行してもよく、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、または全面的にリモート・コンピュータもしくはサーバ上で実行してもよい。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）もしくは広域ネットワーク（ＷＡＮ）を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されてもよく、または、（例えば、インターネット・サービス・プロバイダを使用してインターネットを通じて）外部コンピュータに接続されてもよい。いくつかの実施形態において、例えば、プログラマブル・ロジック回路機器、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、または、プログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路機器は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路機器を個別化することによって、コンピュータ可読プログラム命令を実行してもよい。
【０１２２】
本発明の態様は、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照しながら本明細書において説明される。流れ図またはブロック図あるいはその両方の各ブロック、および、流れ図またはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実行されることが可能であるということが理解されよう。
【０１２３】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令が、流れ図またはブロック図あるいはその両方の１つまたは複数のブロックに指定された機能／動作を実行するための手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。また、これらのコンピュータ可読プログラム命令は、流れ図またはブロック図あるいはその両方の１つまたは複数のブロックに指定された機能／動作の態様を実行する命令を含む製品を、命令が格納されたコンピュータ可読ストレージ媒体が含むべく、コンピュータ可読ストレージ媒体に格納され、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはその組合せに特定の手法で機能するように指示することができるものであってもよい。
【０１２４】
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令が、流れ図またはブロック図あるいはその両方の１つまたは複数のブロックに指定された機能／動作を実行するべく、コンピュータ実行処理を生み出すために、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラム可能装置、または他のデバイスで一連の動作ステップを行わせるものであってもよい。
【０１２５】
図中の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。この点に関して、流れ図およびブロック図における各ブロックは、命令のモジュール、セグメント、または一部に相当することがあり、指定の論理機能を実行するための１つまたは複数の実行可能命令を含む。いくつかの代替実装形態において、ブロックに記された機能は、図に記された順序とは異なる順序で発生してもよい。例えば、連続して示された２つのブロックは実際に、実質的に並行に実行されてもよく、または、ブロックは時には、含まれる機能に応じて、逆の順序で実行されてもよい。ブロック図または流れ図あるいはその両方の各ブロック、および、ブロック図または流れ図あるいはその両方におけるブロックの組合せは、指定の機能もしくは動作を実行する、または、特殊用途のハードウェアとコンピュータ命令の組合せを実行する、特殊用途のハードウェアに基づくシステムによって実行されることが可能であるということにも留意されたい。
【０１２６】
用語「一実施形態（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)）」を意味する。
【０１２７】
用語「含む（including）」、「備える（comprising）」、「有する（having）」、およびその変化形は、別途明確に指定されない限り、「含むが限定されない（including but not limited to）」を意味する。
【０１２８】
項目の列挙されたリストは、別途明確に指定されない限り、項目のいずれかまたは全てが、相互に排他的であることを意味するものではない。
【０１２９】
用語「ある（a）」、「１つの（an）」、および「その（the）」は、別途明確に指定されない限り、「１つまたは複数（one or more）」を意味する。
【０１３０】
互いに通信中のデバイスは、別途明確に指定されない限り、互いに連続的に通信中である必要はない。さらに、互いに通信中のデバイスは、１つまたは複数の中間体を通じて直接的または間接的に通信してもよい。
【０１３１】
いくつかの構成要素が互いに通信中である実施形態の説明は、全てのこのような構成要素が必要であることを意味するものではない。反対に、様々な任意選択の構成要素が、本発明の多種多様な可能な実施形態を示すために説明される。
【０１３２】
単一のデバイスまたは物品が本明細書において説明されるとき、２つ以上のデバイス／物品が（これらが連携していてもいなくても）、単一のデバイス／物品の代わりに使用されてもよいということが容易に明らかになるであろう。同様に、２つ以上のデバイスまたは物品が本明細書において説明される場合（これらが連携していてもいなくても）、２つ以上のデバイスもしくは物品の代わりに、単一のデバイス／物品が使用されてもよい、または、示された数のデバイスもしくはプログラムの代わりに、異なる数のデバイス／物品が使用されてもよい、ということが容易に明らかになるであろう。デバイスの機能または特徴あるいはその両方は、代替として、このような機能／特徴を備えるものとして明示的に説明されていない１つまたは複数の他のデバイスによって具現化されてもよい。したがって、本発明の他の実施形態は、デバイス自体を含む必要はない。
【０１３３】
本発明の様々な実施形態の前述の説明は、例証および説明のために提示されてきた。これは、網羅的であること、または、開示の正確な形式に本発明を限定することを意図するものではない。多くの修正および変更が、上記の教示の観点から可能である。この詳細な説明によってではなく、むしろ、本明細書に添付の特許請求の範囲によって、本発明の範囲が限定されるということが意図される。上記の明細書、例、およびデータは、本発明の構造の製造および使用の完全な説明を提供する。本発明の多くの実施形態は、本発明の思想および範囲から逸脱することなく行われることが可能なので、本発明は、後で添付された本明細書における特許請求の範囲から成り立つ。
【図１】
2021515926.tif 000003
【図２】
2021515926.tif 000004
【図３】
2021515926.tif 000005
【図４】
2021515926.tif 000006
【図５】
2021515926.tif 000007
【図６】
2021515926.tif 000008
【図７】
2021515926.tif 000009
【図８】
2021515926.tif 000010
【図９】
2021515926.tif 000011
【図１０】
2021515926.tif 000012
【図１１】
2021515926.tif 000013
【国際調査報告】
2021515926.tif 000014
2021515926.tif 000015