(57)【要約】【課題】  データを同期させるための方法、システム及びプログラムを提供すること。【解決手段】  データを同期させるための技術を開示する。第１の識別子は、第１のソースにおけるデータの一部分に対して決定される。第２の識別子は、第２のソースにおける対応するデータの一部分に対して決定される。第１及び第２の識別子が比較される。第１及び第２の識別子が一致しない場合には、第２のソースにおける対応するデータの一部分が、第１のソースにおけるデータの一部分に置き換えられる。【選択図】      図１
2007507030.tif 000002
【特許請求の範囲】
【請求項１】
データを同期させるための方法であって、
第１のソースにおけるデータの一部分に対して第１の識別子を決定することと、
第２のソースにおける対応するデータの一部分に対して第２の識別子を決定することと、
前記第１及び第２の識別子を比較し、前記第１及び第２の識別子が一致しない場合には、前記第２のソースにおける対応するデータの前記部分を前記第１のソースにおけるデータの前記部分に置き換えることと、
を含む方法。
【請求項２】
前記第１及び第２の識別子が一致する場合には、前記第１のソースにおけるデータの前記部分と前記第２のソースにおける対応するデータの前記部分が同じであると判断することをさらに含む、請求項１に記載の方法。
【請求項３】
前記第１及び第２の識別子が、ハッシュ・キーを備える、請求項１に記載の方法。
【請求項４】
単一のハッシュ・キー関数を用いて前記ハッシュ・キーを生成することをさらに含む、請求項３に記載の方法。
【請求項５】
多数のハッシュ・キー関数を用いて前記ハッシュ・キーを生成することをさらに含む、請求項３に記載の方法。
【請求項６】
前記第１のソースにおける前記データの前記部分に対して第１の関数を実行することによって前記第１の識別子を生成することと、
前記第２のソースにおける対応する前記データの前記部分に対して前記第１の関数を実行することによって前記第２の識別子を生成することと、
をさらに含む、請求項１に記載の方法。
【請求項７】
前記第１の識別子を決定することは、
前記第１のソースにおける前記データの前記部分に対して第１の関数を実行することによって第１の値を生成することと、
前記第１のソースにおける前記データの前記部分に対して第２の関数を実行することによって第２の値を生成することと、
前記第１の値と前記第２の値とを組み合わせることによって前記第１の識別子を生成することと、
をさらに含む、請求項１に記載の方法。
【請求項８】
前記第２の識別子を決定することは、
前記第２のソースにおける対応する前記データの前記部分に対して前記第１の関数を実行することによって第３の値を生成することと、
前記第２のソースにおける対応する前記データの前記部分に対して前記第２の関数を実行することによって第４の値を生成することと、
前記第３の値と前記第４の値とを組み合わせることによって前記第２の識別子を生成することと、
をさらに含む、請求項７に記載の方法。
【請求項９】
前記第１の識別子を決定することは、
前記第１のソースにおける前記データの前記部分に対して第１の関数を実行することによって第１の値を生成することと、
前記第１の値に対して第２の関数を実行することによって前記第１の識別子を生成することと、
をさらに含む、請求項１に記載の方法。
【請求項１０】
前記第２の識別子を決定することは、
前記第２のソースにおける対応する前記データの前記部分に対して前記第１の関数を実行することによって第２の値を生成することと、
前記第２の値に対して前記第２の関数を実行することによって前記第２の識別子を生成することと、
をさらに含む、請求項９に記載の方法。
【請求項１１】
前記第１のソースにおける前記データの前記部分に対する前記第１の識別子は、前記第１のソースにおける前記データの前記部分が更新されるときに決定され、前記第２のソースにおける対応する前記データの前記部分に対する前記第２の識別子は、前記第２のソースにおける対応する前記データの前記部分が更新されるときに決定される、請求項１に記載の方法。
【請求項１２】
前記第１の識別子及び前記第２の識別子は、前記第１のソース及び前記第２のソースにおけるデータを同期させる時であると判断されるときに決定される、請求項１に記載の方法。
【請求項１３】
前記第１の識別子及び前記第２の識別子は、周期的に決定される、請求項１に記載の方法。
【請求項１４】
データを同期させるための製造物品であって、
第１のソースにおけるデータの一部分に対して第１の識別子を決定することと、
第２のソースにおける対応するデータの一部分に対して第２の識別子を決定することと、
前記第１及び第２の識別子を比較し、前記第１及び第２の識別子が一致しない場合には、前記第２のソースにおける対応する前記データの前記部分を前記第１のソースにおける前記データの前記部分と置き換えることと、
を含む動作を実行させることができる、製造物品。
【請求項１５】
前記第１及び第２の識別子が一致する場合には、前記第１のソースにおける前記データの前記部分及び前記第２のソースにおける対応する前記データの前記部分が同じであると判断することを前記動作はさらに含む、請求項１４に記載の製造物品。
【請求項１６】
前記第１及び第２の識別子は、ハッシュ・キーを備える、請求項１４に記載の製造物品。
【請求項１７】
前記動作は、単一のハッシュ・キー関数を用いて前記ハッシュ・キーを生成することをさらに含む、請求項１６に記載の製造物品。
【請求項１８】
前記動作は、多数のハッシュ・キー関数を用いて前記ハッシュ・キーを生成することをさらに含む、請求項１６に記載の製造物品。
【請求項１９】
前記動作は、
前記第１のソースにおける前記データの前記部分に対して第１の関数を実行することによって前記第１の識別子を生成することと、
前記第２のソースにおける対応する前記データの前記部分に対して前記第１の関数を実行することによって前記第２の識別子を生成することと、
をさらに含む、請求項１４に記載の製造物品。
【請求項２０】
前記第１の識別子を決定する前記動作は、
前記第１のソースにおける前記データの前記部分に対して第１の関数を実行することによって第１の値を生成することと、
前記第１のソースにおける前記データの前記部分に対して第２の関数を実行することによって第２の値を生成することと、
前記第１の値と前記第２の値とを組み合わせることによって前記第１の識別子を生成することと、
をさらに含む、請求項１４に記載の製造物品。
【請求項２１】
前記第２の識別子を決定する前記動作は、
前記第２のソースにおける対応する前記データの前記部分に対して前記第１の関数を実行することによって第３の値を生成することと、
前記第２のソースにおける対応する前記データの前記部分に対して前記第２の関数を実行することによって第４の値を生成することと、
前記第３の値と前記第４の値とを組み合わせることによって前記第２の識別子を生成することと、
をさらに含む、請求項２０に記載の製造物品。
【請求項２２】
前記第１の識別子を決定する前記動作は、
前記第１のソースにおける前記データの前記部分に対して第１の関数を実行することによって第１の値を生成することと、
前記第１の値に対して第２の関数を実行することによって前記第１の識別子を生成することと、
をさらに含む、請求項１４に記載の製造物品。
【請求項２３】
前記第２の識別子を決定する前記動作は、
前記第２のソースにおける対応する前記データの前記部分に対して前記第１の関数を実行することによって第２の値を生成することと、
前記第２の値に対して前記第２の関数を実行することによって前記第２の識別子を生成することと、
をさらに含む、請求項２２に記載の製造物品。
【請求項２４】
前記第１のソースにおける前記データの前記部分に対する前記第１の識別子は、前記第１のソースにおける前記データの前記部分が更新されるときに決定され、前記第２のソースにおける対応するデータの前記部分に対する前記第２の識別子は、前記第２のソースにおける対応するデータの前記部分が更新されるときに決定される、請求項１４に記載の製造物品。
【請求項２５】
前記第１の識別子及び前記第２の識別子は、前記第１のソース及び前記第２のソースにおけるデータを同期させる時であると判断されるときに決定される、請求項１４に記載の製造物品。
【請求項２６】
前記第１の識別子及び前記第２の識別子は、周期的に決定される、請求項１４に記載の製造物品。
【請求項２７】
データを同期させるためのシステムであって、
第１のソースにおけるデータの一部分に対して第１の識別子を決定する手段と、
第２のソースにおける対応するデータの一部分に対して第２の識別子を決定する手段と、
前記第１及び第２の識別子を比較する手段と、
前記第１及び第２の識別子が一致しない場合には、前記第２のソースにおける対応する前記データの前記部分を前記第１のソースにおける前記データの前記部分と置き換える手段と、
を含むシステム。
【請求項２８】
前記第１及び第２の識別子が一致する場合には、前記第１のソースにおける前記データの前記部分及び前記第２のソースにおける対応する前記データの前記部分が一致すると判断する手段をさらに含む、請求項２７に記載のシステム。
【請求項２９】
前記第１及び第２の識別子は、ハッシュ・キーを含む、請求項２７に記載のシステム。
【請求項３０】
単一のハッシュ・キー関数を用いて前記ハッシュ・キーを生成する手段をさらに含む、請求項２９に記載のシステム。
【請求項３１】
多数のハッシュ・キー関数を用いて前記ハッシュ・キーを生成する手段をさらに含む、請求項２９に記載のシステム。
【請求項３２】
前記第１のソースにおける前記データの前記部分に対して第１の関数を実行することによって前記第１の識別子を生成する手段と、
前記第２のソースにおける対応する前記データの前記部分に対して前記第１の関数を実行することによって前記第２の識別子を生成する手段と、
をさらに含む、請求項２７に記載のシステム。
【請求項３３】
前記第１の識別子を決定する手段は、
前記第１のソースにおける前記データの前記部分に対して第１の関数を実行することによって第１の値を生成する手段と、
前記第１のソースにおける前記データの前記部分に対して第２の関数を実行することによって第２の値を生成する手段と、
前記第１の値と前記第２の値とを組み合わせることによって前記第１の識別子を生成する手段と、
をさらに含む、請求項２７に記載のシステム。
【請求項３４】
前記第２の識別子を決定する手段は、
前記第２のソースにおける対応する前記データの前記部分に対して前記第１の関数を実行することによって第３の値を生成する手段と、
前記第２のソースにおける対応する前記データの前記部分に対して前記第２の関数を実行することによって第４の値を生成する手段と、
前記第３の値と前記第４の値とを組み合わせることによって前記第２の識別子を生成する手段と、
をさらに含む、請求項３３に記載のシステム。
【請求項３５】
前記第１の識別子を決定する手段は、
前記第１のソースにおける前記データの前記部分に対して第１の関数を実行することによって第１の値を生成する手段と、
前記第１の値に対して第２の関数を実行することによって前記第１の識別子を生成する手段と、
をさらに含む、請求項２７に記載のシステム。
【請求項３６】
前記第２の識別子を決定する手段は、
前記第２のソースにおける対応する前記データの前記部分に対して前記第１の関数を実行することによって第２の値を生成する手段と、
前記第２の値に対して前記第２の関数を実行することによって前記第２の識別子を生成する手段と、
をさらに含む、請求項３５に記載のシステム。
【請求項３７】
前記第１のソースにおける前記データの前記部分に対する前記第１の識別子は、前記第１のソースにおける前記データの前記部分が更新されるときに決定され、前記第２のソースにおける対応する前記データの前記部分に対する前記第２の識別子は、前記第２のソースにおける対応する前記データの前記部分が更新されるときに決定される、請求項２７に記載のシステム。
【請求項３８】
前記第１の識別子及び前記第２の識別子は、前記第１のソース及び前記第２のソースにおけるデータを同期させる時であると判断されるときに決定される、請求項２７に記載のシステム。
【請求項３９】
前記第１の識別子及び前記第２の識別子は、周期的に決定される、請求項２７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ同期の改善に関する。
【背景技術】
【０００２】
典型的な災害復旧ソリューションでは、データは、一次サイト並びに１つ又はそれ以上の二次サイトにおいて格納される。これらの二次サイトでは、一次サイトの災害の場合にデータが失われないようにデータの同期コピーを維持する。災害が発生する場合は、処理が、二次サイトの１つに「フェイル・オーバー」されるか、又はデータが、二次サイトから一次サイトにコピーされ戻されるかのいずれかである。災害復旧を有効なものにするために、二次サイトは通常、両方のサイトが同じ災害により影響を受けないように一次サイトから遠く離れている。
【０００３】
災害復旧システムは、主として２種類の障害、すなわち一時点における突発的障害あるいは一定期間にわたるデータ損失に対処するものである。２種類目の段階的災害では、ボリュームに対する更新が失われる可能性がある。いずれのタイプの災害においても、データのコピーを遠隔位置で使用可能とすることができる。そのような二重コピー又はシャドー・コピーは、通常は、アプリケーション・システムが一次サイトにおいて新しいデータを一次記憶装置に書き込む際に作成される。記憶装置は、所与の媒体にデータを格納する機構を提供して、データを後で取り出せるようにする、物理的なユニットである。本特許出願の出願人であるインターナショナル・ビジネス・マシーンズ・コーポレーション（ＩＢＭ：ＩＢＭおよびＩＢＭロゴは、ＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎの商標）は、拡張遠隔コピー（ｅｘｔｅｎｄｅｄ  ｒｅｍｏｔｅ  ｃｏｐｙ）（ＸＲＣ（登録商標））及び対等遠隔コピー（ｐｅｅｒ−ｔｏ−ｐｅｅｒ  ｒｅｍｏｔｅ  ｃｏｐｙ）（ＰＰＲＣ）を含む、二次記憶装置にデータのリモート・コピーを保持するシステムを提供する。
【０００４】
これらのシステムは、最後の安全なバックアップからシステム障害が起こるまでの間のデータ更新を復旧する技術を提供する。このようなデータ・シャドーイング・システムは、遠隔サイトにおけるローカル・アクセス等の復旧以外の目的で、付加的なリモート・コピーを提供することもできる。ＩＢＭ  ＸＲＣ及びＰＰＲＣシステムは、非特許文献１においてさらに説明されている。
【０００５】
こうしたバックアップ・システムにおいて、データは、ボリューム・ペアとして保持される。ボリューム・ペアは、一次記憶装置におけるボリュームと、それに対応する、一次ボリュームに保持されたデータと整合したコピーを有する、二次記憶装置におけるボリュームとを含む。このペアのうち、一般的に一次ボリュームは、一次記憶制御ユニットに保持され、二次ボリュームは、一次記憶制御ユニットとは異なる物理的位置にある二次記憶制御ユニットに保持される。記憶制御ユニットは、ホスト・コンピュータに記憶能力を与えるために１つ又はそれ以上の記憶装置と一体化した記憶サーバからなる物理的なハードウェア・ユニットである。記憶サーバは、１つ又はそれ以上の論理サブシステムの機能を提供することによって１つ又はそれ以上の記憶装置とホスト・コンピュータとの間にインタフェースを提供する物理ユニットである。記憶サーバは、記憶装置では提供されない機能を提供することができる。記憶サーバは、記憶装置の１つ又はそれ以上のクラスタからなる。一次ＤＡＳＤへのアクセスを制御するために一次記憶制御ユニットを備え、二次ＤＡＳＤへのアクセスを制御するために二次記憶制御ユニットを備えても構わない。
【０００６】
【非特許文献１】ｚ／ＯＳ（ＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎの商標）  Ｖ１Ｒ１．０  ＤＦＳＭＳ  Ａｄｖａｎｃｅｄ  Ｃｏｐｙ  Ｓｅｒｖｉｃｅｓ（ＩＢＭ書類番号ＳＣ３５−０４２８−００）、２００１年４月、インターナショナル・ビジネス・マシーンズ・コーポレーション社から入手可能。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
すべての二次データ・サイトが、同期させられ、一次サイトのデータの正確なコピーを含むことが重要である。しかしながら、時々、システムに、一次及び二次サイトが同期させられているかを知らせないエラーが発生することがある。典型的な災害復旧ソリューションでは、二次サイトが一次サイトとの同期の確実性を失う場合は、データのすべてが一次サイトから二次サイトにコピーされなければならない。
【０００８】
大企業においては典型的な大規模システムの場合、この２つのサイトを再び同期させるのに必要な時間は、ここで莫大な量のデータがコピーされなければならないため、膨大な量となる。このコピーを実行するのにかかる時間に加えて、この再コピーの結果として、この２つのサイト間のデータ・リンクが、通常よりはるかに頻繁に使用されていることも忘れてはいけない。これにより、通常の処理を継続するのに必要な帯域幅がもはや使用可能でないために、継続している通常の処理も影響を受けることになる。
【０００９】
特に、従来技術のシステムにおいて、何らかの理由のために２つのボリュームの同期が失われたときには、一次サイトが、データの全てのボリュームを二次サイトに送信する必要がある。多くのボリュームが影響を受けると共に、又はボリュームが非常に大きい場合には、これには、かなりの量の時間がかかりうる。長時間かかるばかりでなく、送信されているデータのすべてが、長距離のデータ・リンク上で使用される帯域幅をとてつもなく増加させることになる。システムが十分な量の付加的な帯域幅を有していない場合、一般に、通常のシステムはそれほどの帯域幅を有しておらず、この再同期は、システムにおいて現在起きているそれ以外のすべての処理及び災害復旧ミラーリングにも影響を及ぼすことになる。さらに、同期が失われるほとんどの場合、実際に同期から外れているのは、たとえあるとしても極めて僅かな量のデータである。結果として、データのほんの僅かな部分だけが実際に同じではないときに、データの全てのボリュームが再コピーされることになる。
従って、データ同期の改善が必要とされている。
【課題を解決するための手段】
【００１０】
データを同期させるための方法、システム及びプログラムを提供する。第１の識別子は、第１のソースにおけるデータの一部分に対して決定される。第２の識別子は、第２のソースにおける対応するデータの一部分に対して決定される。第１及び第２の識別子が比較される。第１及び第２の識別子が一致しない場合には、第２のソースにおける対応するデータの部分が、第１のソースにおけるデータの部分に置き換えられる。
【００１１】
説明されている本発明の実施では、第１及び第２のデータ・セット（例えば、ボリューム）が同期させられているかどうかを判断して、該第１及び第２のデータ・セットが同期させられていない場合は、いずれのデータが同期させられる必要があるかを識別する方法、システム及びプログラムを提供する。従って、第１及び第２のデータ・セットの一部のみが同期させられる必要がある場合は、本発明の実施では、それらの一部のみを一方のデータ・セットから他方にコピーする。
【発明を実施するための最良の形態】
【００１２】
ここで、同じ参照番号が図面を通して対応する部分を表す図面を参照する。
以下の説明では、本明細書の一部を形成し、且つ、本発明の幾つかの実施を示す添付図面を参照する。他の実施を用いることができ、本発明の範囲から逸脱することなく構造及び動作上の変更を加えることができることが理解される。
【００１３】
図１は、本発明の幾つかの実施によるコンピューティング環境をブロック図で示す。一次制御ユニット１１０、１３０及び１５０は、それぞれ１つ又はそれ以上のホスト・コンピュータ１１６、１３６又は１５６とそれぞれ一次記憶装置１１４、１３４及び１５４とのアクセスを提供する。一次記憶装置は、例えば、一次ＤＡＳＤとすることができる。一次記憶装置上のデータを更新するために、１つ又はそれ以上のアプリケーションを各々のホスト・コンピュータ１１６、１３６又は１５６上で実行してもよい。一次制御ユニット１１０、１３０及び１５０はさらに、それぞれ一次キャッシュ１１２、１３２及び１５２を有し、該キャッシュにおいて、それぞれ一次記憶装置１１４、１３４及び１５４内のトラックへの更新が、一次記憶装置１１４、１３４及び１５４に対してデステージされるまで維持される。一次記憶装置１１４、１３４及び１５４のボリュームのすべて又はサブセットのバックアップ・コピーは、それぞれ二次記憶装置１２４、１４４及び１６４に維持することができる。一次サイトは、一次制御ユニット１１０、１３０及び１５０と、一次記憶装置１１４、１３４及び１５４と、ホスト・コンピュータ１１６、１３６及び１５６とを含むことができる。二次サイトは、二次制御ユニット１２０、１４０及び１６０と、二次記憶装置１２４、１４４及び１６４とを含むことができる。二次制御ユニット１２０、１４０及び１６０はさらに、二次キャッシュ１２２、１４２及び１６２を有する。オペレータ・コンピュータ（図示せず）は、二次制御ユニット１２０、１４０及び１６０に取り付けることができる。二次記憶装置は、例えば、二次ＤＡＳＤとすることができる。
【００１４】
幾つかの実施において、「ボリューム・ペア」とは、一次記憶装置におけるボリュームと、該ボリューム・ペアの一次ボリュームのデータのバックアップ・コピーを維持する、二次記憶装置におけるそのボリュームのシャドーとからなる。特定の実施において、各々の一次ボリュームに対し、整合したコンテンツを有する対応する二次ボリュームが存在する、すなわちこれがボリューム・ペアである。例えば、一次記憶装置１１４への更新が、二次制御ユニット１２０に転送されて、二次記憶装置１２４に格納される。
【００１５】
一次制御ユニット１１０、１３０及び１５０はさらに、データ更新の不揮発性コピーを維持するために、バッテリによりバックアップされる揮発性メモリ等の、不揮発性の記憶ユニット（図示せず）を含むことができる。本発明の特定の実施において、一次制御ユニット１１０、１３０及び１５０並びに二次制御ユニット１２０、１４０及び１６０は、インターナショナル・ビジネス・マシーンズ・コーポレーション社から入手可能な、ＩＢＭ  ＴｏｔａｌＳｔｏｒａｇｅ（ＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎの商標）  ２１０５  Ｅｎｔｅｒｐｒｉｓｅ  Ｓｔｏｒａｇｅ  Ｓｅｒｖｅｒ（ＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎの商標）（２１０５ＥＳＳ）から構成することができる。
【００１６】
各々の一次制御ユニット１１０、１３０及び１５０並びに二次制御ユニット１２０、１４０及び１６０は、データの同期を取るために同期システム１１１、１２１、１３１、１４１、１５１及び１６１を含む。本発明の特定の実施において、同期システム１１１、１２１、１３１、１４１、１５１及び１６１は、データ記憶コントローラ（すなわち、記憶制御ユニット）を備え、固有識別子ジェネレータを含む。
【００１７】
特定の実施において、一次制御ユニット１１０、１３０及び１５０並びに二次制御ユニット１２０、１４０及び１６０は、直接高速伝送ライン（例えば、Ｅｎｔｅｒｐｒｉｓｅ  Ｓｙｓｔｅｍ  Ｃｏｎｎｅｃｔｉｏｎ（ＥＳＣＯＮ（ＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標））リンク）等の、通信パスを介して通信する。しかしながら、通信パスは、ネットワーク伝送ライン、光ファイバ・ケーブル等を含む、当該技術分野において知られているその他のあらゆる通信手段から構成されてもよい。一次記憶装置１１４、１３４及び１５４になされた更新は、二次制御ユニット１２０、１４０及び１６０に転送される。更新の転送は、任意の方式で行うことができる。特定の実施において、バックアップ・データは、任意の一次制御ユニット１１０、１３０及び１５０から任意の二次制御ユニット１２０、１４０及び１６０に転送することができる。各々の一次記憶装置からの各々のボリュームは、二次記憶装置上のボリュームに対応する。例えば、一次記憶装置１１４上の第１のボリュームは、二次記憶装置１２４上のボリュームにバックアップされ、一次記憶装置１３４上の二次ボリュームは、二次記憶装置１４４上のボリュームにバックアップされる。特定の実施において、１つ又はそれ以上のボリュームは、バックアップされない。
【００１８】
図２及び図３は、本発明の特定の実施による、少なくとも１つの同期システムに導入されたデータ同期についてのロジックを示す。
参照を容易にするために、「一次」及び「二次」という用語が、ここでは用いられる。本発明の実施は、任意の２つのソース（例えば、第１のソース及び第２のソース）間でデータを同期させるために適用可能である。制御は、データを同期させるべき時であるとの判断により、ブロック２００で始まる。特定の実施において、データを同期させるべき時であるという判断は、エラーが発生したとき（例えば、一次制御ユニットから二次制御ユニットへの転送中にデータが失われるか、又はデータが一方の制御ユニットにおいて破損されるとき）に行われる。本発明の特定の代替的な実施において、データを同期させる時間であるという判断は、周期的に行われる。
【００１９】
ブロック２０２において、第１の部分から始まり、一次データ及び対応する二次データの次の部分が選択される。一次データは、一次記憶装置上のデータのことをいい、二次データは、二次記憶装置上のデータのことをいう。本発明の特定の実施において、データの一部分は、ボリューム上のトラックである。ブロック２０４において、データのすべての部分が選択されたか否かが判断される。選択されていれば処理が完了され、そうでなければ、処理はブロック２０６に進む。
【００２０】
ブロック２０６において、一次データの一部分に対する固有識別子が決定される。ブロック２０８において、対応する二次データの一部分に対する固有識別子が決定される。本発明の特定の実施において、固有識別子はハッシュ・キーである。
【００２１】
すなわち、ハッシュ・キーは、ボリュームの各々におけるデータの各々の部分に関連付けられる。ハッシュ・キーが作成されるデータの長さが変化し得るので、ハッシュ・キーの長さも変化し得る。本発明の特定の実施においては、データの各々の部分（例えば、各ボリューム内の各トラック）に対して作成される１つのハッシュ・キーが存在し、該ハッシュ・キーの長さは、５１２ビットである。従って、一次ボリューム上のデータの各々の部分に対して作成されるハッシュ・キーと、対応する二次ボリューム上のデータの各々の部分に対するハッシュ・キーとが存在する。
【００２２】
ブロック２１０において、一次データ及び対応する二次データの一部分に対する固有識別子が比較される。固有識別子がハッシュ・キーである本発明の実施においては、データの一部分が同期させられているかを判断するために、ハッシュ・キーが比較される。ブロック２１２において、固有識別子が一致するかが判断される。一致が存在する場合は、処理は、ブロック２０２に進み、そうでなければ、処理は、ブロック２１４に進む。すなわち、固有識別子（例えば、ハッシュ・キー）が一致するデータの各々の部分（例えば、トラック）に対して、本発明の実施では、データの一部分（例えば、トラック）が同期させられている（すなわち、同じである）と認識する。ブロック２１４において、一次データの一部分が、一次ボリュームから二次ボリュームに再送される。
従って、データを再び同期させるためにボリューム全体をコピーすることが避けられる。
【００２３】
本発明の特定の実施において、図２及び図３のロジックは、二次制御ユニットにおける同期システムにおいて行われる。このような実施において、二次制御ユニットは、比較のためにデータの一部分を選択し（ブロック２０２、２０４）、一次制御ユニットから一次データの一部分に対する固有識別子を要求し（ブロック２０６）、対応する二次データの一部分に対する固有識別子を決定し（ブロック２０８）、それらの固有識別子を比較する（ブロック２１０）。固有識別子が一致しない（ブロック２１２）場合は、二次制御ユニットは、一次制御ユニットから一次データの一部分を要求する（ブロック２１４）。
【００２４】
特定の代替的な実施において、図２及び図３のロジックは、一次制御ユニットにおける同期システムにおいて行われ、二次制御ユニットからのデータが、一次制御ユニットにコピーされ得る。例えば、一次制御ユニットは、比較のためにデータの一部分を選択し（ブロック２０２、２０４）、二次制御ユニットから二次データの一部分に対する固有識別子を要求し（ブロック２０６）、対応する一次データの一部分に対する固有識別子を決定し（ブロック２０８）、それらの固有識別子を比較する（ブロック２１０）。固有識別子が一致しない（ブロック２１２）場合は、一次制御ユニットは、一次データの一部分を二次制御ユニットに送信する（ブロック２１４）。
【００２５】
特定の付加的な実施において、別の同期システムが、一次制御ユニット又は二次制御ユニット以外のコンピュータ・システムに常駐する。別の同期システムは、一次サイト及び二次サイトの外に常駐してもよい。別の同期システムは、一次及び二次制御ユニットからデータの一部分に対する固有識別子を要求し、データの一部分に対する固有識別子が一致しなかった場合は、一次制御ユニットに、該データの一部分を二次制御ユニットに送信するように指示する。
【００２６】
本発明を実施するための多くの変形が存在する。本発明の特定の実施において、データの一部分が更新されるときはいつでも、該データの一部分に対する固有識別子が生成され、将来使用するために（例えば、記憶装置又はキャッシュに）格納される。本発明の特定の代替的な実施において、固有識別子は、データの保全性に対する懸念が存在するときに生成される。その時点で、一次及び二次の両方の制御ユニットにおける同期システムにより、データの保全性に対する懸念が存在するときに、各ボリュームのデータの各部分に対する固有識別子が作成される。次に、同期システムの少なくとも１つは、同期が必要かを判断するために固有識別子を比較する。さらに別の代替的な実施において、固有識別子は、周期的に生成されたり更新される。これらの実施において、更新がデータの一部分に対して行われるときはいつでも、固有識別子がもはや有効ではないことが注目される。同期システムがアイドル状態であるか又は所定の時間間隔のときに、該同期システムは、もはや有効でない固有識別子を更新する。また、固有識別子が要求される場合は、有効でない如何なる固有識別子も、その要求時に更新され得る。
【００２７】
固有識別子がハッシュ・キーである、本発明の特定の実施では、データの一部分に対する２つのハッシュ・キーの一致は、２つのデータの一部分が同じであることを意味することを保証する。さらに、例えば、ＭＤ５及びＳｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ−１（ＳＨＡ−１）ハッシュ関数を含む、任意のハッシュ・キー生成技術を、本発明の実施と共に用いることができる。ＭＤ５は、データの一部分をとり、該データの一部分を固定長の数字ストリングに変換する周知の一方向ハッシュ関数（メッセージ・ダイジェストとも呼ばれる）である。ＳＨＡ−１は、長さが２６４ビットより小さいデータの一部分をとり、１６０ビットのメッセージ・ダイジェストを生成する周知のハッシュ関数である。本発明の特定の実施において、データの異なる２つの部分が同じハッシュ・キーを生成する確率は、記憶装置のハード・ディスク・ドライブ（ＨＤＤ）上の検出不能なエラー又はデータ・リンク上の検出不能なエラーの確率より小さい。
【００２８】
図４及び図５は、本発明の特定の実施による固有識別子生成技術をブロック図で示す。本発明の特定の実施において、単一の関数（例えば、ハッシュ関数）を用いて固有識別子（例えば、ハッシュ関数）を生成する。或いは、図４及び図５に示すように、データの一部分に関連付けられた固有識別子が一致する場合には、該データの一部分が同じであるというさらに高いレベルの信頼性を提供するために、同時に２つ又はそれ以上の関数を該データの一部分に適用する。例えば、ブロック３００において、第１の関数を用いて第１の固有識別子（例えば、２５６ビットのＭＤ５キー）を生成する。
【００２９】
ブロック３００の処理と同時に、ブロック３１０において、第２の関数を用いて第２の固有識別子（例えば、２５６ビットのＳＨＡ−１キー）を生成する。ブロック３２０において、第１及び第２の固有識別子を組み合わせて（例えば、連結して）、データの２つの一部が同期させられているかを判断するのに用いられる複合固有識別子を形成する。ブロック３００及びブロック３１０の処理は、並行して又は任意の順序で逐次的に実行され得る。
【００３０】
図５のブロック３５０において、第１の関数を用いてデータの一部分に対する第１の固有識別子（例えば、２５６ビットのＭＤ５キー）を生成する。ブロック３６０において、第１の固有識別子に基づいて第２の関数を用いて第２の固有識別子（例えば、２５６ビットのＳＨＡ−１キー）を生成する。すなわち、第１の固有識別子である、第１の関数の結果が、第２の関数に入力される。第２の関数により生成される新しい固有識別子は、データの２つの一部が同期させられているかを判断するのに用いられる。データの一部分に対する固有識別子を生成する何らかの技術は、本発明の範囲内であり、図４及び図５の例は、本発明の範囲を限定することが意図されるものではない。
【００３１】
図６は、本発明の特定の実施によるソース空間４００及びターゲット空間４５０のブロック図を示す。ソース空間（「Ｓ」）４００は、長さＮビットのデータの一部分（例えば、トラック）４１０を含み、ターゲット空間（「Ｔ」）４５０は、Ｋビットのハッシュ・キー４６０を含む。この場合、ソース空間４００は、２Ｎの可能な組み合わせからなり、ターゲット空間４５０は、２Ｋの可能な組み合わせからなる。ハッシュ・キー関数は、ソース空間４００からターゲット空間４５０に組み合わせをマッピングする。
【００３２】
本発明の実施は、２つの同じハッシュ・キーがソース空間４００と異なるデータの一部分により生成される確率を知ることに関係している。参照を容易にするために、この「ソース値」という用語は、ソース空間４００内のデータの個々の部分のことをいうのに用いられることになる。本発明の特定の実施において、ハッシュ・キー関数がソース空間４００からターゲット空間４５０にソース値を一様にマッピングすると仮定する。すなわち、ターゲット空間４５０の各々の要素についての逆ハッシュ・イメージは、「およそ」同じ基数のものである。ハッシュ・キー生成技術は、「ブルート・フォース」計算法により同じハッシュ・キーを生成するデータの異なる２つの部分を見つけ出すことが「計算上実行不可能」であるように作成されたものであるため、この仮定は有効である。換言すれば、ハッシュ・キー関数は、データのソース部分に対して演算するので、データの一部分の変化に対する正確なビットの組み合わせを見つけて、関数により同じハッシュ・キーが生成されるようにすることは極めて困難である。従って、ハッシュ・キー関数が一様にソース空間４００からターゲット空間４５０にソース値をマッピングするという仮定は有効である。
【００３３】
一様性に関連して、衝突の確率の大きさは、以下のように決定される。参照を容易にするために、この「ターゲット値」という用語は、ここでは固有識別子（例えば、ハッシュ・キー）のことをいうのに用いられる。２Ｎの値が２Ｋのターゲット空間４５０に一様にマッピングされるため、任意のターゲット値については、２Ｎ／２Ｋすなわち２Ｎ−Ｋの衝突が存在することになる。衝突という用語は、ここでは一致を示すために用いられる。同様に、偽の一致は、同じではないデータの異なる２つの部分が同じハッシュ・キーを有するときに生じると言える。それで、一様関数の場合、偽の一致（又は衝突）の確率は、全ソース空間４００の２Ｎで割った、可能な衝突の総数２Ｎ−Ｋ−１である。ゆえに、この確率は、（２Ｎ−Ｋ−１）／２Ｎとなり、それは、Ｎが大きい場合は、およそ２Ｎ−Ｋ／２Ｎとなり、２−Ｋとなる。すなわち、本発明の特定の実施では、ハッシュ関数（「ｈ」）、ｈ：Ｓ−＞Ｔを使用し、その結果、Ｔにおける全てのハッシュ・キー（「ｔ」）については、（ｍａｘ｜ｈ−１（ｔ）｜）／２Ｎ＜＜（ハード・ディスク・ドライブ（ＨＤＤ）の検出不能な故障率の確率）である。すなわち、データの異なる２つの部分が同じハッシュ・キーを生成する確率は、記憶装置のハード・ディスク・ドライブ（ＨＤＤ）上の検出不能なエラー又はデータ・リンク上の検出不能なエラーの確率より小さい。
【００３４】
従って、衝突の確率は、事実上、ソース・データの一部分が十分大きい場合は、ハッシュ・キーのビット数のみに依存する。このハッシュ・キーの長さを２５６ビットにすることによって、衝突の確率は、２−Ｎ又は１０−７８となる。５１２ビットの場合は、確率は、１０−１５５である。これらの確率数は、標準的なＨＤＤ又は２つのデータ・サイト間のデータ転送リンクに固有のものよりはるかにずっと小さい。従って、データの２つの部分が同じでないときにそれらが同じであるとハッシュ・キー関数が報告する確率は、検出不能なエラー標識（例えば、ビット）がＨＤＤから誤って書き込まれて読み取られるか、又はビットが一次記憶制御ユニットから二次記憶制御ユニットに転送されている間に破壊される確率と比較して無視できるものであると言っても差し支えない。すなわち、衝突の確率は、２２５６であり、確率がそれほど小さい場合は、ハッシュ・キー関数が正確には一様でない場合でも、確率は、ハード・ディスク・ドライブ上のビット・エラーの確率よりさらに一層小さい。
【００３５】
従って、本発明の実施では、２つのボリュームを同期させる総時間と、そうするのに必要な帯域幅の両方を減少させる（すなわち、データの一部分ではなく、固有識別子を転送すると、帯域幅の要件が減少する）。この技術により節約される時間は、データ部分の大きさ及びデータ部分の数、データ・リンクの帯域幅、並びに選択されたハッシュ・キー関数及びその実行等の、種々のファクタに依存する。
【００３６】
本発明は、システムの正確な構成に依存するファクタにより、データ・リンクを通じて流れるトラフィック量を減少させる。例として、ソース・データが３２キロバイト（ＫＢ）のデータの一部分であり、ハッシュ・キーが５１２ビット、すなわち６４バイト（Ｂ）である場合は、データ・リンク上のトラフィックの減少は、９９．８％である。もちろん、データのいずれかの部分が同期から外れていることが見つかる場合には、データ部分全体がコピーされることになる。しかしながら、ボリューム全体に関しては、通常は、転送を必要とするデータ部分はほとんど存在せず、これは、大きな帯域幅の節約を意味するものである。
【００３７】
結論として、本発明の実施では、２つの記憶媒体（例えば、ボリューム）が同期させられているかどうかを判断し、同期させられていなければ、同期させられるべき２つの記憶媒体に格納されたデータを識別する。詳細には、本発明の実施では、識別子を一次記憶装置及び二次記憶装置上のデータの各々の部分と関連付ける。一次データの一部分の識別子が二次データの対応する一部の識別子と一致する場合には、これらのデータの一部分は、同期させられていると判断される。一次データの一部分の識別子が二次データの対応する一部の識別子と一致しない場合には、これらのデータの一部分は、同期を必要とすると判断され、該一次データの一部分が、該二次データの部分上にコピーされる。
付加的な実施の詳細
【００３８】
データ同期についての説明された技術は、ソフトウェア、ファームウェア、ハードウェア、又はこれらの何らかの組み合わせを作成する標準的なプログラミング乃至はエンジニアリング技術を用いた製造方法、装置又は物品として導入できる。ここで用いられる「製造物品」という用語は、ハードウェア・ロジック（例えば、集積回路チップ、プログラム可能ゲート・アレイ（ＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）等）、又は磁気記憶媒体（例えば、ハード・ディスク・ドライブ、フロッピー（登録商標）・ディスク、テープ等）、光記憶装置（ＣＤ−ＲＯＭ、光ディスク等）、揮発性及び不揮発性メモリ装置（例えば、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、ファームウェア、プログラム可能なロジック等）等の、コンピュータ可読媒体に実装されたコード若しくはロジックのことをいう。コンピュータ可読媒体のコードは、プロセッサによりアクセスされて実行される。好ましい実施形態で実装されるコードはさらに、伝送媒体を介して又はネットワークを通じてファイル・サーバからアクセス可能とすることができる。このような場合、コードが実装される製造物品は、ネットワーク伝送ライン、無線伝送媒体、空間を通して伝播する信号、電波、赤外線信号等のような、伝送媒体から構成することができる。従って、「製造物品」は、コードが組み入れられている媒体から構成することができる。さらに、「製造物品」は、コードが組み入れられ、処理され、実行される、ハードウェア及びソフトウェア・コンポーネントの組み合わせから構成することができる。もちろん、当業者であれば、本発明の範囲を逸脱することなく多くの変更をこの構成に加えることができ、且つ、製造物品が当該技術分野において知られている何らかの情報伝播媒体を含むことができることを認識するであろう。図２、図３、図４及び図５のロジックは、特定の順序で行われる特定の動作を説明するものである。代替的な実施において、ロジックの動作の幾つかは、異なる順序で実行されてもよいし、変更されてもよいし、或いは除去されてもよい。さらに、動作が、上述のロジックに付加され、それでも説明された実施に準拠し得る。さらに、ここで説明された動作は、逐次的に行われてもよいし、特定の動作が、並行して処理されてもよいし、或いは単一処理により実行されると説明された動作が、分散処理により実行されてもよい。
【００３９】
図２、図３、図４及び図５の示されたロジックは、ソフトウェア、ハードウェア、プログラム可能及びプログラム不可能なゲート・アレイ・ロジックに、又はハードウェア、ソフトウェア若しくはゲート・アレイ・ロジックの何らかの組み合わせに導入できる。
【００４０】
図７は、本発明の特定の実施に従って用いることができるコンピュータ・システムのアーキテクチャを示す。一次制御ユニット、二次制御ユニット乃至はホストが、コンピュータ・アーキテクチャ５００を実装することができる。コンピュータ・アーキテクチャ５００は、プロセッサ５０２（例えば、マイクロプロセッサ）、メモリ５０４（例えば、揮発性メモリ装置）及び記憶装置５１０（例えば、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブ等の、不揮発性記憶領域）を実装することができる。オペレーティング・システム５０５は、メモリ５０４内で実行することができる。記憶装置５１０は、内部の記憶装置、又は付加的な若しくはネットワーク・アクセス可能な記憶装置から構成することができる。記憶装置５１０内のコンピュータ・プログラム５０６は、メモリ５０４にロードされ、当該技術分野において知られている方法でプロセッサ５０２により実行され得る。アーキテクチャはさらに、ネットワークとの通信を可能にするネットワーク・カード５０８を含む。入力装置５１２は、ユーザ入力をプロセッサ５０２に与えるために用いられ、キーボード、マウス、ペン・スタイラス、マイクロホン、タッチ・センシティブ・ディスプレイ・スクリーン、又は当該技術分野において知られているその他のあらゆる起動若しくは入力機構を含むことができる。出力装置５１４は、プロセッサ５０２、又はディスプレイ・モニタ、プリンタ、記憶装置等のような、他のコンポーネントから転送された情報をレンダリングすることができる。コンピュータ・システムのコンピュータ・アーキテクチャ５００は、示されたものより少ないコンポーネントを含むこともできるし、ここでは示されていない付加的なコンポーネントを含むこともできるし、或いは示されたコンポーネントと付加的なコンポーネントとの何らかの組み合わせを含むこともできる。コンピュータ・アーキテクチャ５００は、メインフレーム、サーバ、パーソナル・コンピュータ、ワークステーション、ラップトップ、ハンドヘルド・コンピュータ、テレフォン装置、ネットワーク装置、仮想化装置、記憶コントローラ等のような、当該技術分野において知られている任意のコンピューティング装置を含むことができる。当該技術分野において知られている任意のプロセッサ５０２及びオペレーティング・システム５０５を用いることができる。本発明の実施についての以上の説明は、例証及び説明の目的で提示されたものである。網羅することや本発明を開示された正確な形態に限定することが意図されるものではない。多くの変更及び変形形態は、上記の教示に照らして考えられる。本発明の範囲は、この詳細な説明によるのではなく、むしろ本明細書に添付された特許請求の範囲により制限されることが意図される。上記の明細書、例及びデータにより、本発明の構成の製造及び使用についての完全な説明が提供される。本発明の精神及び範囲から逸脱することなく本発明の多くの実施を行うことができるため、本発明は、冒頭に添付された特許請求の範囲にある。
【図面の簡単な説明】
【００４１】
【図１】本発明の特定の実施によるコンピューティング環境をブロック図で示す。
【図２】本発明の特定の実施による少なくとも１つの同期システムに導入されたデータ同期についてのロジックを示す。
【図３】本発明の特定の実施による少なくとも１つの同期システムに導入されたデータ同期についてのロジックを示す。
【図４】本発明の特定の実施による固有識別子生成技術をブロック図で示す。
【図５】本発明の特定の実施による固有識別子生成技術をブロック図で示す。
【図６】本発明の特定の実施によるソース空間及びターゲット空間をブロック図で示す。
【図７】本発明の特定の実施に従って使用できるコンピュータ・システムのアーキテクチャを示す。
【図１】
2007507030.tif 000003
【図２】
2007507030.tif 000004
【図３】
2007507030.tif 000005
【図３Ａ】
2007507030.tif 000006
【図４】
2007507030.tif 000007
【図５】
2007507030.tif 000008
【図６】
2007507030.tif 000009
【図７】
2007507030.tif 000010
【手続補正書】
【提出日】平成17年10月13日(2005.10.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データを同期させるための方法であって、
第１のソースにおけるデータの一部分に対して、ハッシュ・キーを備える第１の識別子を決定することと、
第２のソースにおけるデータの対応する一部分に対して、ハッシュ・キーを備える第２の識別子を決定することと、
前記第１及び第２の識別子を比較し、前記第１及び第２の識別子が一致しない場合には、前記第２のソースにおける対応するデータの前記部分を前記第１のソースにおけるデータの前記部分と置き換えることと、
を含み、
前記データの前記部分及び前記ハッシュ・キーのサイズは、異なる部分が同じ識別子を有する確率が低減するように選択され、前記選択は、ハッシュ関数ｈ：Ｓ−＞Ｔとし、Ｔにおける全てのハッシュ・キーｔについて、Ｎがデータ・セットＳにおけるいずれかのデータを表すために要求されるビット長であり、
【数１】
2007507030.tif 000011
が、同じ暗号ハッシュ値ｔを有するＳにおける固有データ値の数を表すものとして、
【数２】
2007507030.tif 000012
を用いて行われる、方法。
【請求項２】
前記ハッシュ関数がＳＨＡ−１か又はＭＤ−５である、請求項１に記載の方法。
【請求項３】
前記データの一部のサイズが３２キロバイトであり、前記ハッシュ・キーが６４バイトである、請求項１に記載の方法。
【請求項４】
前記第１及び第２の識別子が一致する場合には、前記第１のソースにおけるデータの前記部分と前記第２のソースにおける対応するデータの前記部分が同じであると判断することをさらに含む、請求項１に記載の方法。
【請求項５】
単一のハッシュ・キー関数を用いて前記ハッシュ・キーを生成することをさらに含む、請求項１に記載の方法。
【請求項６】
多数のハッシュ・キー関数を用いて前記ハッシュ・キーを生成することをさらに含む、請求項１に記載の方法。
【請求項７】
前記第１の識別子を決定することが、
前記第１のソースにおける前記データの一部分に対して第１の関数を実行することによって第１の値を生成することと、
前記第１のソースにおける前記データの一部分に対して第２の関数を実行することによって第２の値を生成することと、
前記第１の値と前記第２の値とを組み合わせることによって前記第１の識別子を生成することと、
をさらに含む、請求項１に記載の方法。
【請求項８】
前記第２の識別子を決定することが、
前記第２のソースにおける対応する前記データの前記部分に対して第１の関数を実行することによって第３の値を生成することと、
前記第２のソースにおける対応する前記データの前記部分に対して第２の関数を実行することによって第４の値を生成することと、
前記第３の値と前記第４の値とを組み合わせることによって前記第２の識別子を生成することと、
をさらに含む、請求項７に記載の方法。
【請求項９】
前記第１の識別子を決定することは、
前記第１のソースにおける前記データの前記部分に対して第１の関数を実行することによって第１の値を生成することと、
前記第１の値に対して第２の関数を実行することによって前記第１の識別子を生成することと、
をさらに含む、請求項１に記載の方法。
【請求項１０】
前記第２の識別子を決定することは、
前記第２のソースにおける前記対応するデータの前記部分に対して前記第１の関数を実行することによって第２の値を生成することと、
前記第２の値に対して前記第２の関数を実行することによって前記第２の識別子を生成することと、
をさらに含む、請求項９に記載の方法。
【請求項１１】
前記第１のソースにおける前記データの前記部分に対する前記第１の識別子は、前記第１のソースにおける前記データの前記部分が更新されるときに決定され、前記第２のソースにおける対応する前記データの前記部分に対する前記第２の識別子は、前記第２のソースにおける対応する前記データの前記部分が更新されるときに決定される、請求項１に記載の方法。
【請求項１２】
前記第１の識別子及び前記第２の識別子は、前記第１のソース及び前記第２のソースにおけるデータを同期させる時であると判断されるときに決定される、請求項１に記載の方法。
【請求項１３】
前記第１の識別子及び前記第２の識別子は、周期的に決定される、請求項１に記載の方法。
【請求項１４】
データを同期させるための製造物品であって、
第１のソースにおけるデータの一部分に対して、ハッシュ・キーを備える第１の識別子を決定することと、
第２のソースにおける対応するデータの一部分に対して、ハッシュ・キーを備える第２の識別子を決定することと、
前記第１及び第２の識別子を比較し、前記第１及び第２の識別子が一致しない場合には、前記第２のソースにおける対応する前記データの前記部分を前記第１のソースにおける前記データの前記部分と置き換えることと、
を含む動作を実行させることができ、
前記データの前記部分及び前記ハッシュ・キーのサイズは、異なる部分が同じ識別子を有する確率が低減するように選択され、前記選択は、ハッシュ関数ｈ：Ｓ−＞Ｔとし、Ｔにおける全てのハッシュ・キーｔについて、Ｎがデータ・セットＳにおけるいずれかのデータを表すために要求されるビット長であり、
【数３】
2007507030.tif 000013
が、同じ暗号ハッシュ値ｔを有するＳにおける固有データ値の数を表すものとして、
【数４】
2007507030.tif 000014
を用いて行われる、
製造物品。
【請求項１５】
前記ハッシュ関数がＳＨＡ−１か又はＭＤ−５である、請求項１４に記載の製造物品。
【請求項１６】
前記データの前記部分のサイズが３２キロバイトであり、前記ハッシュ・キーが６４バイトである、請求項１５に記載の方法。
【請求項１７】
前記第１及び第２の識別子が一致する場合には、前記第１のソースにおける前記データの前記部分と前記第２のソースにおける対応する前記データの前記部分が同じであると判断することを前記動作はさらに含む、請求項１４に記載の製造物品。
【請求項１８】
前記動作が、単一のハッシュ・キー関数を用いて前記ハッシュ・キーを生成することをさらに含む、請求項１４に記載の製造物品。
【請求項１９】
前記動作が、多数のハッシュ・キー関数を用いて前記ハッシュ・キーを生成することをさらに含む、請求項１４に記載の製造物品。
【請求項２０】
前記第１の識別子を決定する前記動作は、
前記第１のソースにおける前記データの前記部分に対して第１の関数を実行することによって第１の値を生成することと、
前記第１のソースにおける前記データの前記部分に対して第２の関数を実行することによって第２の値を生成することと、
前記第１の値と前記第２の値とを組み合わせることによって前記第１の識別子を生成することと、
をさらに含む、請求項１４に記載の製造物品。
【請求項２１】
前記第２の識別子を決定する前記動作は、
前記第２のソースにおける対応する前記データの前記部分に対して前記第１の関数を実行することによって第３の値を生成することと、
前記第２のソースにおける対応する前記データの前記部分に対して前記第２の関数を実行することによって第４の値を生成することと、
前記第３の値と前記第４の値とを組み合わせることによって前記第２の識別子を生成することと、
をさらに含む、請求項２０に記載の製造物品。
【請求項２２】
前記第１の識別子を決定する前記動作は、
前記第１のソースにおける前記データの前記部分に対して第１の関数を実行することによって第１の値を生成することと、
前記第１の値に対して第２の関数を実行することによって前記第１の識別子を生成することと、
をさらに含む、請求項１４に記載の製造物品。
【請求項２３】
前記第２の識別子を決定する前記動作は、
前記第２のソースにおける対応する前記データの前記部分に対して前記第１の関数を実行することによって第２の値を生成することと、
前記第２の値に対して前記第２の関数を実行することによって前記第２の識別子を生成することと、
をさらに含む、請求項２２に記載の製造物品。
【請求項２４】
前記第１のソースにおける前記データの前記部分に対する前記第１の識別子は、前記第１のソースにおける前記データの前記部分が更新されるときに決定され、前記第２のソースにおける対応する前記データの前記部分に対する前記第２の識別子は、前記第２のソースにおける対応する前記データの前記部分が更新されるときに決定される、請求項１４に記載の製造物品。
【請求項２５】
前記第１の識別子及び前記第２の識別子は、前記第１のソース及び前記第２のソースにおけるデータを同期させる時であると判断されるときに決定される、請求項１４に記載の製造物品。
【請求項２６】
前記第１の識別子及び前記第２の識別子は、周期的に決定される、請求項１４に記載の製造物品。
【請求項２７】
データを同期させるためのシステムであって、
第１のソースにおけるデータの一部分に対して、ハッシュ・キーを備える第１の識別子を決定する手段と、
第２のソースにおける対応するデータの一部分に対して、ハッシュ・キーを備える第２の識別子を決定する手段と、
前記第１及び第２の識別子を比較する手段と、
前記第１及び第２の識別子が一致しない場合には、前記第２のソースにおける対応する前記データの前記部分を前記第１のソースにおける前記データの前記部分と置き換える手段と、
を含み、
前記データの前記部分及び前記ハッシュ・キーのサイズは、異なる部分が同じ識別子を有する確率が低減するように選択され、前記選択は、ハッシュ関数ｈ：Ｓ−＞Ｔとし、Ｔにおける全てのハッシュ・キーｔについて、Ｎがデータ・セットＳにおけるいずれかのデータを表すために要求されるビット長であり、
【数５】
2007507030.tif 000015
が、同じ暗号ハッシュ値ｔを有するＳにおける固有データ値の数を表すものとして、
【数６】
2007507030.tif 000016
を用いて行われる、システム。
【請求項２８】
前記ハッシュ関数がＳＨＡ−１か又はＭＤ−５である、請求項２７に記載のシステム。
【請求項２９】
前記データの前記部分のサイズが３２キロバイトであり、前記ハッシュ・キーが６４バイトである、請求項２７に記載のシステム。
【請求項３０】
前記第１及び第２の識別子が一致する場合には、前記第１のソースにおける前記データの前記部分と前記第２のソースにおける対応する前記データの前記部分が一致すると判断する手段をさらに含む、請求項２７に記載のシステム。
【請求項３１】
単一のハッシュ・キー関数を用いて前記ハッシュ・キーを生成する手段をさらに含む、請求項２７に記載のシステム。
【請求項３２】
多数のハッシュ・キー関数を用いて前記ハッシュ・キーを生成する手段をさらに含む、請求項２７に記載のシステム。
【請求項３３】
前記第１の識別子を決定する手段が、
前記第１のソースにおける前記データの前記部分に対して第１の関数を実行することによって第１の値を生成する手段と、
前記第１のソースにおける前記データの前記部分に対して第２の関数を実行することによって第２の値を生成する手段と、
前記第１の値と前記第２の値とを組み合わせることによって前記第１の識別子を生成する手段と、
をさらに含む、請求項２７に記載のシステム。
【請求項３４】
前記第２の識別子を決定する手段は、
前記第２のソースにおける対応する前記データの前記部分に対して前記第１の関数を実行することによって第３の値を生成する手段と、
前記第２のソースにおける対応する前記データの前記部分に対して前記第２の関数を実行することによって第４の値を生成する手段と、
前記第３の値と前記第４の値とを組み合わせることによって前記第２の識別子を生成する手段と、
をさらに含む、請求項３３に記載のシステム。
【請求項３５】
前記第１の識別子を決定する手段は、
前記第１のソースにおける前記データの前記部分に対して第１の関数を実行することによって第１の値を生成する手段と、
前記第１の値に対して第２の関数を実行することによって前記第１の識別子を生成する手段と、
をさらに含む、請求項２７に記載のシステム。
【請求項３６】
前記第２の識別子を決定する手段は、
前記第２のソースにおける対応する前記データの前記部分に対して前記第１の関数を実行することによって第２の値を生成する手段と、
前記第２の値に対して前記第２の関数を実行することによって前記第２の識別子を生成する手段と、
をさらに含む、請求項３５に記載のシステム。
【請求項３７】
前記第１のソースにおける前記データの前記部分に対する前記第１の識別子は、前記第１のソースにおける前記データの前記部分が更新されるときに決定され、前記第２のソースにおける対応する前記データの前記部分に対する前記第２の識別子は、前記第２のソースにおける対応する前記データの前記部分が更新されるときに決定される、請求項２７に記載のシステム。
【請求項３８】
前記第１の識別子及び前記第２の識別子は、前記第１のソース及び前記第２のソースにおけるデータを同期させる時であると判断されるときに決定される、請求項２７に記載のシステム。
【請求項３９】
前記第１の識別子及び前記第２の識別子は、周期的に決定される、請求項２７に記載のシステム。
【国際調査報告】
2007507030.tif 000017
2007507030.tif 000018
2007507030.tif 000019