JP2007507030A - データを同期させるための方法、システム及びプログラム - Google Patents

データを同期させるための方法、システム及びプログラム Download PDF

Info

Publication number
JP2007507030A
JP2007507030A JP2006527410A JP2006527410A JP2007507030A JP 2007507030 A JP2007507030 A JP 2007507030A JP 2006527410 A JP2006527410 A JP 2006527410A JP 2006527410 A JP2006527410 A JP 2006527410A JP 2007507030 A JP2007507030 A JP 2007507030A
Authority
JP
Japan
Prior art keywords
data
source
identifier
generating
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006527410A
Other languages
English (en)
Other versions
JP2007507030A5 (ja
Inventor
ウォルガング、ジョン、ジェイ
ボイド、ケネス、ウェイン
デイ、ケネス、フェアクロー
ドートマス、フィリップ、マシュー
ダーマン、カービー、グラント
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2007507030A publication Critical patent/JP2007507030A/ja
Publication of JP2007507030A5 publication Critical patent/JP2007507030A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2082Data synchronisation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 データを同期させるための方法、システム及びプログラムを提供すること。
【解決手段】 データを同期させるための技術を開示する。第1の識別子は、第1のソースにおけるデータの一部分に対して決定される。第2の識別子は、第2のソースにおける対応するデータの一部分に対して決定される。第1及び第2の識別子が比較される。第1及び第2の識別子が一致しない場合には、第2のソースにおける対応するデータの一部分が、第1のソースにおけるデータの一部分に置き換えられる。
【選択図】 図1

Description

本発明は、データ同期の改善に関する。
典型的な災害復旧ソリューションでは、データは、一次サイト並びに1つ又はそれ以上の二次サイトにおいて格納される。これらの二次サイトでは、一次サイトの災害の場合にデータが失われないようにデータの同期コピーを維持する。災害が発生する場合は、処理が、二次サイトの1つに「フェイル・オーバー」されるか、又はデータが、二次サイトから一次サイトにコピーされ戻されるかのいずれかである。災害復旧を有効なものにするために、二次サイトは通常、両方のサイトが同じ災害により影響を受けないように一次サイトから遠く離れている。
災害復旧システムは、主として2種類の障害、すなわち一時点における突発的障害あるいは一定期間にわたるデータ損失に対処するものである。2種類目の段階的災害では、ボリュームに対する更新が失われる可能性がある。いずれのタイプの災害においても、データのコピーを遠隔位置で使用可能とすることができる。そのような二重コピー又はシャドー・コピーは、通常は、アプリケーション・システムが一次サイトにおいて新しいデータを一次記憶装置に書き込む際に作成される。記憶装置は、所与の媒体にデータを格納する機構を提供して、データを後で取り出せるようにする、物理的なユニットである。本特許出願の出願人であるインターナショナル・ビジネス・マシーンズ・コーポレーション(IBM:IBMおよびIBMロゴは、IBM Corporationの商標)は、拡張遠隔コピー(extended remote copy)(XRC(登録商標))及び対等遠隔コピー(peer−to−peer remote copy)(PPRC)を含む、二次記憶装置にデータのリモート・コピーを保持するシステムを提供する。
これらのシステムは、最後の安全なバックアップからシステム障害が起こるまでの間のデータ更新を復旧する技術を提供する。このようなデータ・シャドーイング・システムは、遠隔サイトにおけるローカル・アクセス等の復旧以外の目的で、付加的なリモート・コピーを提供することもできる。IBM XRC及びPPRCシステムは、非特許文献1においてさらに説明されている。
こうしたバックアップ・システムにおいて、データは、ボリューム・ペアとして保持される。ボリューム・ペアは、一次記憶装置におけるボリュームと、それに対応する、一次ボリュームに保持されたデータと整合したコピーを有する、二次記憶装置におけるボリュームとを含む。このペアのうち、一般的に一次ボリュームは、一次記憶制御ユニットに保持され、二次ボリュームは、一次記憶制御ユニットとは異なる物理的位置にある二次記憶制御ユニットに保持される。記憶制御ユニットは、ホスト・コンピュータに記憶能力を与えるために1つ又はそれ以上の記憶装置と一体化した記憶サーバからなる物理的なハードウェア・ユニットである。記憶サーバは、1つ又はそれ以上の論理サブシステムの機能を提供することによって1つ又はそれ以上の記憶装置とホスト・コンピュータとの間にインタフェースを提供する物理ユニットである。記憶サーバは、記憶装置では提供されない機能を提供することができる。記憶サーバは、記憶装置の1つ又はそれ以上のクラスタからなる。一次DASDへのアクセスを制御するために一次記憶制御ユニットを備え、二次DASDへのアクセスを制御するために二次記憶制御ユニットを備えても構わない。
z/OS(IBM Corporationの商標) V1R1.0 DFSMS Advanced Copy Services(IBM書類番号SC35−0428−00)、2001年4月、インターナショナル・ビジネス・マシーンズ・コーポレーション社から入手可能。
すべての二次データ・サイトが、同期させられ、一次サイトのデータの正確なコピーを含むことが重要である。しかしながら、時々、システムに、一次及び二次サイトが同期させられているかを知らせないエラーが発生することがある。典型的な災害復旧ソリューションでは、二次サイトが一次サイトとの同期の確実性を失う場合は、データのすべてが一次サイトから二次サイトにコピーされなければならない。
大企業においては典型的な大規模システムの場合、この2つのサイトを再び同期させるのに必要な時間は、ここで莫大な量のデータがコピーされなければならないため、膨大な量となる。このコピーを実行するのにかかる時間に加えて、この再コピーの結果として、この2つのサイト間のデータ・リンクが、通常よりはるかに頻繁に使用されていることも忘れてはいけない。これにより、通常の処理を継続するのに必要な帯域幅がもはや使用可能でないために、継続している通常の処理も影響を受けることになる。
特に、従来技術のシステムにおいて、何らかの理由のために2つのボリュームの同期が失われたときには、一次サイトが、データの全てのボリュームを二次サイトに送信する必要がある。多くのボリュームが影響を受けると共に、又はボリュームが非常に大きい場合には、これには、かなりの量の時間がかかりうる。長時間かかるばかりでなく、送信されているデータのすべてが、長距離のデータ・リンク上で使用される帯域幅をとてつもなく増加させることになる。システムが十分な量の付加的な帯域幅を有していない場合、一般に、通常のシステムはそれほどの帯域幅を有しておらず、この再同期は、システムにおいて現在起きているそれ以外のすべての処理及び災害復旧ミラーリングにも影響を及ぼすことになる。さらに、同期が失われるほとんどの場合、実際に同期から外れているのは、たとえあるとしても極めて僅かな量のデータである。結果として、データのほんの僅かな部分だけが実際に同じではないときに、データの全てのボリュームが再コピーされることになる。
従って、データ同期の改善が必要とされている。
データを同期させるための方法、システム及びプログラムを提供する。第1の識別子は、第1のソースにおけるデータの一部分に対して決定される。第2の識別子は、第2のソースにおける対応するデータの一部分に対して決定される。第1及び第2の識別子が比較される。第1及び第2の識別子が一致しない場合には、第2のソースにおける対応するデータの部分が、第1のソースにおけるデータの部分に置き換えられる。
説明されている本発明の実施では、第1及び第2のデータ・セット(例えば、ボリューム)が同期させられているかどうかを判断して、該第1及び第2のデータ・セットが同期させられていない場合は、いずれのデータが同期させられる必要があるかを識別する方法、システム及びプログラムを提供する。従って、第1及び第2のデータ・セットの一部のみが同期させられる必要がある場合は、本発明の実施では、それらの一部のみを一方のデータ・セットから他方にコピーする。
ここで、同じ参照番号が図面を通して対応する部分を表す図面を参照する。
以下の説明では、本明細書の一部を形成し、且つ、本発明の幾つかの実施を示す添付図面を参照する。他の実施を用いることができ、本発明の範囲から逸脱することなく構造及び動作上の変更を加えることができることが理解される。
図1は、本発明の幾つかの実施によるコンピューティング環境をブロック図で示す。一次制御ユニット110、130及び150は、それぞれ1つ又はそれ以上のホスト・コンピュータ116、136又は156とそれぞれ一次記憶装置114、134及び154とのアクセスを提供する。一次記憶装置は、例えば、一次DASDとすることができる。一次記憶装置上のデータを更新するために、1つ又はそれ以上のアプリケーションを各々のホスト・コンピュータ116、136又は156上で実行してもよい。一次制御ユニット110、130及び150はさらに、それぞれ一次キャッシュ112、132及び152を有し、該キャッシュにおいて、それぞれ一次記憶装置114、134及び154内のトラックへの更新が、一次記憶装置114、134及び154に対してデステージされるまで維持される。一次記憶装置114、134及び154のボリュームのすべて又はサブセットのバックアップ・コピーは、それぞれ二次記憶装置124、144及び164に維持することができる。一次サイトは、一次制御ユニット110、130及び150と、一次記憶装置114、134及び154と、ホスト・コンピュータ116、136及び156とを含むことができる。二次サイトは、二次制御ユニット120、140及び160と、二次記憶装置124、144及び164とを含むことができる。二次制御ユニット120、140及び160はさらに、二次キャッシュ122、142及び162を有する。オペレータ・コンピュータ(図示せず)は、二次制御ユニット120、140及び160に取り付けることができる。二次記憶装置は、例えば、二次DASDとすることができる。
幾つかの実施において、「ボリューム・ペア」とは、一次記憶装置におけるボリュームと、該ボリューム・ペアの一次ボリュームのデータのバックアップ・コピーを維持する、二次記憶装置におけるそのボリュームのシャドーとからなる。特定の実施において、各々の一次ボリュームに対し、整合したコンテンツを有する対応する二次ボリュームが存在する、すなわちこれがボリューム・ペアである。例えば、一次記憶装置114への更新が、二次制御ユニット120に転送されて、二次記憶装置124に格納される。
一次制御ユニット110、130及び150はさらに、データ更新の不揮発性コピーを維持するために、バッテリによりバックアップされる揮発性メモリ等の、不揮発性の記憶ユニット(図示せず)を含むことができる。本発明の特定の実施において、一次制御ユニット110、130及び150並びに二次制御ユニット120、140及び160は、インターナショナル・ビジネス・マシーンズ・コーポレーション社から入手可能な、IBM TotalStorage(IBM Corporationの商標) 2105 Enterprise Storage Server(IBM Corporationの商標)(2105ESS)から構成することができる。
各々の一次制御ユニット110、130及び150並びに二次制御ユニット120、140及び160は、データの同期を取るために同期システム111、121、131、141、151及び161を含む。本発明の特定の実施において、同期システム111、121、131、141、151及び161は、データ記憶コントローラ(すなわち、記憶制御ユニット)を備え、固有識別子ジェネレータを含む。
特定の実施において、一次制御ユニット110、130及び150並びに二次制御ユニット120、140及び160は、直接高速伝送ライン(例えば、Enterprise System Connection(ESCON(IBM Corporationの登録商標))リンク)等の、通信パスを介して通信する。しかしながら、通信パスは、ネットワーク伝送ライン、光ファイバ・ケーブル等を含む、当該技術分野において知られているその他のあらゆる通信手段から構成されてもよい。一次記憶装置114、134及び154になされた更新は、二次制御ユニット120、140及び160に転送される。更新の転送は、任意の方式で行うことができる。特定の実施において、バックアップ・データは、任意の一次制御ユニット110、130及び150から任意の二次制御ユニット120、140及び160に転送することができる。各々の一次記憶装置からの各々のボリュームは、二次記憶装置上のボリュームに対応する。例えば、一次記憶装置114上の第1のボリュームは、二次記憶装置124上のボリュームにバックアップされ、一次記憶装置134上の二次ボリュームは、二次記憶装置144上のボリュームにバックアップされる。特定の実施において、1つ又はそれ以上のボリュームは、バックアップされない。
図2及び図3は、本発明の特定の実施による、少なくとも1つの同期システムに導入されたデータ同期についてのロジックを示す。
参照を容易にするために、「一次」及び「二次」という用語が、ここでは用いられる。本発明の実施は、任意の2つのソース(例えば、第1のソース及び第2のソース)間でデータを同期させるために適用可能である。制御は、データを同期させるべき時であるとの判断により、ブロック200で始まる。特定の実施において、データを同期させるべき時であるという判断は、エラーが発生したとき(例えば、一次制御ユニットから二次制御ユニットへの転送中にデータが失われるか、又はデータが一方の制御ユニットにおいて破損されるとき)に行われる。本発明の特定の代替的な実施において、データを同期させる時間であるという判断は、周期的に行われる。
ブロック202において、第1の部分から始まり、一次データ及び対応する二次データの次の部分が選択される。一次データは、一次記憶装置上のデータのことをいい、二次データは、二次記憶装置上のデータのことをいう。本発明の特定の実施において、データの一部分は、ボリューム上のトラックである。ブロック204において、データのすべての部分が選択されたか否かが判断される。選択されていれば処理が完了され、そうでなければ、処理はブロック206に進む。
ブロック206において、一次データの一部分に対する固有識別子が決定される。ブロック208において、対応する二次データの一部分に対する固有識別子が決定される。本発明の特定の実施において、固有識別子はハッシュ・キーである。
すなわち、ハッシュ・キーは、ボリュームの各々におけるデータの各々の部分に関連付けられる。ハッシュ・キーが作成されるデータの長さが変化し得るので、ハッシュ・キーの長さも変化し得る。本発明の特定の実施においては、データの各々の部分(例えば、各ボリューム内の各トラック)に対して作成される1つのハッシュ・キーが存在し、該ハッシュ・キーの長さは、512ビットである。従って、一次ボリューム上のデータの各々の部分に対して作成されるハッシュ・キーと、対応する二次ボリューム上のデータの各々の部分に対するハッシュ・キーとが存在する。
ブロック210において、一次データ及び対応する二次データの一部分に対する固有識別子が比較される。固有識別子がハッシュ・キーである本発明の実施においては、データの一部分が同期させられているかを判断するために、ハッシュ・キーが比較される。ブロック212において、固有識別子が一致するかが判断される。一致が存在する場合は、処理は、ブロック202に進み、そうでなければ、処理は、ブロック214に進む。すなわち、固有識別子(例えば、ハッシュ・キー)が一致するデータの各々の部分(例えば、トラック)に対して、本発明の実施では、データの一部分(例えば、トラック)が同期させられている(すなわち、同じである)と認識する。ブロック214において、一次データの一部分が、一次ボリュームから二次ボリュームに再送される。
従って、データを再び同期させるためにボリューム全体をコピーすることが避けられる。
本発明の特定の実施において、図2及び図3のロジックは、二次制御ユニットにおける同期システムにおいて行われる。このような実施において、二次制御ユニットは、比較のためにデータの一部分を選択し(ブロック202、204)、一次制御ユニットから一次データの一部分に対する固有識別子を要求し(ブロック206)、対応する二次データの一部分に対する固有識別子を決定し(ブロック208)、それらの固有識別子を比較する(ブロック210)。固有識別子が一致しない(ブロック212)場合は、二次制御ユニットは、一次制御ユニットから一次データの一部分を要求する(ブロック214)。
特定の代替的な実施において、図2及び図3のロジックは、一次制御ユニットにおける同期システムにおいて行われ、二次制御ユニットからのデータが、一次制御ユニットにコピーされ得る。例えば、一次制御ユニットは、比較のためにデータの一部分を選択し(ブロック202、204)、二次制御ユニットから二次データの一部分に対する固有識別子を要求し(ブロック206)、対応する一次データの一部分に対する固有識別子を決定し(ブロック208)、それらの固有識別子を比較する(ブロック210)。固有識別子が一致しない(ブロック212)場合は、一次制御ユニットは、一次データの一部分を二次制御ユニットに送信する(ブロック214)。
特定の付加的な実施において、別の同期システムが、一次制御ユニット又は二次制御ユニット以外のコンピュータ・システムに常駐する。別の同期システムは、一次サイト及び二次サイトの外に常駐してもよい。別の同期システムは、一次及び二次制御ユニットからデータの一部分に対する固有識別子を要求し、データの一部分に対する固有識別子が一致しなかった場合は、一次制御ユニットに、該データの一部分を二次制御ユニットに送信するように指示する。
本発明を実施するための多くの変形が存在する。本発明の特定の実施において、データの一部分が更新されるときはいつでも、該データの一部分に対する固有識別子が生成され、将来使用するために(例えば、記憶装置又はキャッシュに)格納される。本発明の特定の代替的な実施において、固有識別子は、データの保全性に対する懸念が存在するときに生成される。その時点で、一次及び二次の両方の制御ユニットにおける同期システムにより、データの保全性に対する懸念が存在するときに、各ボリュームのデータの各部分に対する固有識別子が作成される。次に、同期システムの少なくとも1つは、同期が必要かを判断するために固有識別子を比較する。さらに別の代替的な実施において、固有識別子は、周期的に生成されたり更新される。これらの実施において、更新がデータの一部分に対して行われるときはいつでも、固有識別子がもはや有効ではないことが注目される。同期システムがアイドル状態であるか又は所定の時間間隔のときに、該同期システムは、もはや有効でない固有識別子を更新する。また、固有識別子が要求される場合は、有効でない如何なる固有識別子も、その要求時に更新され得る。
固有識別子がハッシュ・キーである、本発明の特定の実施では、データの一部分に対する2つのハッシュ・キーの一致は、2つのデータの一部分が同じであることを意味することを保証する。さらに、例えば、MD5及びSecure Hash Algorithm−1(SHA−1)ハッシュ関数を含む、任意のハッシュ・キー生成技術を、本発明の実施と共に用いることができる。MD5は、データの一部分をとり、該データの一部分を固定長の数字ストリングに変換する周知の一方向ハッシュ関数(メッセージ・ダイジェストとも呼ばれる)である。SHA−1は、長さが264ビットより小さいデータの一部分をとり、160ビットのメッセージ・ダイジェストを生成する周知のハッシュ関数である。本発明の特定の実施において、データの異なる2つの部分が同じハッシュ・キーを生成する確率は、記憶装置のハード・ディスク・ドライブ(HDD)上の検出不能なエラー又はデータ・リンク上の検出不能なエラーの確率より小さい。
図4及び図5は、本発明の特定の実施による固有識別子生成技術をブロック図で示す。本発明の特定の実施において、単一の関数(例えば、ハッシュ関数)を用いて固有識別子(例えば、ハッシュ関数)を生成する。或いは、図4及び図5に示すように、データの一部分に関連付けられた固有識別子が一致する場合には、該データの一部分が同じであるというさらに高いレベルの信頼性を提供するために、同時に2つ又はそれ以上の関数を該データの一部分に適用する。例えば、ブロック300において、第1の関数を用いて第1の固有識別子(例えば、256ビットのMD5キー)を生成する。
ブロック300の処理と同時に、ブロック310において、第2の関数を用いて第2の固有識別子(例えば、256ビットのSHA−1キー)を生成する。ブロック320において、第1及び第2の固有識別子を組み合わせて(例えば、連結して)、データの2つの一部が同期させられているかを判断するのに用いられる複合固有識別子を形成する。ブロック300及びブロック310の処理は、並行して又は任意の順序で逐次的に実行され得る。
図5のブロック350において、第1の関数を用いてデータの一部分に対する第1の固有識別子(例えば、256ビットのMD5キー)を生成する。ブロック360において、第1の固有識別子に基づいて第2の関数を用いて第2の固有識別子(例えば、256ビットのSHA−1キー)を生成する。すなわち、第1の固有識別子である、第1の関数の結果が、第2の関数に入力される。第2の関数により生成される新しい固有識別子は、データの2つの一部が同期させられているかを判断するのに用いられる。データの一部分に対する固有識別子を生成する何らかの技術は、本発明の範囲内であり、図4及び図5の例は、本発明の範囲を限定することが意図されるものではない。
図6は、本発明の特定の実施によるソース空間400及びターゲット空間450のブロック図を示す。ソース空間(「S」)400は、長さNビットのデータの一部分(例えば、トラック)410を含み、ターゲット空間(「T」)450は、Kビットのハッシュ・キー460を含む。この場合、ソース空間400は、2の可能な組み合わせからなり、ターゲット空間450は、2の可能な組み合わせからなる。ハッシュ・キー関数は、ソース空間400からターゲット空間450に組み合わせをマッピングする。
本発明の実施は、2つの同じハッシュ・キーがソース空間400と異なるデータの一部分により生成される確率を知ることに関係している。参照を容易にするために、この「ソース値」という用語は、ソース空間400内のデータの個々の部分のことをいうのに用いられることになる。本発明の特定の実施において、ハッシュ・キー関数がソース空間400からターゲット空間450にソース値を一様にマッピングすると仮定する。すなわち、ターゲット空間450の各々の要素についての逆ハッシュ・イメージは、「およそ」同じ基数のものである。ハッシュ・キー生成技術は、「ブルート・フォース」計算法により同じハッシュ・キーを生成するデータの異なる2つの部分を見つけ出すことが「計算上実行不可能」であるように作成されたものであるため、この仮定は有効である。換言すれば、ハッシュ・キー関数は、データのソース部分に対して演算するので、データの一部分の変化に対する正確なビットの組み合わせを見つけて、関数により同じハッシュ・キーが生成されるようにすることは極めて困難である。従って、ハッシュ・キー関数が一様にソース空間400からターゲット空間450にソース値をマッピングするという仮定は有効である。
一様性に関連して、衝突の確率の大きさは、以下のように決定される。参照を容易にするために、この「ターゲット値」という用語は、ここでは固有識別子(例えば、ハッシュ・キー)のことをいうのに用いられる。2の値が2のターゲット空間450に一様にマッピングされるため、任意のターゲット値については、2/2すなわち2N−Kの衝突が存在することになる。衝突という用語は、ここでは一致を示すために用いられる。同様に、偽の一致は、同じではないデータの異なる2つの部分が同じハッシュ・キーを有するときに生じると言える。それで、一様関数の場合、偽の一致(又は衝突)の確率は、全ソース空間400の2で割った、可能な衝突の総数2N−K−1である。ゆえに、この確率は、(2N−K−1)/2となり、それは、Nが大きい場合は、およそ2N−K/2となり、2−Kとなる。すなわち、本発明の特定の実施では、ハッシュ関数(「h」)、h:S−>Tを使用し、その結果、Tにおける全てのハッシュ・キー(「t」)については、(max|h−1(t)|)/2N<<(ハード・ディスク・ドライブ(HDD)の検出不能な故障率の確率)である。すなわち、データの異なる2つの部分が同じハッシュ・キーを生成する確率は、記憶装置のハード・ディスク・ドライブ(HDD)上の検出不能なエラー又はデータ・リンク上の検出不能なエラーの確率より小さい。
従って、衝突の確率は、事実上、ソース・データの一部分が十分大きい場合は、ハッシュ・キーのビット数のみに依存する。このハッシュ・キーの長さを256ビットにすることによって、衝突の確率は、2−N又は10−78となる。512ビットの場合は、確率は、10−155である。これらの確率数は、標準的なHDD又は2つのデータ・サイト間のデータ転送リンクに固有のものよりはるかにずっと小さい。従って、データの2つの部分が同じでないときにそれらが同じであるとハッシュ・キー関数が報告する確率は、検出不能なエラー標識(例えば、ビット)がHDDから誤って書き込まれて読み取られるか、又はビットが一次記憶制御ユニットから二次記憶制御ユニットに転送されている間に破壊される確率と比較して無視できるものであると言っても差し支えない。すなわち、衝突の確率は、2256であり、確率がそれほど小さい場合は、ハッシュ・キー関数が正確には一様でない場合でも、確率は、ハード・ディスク・ドライブ上のビット・エラーの確率よりさらに一層小さい。
従って、本発明の実施では、2つのボリュームを同期させる総時間と、そうするのに必要な帯域幅の両方を減少させる(すなわち、データの一部分ではなく、固有識別子を転送すると、帯域幅の要件が減少する)。この技術により節約される時間は、データ部分の大きさ及びデータ部分の数、データ・リンクの帯域幅、並びに選択されたハッシュ・キー関数及びその実行等の、種々のファクタに依存する。
本発明は、システムの正確な構成に依存するファクタにより、データ・リンクを通じて流れるトラフィック量を減少させる。例として、ソース・データが32キロバイト(KB)のデータの一部分であり、ハッシュ・キーが512ビット、すなわち64バイト(B)である場合は、データ・リンク上のトラフィックの減少は、99.8%である。もちろん、データのいずれかの部分が同期から外れていることが見つかる場合には、データ部分全体がコピーされることになる。しかしながら、ボリューム全体に関しては、通常は、転送を必要とするデータ部分はほとんど存在せず、これは、大きな帯域幅の節約を意味するものである。
結論として、本発明の実施では、2つの記憶媒体(例えば、ボリューム)が同期させられているかどうかを判断し、同期させられていなければ、同期させられるべき2つの記憶媒体に格納されたデータを識別する。詳細には、本発明の実施では、識別子を一次記憶装置及び二次記憶装置上のデータの各々の部分と関連付ける。一次データの一部分の識別子が二次データの対応する一部の識別子と一致する場合には、これらのデータの一部分は、同期させられていると判断される。一次データの一部分の識別子が二次データの対応する一部の識別子と一致しない場合には、これらのデータの一部分は、同期を必要とすると判断され、該一次データの一部分が、該二次データの部分上にコピーされる。
付加的な実施の詳細
データ同期についての説明された技術は、ソフトウェア、ファームウェア、ハードウェア、又はこれらの何らかの組み合わせを作成する標準的なプログラミング乃至はエンジニアリング技術を用いた製造方法、装置又は物品として導入できる。ここで用いられる「製造物品」という用語は、ハードウェア・ロジック(例えば、集積回路チップ、プログラム可能ゲート・アレイ(PGA)、特定用途向け集積回路(ASIC)等)、又は磁気記憶媒体(例えば、ハード・ディスク・ドライブ、フロッピー(登録商標)・ディスク、テープ等)、光記憶装置(CD−ROM、光ディスク等)、揮発性及び不揮発性メモリ装置(例えば、EEPROM、ROM、PROM、RAM、DRAM、SRAM、ファームウェア、プログラム可能なロジック等)等の、コンピュータ可読媒体に実装されたコード若しくはロジックのことをいう。コンピュータ可読媒体のコードは、プロセッサによりアクセスされて実行される。好ましい実施形態で実装されるコードはさらに、伝送媒体を介して又はネットワークを通じてファイル・サーバからアクセス可能とすることができる。このような場合、コードが実装される製造物品は、ネットワーク伝送ライン、無線伝送媒体、空間を通して伝播する信号、電波、赤外線信号等のような、伝送媒体から構成することができる。従って、「製造物品」は、コードが組み入れられている媒体から構成することができる。さらに、「製造物品」は、コードが組み入れられ、処理され、実行される、ハードウェア及びソフトウェア・コンポーネントの組み合わせから構成することができる。もちろん、当業者であれば、本発明の範囲を逸脱することなく多くの変更をこの構成に加えることができ、且つ、製造物品が当該技術分野において知られている何らかの情報伝播媒体を含むことができることを認識するであろう。図2、図3、図4及び図5のロジックは、特定の順序で行われる特定の動作を説明するものである。代替的な実施において、ロジックの動作の幾つかは、異なる順序で実行されてもよいし、変更されてもよいし、或いは除去されてもよい。さらに、動作が、上述のロジックに付加され、それでも説明された実施に準拠し得る。さらに、ここで説明された動作は、逐次的に行われてもよいし、特定の動作が、並行して処理されてもよいし、或いは単一処理により実行されると説明された動作が、分散処理により実行されてもよい。
図2、図3、図4及び図5の示されたロジックは、ソフトウェア、ハードウェア、プログラム可能及びプログラム不可能なゲート・アレイ・ロジックに、又はハードウェア、ソフトウェア若しくはゲート・アレイ・ロジックの何らかの組み合わせに導入できる。
図7は、本発明の特定の実施に従って用いることができるコンピュータ・システムのアーキテクチャを示す。一次制御ユニット、二次制御ユニット乃至はホストが、コンピュータ・アーキテクチャ500を実装することができる。コンピュータ・アーキテクチャ500は、プロセッサ502(例えば、マイクロプロセッサ)、メモリ504(例えば、揮発性メモリ装置)及び記憶装置510(例えば、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブ等の、不揮発性記憶領域)を実装することができる。オペレーティング・システム505は、メモリ504内で実行することができる。記憶装置510は、内部の記憶装置、又は付加的な若しくはネットワーク・アクセス可能な記憶装置から構成することができる。記憶装置510内のコンピュータ・プログラム506は、メモリ504にロードされ、当該技術分野において知られている方法でプロセッサ502により実行され得る。アーキテクチャはさらに、ネットワークとの通信を可能にするネットワーク・カード508を含む。入力装置512は、ユーザ入力をプロセッサ502に与えるために用いられ、キーボード、マウス、ペン・スタイラス、マイクロホン、タッチ・センシティブ・ディスプレイ・スクリーン、又は当該技術分野において知られているその他のあらゆる起動若しくは入力機構を含むことができる。出力装置514は、プロセッサ502、又はディスプレイ・モニタ、プリンタ、記憶装置等のような、他のコンポーネントから転送された情報をレンダリングすることができる。コンピュータ・システムのコンピュータ・アーキテクチャ500は、示されたものより少ないコンポーネントを含むこともできるし、ここでは示されていない付加的なコンポーネントを含むこともできるし、或いは示されたコンポーネントと付加的なコンポーネントとの何らかの組み合わせを含むこともできる。コンピュータ・アーキテクチャ500は、メインフレーム、サーバ、パーソナル・コンピュータ、ワークステーション、ラップトップ、ハンドヘルド・コンピュータ、テレフォン装置、ネットワーク装置、仮想化装置、記憶コントローラ等のような、当該技術分野において知られている任意のコンピューティング装置を含むことができる。当該技術分野において知られている任意のプロセッサ502及びオペレーティング・システム505を用いることができる。本発明の実施についての以上の説明は、例証及び説明の目的で提示されたものである。網羅することや本発明を開示された正確な形態に限定することが意図されるものではない。多くの変更及び変形形態は、上記の教示に照らして考えられる。本発明の範囲は、この詳細な説明によるのではなく、むしろ本明細書に添付された特許請求の範囲により制限されることが意図される。上記の明細書、例及びデータにより、本発明の構成の製造及び使用についての完全な説明が提供される。本発明の精神及び範囲から逸脱することなく本発明の多くの実施を行うことができるため、本発明は、冒頭に添付された特許請求の範囲にある。
本発明の特定の実施によるコンピューティング環境をブロック図で示す。 本発明の特定の実施による少なくとも1つの同期システムに導入されたデータ同期についてのロジックを示す。 本発明の特定の実施による少なくとも1つの同期システムに導入されたデータ同期についてのロジックを示す。 本発明の特定の実施による固有識別子生成技術をブロック図で示す。 本発明の特定の実施による固有識別子生成技術をブロック図で示す。 本発明の特定の実施によるソース空間及びターゲット空間をブロック図で示す。 本発明の特定の実施に従って使用できるコンピュータ・システムのアーキテクチャを示す。

Claims (39)

  1. データを同期させるための方法であって、
    第1のソースにおけるデータの一部分に対して第1の識別子を決定することと、
    第2のソースにおける対応するデータの一部分に対して第2の識別子を決定することと、
    前記第1及び第2の識別子を比較し、前記第1及び第2の識別子が一致しない場合には、前記第2のソースにおける対応するデータの前記部分を前記第1のソースにおけるデータの前記部分に置き換えることと、
    を含む方法。
  2. 前記第1及び第2の識別子が一致する場合には、前記第1のソースにおけるデータの前記部分と前記第2のソースにおける対応するデータの前記部分が同じであると判断することをさらに含む、請求項1に記載の方法。
  3. 前記第1及び第2の識別子が、ハッシュ・キーを備える、請求項1に記載の方法。
  4. 単一のハッシュ・キー関数を用いて前記ハッシュ・キーを生成することをさらに含む、請求項3に記載の方法。
  5. 多数のハッシュ・キー関数を用いて前記ハッシュ・キーを生成することをさらに含む、請求項3に記載の方法。
  6. 前記第1のソースにおける前記データの前記部分に対して第1の関数を実行することによって前記第1の識別子を生成することと、
    前記第2のソースにおける対応する前記データの前記部分に対して前記第1の関数を実行することによって前記第2の識別子を生成することと、
    をさらに含む、請求項1に記載の方法。
  7. 前記第1の識別子を決定することは、
    前記第1のソースにおける前記データの前記部分に対して第1の関数を実行することによって第1の値を生成することと、
    前記第1のソースにおける前記データの前記部分に対して第2の関数を実行することによって第2の値を生成することと、
    前記第1の値と前記第2の値とを組み合わせることによって前記第1の識別子を生成することと、
    をさらに含む、請求項1に記載の方法。
  8. 前記第2の識別子を決定することは、
    前記第2のソースにおける対応する前記データの前記部分に対して前記第1の関数を実行することによって第3の値を生成することと、
    前記第2のソースにおける対応する前記データの前記部分に対して前記第2の関数を実行することによって第4の値を生成することと、
    前記第3の値と前記第4の値とを組み合わせることによって前記第2の識別子を生成することと、
    をさらに含む、請求項7に記載の方法。
  9. 前記第1の識別子を決定することは、
    前記第1のソースにおける前記データの前記部分に対して第1の関数を実行することによって第1の値を生成することと、
    前記第1の値に対して第2の関数を実行することによって前記第1の識別子を生成することと、
    をさらに含む、請求項1に記載の方法。
  10. 前記第2の識別子を決定することは、
    前記第2のソースにおける対応する前記データの前記部分に対して前記第1の関数を実行することによって第2の値を生成することと、
    前記第2の値に対して前記第2の関数を実行することによって前記第2の識別子を生成することと、
    をさらに含む、請求項9に記載の方法。
  11. 前記第1のソースにおける前記データの前記部分に対する前記第1の識別子は、前記第1のソースにおける前記データの前記部分が更新されるときに決定され、前記第2のソースにおける対応する前記データの前記部分に対する前記第2の識別子は、前記第2のソースにおける対応する前記データの前記部分が更新されるときに決定される、請求項1に記載の方法。
  12. 前記第1の識別子及び前記第2の識別子は、前記第1のソース及び前記第2のソースにおけるデータを同期させる時であると判断されるときに決定される、請求項1に記載の方法。
  13. 前記第1の識別子及び前記第2の識別子は、周期的に決定される、請求項1に記載の方法。
  14. データを同期させるための製造物品であって、
    第1のソースにおけるデータの一部分に対して第1の識別子を決定することと、
    第2のソースにおける対応するデータの一部分に対して第2の識別子を決定することと、
    前記第1及び第2の識別子を比較し、前記第1及び第2の識別子が一致しない場合には、前記第2のソースにおける対応する前記データの前記部分を前記第1のソースにおける前記データの前記部分と置き換えることと、
    を含む動作を実行させることができる、製造物品。
  15. 前記第1及び第2の識別子が一致する場合には、前記第1のソースにおける前記データの前記部分及び前記第2のソースにおける対応する前記データの前記部分が同じであると判断することを前記動作はさらに含む、請求項14に記載の製造物品。
  16. 前記第1及び第2の識別子は、ハッシュ・キーを備える、請求項14に記載の製造物品。
  17. 前記動作は、単一のハッシュ・キー関数を用いて前記ハッシュ・キーを生成することをさらに含む、請求項16に記載の製造物品。
  18. 前記動作は、多数のハッシュ・キー関数を用いて前記ハッシュ・キーを生成することをさらに含む、請求項16に記載の製造物品。
  19. 前記動作は、
    前記第1のソースにおける前記データの前記部分に対して第1の関数を実行することによって前記第1の識別子を生成することと、
    前記第2のソースにおける対応する前記データの前記部分に対して前記第1の関数を実行することによって前記第2の識別子を生成することと、
    をさらに含む、請求項14に記載の製造物品。
  20. 前記第1の識別子を決定する前記動作は、
    前記第1のソースにおける前記データの前記部分に対して第1の関数を実行することによって第1の値を生成することと、
    前記第1のソースにおける前記データの前記部分に対して第2の関数を実行することによって第2の値を生成することと、
    前記第1の値と前記第2の値とを組み合わせることによって前記第1の識別子を生成することと、
    をさらに含む、請求項14に記載の製造物品。
  21. 前記第2の識別子を決定する前記動作は、
    前記第2のソースにおける対応する前記データの前記部分に対して前記第1の関数を実行することによって第3の値を生成することと、
    前記第2のソースにおける対応する前記データの前記部分に対して前記第2の関数を実行することによって第4の値を生成することと、
    前記第3の値と前記第4の値とを組み合わせることによって前記第2の識別子を生成することと、
    をさらに含む、請求項20に記載の製造物品。
  22. 前記第1の識別子を決定する前記動作は、
    前記第1のソースにおける前記データの前記部分に対して第1の関数を実行することによって第1の値を生成することと、
    前記第1の値に対して第2の関数を実行することによって前記第1の識別子を生成することと、
    をさらに含む、請求項14に記載の製造物品。
  23. 前記第2の識別子を決定する前記動作は、
    前記第2のソースにおける対応する前記データの前記部分に対して前記第1の関数を実行することによって第2の値を生成することと、
    前記第2の値に対して前記第2の関数を実行することによって前記第2の識別子を生成することと、
    をさらに含む、請求項22に記載の製造物品。
  24. 前記第1のソースにおける前記データの前記部分に対する前記第1の識別子は、前記第1のソースにおける前記データの前記部分が更新されるときに決定され、前記第2のソースにおける対応するデータの前記部分に対する前記第2の識別子は、前記第2のソースにおける対応するデータの前記部分が更新されるときに決定される、請求項14に記載の製造物品。
  25. 前記第1の識別子及び前記第2の識別子は、前記第1のソース及び前記第2のソースにおけるデータを同期させる時であると判断されるときに決定される、請求項14に記載の製造物品。
  26. 前記第1の識別子及び前記第2の識別子は、周期的に決定される、請求項14に記載の製造物品。
  27. データを同期させるためのシステムであって、
    第1のソースにおけるデータの一部分に対して第1の識別子を決定する手段と、
    第2のソースにおける対応するデータの一部分に対して第2の識別子を決定する手段と、
    前記第1及び第2の識別子を比較する手段と、
    前記第1及び第2の識別子が一致しない場合には、前記第2のソースにおける対応する前記データの前記部分を前記第1のソースにおける前記データの前記部分と置き換える手段と、
    を含むシステム。
  28. 前記第1及び第2の識別子が一致する場合には、前記第1のソースにおける前記データの前記部分及び前記第2のソースにおける対応する前記データの前記部分が一致すると判断する手段をさらに含む、請求項27に記載のシステム。
  29. 前記第1及び第2の識別子は、ハッシュ・キーを含む、請求項27に記載のシステム。
  30. 単一のハッシュ・キー関数を用いて前記ハッシュ・キーを生成する手段をさらに含む、請求項29に記載のシステム。
  31. 多数のハッシュ・キー関数を用いて前記ハッシュ・キーを生成する手段をさらに含む、請求項29に記載のシステム。
  32. 前記第1のソースにおける前記データの前記部分に対して第1の関数を実行することによって前記第1の識別子を生成する手段と、
    前記第2のソースにおける対応する前記データの前記部分に対して前記第1の関数を実行することによって前記第2の識別子を生成する手段と、
    をさらに含む、請求項27に記載のシステム。
  33. 前記第1の識別子を決定する手段は、
    前記第1のソースにおける前記データの前記部分に対して第1の関数を実行することによって第1の値を生成する手段と、
    前記第1のソースにおける前記データの前記部分に対して第2の関数を実行することによって第2の値を生成する手段と、
    前記第1の値と前記第2の値とを組み合わせることによって前記第1の識別子を生成する手段と、
    をさらに含む、請求項27に記載のシステム。
  34. 前記第2の識別子を決定する手段は、
    前記第2のソースにおける対応する前記データの前記部分に対して前記第1の関数を実行することによって第3の値を生成する手段と、
    前記第2のソースにおける対応する前記データの前記部分に対して前記第2の関数を実行することによって第4の値を生成する手段と、
    前記第3の値と前記第4の値とを組み合わせることによって前記第2の識別子を生成する手段と、
    をさらに含む、請求項33に記載のシステム。
  35. 前記第1の識別子を決定する手段は、
    前記第1のソースにおける前記データの前記部分に対して第1の関数を実行することによって第1の値を生成する手段と、
    前記第1の値に対して第2の関数を実行することによって前記第1の識別子を生成する手段と、
    をさらに含む、請求項27に記載のシステム。
  36. 前記第2の識別子を決定する手段は、
    前記第2のソースにおける対応する前記データの前記部分に対して前記第1の関数を実行することによって第2の値を生成する手段と、
    前記第2の値に対して前記第2の関数を実行することによって前記第2の識別子を生成する手段と、
    をさらに含む、請求項35に記載のシステム。
  37. 前記第1のソースにおける前記データの前記部分に対する前記第1の識別子は、前記第1のソースにおける前記データの前記部分が更新されるときに決定され、前記第2のソースにおける対応する前記データの前記部分に対する前記第2の識別子は、前記第2のソースにおける対応する前記データの前記部分が更新されるときに決定される、請求項27に記載のシステム。
  38. 前記第1の識別子及び前記第2の識別子は、前記第1のソース及び前記第2のソースにおけるデータを同期させる時であると判断されるときに決定される、請求項27に記載のシステム。
  39. 前記第1の識別子及び前記第2の識別子は、周期的に決定される、請求項27に記載のシステム。
JP2006527410A 2003-09-25 2004-09-17 データを同期させるための方法、システム及びプログラム Pending JP2007507030A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/671,295 US7143117B2 (en) 2003-09-25 2003-09-25 Method, system, and program for data synchronization by determining whether a first identifier for a portion of data at a first source and a second identifier for a portion of corresponding data at a second source match
PCT/EP2004/052231 WO2005029356A2 (en) 2003-09-25 2004-09-17 Method, system and program for data synchronization

Publications (2)

Publication Number Publication Date
JP2007507030A true JP2007507030A (ja) 2007-03-22
JP2007507030A5 JP2007507030A5 (ja) 2007-11-08

Family

ID=34376114

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006527410A Pending JP2007507030A (ja) 2003-09-25 2004-09-17 データを同期させるための方法、システム及びプログラム

Country Status (7)

Country Link
US (2) US7143117B2 (ja)
EP (1) EP1714215A2 (ja)
JP (1) JP2007507030A (ja)
KR (1) KR100843652B1 (ja)
CN (1) CN100428177C (ja)
TW (1) TWI291111B (ja)
WO (1) WO2005029356A2 (ja)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7039656B1 (en) * 1999-10-20 2006-05-02 Yodlee.Com, Inc. Method and apparatus for synchronizing data records between a remote device and a data server over a data-packet-network
US7814055B2 (en) * 2002-08-28 2010-10-12 Apple Inc. Method of managing a calendar and a computer system for implementing that method
US8126842B2 (en) * 2004-02-10 2012-02-28 Research In Motion Limited Apparatus, and associated method, for synchronizing databases connected by way of a radio air interface
US7464266B2 (en) * 2004-02-13 2008-12-09 Microsoft Corporation Cheap signatures for synchronous broadcast communication
US7814231B2 (en) * 2004-05-24 2010-10-12 Apple Inc. Method of synchronizing between three or more devices
US7809682B2 (en) * 2004-05-24 2010-10-05 Apple Inc. Data synchronization between multiple devices
US7877356B1 (en) 2004-05-24 2011-01-25 Apple Inc. Retaining intermediate states of shared groups of objects and notification of changes to shared groups of objects
US7383291B2 (en) * 2004-05-24 2008-06-03 Apple Inc. Method for sharing groups of objects
US7580959B2 (en) * 2004-06-14 2009-08-25 International Business Machines Corporation Apparatus, system, and method for providing efficient disaster recovery storage of data using differencing
US7484051B2 (en) * 2004-06-14 2009-01-27 International Business Machines Corporation Apparatus, system and method for reliably updating a data group in a read-before-write data replication environment using a comparison file
US20060026458A1 (en) * 2004-07-30 2006-02-02 Knight Frederick E Storage device identification replication
JP2006106814A (ja) * 2004-09-30 2006-04-20 Konica Minolta Business Technologies Inc 管理対象装置の管理システム及びこのシステムに用いられるデータサーバ並びにブランチサーバ
US8140786B2 (en) 2006-12-04 2012-03-20 Commvault Systems, Inc. Systems and methods for creating copies of data, such as archive copies
US9053164B2 (en) * 2005-05-05 2015-06-09 International Business Machines Corporation Method, system, and program product for using analysis views to identify data synchronization problems between databases
TWI295437B (en) * 2005-07-11 2008-04-01 Asustek Comp Inc Electric device with an automatic backup function
US20070198659A1 (en) * 2006-01-25 2007-08-23 Lam Wai T Method and system for storing data
CN101009516B (zh) 2006-01-26 2011-05-04 华为技术有限公司 一种进行数据同步的方法、系统及装置
US7877628B2 (en) * 2006-06-08 2011-01-25 International Business Machines Corporation Mirroring data between primary and secondary sites
DE102006038303B4 (de) 2006-08-16 2010-06-17 Init Innovative Informatikanwendungen In Transport-, Verkehrs- Und Leitsystemen Gmbh Verfahren und Vorrichtung zum Bestimmen der Koordinaten von Referenzpunkten
JP5105856B2 (ja) * 2006-12-20 2012-12-26 Necシステムテクノロジー株式会社 ストレージシステム、論理ボリュームのレプリケーション方法・プログラム
US7840537B2 (en) 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
JP5211557B2 (ja) * 2007-06-15 2013-06-12 富士通株式会社 Web会議支援プログラム、該プログラムを記録した記録媒体、Web会議支援装置、およびWeb会議支援方法
CN101409614B (zh) 2007-10-12 2011-04-13 华为技术有限公司 一种数据同步方法、系统和设备
US7941399B2 (en) 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US8028229B2 (en) * 2007-12-06 2011-09-27 Microsoft Corporation Document merge
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US7991740B2 (en) * 2008-03-04 2011-08-02 Apple Inc. Synchronization server process
US8301588B2 (en) 2008-03-07 2012-10-30 Microsoft Corporation Data storage for file updates
JP2009237843A (ja) * 2008-03-27 2009-10-15 Brother Ind Ltd ファイル管理システム、携帯端末及び携帯端末プログラム
US8352870B2 (en) 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US8825594B2 (en) 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US8429753B2 (en) 2008-05-08 2013-04-23 Microsoft Corporation Controlling access to documents using file locks
US9098495B2 (en) 2008-06-24 2015-08-04 Commvault Systems, Inc. Application-aware and remote single instance data management
US8219524B2 (en) * 2008-06-24 2012-07-10 Commvault Systems, Inc. Application-aware and remote single instance data management
US8417666B2 (en) 2008-06-25 2013-04-09 Microsoft Corporation Structured coauthoring
US8108634B1 (en) * 2008-06-27 2012-01-31 Emc B.V., S.A.R.L. Replicating a thin logical unit
US8166263B2 (en) 2008-07-03 2012-04-24 Commvault Systems, Inc. Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices
WO2010036754A1 (en) 2008-09-26 2010-04-01 Commvault Systems, Inc. Systems and methods for managing single instancing data
US9015181B2 (en) 2008-09-26 2015-04-21 Commvault Systems, Inc. Systems and methods for managing single instancing data
KR100935831B1 (ko) * 2008-11-17 2010-01-08 우용태 복수의 이벤트 식별자가 포함된 데이타구조체를 이용한 데이타동기화 방법 및 상기 방법을 이용한 데이타 백업솔루션
US8412677B2 (en) 2008-11-26 2013-04-02 Commvault Systems, Inc. Systems and methods for byte-level or quasi byte-level single instancing
US8401996B2 (en) * 2009-03-30 2013-03-19 Commvault Systems, Inc. Storing a variable number of instances of data objects
US8346768B2 (en) * 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
US8578120B2 (en) 2009-05-22 2013-11-05 Commvault Systems, Inc. Block-level single instancing
US8214612B1 (en) * 2009-09-28 2012-07-03 Emc Corporation Ensuring consistency of replicated volumes
KR101045540B1 (ko) * 2009-12-28 2011-07-01 (주)유성글로벌 데이터 동기화 시스템 및 방법
JP2011165032A (ja) * 2010-02-12 2011-08-25 Buffalo Inc コンピュータプログラム及びデータバックアップ方法
US8935492B2 (en) 2010-09-30 2015-01-13 Commvault Systems, Inc. Archiving data objects using secondary copies
US9465696B2 (en) 2011-06-03 2016-10-11 Apple Inc. Methods and apparatus for multi-phase multi-source backup
US9411687B2 (en) 2011-06-03 2016-08-09 Apple Inc. Methods and apparatus for interface in multi-phase restore
US8819471B2 (en) * 2011-06-03 2014-08-26 Apple Inc. Methods and apparatus for power state based backup
US8868859B2 (en) 2011-06-03 2014-10-21 Apple Inc. Methods and apparatus for multi-source restore
US10733151B2 (en) 2011-10-27 2020-08-04 Microsoft Technology Licensing, Llc Techniques to share media files
US9053079B2 (en) * 2011-12-12 2015-06-09 Microsoft Technology Licensing, Llc Techniques to manage collaborative documents
CN102663547B (zh) * 2012-03-28 2015-09-02 积成电子股份有限公司 电力调度主备系统全模型同步保持资源id不变化的方法
US9020890B2 (en) 2012-03-30 2015-04-28 Commvault Systems, Inc. Smart archiving and data previewing for mobile devices
US8775682B1 (en) * 2012-05-08 2014-07-08 Google Inc. Data synchronization with eventual consistency
US9633022B2 (en) 2012-12-28 2017-04-25 Commvault Systems, Inc. Backup and restoration for a deduplicated file system
US9542423B2 (en) 2012-12-31 2017-01-10 Apple Inc. Backup user interface
US9336226B2 (en) 2013-01-11 2016-05-10 Commvault Systems, Inc. Criteria-based data synchronization management
US9197700B2 (en) 2013-01-18 2015-11-24 Apple Inc. Keychain syncing
US9077759B2 (en) * 2013-01-18 2015-07-07 Apple Inc. Conflict resolution for keychain syncing
CN104065676A (zh) * 2013-03-19 2014-09-24 联想(北京)有限公司 文件同步方法及文件同步设备
CN103186678B (zh) * 2013-04-24 2016-09-14 曙光信息产业(北京)有限公司 数据修复方法、装置和系统
US10324897B2 (en) 2014-01-27 2019-06-18 Commvault Systems, Inc. Techniques for serving archived electronic mail
US9798596B2 (en) 2014-02-27 2017-10-24 Commvault Systems, Inc. Automatic alert escalation for an information management system
US9645891B2 (en) 2014-12-04 2017-05-09 Commvault Systems, Inc. Opportunistic execution of secondary copy operations
US9753816B2 (en) 2014-12-05 2017-09-05 Commvault Systems, Inc. Synchronization based on filtered browsing
US9588849B2 (en) 2015-01-20 2017-03-07 Commvault Systems, Inc. Synchronizing selected portions of data in a storage management system
US9952934B2 (en) 2015-01-20 2018-04-24 Commvault Systems, Inc. Synchronizing selected portions of data in a storage management system
US10324914B2 (en) 2015-05-20 2019-06-18 Commvalut Systems, Inc. Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files
US20190332712A1 (en) * 2018-04-30 2019-10-31 Hewlett Packard Enterprise Development Lp Switch configuration synchronization
US10896201B2 (en) 2018-05-18 2021-01-19 International Business Machines Corporation Synchronization of block based volumes
US11138085B2 (en) * 2018-10-09 2021-10-05 Argo AI, LLC Execution sequence integrity monitoring system
US11144375B2 (en) 2018-10-09 2021-10-12 Argo AI, LLC Execution sequence integrity parameter monitoring system
CN111858775A (zh) * 2020-08-06 2020-10-30 四川长虹电器股份有限公司 用于物联网平台的异地数据库的数据同步方法
US11656792B2 (en) * 2021-06-29 2023-05-23 International Business Machines Corporation Mirroring data in write caches of a controller of a non-volatile memory

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63245741A (ja) * 1987-04-01 1988-10-12 Fujitsu Ltd デ−タの同期方式
JPH05167640A (ja) * 1991-12-11 1993-07-02 Oki Electric Ind Co Ltd 通信プロトコル実装方式
JPH08125969A (ja) * 1994-10-25 1996-05-17 Toshiba Corp 記録装置及び再生装置
JPH08147888A (ja) * 1994-11-24 1996-06-07 Hitachi Ltd ディジタル信号記録方法及び装置
JPH10255406A (ja) * 1997-03-14 1998-09-25 Hitachi Ltd ディジタル信号記録装置、再生装置、記録方法および再生方法
JPH11232159A (ja) * 1998-02-13 1999-08-27 The Japan Reserch Institute Ltd ファイル管理方法およびファイル管理のためのプログラムを記憶した媒体
JP2000207847A (ja) * 1999-01-14 2000-07-28 Sony Corp クロック再生回路およびクロック再生方法
JP2002318716A (ja) * 2001-04-20 2002-10-31 Sony Corp 配信システム、配信方法、サーバコンピュータ、クライアントコンピュータ
JP2002334173A (ja) * 2000-11-02 2002-11-22 Matsushita Electric Ind Co Ltd コンテンツ配信方法及びこれに用いるサーバ及び端末並びにコンピュータプログラム
JP2003022009A (ja) * 2001-07-10 2003-01-24 Nec Corp 簡易型データ真正性保証システム、方法、およびプログラム

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4480304A (en) 1980-10-06 1984-10-30 International Business Machines Corporation Method and means for the retention of locks across system, subsystem, and communication failures in a multiprocessing, multiprogramming, shared data environment
US5339398A (en) 1989-07-31 1994-08-16 North American Philips Corporation Memory architecture and method of data organization optimized for hashing
US5479654A (en) * 1990-04-26 1995-12-26 Squibb Data Systems, Inc. Apparatus and method for reconstructing a file from a difference signature and an original file
EP0706686B1 (en) * 1993-07-01 1998-10-14 Legent Corporation System and method for distributed storage management on networked computer systems
US6141663A (en) * 1994-03-18 2000-10-31 Unimax Systems Corporation Automatic external data synchronization method
US5835953A (en) * 1994-10-13 1998-11-10 Vinca Corporation Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating
US5727181A (en) * 1996-02-14 1998-03-10 International Business Machines Corporation Array management system with volume transform filter
US5970502A (en) * 1996-04-23 1999-10-19 Nortel Networks Corporation Method and apparatus for synchronizing multiple copies of a database
US5768532A (en) 1996-06-17 1998-06-16 International Business Machines Corporation Method and distributed database file system for implementing self-describing distributed file objects
US7013315B1 (en) * 1996-11-13 2006-03-14 Intellisync Corporation Synchronization of databases with record sanitizing and intelligent comparison
AU6151598A (en) * 1997-02-11 1998-08-26 Connected Corporation File comparison for data backup and file synchronization
US5875461A (en) 1997-04-03 1999-02-23 Sun Microsystems, Inc. Method of synchronizing one of the objects with one of the threads at a time
US6108754A (en) * 1997-04-03 2000-08-22 Sun Microsystems, Inc. Thread-local synchronization construct cache
JP3901806B2 (ja) 1997-09-25 2007-04-04 富士通株式会社 情報管理システム及び二次サーバ
US6199074B1 (en) * 1997-10-09 2001-03-06 International Business Machines Corporation Database backup system ensuring consistency between primary and mirrored backup database copies despite backup interruption
US6603750B1 (en) * 1998-10-09 2003-08-05 Telefonaktiebolaget Lm Ericsson (Publ) Rehash timer for packet data communications
JP2000163344A (ja) * 1998-11-27 2000-06-16 Nec Corp ネットワーク管理システムのデータベース復旧方式
US6470462B1 (en) 1999-02-25 2002-10-22 Telefonaktiebolaget Lm Ericsson (Publ) Simultaneous resynchronization by command for state machines in redundant systems
JP4046893B2 (ja) * 1999-05-28 2008-02-13 富士通株式会社 データベース複写装置及びデータベース複写方法並びにデータベース複写プログラムを記録したコンピュータ読み取り可能な記録媒体
US6249849B1 (en) * 1999-06-16 2001-06-19 International Business Machines Corporation “Fail-Safe” updating of redundant data in multiple data storage libraries
US6751634B1 (en) * 1999-08-26 2004-06-15 Microsoft Corporation Method and system for detecting object inconsistency in a loosely consistent replicated directory service
US6446090B1 (en) * 1999-10-08 2002-09-03 Unisys Corporation Tracker sensing method for regulating synchronization of audit files between primary and secondary hosts
JP3963417B2 (ja) * 1999-11-19 2007-08-22 株式会社東芝 データ同期処理のための通信方法および電子機器
US6493727B1 (en) * 2000-02-07 2002-12-10 Hewlett-Packard Company System and method for synchronizing database in a primary device and a secondary device that are derived from a common database
EP1285364A1 (en) * 2000-05-24 2003-02-26 Openwave Systems Inc. Synchronisation of databases
US20020059299A1 (en) * 2000-07-14 2002-05-16 Frederic Spaey System and method for synchronizing databases
US6529917B1 (en) * 2000-08-14 2003-03-04 Divine Technology Ventures System and method of synchronizing replicated data
US6694337B1 (en) * 2000-10-26 2004-02-17 Intel Corporation Synchronizing databases
US20020075981A1 (en) 2000-12-20 2002-06-20 Benjamim Tang PLL/DLL dual loop data synchronization
US6606694B2 (en) * 2000-12-22 2003-08-12 Bull Hn Information Systems Inc. Write logging in mirrored disk subsystems
US7177866B2 (en) * 2001-03-16 2007-02-13 Gravic, Inc. Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only
FI113129B (fi) 2001-03-26 2004-02-27 Nokia Corp Sovellusdatan synkronointi tietoliikennejärjestelmässä
US7499698B2 (en) 2002-01-28 2009-03-03 Qualcomm Incorporated Synchronization of stored service parameters in a communication system
FI114417B (fi) 2001-06-15 2004-10-15 Nokia Corp Datan valitseminen synkronointia varten
US6857044B2 (en) * 2001-10-15 2005-02-15 International Business Machines Corporation Data storage device for fast multiple file write operations
US7076508B2 (en) * 2002-08-12 2006-07-11 International Business Machines Corporation Method, system, and program for merging log entries from multiple recovery log files
US7089446B2 (en) * 2003-01-09 2006-08-08 International Business Machines Corporation Method, system, and article of manufacture for creating a consistent copy
US7024584B2 (en) * 2003-01-09 2006-04-04 International Business Machines Corporation Method, system, and article of manufacture for maintaining data integrity
AU2003303878A1 (en) * 2003-02-06 2004-08-30 Research In Motion Limited Apparatus and method for synchronizing databases by comparing hash values
EP1489862A1 (en) * 2003-06-20 2004-12-22 Axalto S.A. Database synchronization
US7047379B2 (en) * 2003-07-11 2006-05-16 International Business Machines Corporation Autonomic link optimization through elimination of unnecessary transfers
US7370089B2 (en) * 2003-07-11 2008-05-06 International Business Machines Corporation Autonomic learning method to load balance output transfers of two peer nodes
US7107420B2 (en) * 2003-08-29 2006-09-12 International Business Machines Corporation Apparatus and method to adjust data transfer rate
GB2409545A (en) * 2003-12-24 2005-06-29 Nokia Corp File synchronisation
US7412577B2 (en) * 2004-02-05 2008-08-12 International Business Machines Corporation Shared data mirroring apparatus, method, and system
EP1862923A1 (en) * 2004-02-10 2007-12-05 Research In Motion Limited Apparatus and associated method for synchronizing databases by comparing hash values
US7475099B2 (en) * 2004-02-25 2009-01-06 International Business Machines Corporation Predictive algorithm for load balancing data transfers across components
US7580959B2 (en) * 2004-06-14 2009-08-25 International Business Machines Corporation Apparatus, system, and method for providing efficient disaster recovery storage of data using differencing

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63245741A (ja) * 1987-04-01 1988-10-12 Fujitsu Ltd デ−タの同期方式
JPH05167640A (ja) * 1991-12-11 1993-07-02 Oki Electric Ind Co Ltd 通信プロトコル実装方式
JPH08125969A (ja) * 1994-10-25 1996-05-17 Toshiba Corp 記録装置及び再生装置
JPH08147888A (ja) * 1994-11-24 1996-06-07 Hitachi Ltd ディジタル信号記録方法及び装置
JPH10255406A (ja) * 1997-03-14 1998-09-25 Hitachi Ltd ディジタル信号記録装置、再生装置、記録方法および再生方法
JPH11232159A (ja) * 1998-02-13 1999-08-27 The Japan Reserch Institute Ltd ファイル管理方法およびファイル管理のためのプログラムを記憶した媒体
JP2000207847A (ja) * 1999-01-14 2000-07-28 Sony Corp クロック再生回路およびクロック再生方法
JP2002334173A (ja) * 2000-11-02 2002-11-22 Matsushita Electric Ind Co Ltd コンテンツ配信方法及びこれに用いるサーバ及び端末並びにコンピュータプログラム
JP2002318716A (ja) * 2001-04-20 2002-10-31 Sony Corp 配信システム、配信方法、サーバコンピュータ、クライアントコンピュータ
JP2003022009A (ja) * 2001-07-10 2003-01-24 Nec Corp 簡易型データ真正性保証システム、方法、およびプログラム

Also Published As

Publication number Publication date
WO2005029356A2 (en) 2005-03-31
WO2005029356A3 (en) 2005-05-12
TW200525390A (en) 2005-08-01
CN100428177C (zh) 2008-10-22
CN1846197A (zh) 2006-10-11
US7143117B2 (en) 2006-11-28
KR20060070551A (ko) 2006-06-23
EP1714215A2 (en) 2006-10-25
US7647462B2 (en) 2010-01-12
KR100843652B1 (ko) 2008-07-04
US20050071386A1 (en) 2005-03-31
TWI291111B (en) 2007-12-11
US20070130216A1 (en) 2007-06-07

Similar Documents

Publication Publication Date Title
US7143117B2 (en) Method, system, and program for data synchronization by determining whether a first identifier for a portion of data at a first source and a second identifier for a portion of corresponding data at a second source match
KR101602312B1 (ko) 데이터 송신 방법, 데이터 수신 방법, 및 저장 장치
US7877628B2 (en) Mirroring data between primary and secondary sites
US7137033B2 (en) Method, system, and program for synchronizing subtasks using sequence numbers
US8214612B1 (en) Ensuring consistency of replicated volumes
US6950915B2 (en) Data storage subsystem
US7111004B2 (en) Method, system, and program for mirroring data between sites
US8626722B2 (en) Consolidating session information for a cluster of sessions in a coupled session environment
US20090144345A1 (en) System and article of manufacture for consistent copying of storage volumes
JP2005339554A (ja) 高速逆リストア
JP2006023889A (ja) リモートコピーシステム及び記憶装置システム
KR20060017789A (ko) 저장 장치 카피 방법, 시스템 및 제조품
US20050071590A1 (en) Method of managing generation of backup data and storage control device used therefor
US7219267B2 (en) Method, system, and program for data corruption detection and fault isolation
KR102105478B1 (ko) 고 쓰루풋, 고 신뢰성의 데이터 처리 시스템
US20040181632A1 (en) Method, system, and program for policies for improving throughput in remote mirroring systems
US20160357479A1 (en) Storage control apparatus
JP4583075B2 (ja) サイト間でデータをミラーリングする方法、システム、およびプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070914

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070914

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100824

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20100913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101117

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110413

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110420

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20110506

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20120814