JP2005032249A - フェンシングおよびフェンシング解除による、複製情報の権限の細分制御 - Google Patents

フェンシングおよびフェンシング解除による、複製情報の権限の細分制御 Download PDF

Info

Publication number
JP2005032249A
JP2005032249A JP2004199703A JP2004199703A JP2005032249A JP 2005032249 A JP2005032249 A JP 2005032249A JP 2004199703 A JP2004199703 A JP 2004199703A JP 2004199703 A JP2004199703 A JP 2004199703A JP 2005032249 A JP2005032249 A JP 2005032249A
Authority
JP
Japan
Prior art keywords
resource
machine
data
computer
fence
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.)
Granted
Application number
JP2004199703A
Other languages
English (en)
Other versions
JP2005032249A5 (ja
JP5192635B2 (ja
Inventor
Dan Teodosiu
テオドシュー ダン
Nikolaj S Bjorner
エス.ビエルナー ニコライ
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005032249A publication Critical patent/JP2005032249A/ja
Publication of JP2005032249A5 publication Critical patent/JP2005032249A5/ja
Application granted granted Critical
Publication of JP5192635B2 publication Critical patent/JP5192635B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • G06F16/1844Management specifically adapted to replicated file systems
    • 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/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Glass Compositions (AREA)
  • Devices For Checking Fares Or Tickets At Control Points (AREA)
  • Document Processing Apparatus (AREA)
  • Hardware Redundancy (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】 どのコンテンツが優先され複製されるかを制御するための方法およびシステムを提供すること。
【解決手段】 複製物セットは、リソースのセットからなる。各リソースは、リソースデータおよびリソースメタデータに関連する。ファイルベースのシステムの場合、リソースデータはファイルコンテンツおよび属性を含み、リソースメタデータは、複製中に同期を交渉するのに関係する追加の属性を含む。「フェンス値(fence value)」と呼ばれる特別なフィールドが、各リソースに関連するメタデータに追加される。同期中、最初にフェンス値が比較される。最大のフェンス値を有するリソースは、制御側コンテンツであって複製されるコンテンツを含む。フェンス値が等しい場合(および特定の値よりも大きい場合)は、制御側リソースは他のメタデータに基づいて決定される。
【選択図】 図8

Description

本発明は一般にコンピューティングデバイスに関し、より詳細には、リソース複製システムに関する。
日和見的でマルチマスタの複製システムでは、所与の複製物セットに関与している任意のマシン上の複製されたコンテンツに対して、自由な変更が可能である。潜在的に競合するこれらの変更は、複製システムの制御下で、競合する変更のどれが他よりも優先されるかをあらゆる競合状況について定義する競合解決基準を使用して調停される。過去、使用されてきた主要な競合解決基準は、物理的または論理的な変更時刻であり、一番最近の変更が他のすべての変更よりも優先されてきた。
しかし、同時に発生する更新のどれが他よりも優先され、反対にどの更新が優先権を譲るべきかを制御するための方法が他にもあればよいと、ユーザまたはアプリケーションが望む場合は多い。どのコンテンツが優先され複製されるかを制御するためのフレキシブルな方法およびシステムが必要とされている。
簡単に言えば、本発明は、どのコンテンツが優先され複製されるかを制御するための方法およびシステムを提供する。複製物セットは、リソースのセットからなる。各リソースは、リソースデータおよびリソースメタデータに関連する。リソースデータは、ファイルの場合はファイルコンテンツおよび属性を含み、リソースメタデータは、複製中に同期を交渉するのに関係する追加の属性を含む。「フェンス値(fence value)」と呼ばれる特別なフィールドが、各リソースに関連するメタデータに追加される。同期中、フェンス値が比較される。最大のフェンス値を有するリソースは、制御側コンテンツであって複製されるコンテンツを含む。フェンス値が等しい場合(および特定の値よりも大きい場合)は、制御側リソースは他のメタデータに基づいて決定される。
フェンス値は、コンテンツのローカル変更から独立している。すなわち、コンテンツのローカル変更は、他のメタデータ(例えばタイムスタンプ、クロック値、その他)に影響を与えることはあるが、特に指示がない限りフェンス値には影響を与えない。
本発明の一態様では、リソースは、リソースがフェンシング解除されている(unfenced)ことを示すフェンス値を有することができる。リソースがフェンシング解除されている場合、このことは、このリソースをそれが記憶されているマシンから送信すべきではないことを示す。争っているリソースが同期のために受け取られたとき、フェンシング解除されているリソースは、フェンシングされている(fenced)リソースに負ける(そして同期中に置換される)。
本発明の別の態様では、勝ったリソースを有するマシン上のリソースと、負けたコンテンツを有するマシン上のリソースとの差分だけが送信される。例えば、リソースコンテンツを送信せずにリソースメタデータを送信することができる。別の例では、同期中にリソースコンテンツの差分を送信することができる。
その他の利点は、以下の詳細な説明を図面とともに読めば明らかになるであろう。
(例示的な動作環境)
図1に、本発明を実施するのに適したコンピューティングシステム環境100の例を示す。コンピューティングシステム環境100は、適したコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲についてどんな制限も意味しない。またコンピューティング環境100は、この例示的な動作環境100に示すコンポーネントのいずれか1つまたは組合せに関してどんな依存や要件を有するものとも解釈すべきではない。
本発明は、その他多くの汎用または専用コンピューティングシステム環境または構成でも動作する。本発明で使用するのに適すると考えられる周知のコンピューティングシステム、環境、および/または構成の例には、限定しないがパーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロコントローラベースのシステム、セットトップボックス、プログラム可能な民生用電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータや、これらのシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれる。
本発明は、プログラムモジュールなど、コンピュータによって実行されるコンピュータ実行可能命令の一般的なコンテキストで述べることができる。一般にプログラムモジュールは、特定のタスクを実施するか特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は分散コンピューティング環境で実施することもでき、その場合、タスクは通信ネットワークを介してリンクされたリモート処理デバイスによって実施される。分散コンピューティング環境では、プログラムモジュールおよびその他のデータは、メモリ記憶デバイスを含めたローカルとリモートの両方のコンピュータ記憶媒体に位置することができる。
図1を参照すると、本発明を実施するための例示的なシステムは、コンピュータシステム110の形の汎用コンピューティングデバイスを含む。コンピュータ110のコンポーネントには、限定しないが処理ユニット120と、システムメモリ130と、システムメモリを含めた様々なシステムコンポーネントを処理ユニット120に結合するシステムバス121とを含めることができる。システムバス121は、様々なバスアーキテクチャのいずれかを用いた、メモリバスまたはメモリコントローラ、周辺バス、ローカルバスを含めて、いくつかのタイプのバス構造のいずれかとすることができる。限定ではなく例として、このようなアーキテクチャには、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、PCI(Peripheral Component Interconnect)バス(メザニンバスとも呼ばれる)が含まれる。
コンピュータ110は通常、様々なコンピュータ可読媒体を備える。コンピュータ可読媒体は、コンピュータ110からアクセスできる任意の利用可能な媒体とすることができ、揮発性と不揮発性の媒体、取外し可能と取外し不可能の媒体の両方が含まれる。限定ではなく例として、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体を含めることができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を記憶するための任意の方法または技術で実現された、揮発性と不揮発性、取外し可能と取外し不可能の両方の媒体が含まれる。コンピュータ記憶媒体には、限定しないがRAM、ROM、EEPROM、フラッシュメモリまたはその他のメモリ技術、CD−ROM、ディジタル多用途ディスク(DVD)またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他の磁気記憶デバイスが含まれ、あるいは、所望の情報を記憶するのに使用できコンピュータ110からアクセスできるその他の任意の媒体が含まれる。通信媒体は通常、搬送波やその他のトランスポート機構などの変調されたデータ信号中に、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを組み入れたものであり、任意の情報送達媒体が含まれる。「変調されたデータ信号」という語は、情報が信号中に符号化される形で1つまたは複数の特性が設定または変更された信号を意味する。限定ではなく例として、通信媒体には、配線式ネットワークや直接配線式接続などの配線式媒体と、音響、無線周波、赤外線、その他の無線媒体などの無線媒体とが含まれる。以上の任意の組合せもコンピュータ可読媒体の範囲に含めるべきである。
システムメモリ130は、読取り専用メモリ(ROM)131やランダムアクセスメモリ(RAM)132など、揮発性および/または不揮発性メモリの形のコンピュータ記憶媒体を含む。ROM131には通常、起動中などにコンピュータ110内の要素間で情報を転送するのを助ける基本ルーチンを含むBIOS(basic input/output system)133が記憶されている。RAM132は通常、処理ユニット120がすぐにアクセス可能な、かつ/または処理ユニット120が現在作用している、データおよび/またはプログラムモジュールを含む。限定ではなく例として、図1には、オペレーティングシステム134、アプリケーションプログラム136、その他のプログラムモジュール137、プログラムデータ138を示す。
コンピュータ110は、その他の取外し可能/取外し不可能、揮発性/不揮発性コンピュータ記憶媒体を備えることもできる。例にすぎないが図1には、取外し不可能かつ不揮発性の磁気媒体に対して読み書きするハードディスクドライブ141と、取外し可能かつ不揮発性の磁気ディスク152に対して読み書きする磁気ディスクドライブ151と、CD ROMやその他の光媒体など取外し可能かつ不揮発性の光ディスク156に対して読み書きする光ディスクドライブ155を示す。この例示的な動作環境で使用できるその他の取外し可能/取外し不可能、揮発性/不揮発性コンピュータ記憶媒体には、限定しないが磁気テープカセット、フラッシュメモリカード、ディジタル多用途ディスク、ディジタルビデオテープ、固体RAM、固体ROMなどが含まれる。ハードディスクドライブ141は通常、インタフェース140などの不揮発性メモリインタフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は通常、インタフェース150などの取外し可能メモリインタフェースでシステムバス121に接続される。
以上に論じ図1に示した各ドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、その他のデータの記憶域をコンピュータ110に提供する。例えば図1には、ハードディスクドライブ141がオペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、プログラムデータ147を記憶しているのが示されている。これらのコンポーネントは、オペレーティングシステム134、アプリケーションプログラム136、その他のプログラムモジュール137、プログラムデータ138と同じものとすることもでき、異なるものとすることもできることに留意されたい。ここでは、オペレーティングシステム144、アプリケーションプログラム145、その他のプログラムモジュール146、プログラムデータ147が少なくとも異なるコピーであることを示すために、異なる番号を付けてある。ユーザは、キーボード162、マウスやトラックボールやタッチパッドと一般に呼ばれるポインティングデバイス161などの入力デバイスを介して、コンピュータ110にコマンドおよび情報を入力することができる。その他の入力デバイス(図示せず)には、マイクロホン、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナや、ハンドヘルドPCおよびその他の筆記タブレットのタッチセンシティブスクリーンなどを含めることができる。これらおよびその他の入力デバイスは、システムバスに結合されたユーザ入力インタフェース160を介して処理ユニット120に接続されることが多いが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)など、その他のインタフェースおよびバス構造で接続されてもよい。モニタ191または他のタイプの表示デバイスもまた、ビデオインタフェース190などのインタフェースを介してシステムバス121に接続される。モニタに加えて、コンピュータは通常、スピーカ195やプリンタ196など、その他の周辺出力デバイスも備えることができ、これらは出力周辺インタフェース194を介して接続することができる。
コンピュータ110は、リモートコンピュータ180など1つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク化された環境で動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、またはその他の一般的なネットワークノードとすることができ、図1にはメモリ記憶デバイス181しか示していないが、通常はパーソナルコンピュータ110に関して上述した要素の多くまたはすべてを備える。図1に示す論理接続は、ローカルエリアネットワーク(LAN)171およびワイドエリアネットワーク(WAN)173を含むが、その他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、インターネットでよくみられるものである。
コンピュータ110は、LANネットワーキング環境で使用されるときは、ネットワークインタフェースまたはアダプタ170を介してLAN171に接続される。WANネットワーキング環境で使用されるときは通常、インターネットなどのWAN173を介した通信を確立するためのモデム172またはその他の手段を備える。モデム172は内蔵でも外付けでもよく、ユーザ入力インタフェース160またはその他の適切な機構を介してシステムバス121に接続することができる。ネットワーク化された環境では、コンピュータ110に関して示したプログラムモジュールまたはその一部をリモートのメモリ記憶デバイスに記憶することができる。限定ではなく例として、図1には、リモートアプリケーションプログラム185がメモリデバイス181上にあるものとして示す。図示のネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用することもできることは理解されるであろう。
(リソース複製による更新制御)
図2は、本発明の様々な態様による、リソースを複製する2つのマシンを含むリソース複製システムを表すブロック図である。マシン201と202は両方とも、リソースAを複製し、これを同時に、コンテンツxを有する状態からコンテンツy、u、またはzを有する状態に更新する。コンテンツx、y、u、zは、例えばリソースAの異なるバージョンシーケンス番号およびクロックに対応するものとすることができる。
用語「マシン」は、単に物理マシンだけに限定しない。そうではなく、単一の物理マシンが複数の仮想マシンを含む場合もある。本明細書では、あるマシンから別のマシンへの複製は、同じ複製物セットの1つまたは複数のメンバを、ある仮想または物理マシンから別の仮想または物理マシンに複製することを意味する。単一の物理マシンが、同じ複製物セットの複数のメンバを含む場合もある。したがって、複製物セットのメンバを複製することは、同じ複製物セットの複数のメンバを含む単一の物理マシンのメンバ同士を同期させることを含む場合がある。
複製システムは通常、各リソースと共に、関係する2つのデータセット、すなわちリソースデータおよびリソースメタデータを維持することになる。ファイルシステム中の名前付きファイルに基づくデータ記憶域を含む複製システムでは、リソースデータは、ファイルコンテンツ、ならびに、ファイルコンテンツに関連してファイルシステムに記憶された任意のファイル属性を含むことができる。ファイル属性は、アクセス制御リスト(ACL)、作成/修正時刻、および、ファイルに関連するその他のデータを含むことができる。ファイルシステム中の名前付きファイルに基づくデータ記憶域を含まない複製システム(例えばリソースがデータベースにまたはオブジェクトベースのデータ記憶域に記憶される複製システム)では、そのデータ記憶域にとって適切なリソースデータが記憶される。この文書全体を通して、例示のためにファイルシステム中のファイルに基づく複製システムをしばしば使用するが、本発明の趣旨または範囲を逸脱することなく、コンテンツを記憶できる任意のデータ記憶域を使用することができることを理解されたい。
リソースメタデータは、複製中に同期を交渉するのに関係する追加の属性のセットを含む。各リソースにつき、リソースメタデータは、グローバル一意識別子(GUID)、リソースが削除されたかどうか、バージョンシーケンス番号、加えて変更の出所、変更が行われた時を反映するためのクロック値、その他のフィールドを含むことができる。その他のフィールドは、リソースデータの値を要約したものであってリソースコンテンツについての署名を含む場合もあるダイジェストなどである。ダイジェストは、例えば複製同期中にデータ転送をバイパスするためのクイック比較に使用することができる。宛先マシン上のリソースがソースマシン上のコンテンツと同期している場合(例えばダイジェストで示されるように)は、リソースデータ自体は送信せずにリソースメタデータだけを送信することによって、ネットワークオーバーヘッドを最小限に抑えることができる。リソースメタデータの送信は、ソースマシン上に含まれるメタデータを宛先マシンがその後続の複製動作で反映することができるように行われる。これにより、宛先マシンは、例えば後続の複製動作でソースマシンになることができる。リソースメタデータは、本発明の趣旨または範囲を逸脱することなく、リソースデータと共にまたは別々に記憶することができる。
一般に、ワイドエリア分散システムでは、クロック同期を非常に細分性の高いレベルで想定することは実現可能ではない。このため、複製システムは、大域的なクロックを使用して同時の更新および作成の勝者を決定することはできない。レプリケータは通常、配信されたコンテンツのメタデータにスタンプされた論理分散クロックを使用する。論理クロックは、変更時刻の物理ローカルクロックによって上書きされるのとは異なり、コンテンツが更新されるときにインクリメントされる。したがって、論理クロックは因果関係を考慮し、同じコンテンツの更新には、増加していくクロック値がスタンプされる。例えば、図2のクロック値A:xを「4」とする。この場合、複製システムは、A:yおよびA:zに関連するクロック値が4よりも大きくなるようにする。これらのクロック値の間の関係は任意である。これらの値は独立して割り当てられるので(例えばマシン201はA:yのクロック値を割り当て、マシン202はA:zのクロック値を割り当てる)、同一である場合もそうでない場合もある。
通常の複製同期では、クロック値を使用して、最後に書いた者勝ち(last−writer−wins)の競合解決戦略に基づいて競合の勝者を決定することができる。最大のクロック値を有するデータが、より小さいクロック値を有する複製データよりも最近のデータを示すことができる。論理クロックは因果関係を維持するので、最後に書いた者勝ちの戦略は、因果関係と整合する。
本発明の一態様によれば、リソースメタデータは「フェンス値」と呼ばれる数値フィールドで増強される。フェンス値は、各リソースまたはその一部に割り当てることができる。フェンス値は、以下に定義する規則のセットに従って、競合解決中に他のメタデータと共に使用される。
本発明の一実施形態では、規則によれば、フェンス値が0と1のどちらかに初期化される。0の値は、リソースを(複製機構を介して)別のマシンに送信すべきではなく、また別のマシンから見える状態にもすべきではないことを示す。1の値は、リソースを複製して他のマシンから見える状態にすることができることを示す。0のフェンス値を有するリソースはスレーブリソースと考えることができ、1のフェンス値を有するリソースはマスタリソースと考えることができる。
2つのマシン間での複製動作中に、一方のマシン(例えばマシン201)上のリソース(例えばリソースA)が他方のマシン(例えばマシン202)上の同じリソースよりも大きいフェンス値を有する場合、フェンス値が大きい方のリソースが、フェンス値が小さい方のリソースを有するマシンに複製される。言い換えれば、他にどんなリソースメタデータがあるかにかかわらず、フェンス値が大きい方のリソースが勝つ(そして複製される)。
2つのマシン上にすでにあるが異なるリソースを複製する際は、できるだけ少ないデータを伝搬してリソースを同期させることを試みる機構を利用することができる。例えば、リソースに関連するすべてのデータを送信する代わりに、この複製機構は、送信側マシン上にあるリソース中のどのデータが受信側マシン上にあるリソース中のデータと異なるかを決定し、1つまたは複数の差分またはデルタを送信して、受信側マシン上のリソースを更新することができる。
複製動作中に、フェンス値が同じであり0よりも大きい場合は、どちらのリソースが勝つか(そして複製されるか)は、各リソースに関連する他のリソースメタデータによって決まる。言い換えれば、フェンス値が同じのときは、複製は、複製に関連する通常の規則に従って進められる。
したがってフェンス値は、競合解決において優先されるので、競合解決プロセスに対する細粒度の制御をもたらす。すなわち、2つのリソースのメタデータを比較したとき、フェンス値が大きい方のリソースが優先される。論理クロックなど他の属性は、フェンスが等しいときだけ比較される。
フェンス値は、論理クロックと同様のプロパティを有するものとすることができ、一実装形態では、インクリメントされるか0にリセットされることができるだけである。例えばフェンス値は、ユーザまたはプロセスが複製システムにインクリメントするよう指示したときに、インクリメントすることができる。これは、「リソースをフェンシングする」または単に「フェンシング」と言われることがある。フェンス値のインクリメントは、リソースデータの更新から独立している。フェンスインクリメントは、複製によって見える状態になる(例えばメタデータ中で送信される)。フェンシングは頻繁に行われる動作ではないので、ウォールクロック時間の整数表現を用いて、フェンスを最大値(現在のフェンス値+1)および(現在のウォールクロック時間)にインクリメントすることができる。
フェンス値は、ユーザまたはプロセスが複製システムにリセットするよう指示したときに、0にリセットすることができる。これは、「リソースをフェンシング解除する」または単に「フェンシング解除」と言われることがある。フェンシング解除された(すなわちそのフェンス値が0にリセットされた)スレーブモードのリソースは、それらのリソースを保持するマシンの外部にある他のどんなマシンへも複製されないものとすることができる。これにより、スレーブモードのリソースは外部から見えなくなる。したがって、フェンス値のリセットは複製によって見えるようにはならない。
フェンシングおよびフェンシング解除を除いては、フェンス値は複製中に一定のままである。具体的には、正のフェンス値は、リソースデータが更新されたときでも論理クロックが変化したときでも変化しない。0の値のフェンス値もまた、スレーブマシンでのコンテンツ更新時でも変化しないはずである。
1つのマシン上でリソースをフェンシングすることにより、複製物セットの他のメンバに対する同時のリソース更新に関係なく、このリソースが複製されるようにすることができることが理解されるであろう。また、リソースをフェンシング解除することにより、複製された他のどんなリソースも、ローカルの(フェンシング解除された)リソースよりも優先されるようにすることができ、フェンシング解除されたこのリソースは外部に複製されないようになることが理解されるであろう。
フェンスは、選択されたリソースをフェンシングする複製システムアプリケーションプログラミングインタフェース(API)を介して、既存のリソースに対して設定することができる。さらに、フェンスは、特定のパラメータ(リソース名や属性など)に合致するリソースが複製システムから見えるようになったときにこれらのリソースをフェンシングするAPIを公開することによって、将来のリソースに対して設定することもできる。将来のフェンシングおよびフェンシング解除の制御はまた、スティッキネス(stickiness)を指定することによって提供することもでき、フェンシング/フェンシング解除されたディレクトリの下にあるリソースなど間接的に関係するリソースを生成する場合、親に対して設定されたポリシーセットに基づくフェンシング値を継承することができる。
フェンシング解除はまた、複製パートナーのマスタ挙動またはスレーブ挙動を制御するための細分性のある方法も提供する。選択されたリソースに対して効果的にフェンスを設定することにより、マシンは、そのバージョンのコンテンツのマスタになる(コンテンツが最初に更新されるまで)。選択されたリソースをフェンシング解除することにより、マシンは、選択されたリソースに関連するコンテンツについてスレーブとして挙動する。
フェンシングおよびフェンシング解除は、バックアップ復元、帯域外複製、より新しいバージョンのレプリケータへのアップグレード、管理者制御の提供を含めて、いくつかの領域で使用することができることは理解されるであろう。
スレーブ上でローカルに更新されるリソースの場合、フェンシング解除された(例えばフェンス値0の)リソースを含むマシンは、フェンシング解除されたリソースフェンス値を、フェンシングされたリソース値(例えば1)に変更することを選択することができる。これは例えば、更新を見えるようにするために行うことができる。
図3は、本発明の様々な態様による、2つのマシンがその両方に含むリソースを一致させようとしているシステムを表すブロック図である。図3では、各マシンはそれ自体のバージョンのリソースを有し、リソースは同じ名前または識別子を有する。調停の最後に、複製されたリソースがxとyのどちらかのコンテンツを有するようにすることが目標である。図3に示すシステムでは、マシン301のコンテンツxが、マシン302のコンテンツyに勝つ。これは例えば、マシン301上にあるリソースAのフェンス値の方が高い場合に、または他のリソースメタデータの比較によって生じる場合がある。
図4に、本発明の様々な態様による、図2および3のA:xに使用することのできる例示的ないくらかのリソースデータおよびメタデータを示す。リソースメタデータは、1のフェンス値、クロック値、GUID、変更を生み出した複製メンバ、ダイジェストを含む。リソースデータは、リソースの名前、データ自体、作成時刻、修正時刻、および、リソースデータのその他の属性を含む。
図5に、図3に示した同期に関係する、本発明の様々な態様により使用することのできる例示的ないくらかのリソースデータおよびメタデータを示す。xに関連するリソースのフェンス値(すなわち1056603359)の方が、yに関連するリソースのフェンス値(すなわち1)よりも大きいので、マシン501上のコンテンツ(例えばx)がマシン502上のコンテンツ(例えばy)に勝ち、したがってマシン502に複製されることになる。従来の複製方法では、yの更新クロック時刻の方が大きいためyがxに勝つことになることに留意されたい。
図6は、本発明の様々な態様による、2つのマシン間でリソースを同期させるために実施することのできる例示的なステップを一般に表すデータフロー図である。プロセスはブロック605で開始する。
ブロック610で、リソースを伝搬すべきであることを少なくとも1つのフェンス値が示しているかどうかを決定する。フェンス値が両方ともフェンシング解除の状態(例えば0)に設定されている場合もある。この場合はリソースを伝搬すべきではない。フェンス値の1つが、フェンシングされた値(例えば1またはそれ以上)に設定されている場合は、2つのリソースを同期させるために必要ならリソースを伝搬すべきである。
ブロック615で、リソースを伝搬すべきである場合、処理はブロック620に分岐する。そうでない場合は、処理はブロック635に分岐する。ブロック620で、フェンス値が等しいかどうかを決定する。等しい場合は、処理はブロック625に分岐し、他のメタデータを使用して、リソースをどのように伝搬するかを決定する。ブロック627で、リソースまたはその一部(例えばメタデータ、フェンス値、コンテンツの差分など)を、ブロック625で決定されたマシンから伝搬する。
ブロック620でフェンス値が等しくない場合は、処理はブロック630に分岐する。ブロック630で、リソースまたはその一部(例えばメタデータ、フェンス値、コンテンツの差分など)を、リソースのフェンス値が高い方のマシンから、リソースのフェンス値が低い方のマシンに伝搬する。ブロック635で処理は終了する。
以下は、本発明の態様を用いることのできる例示的ないくつかのシナリオである。
権限のないバックアップ復元:データが破損または紛失したとき、複製されたリソースシステムのメンバを管理するユーザは、メンバを消去して、リソース複製システムを介してメンバに関連するすべてのデータを得ることを求める場合がある。メンバが、メンバをリソース複製システムに接続するリンクの帯域幅に対して相対的に大きいときは、この動作過程は、時間またはコストがかかりすぎることがある。しかし、本発明の一態様を用いると、ユーザはメンバのリソースをバックアップから復元することができる。次いでユーザは、バックアップの中のリソースをフェンシング解除して(例えばフェンス値を0に設定して)、リソース複製システムが古いリソースを更新できるようにすることができる。この場合、復元されたコンテンツはちょうど「コンテンツキャッシュ」として働き、適切なロジックがあれば、レプリケータはこのコンテンツキャッシュを使用して、コンテンツが低速リンクを介して(例えば「ワイヤを介して」)転送されるのを回避することができ、それにより、バックアップ復元に続く最初の同期トラフィックを、更新を必要とするメタデータおよびリソースデータだけに限定されるように維持することができる。同期後、フェンス値0を有する残りのリソースがあれば、それらは削除するか、それらのフェンス値を1に設定して複製可能にすることができる。
帯域外コピー:複製物セットの新しいメンバが、多量のデータを潜在的に含む場合がある。より高速かつ/またはより安価な転送を容易にするために、新しいメンバを、ユーザにとってよりコストの低いチャネルおよび/またはより高速なサービスを有するチャネルを介して送信することができる。例えば、新しいメンバをハードディスクにコピーするか、あるいはCD−ROMまたはDVD−ROMに焼いて、翌日配達で出荷することができる。新しいメンバをリモート位置のシステムにコピーするとき、権限のないバックアップ復元に関して上述したようにこれらをフェンシング解除することができる。新しいメンバのフェンシング解除は、リモート位置にコピーされたコンテンツが他の位置に転送されないようにするために行われる。
権限のあるバックアップ復元:ユーザは、バックアップから復元して、復元されたコンテンツを複製されたリソースシステム中のすべてのシステムに伝搬したいと思う場合がある。こうするには、ユーザは、リソースをシステムに復元し、次いで、伝搬したいと思うリソースをフェンシングすることができる。
特例シナリオ:ユーザは、特定のバージョンのリソースセットを複製させて、これを複製物セット中の他のどんな競合コンテンツよりも優先させたいと思う場合がある。これは、リソースセットをフェンシングすることによって行うことができる。
初期同期:初期同期は、帯域外コピーの特別なケースである。複製されたシステムをセットアップまたはアップグレードする際、ユーザは、あるマシンをマスタ(すなわち他のマシンに複製されるコンテンツを含む)として指定し、他のマシンをスレーブ(すなわちマスタからコンテンツを受け取る)として指定する場合がある。こうするには、ユーザは、マスタ上のリソースが初期フェンス値1を有するようにフェンシングし、スレーブ上の既存のリソースをフェンス値0でフェンシング解除することができる。この初期化の後にスレーブ上に存在するようになったリソースは、複製されるように1でフェンシングすることができる。フェンシング解除されたスレーブリソースは複製されないので、このようなリソースがマスタからの名前競合リソースに負けたとき、このリソースに関する追加のメタデータを同期させる必要はない。
図7は、本発明の様々な態様による、権限のないバックアップ復元を行うために実施することのできる例示的なステップを一般に表すデータフロー図である。メンバ中のデータが、削除されるか破損する(ブロック710)。管理者は、バックアップから復元する(ブロック715)。管理者は、復元したデータにフェンシング解除の印を付ける(ブロック720)。ブロック725に表すように、同期がとられる。管理者は、残りのリソースを削除するかフェンス値1で印を付け(ブロック730)、処理は終了する(ブロック735)。
図7は、前述の権限のないバックアップで実施することのできるステップの一例として提供したものである。前述の他の適用例についても、容易にデータフロー図に還元できるほど十分に詳細に述べたことは理解されるであろう。また、本発明の趣旨または範囲を逸脱することなく、図7のステップまたは前述の適用例に対してその他多くの変形を行うことができることも理解されるであろう。
図8は、本発明の様々な態様による、リソース複製システムで動作するように構成されたマシンを表すブロック図である。マシン805は、更新機構810、リソース822、通信機構840を備える。
更新機構810はフェンス比較器ロジック815を備え、このフェンス比較器ロジック815は、フェンス値を比較して、リソースをマシン805から伝搬すべきかどうか、またリソースを他のマシンから見えるようにもすべきかどうかを決定するのに使用される。フェンス比較器ロジック815はまた、フェンシング動作の場合に、あるいはリソースメタデータ830の破損または削除とそれに続く再構築の場合(後でさらに詳細に述べる)に、フェンス値をどのように更新すべきかを決定するのにも使用することができる。
他のメタデータの競合解決ロジック820は、リソースのフェンス値同士が同等である場合にどのリソースが勝つか(そして伝搬されるべきか)を決定するのに使用されるロジックを含む。他のメタデータの競合解決ロジック820が適用される際、更新機構810は、リソースメタデータ830および/またはリソースデータ825中のデータにアクセスして、リソース(またはその一部)を別のマシンに伝搬すべきか、別のマシンから受け取るべきかを決定することができる。
リソース822は、リソースデータ825およびリソースメタデータ830を含む。リソースデータとリソースメタデータとの区別は、図2に関して上述した。これらは同じボックス中に示してあるが、リソースデータ825は、リソースメタデータ830とは別の記憶域に記憶されてもよい。
通信機構840は、更新機構810が他のマシン上にある他の更新機構(図示せず)と通信できるようにするものである。これと共に、更新機構は、どのリソースを同期させるべきか、またどのように同期をとることができるかを決定する。通信機構840は、図1に関して述べたネットワークインタフェースまたはアダプタ170、モデム172、あるいは通信を確立するためのその他任意の手段とすることができる。
本発明の趣旨または範囲を逸脱することなく、図8に示すマシンのその他の変形も実施することができることは理解されるであろう。
本発明の一実施形態では、−1、0、1の3つの初期フェンス値がある。−1は、前述の0(すなわちフェンシング解除された値)の役割をし、0は、1以上のフェンス値を有するリソースが他にない限りこのリソースが複製できることを示すことができる。この拡張の有用性の1つは、複製メタデータの紛失に対処することにある。例えば、リソースレプリケータは、メタデータを、リソースデータを記憶するのに使用される記憶域とは別の記憶域に保持する。したがって、メタデータとリソースデータ(すなわちコンテンツ)に、独立して障害が発生する。再構築中、そのメタデータを失ったマシンは、そのリソースがすでに複製されたものか単にローカルに生成された(したがって複製物セット中で他のマシンに知られていない)ものかわからないため、最初にそのリソースを値−1でフェンシングすることができる。フェンス値を−1から1に変更するのが早すぎると、より新しいが切断されているマシンからのコンテンツが上書きされる場合があるので、古くなったコンテンツが再びネットワーク中に導入されるという影響がある可能性がある。一方、フェンスを−1から0に変更すれば、そのようなコンテンツは、古くなっていると他の参加者の誰かが決定できる時点まで、再び導入することができる。正の整数だけが望まれる場合は、前述の各値をずらして0、1、2(または他の何らかの番号付け方式)を代わりに使用してもよいことに留意されたい。
本発明の別の実施形態では、可能な初期フェンス値として−8および0を使用する。機能的には、フェンス値−8は0に取って代わり(すなわちフェンシング解除された値であり)、0は1に取って代わる(すなわちリソースを複製すべきであることを示す)。さらに、その他の負のフェンス値(例えば−1、−2、−3、...−n)を使用して、複製できるリソースを示すこともできる。このようなフェンス値は、より大きい値でフェンシングされたリソースに負けることになる。この一般化の有用性には、新鮮なリソースが利用可能であることの方が復元中の帯域幅使用よりも重要である場合のシナリオが含まれる。マシンにはそれぞれ、最初のリソースに対して使用される異なるフェンス値(例えば−1、−2、...、−n)を割り当てることができる。この順序付けでは、フェンス−1を使用するリーダーマシンが優先されるが、すべてのマシンからの競合しないコンテンツはすぐに利用可能である。
この表現の別の適用例には、メタデータの破損または紛失に応答してマシンが回復するたびに、またはそのメタデータを再構築するたびに、フェンス値をデクリメントすることが含まれる。この適用例のヒューリスティックな価値の1つは、マシンがそのメタデータを再構築するたびに、マシン上に記憶されたリソースデータはだんだん信頼性が低くなっていく、かつ/または古くなっていく可能性が高いことである。この機構を介した場合、そのメタデータを再構築する頻度がより低いマシン上のコンテンツは、より信頼性が高いと考えられ、そのメタデータを再構築する頻度がより高いマシン上のコンテンツにフェンス値によって勝つ。
前述のフェンス値は、任意の様々な物理フェンス値で実現することのできる論理フェンス値であることは理解されるであろう。例えば、本発明の趣旨または範囲を逸脱することなく、フェンス値は、符号なし整数、浮動小数点数、ビット値、またはその他任意のタイプの番号付け方式として物理的に表すことができる。
以上の詳細な説明からわかるように、情報複製に対して細分性のある制御を行うための改良された方法およびシステムが提供される。本発明は様々な修正および代替構造が可能だが、そのいくつかの例示的な実施形態について図面に示し、以上に詳細に述べた。ただし、開示した特定の形に本発明を限定する意図はなく、反対に、本発明の趣旨および範囲に含まれるすべての修正、代替構造、均等物をカバーするものとすることを理解されたい。
本発明を組み込むことのできるコンピュータシステムを表すブロック図である。 本発明の様々な態様による、リソースを複製する2つのマシンを含むリソース複製システムを表すブロック図である。 本発明の様々な態様による、2つのマシンがその両方に含むリソースを一致させようとしているシステムを表すブロック図である。 本発明の様々な態様による、図2および3のマシンに使用することのできる例示的ないくらかのリソースデータおよびメタデータを示す図である。 本発明の様々な態様により使用することのできる例示的ないくらかのリソースデータおよびメタデータを示す図である。 本発明の様々な態様による、2つのマシン間でリソースを同期させるために実施することのできる例示的なステップを一般に表すデータフロー図である。 本発明の様々な態様による、権限のないバックアップを行うために実施することのできる例示的なステップを一般に表すデータフロー図である。 本発明の様々な態様による、リソース複製システムで動作するように構成された例示的なマシンを表すブロック図である。
符号の説明
120 処理ユニット
121 システムバス
130 システムメモリ
134 オペレーティングシステム
135 ファイルシステム
136 アプリケーションプログラム
137 その他のプログラムモジュール
138 プログラムデータ
140 取外し不可能な不揮発性メモリインタフェース
144 オペレーティングシステム
145 アプリケーションプログラム
146 その他のプログラムモジュール
147 プログラムデータ
150 取外し可能な不揮発性メモリインタフェース
160 ユーザ入力インタフェース
161 マウス
162 キーボード
163 マイク
164 タブレット
170 ネットワークインタフェース
171 ローカルエリアネットワーク
172 モデム
173 ワイドエリアネットワーク
180 リモートコンピュータ
185 リモートアプリケーションプログラム
190 ビデオインタフェース
191 モニタ
194 出力周辺インタフェース
195 スピーカ
196 プリンタ

Claims (33)

  1. コンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、
    複数のマシン上で複製されるリソースのメタデータを取り出すステップを含み、前記リソースは、前記リソースの複製先である各マシン上にあるメタデータおよびコンテンツを有し、前記メタデータは、前記リソースの前記コンテンツがどんなローカル更新によって変更されたときも常に更新される1つまたは複数の値と、前記コンテンツのどんなローカル変更からも独立したフェンス値とを含み、さらに、
    前記複数のマシンのうちの第1のマシン上にある前記コンテンツの第1のフェンス値を、前記複数のマシンのうちの第2のマシン上にある前記コンテンツの第2のフェンス値と比較するステップと、
    前記第1のフェンス値の方が前記第2のフェンス値よりも優先度が高い場合は前記第2のマシンを更新するステップと
    を含むことを特徴とするコンピュータ可読媒体。
  2. 前記メタデータは、前記コンテンツとは別の記憶域に記憶されることを特徴とする請求項1に記載のコンピュータ可読媒体。
  3. 前記第2のマシンを更新するステップは、前記第1と第2のマシン上にあるコンテンツ間の1つまたは複数の差分を決定して送信するステップを含むことを特徴とする請求項1に記載のコンピュータ可読媒体。
  4. 前記第2のマシンを更新するステップは、前記メタデータだけを送信するステップを含むことを特徴とする請求項1に記載のコンピュータ可読媒体。
  5. 前記第1と第2のマシン上のコンテンツは、同じであることを特徴とする請求項4に記載のコンピュータ可読媒体。
  6. 前記コンテンツは、ファイルデータおよびファイル属性を含むことを特徴とする請求項1に記載のコンピュータ可読媒体。
  7. 各マシン上の各メタデータは、前記リソースを要約したダイジェストを含むことを特徴とする請求項1に記載のコンピュータ可読媒体。
  8. 前記マシン上の前記メタデータの前記ダイジェストを比較して、前記ダイジェストが同等である場合は更新をバイパスするステップをさらに含むことを特徴とする請求項8に記載のコンピュータ可読媒体。
  9. 前記第2のマシンを更新するステップは、前記第2のフェンス値を前記第1のフェンス値と等しくなるように更新するステップを含むことを特徴とする請求項1に記載のコンピュータ可読媒体。
  10. 前記フェンス値が同等である場合は、前記メタデータ中の他のデータを比較して、コンテンツを更新すべきかどうかを決定するステップをさらに含むことを特徴とする請求項1に記載のコンピュータ可読媒体。
  11. 各フェンス値は、それぞれのリソースの一部分または複数部分に割り当てられることを特徴とする請求項1に記載のコンピュータ可読媒体。
  12. ある種のフェンス値を有するコンテンツは他のマシンに伝搬されないことを特徴とする請求項1に記載のコンピュータ可読媒体。
  13. ある種のフェンス値を有するコンテンツは、他のマシンから見えないことを特徴とする請求項1に記載のコンピュータ可読媒体。
  14. 前記フェンス値のうちの一方を、前記一方のフェンス値を含むリソースがあるマシンの最大値(それ自体+1)および(クロック時間)に設定するステップをさらに含むことを特徴とする請求項1に記載のコンピュータ可読媒体。
  15. 各フェンス値を、前記フェンス値に関連するコンテンツが変化したときも同じ値に維持するステップをさらに含むことを特徴とする請求項1に記載のコンピュータ可読媒体。
  16. コンピュータ実行可能命令を有するコンピュータ可読媒体であって、前記コンピュータ実行可能命令は、
    第1のマシン上にある第1のリソースを使用して第2のマシン上にある第2のリソースを更新すべきかどうかを決定するステップを含み、各リソースはメタデータおよびコンテンツに関連し、各メタデータは、前記関連するリソースの前記コンテンツが変更されたときは常に更新される1つまたは複数のフィールドと、フェンス値とを含み、各フェンス値は、それに関連するリソースを使用して別のマシン上のリソースを更新すべきかどうかを他のメタデータよりも高い優先度で示し、さらに、
    前記第2のリソースを前記第2のマシンから伝搬すべきではないことを前記第2のリソースの前記フェンス値が示す場合は、前記第2のマシンからの伝搬をさせないようにするステップと、
    前記第1のリソースの前記フェンス値の方が前記第2のリソースの前記フェンス値よりも優先度が高い場合は、前記第2のリソースを前記第1のリソースから更新するステップと
    を含むことを特徴とするコンピュータ可読媒体。
  17. 前記第1および第2のリソースのフェンス値が同等である場合は、前記フェンス値以外のメタデータに基づいて、どちらのマシンが他方のマシンを更新することになるかを決定するステップをさらに含むことを特徴とする請求項16に記載のコンピュータ可読媒体。
  18. 前記他のメタデータは、対応するコンテンツの最終更新時を示す論理クロックを含むことを特徴とする請求項17に記載のコンピュータ可読媒体。
  19. フェンス値は、それに対応するリソースを、より高いフェンス値を有する別のリソースが別のマシン上に位置するようになるまで、他のマシンに伝搬できることを示すことを特徴とする請求項18に記載のコンピュータ可読媒体。
  20. 前記第1のリソースに関連する前記メタデータは、それに対応するリソースとは別のデータ構造に記憶されることを特徴とする請求項16に記載のコンピュータ可読媒体。
  21. 前記データ構造が破損したか削除された場合に、前記データ構造を再構築し、前記第1のリソースに関連する前記フェンス値をデクリメントするステップをさらに含むことを特徴とする請求項20に記載のコンピュータ可読媒体。
  22. 前記データ構造を複数回にわたって再構築し、前記データ構造を再構築するたびに前記第1のリソースに関連する前記フェンス値をデクリメントするステップをさらに含むことを特徴とする請求項21に記載のコンピュータ可読媒体。
  23. 前記第2のリソースの前記フェンス値の方が前記第1のリソースの前記フェンス値よりも優先度が高い場合は、前記第1のリソースを前記第2のリソースから更新するステップをさらに含むことを特徴とする請求項22に記載のコンピュータ可読媒体。
  24. データを複製する方法であって、
    第1のマシン上にデータをロードするステップと、
    前記データを前記第1のマシンから送信して他のいずれかのマシン上のデータを更新すべきではないことを示すフェンス値で、前記データに印を付けるステップと、
    前記データの少なくとも一部を第2のマシン上のデータと同期させるステップとを含むことを特徴とする方法。
  25. 前記データの少なくとも一部を同期させた後、前記データを前記第1のマシンから送信して他のいずれかのマシン上のデータを更新してもよいことを示すフェンス値で、前記データの残りの部分に印を付けるステップをさらに含むことを特徴とする請求項24に記載の方法。
  26. 前記データの少なくとも一部を同期させた後、前記データの残りの部分を削除するステップをさらに含むことを特徴とする請求項24に記載の方法。
  27. 前記データはバックアップからロードされることを特徴とする請求項24に記載の方法。
  28. 前記データは別のマシンから送信されたデータのコピーからロードされることを特徴とする請求項24に記載の方法。
  29. 第2のマシン上の対応するデータに、前記対応するデータを同期中に同期させるべきであることを示すフェンス値で印を付けるステップをさらに含むことを特徴とする請求項24に記載の方法。
  30. 前記データの一部を変更し、前記変更部分に、前記変更部分を同期中に同期させるべきであることを示すフェンス値で印を付けるステップをさらに含むことを特徴とする請求項24に記載の方法。
  31. データを複製するためのシステムであって、
    第1のリソースセットを有する第1のマシンと、
    第2のリソースセットを有する第2のマシンとを備え、各マシン上の各リソースはメタデータおよびコンテンツに関連し、各メタデータは、前記関連するリソースの前記コンテンツが変更されたときは常に更新される1つまたは複数のフィールドと、フェンス値とを含み、各フェンス値は、それに関連するリソースを使用して別のマシン上のリソースを更新すべきかどうかを他のメタデータから独立して示し、前記第1および第2のマシンは、
    両方に含まれる前記リソースに関する情報を通信するように、かつ
    古い各リソースを優先度に従って更新するように構成され、前記優先度は、
    前記マシンのうちの一方にあるリソースのフェンス値の方が他方のマシン上の対応するリソースのフェンス値よりも優先度が高い場合は、前記一方のマシン上のリソースで前記他方のマシンを更新し、そうでない場合は、
    前記フェンス値以外のデータに基づいて前記マシン上のリソースを更新するものであることを特徴とするシステム。
  32. 前記第1のリソースセットは、バックアップからロードされ、前記第1のリソースセットの前記フェンス値は、前記第1のリソースセットが他のどんなリソースセットよりも優先されるように設定され、したがって、前記リソースセットに対応する他のどんなマシン上の他のどんなリソースセットも、前記第1のリソースセットから更新されることを特徴とする請求項31に記載のシステム。
  33. 前記第1のリソースセットの前記フェンス値は、他のマシン上の対応するリソースよりも優先されるように印が付けられ、したがって、前記対応するリソースは前記第1のリソースセットから更新されることを特徴とする請求項31に記載のシステム。

JP2004199703A 2003-07-10 2004-07-06 フェンシングおよびフェンシング解除による、複製情報の権限の細分制御 Expired - Lifetime JP5192635B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US48662703P 2003-07-10 2003-07-10
US60/486,627 2003-07-10
US10/733,459 2003-12-10
US10/733,459 US7660833B2 (en) 2003-07-10 2003-12-10 Granular control over the authority of replicated information via fencing and unfencing

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011207572A Division JP2011253574A (ja) 2003-07-10 2011-09-22 フェンシングおよびフェンシング解除による、複製情報の権限の細分制御

Publications (3)

Publication Number Publication Date
JP2005032249A true JP2005032249A (ja) 2005-02-03
JP2005032249A5 JP2005032249A5 (ja) 2007-08-23
JP5192635B2 JP5192635B2 (ja) 2013-05-08

Family

ID=33479336

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2004199703A Expired - Lifetime JP5192635B2 (ja) 2003-07-10 2004-07-06 フェンシングおよびフェンシング解除による、複製情報の権限の細分制御
JP2011207572A Pending JP2011253574A (ja) 2003-07-10 2011-09-22 フェンシングおよびフェンシング解除による、複製情報の権限の細分制御

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011207572A Pending JP2011253574A (ja) 2003-07-10 2011-09-22 フェンシングおよびフェンシング解除による、複製情報の権限の細分制御

Country Status (13)

Country Link
US (1) US7660833B2 (ja)
EP (1) EP1498814B1 (ja)
JP (2) JP5192635B2 (ja)
KR (1) KR101109257B1 (ja)
CN (1) CN100410874C (ja)
AT (1) ATE463789T1 (ja)
AU (1) AU2004202863B2 (ja)
BR (1) BRPI0402702A (ja)
CA (1) CA2472528A1 (ja)
DE (1) DE602004026389D1 (ja)
ES (1) ES2341245T3 (ja)
MX (1) MXPA04006721A (ja)
RU (1) RU2372649C2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006236350A (ja) * 2005-02-22 2006-09-07 Microsoft Corp ゴースト化による同期
JP2011513863A (ja) * 2008-03-04 2011-04-28 アップル インコーポレイテッド 同期サーバープロセス
JP2011154631A (ja) * 2010-01-28 2011-08-11 Fujitsu Ltd 確定クロック判定プログラム及び方法、並びにノード装置
WO2015072220A1 (ja) * 2013-11-14 2015-05-21 ソニー株式会社 情報処理装置、情報処理方法および記憶媒体

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7506007B2 (en) * 2003-03-03 2009-03-17 Microsoft Corporation Interval vector based knowledge synchronization for resource versioning
US7660833B2 (en) 2003-07-10 2010-02-09 Microsoft Corporation Granular control over the authority of replicated information via fencing and unfencing
US7529811B2 (en) * 2003-08-21 2009-05-05 Microsoft Corporation Systems and methods for the implementation of a core schema for providing a top-level structure for organizing units of information manageable by a hardware/software interface system
US7590643B2 (en) 2003-08-21 2009-09-15 Microsoft Corporation Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system
US7401104B2 (en) * 2003-08-21 2008-07-15 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
US8166101B2 (en) * 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US8238696B2 (en) * 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US7620668B2 (en) * 2005-05-06 2009-11-17 Microsoft Corporation Authoritative and non-authoritative restore
US7490300B2 (en) * 2005-08-12 2009-02-10 Microsoft Corporation Copying and updating files
US7536419B2 (en) * 2005-11-15 2009-05-19 Microsoft Corporation Slave replica member
US7788223B2 (en) * 2005-12-05 2010-08-31 Microsoft Corporation Resource freshness and replication
US7650389B2 (en) * 2006-02-01 2010-01-19 Subhashis Mohanty Wireless system and method for managing logical documents
US7640247B2 (en) * 2006-02-06 2009-12-29 Microsoft Corporation Distributed namespace aggregation
US7620721B2 (en) * 2006-02-28 2009-11-17 Microsoft Corporation Pre-existing content replication
US7552148B2 (en) * 2006-02-28 2009-06-23 Microsoft Corporation Shutdown recovery
TW200743028A (en) * 2006-05-12 2007-11-16 Benq Corp State synchronization apparatuses and methods
TWI305619B (en) * 2006-05-12 2009-01-21 Qisda Corp State synchronization systems and methods
TWI320534B (en) * 2006-06-23 2010-02-11 Qisda Corp State synchronization systems and methods
US8150800B2 (en) * 2007-03-28 2012-04-03 Netapp, Inc. Advanced clock synchronization technique
US8239479B2 (en) 2007-06-22 2012-08-07 Microsoft Corporation Server-assisted and peer-to-peer synchronization
US8099571B1 (en) 2008-08-06 2012-01-17 Netapp, Inc. Logical block replication with deduplication
US8655848B1 (en) 2009-04-30 2014-02-18 Netapp, Inc. Unordered idempotent logical replication operations
US8321380B1 (en) 2009-04-30 2012-11-27 Netapp, Inc. Unordered idempotent replication operations
US8671072B1 (en) 2009-09-14 2014-03-11 Netapp, Inc. System and method for hijacking inodes based on replication operations received in an arbitrary order
US8473690B1 (en) 2009-10-30 2013-06-25 Netapp, Inc. Using logical block addresses with generation numbers as data fingerprints to provide cache coherency
US8799367B1 (en) 2009-10-30 2014-08-05 Netapp, Inc. Using logical block addresses with generation numbers as data fingerprints for network deduplication
CN102834823B (zh) * 2010-02-11 2017-07-28 瑞典爱立信有限公司 目录数据库处的数据管理
US8930320B2 (en) * 2011-09-30 2015-01-06 Accenture Global Services Limited Distributed computing backup and recovery system
US10747776B2 (en) 2012-12-04 2020-08-18 International Business Machines Corporation Replication control using eventually consistent meta-data
JP6337605B2 (ja) * 2014-05-14 2018-06-06 コニカミノルタ株式会社 更新管理装置、画像形成装置、更新管理装置の制御プログラム、および画像形成装置の制御プログラム
CN105791357A (zh) * 2014-12-24 2016-07-20 金蝶软件(中国)有限公司 Erp多机集群系统中的文件同步方法及系统
US10339111B2 (en) 2016-04-29 2019-07-02 Netapp Inc. Cloned virtual machine disk replication
US10846183B2 (en) * 2018-06-11 2020-11-24 Dell Products, L.P. Method and apparatus for ensuring data integrity in a storage cluster with the use of NVDIMM
US11177012B1 (en) * 2020-06-24 2021-11-16 Western Digital Technologies, Inc. Fast copy through controller

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH034340A (ja) * 1989-05-12 1991-01-10 Internatl Business Mach Corp <Ibm> データ処理システム
JPH04205038A (ja) * 1990-11-29 1992-07-27 Oki Electric Ind Co Ltd ファイル内容変更方法
JPH05250239A (ja) * 1992-03-10 1993-09-28 Sharp Corp コンピュータネットワークシステム
JPH10289142A (ja) * 1997-04-16 1998-10-27 Kokusai Electric Co Ltd ネットワークのファイル更新システム
JPH11306058A (ja) * 1998-04-02 1999-11-05 Mitsubishi Electric Inf Technol Center America Inc 異なるデ―タファイル蓄積サイトを調停する方法及びデ―タ蓄積サイト及びそれと関連した一組のジャ―ナルファイルを含むシステム
JP2000040025A (ja) * 1998-05-18 2000-02-08 Sharp Corp デ―タベ―ス管理装置、および、そのプログラムが記録された記録媒体
JP2000057032A (ja) * 1998-07-03 2000-02-25 Mitsubishi Electric Inf Technol Center America Inc 複数のサ―バでオブジェクトを同期させる汎用システム、2つのサ―バでオブジェクトを同期させるシステム、2つのサ―バでオブジェクトを同期させる方法、2つのサ―バに存在するオブジェクトがオブジェクトのタイプに関係なく同期される汎用同期システム、2つのサ―バでのオブジェクトの同期における競合を検出して解消する方法
JP2000299698A (ja) * 1999-04-13 2000-10-24 Mitsubishi Electric Corp データ通信装置
JP2000311105A (ja) * 1999-04-28 2000-11-07 Toshiba Corp コンピュータおよびデータ同期方法
JP2001147849A (ja) * 1999-11-19 2001-05-29 Toshiba Corp データ同期処理のための通信方法および電子機器
JP2003015934A (ja) * 2001-06-29 2003-01-17 Toshiba Corp 情報記憶装置及び情報記憶方法
JP2003122618A (ja) * 2001-10-11 2003-04-25 Nec Soft Ltd データベースダウンロードシステムおよびプログラム

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2263797B (en) * 1992-01-31 1996-04-03 Plessey Telecomm Object orientated system
US5701462A (en) 1993-12-29 1997-12-23 Microsoft Corporation Distributed file system providing a unified name space with efficient name resolution
US5486826A (en) 1994-05-19 1996-01-23 Ps Venture 1 Llc Method and apparatus for iterative compression of digital data
US5784615A (en) * 1994-12-13 1998-07-21 Microsoft Corporation Computer system messaging architecture
US5765171A (en) 1995-12-29 1998-06-09 Lucent Technologies Inc. Maintaining consistency of database replicas
US5806074A (en) * 1996-03-19 1998-09-08 Oracle Corporation Configurable conflict resolution in a computer implemented distributed database
US5953662A (en) * 1996-04-30 1999-09-14 Ericsson, Inc. Dual home location registers in a mobile radio system
US5832514A (en) * 1996-06-26 1998-11-03 Microsoft Corporation System and method for discovery based data recovery in a store and forward replication process
US5787262A (en) * 1996-06-26 1998-07-28 Microsoft Corporation System and method for distributed conflict resolution between data objects replicated across a computer network
US6412017B1 (en) 1996-07-01 2002-06-25 Microsoft Corporation Urgent replication facility
US5787247A (en) * 1996-07-12 1998-07-28 Microsoft Corporation Replica administration without data loss in a store and forward replication enterprise
US6976093B2 (en) 1998-05-29 2005-12-13 Yahoo! Inc. Web server content replication
US6192443B1 (en) * 1998-07-29 2001-02-20 International Business Machines Corporation Apparatus for fencing a member of a group of processes in a distributed processing environment
US6341291B1 (en) * 1998-09-28 2002-01-22 Bentley Systems, Inc. System for collaborative engineering using component and file-oriented tools
US6401120B1 (en) * 1999-03-26 2002-06-04 Microsoft Corporation Method and system for consistent cluster operational data in a server cluster using a quorum of replicas
US8156074B1 (en) 2000-01-26 2012-04-10 Synchronoss Technologies, Inc. Data transfer and synchronization system
US6820088B1 (en) * 2000-04-10 2004-11-16 Research In Motion Limited System and method for synchronizing data records between multiple databases
US7363633B1 (en) * 2000-04-24 2008-04-22 Microsoft Corporation Registering and storing dependencies among applications and objects in a computer system and communicating the dependencies to a recovery or backup service
EP1160682A1 (en) 2000-06-02 2001-12-05 Thomas Dr. Seidl Relation interval tree
US7162499B2 (en) * 2000-06-21 2007-01-09 Microsoft Corporation Linked value replication
US7788335B2 (en) * 2001-01-11 2010-08-31 F5 Networks, Inc. Aggregated opportunistic lock and aggregated implicit lock management for locking aggregated files in a switched file system
DE60213419T2 (de) 2001-03-16 2007-10-31 Novell, Inc., Provo Client-server-modell zur synchronisation von dateien
US6715050B2 (en) * 2001-05-31 2004-03-30 Oracle International Corporation Storage access keys
US6952708B2 (en) * 2001-06-27 2005-10-04 Microsoft Corporation Method and system for using a sync key
US7149759B2 (en) * 2002-03-25 2006-12-12 International Business Machines Corporation Method and system for detecting conflicts in replicated data in a database network
US7149769B2 (en) 2002-03-26 2006-12-12 Hewlett-Packard Development Company, L.P. System and method for multi-destination merge in a storage area network
US20040068523A1 (en) 2002-10-07 2004-04-08 Keith Robert Olan Method and system for full asynchronous master-to-master file synchronization
US7739240B2 (en) 2002-12-09 2010-06-15 Hewlett-Packard Development Company, L.P. Replication and replica management in a wide area file system
US7506007B2 (en) 2003-03-03 2009-03-17 Microsoft Corporation Interval vector based knowledge synchronization for resource versioning
US7290019B2 (en) 2003-03-03 2007-10-30 Microsoft Corporation Garbage collection of tombstones for optimistic replication systems
US7660833B2 (en) 2003-07-10 2010-02-09 Microsoft Corporation Granular control over the authority of replicated information via fencing and unfencing
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US7788223B2 (en) 2005-12-05 2010-08-31 Microsoft Corporation Resource freshness and replication

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH034340A (ja) * 1989-05-12 1991-01-10 Internatl Business Mach Corp <Ibm> データ処理システム
JPH04205038A (ja) * 1990-11-29 1992-07-27 Oki Electric Ind Co Ltd ファイル内容変更方法
JPH05250239A (ja) * 1992-03-10 1993-09-28 Sharp Corp コンピュータネットワークシステム
JPH10289142A (ja) * 1997-04-16 1998-10-27 Kokusai Electric Co Ltd ネットワークのファイル更新システム
JPH11306058A (ja) * 1998-04-02 1999-11-05 Mitsubishi Electric Inf Technol Center America Inc 異なるデ―タファイル蓄積サイトを調停する方法及びデ―タ蓄積サイト及びそれと関連した一組のジャ―ナルファイルを含むシステム
JP2000040025A (ja) * 1998-05-18 2000-02-08 Sharp Corp デ―タベ―ス管理装置、および、そのプログラムが記録された記録媒体
JP2000057032A (ja) * 1998-07-03 2000-02-25 Mitsubishi Electric Inf Technol Center America Inc 複数のサ―バでオブジェクトを同期させる汎用システム、2つのサ―バでオブジェクトを同期させるシステム、2つのサ―バでオブジェクトを同期させる方法、2つのサ―バに存在するオブジェクトがオブジェクトのタイプに関係なく同期される汎用同期システム、2つのサ―バでのオブジェクトの同期における競合を検出して解消する方法
JP2000299698A (ja) * 1999-04-13 2000-10-24 Mitsubishi Electric Corp データ通信装置
JP2000311105A (ja) * 1999-04-28 2000-11-07 Toshiba Corp コンピュータおよびデータ同期方法
JP2001147849A (ja) * 1999-11-19 2001-05-29 Toshiba Corp データ同期処理のための通信方法および電子機器
JP2003015934A (ja) * 2001-06-29 2003-01-17 Toshiba Corp 情報記憶装置及び情報記憶方法
JP2003122618A (ja) * 2001-10-11 2003-04-25 Nec Soft Ltd データベースダウンロードシステムおよびプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006236350A (ja) * 2005-02-22 2006-09-07 Microsoft Corp ゴースト化による同期
JP2011513863A (ja) * 2008-03-04 2011-04-28 アップル インコーポレイテッド 同期サーバープロセス
JP2011154631A (ja) * 2010-01-28 2011-08-11 Fujitsu Ltd 確定クロック判定プログラム及び方法、並びにノード装置
WO2015072220A1 (ja) * 2013-11-14 2015-05-21 ソニー株式会社 情報処理装置、情報処理方法および記憶媒体

Also Published As

Publication number Publication date
CN100410874C (zh) 2008-08-13
CA2472528A1 (en) 2005-01-10
US20050015413A1 (en) 2005-01-20
AU2004202863B2 (en) 2010-06-10
EP1498814A1 (en) 2005-01-19
DE602004026389D1 (de) 2010-05-20
RU2004121135A (ru) 2006-01-10
JP5192635B2 (ja) 2013-05-08
ATE463789T1 (de) 2010-04-15
EP1498814B1 (en) 2010-04-07
ES2341245T3 (es) 2010-06-17
BRPI0402702A (pt) 2005-05-24
KR20050007179A (ko) 2005-01-17
AU2004202863A1 (en) 2005-01-27
RU2372649C2 (ru) 2009-11-10
MXPA04006721A (es) 2005-04-19
CN1607500A (zh) 2005-04-20
KR101109257B1 (ko) 2012-01-30
US7660833B2 (en) 2010-02-09
JP2011253574A (ja) 2011-12-15

Similar Documents

Publication Publication Date Title
JP5192635B2 (ja) フェンシングおよびフェンシング解除による、複製情報の権限の細分制御
JP4993772B2 (ja) リソースのフレッシュさおよび複製
US6665675B1 (en) Shared file system having a token-ring style protocol for managing meta-data
KR101076851B1 (ko) 복제된 파일들을 위한 복수의 파일 상태 관리 방법
JP6309103B2 (ja) スナップショットおよびクローンの複製
CN109804361B (zh) 计算系统中的文件同步
TWI395104B (zh) 在分散式儲存系統中資料之基元多重修改
US7882315B2 (en) Snapshot mechanism in a data processing system and method and apparatus thereof
JP4753693B2 (ja) スナップショットなしでアイテムを同期化するシステムおよび方法
US7809778B2 (en) Idempotent journal mechanism for file system
US7499904B2 (en) System and method for client mastered replication of local files
US6546474B1 (en) Method and system for the fast backup and transmission of data
JP2008217306A (ja) レプリケーション方法、レプリケーションシステム、ストレージ装置、プログラム
US9934240B2 (en) On demand access to client cached files
JP2000138692A (ja) Macアドレス管理装置、macアドレス管理方法、及び記憶媒体
US20080040368A1 (en) Recording notations per file of changed blocks coherent with a draining agent
CN105593839A (zh) 分布式灾难恢复文件同步服务器系统
JP2011522337A (ja) サーバクラスタに配信されるコンピュータシステムのソフトウェアモジュールの同期化方法、同期化システムおよびデータストレージへの適用
JP2000035911A (ja) データベースの等価方法
TW202137012A (zh) 管理資料備份的方法及系統
CN113194121B (zh) 电子设备间的文件备份方法
CN118094625A (zh) 文件系统的文件备份方法、装置、存储介质和电子设备
BR112021024493B1 (pt) Método implementado por computador para sincronizar arquivos entre memória volátil e memória não volátil, dispositivo e um ou mais meios legíveis por computador não transitórios
JP2004362507A (ja) 情報処理装置及び情報処理方法
JPH0554006A (ja) コンピユータネツトワークの管理方式

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070706

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100330

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100630

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101001

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110104

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110127

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110922

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20110926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110926

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20111017

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

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20111216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130201

R150 Certificate of patent or registration of utility model

Ref document number: 5192635

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160208

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250