JPH11306058A - 異なるデ―タファイル蓄積サイトを調停する方法及びデ―タ蓄積サイト及びそれと関連した一組のジャ―ナルファイルを含むシステム - Google Patents
異なるデ―タファイル蓄積サイトを調停する方法及びデ―タ蓄積サイト及びそれと関連した一組のジャ―ナルファイルを含むシステムInfo
- Publication number
- JPH11306058A JPH11306058A JP11013070A JP1307099A JPH11306058A JP H11306058 A JPH11306058 A JP H11306058A JP 11013070 A JP11013070 A JP 11013070A JP 1307099 A JP1307099 A JP 1307099A JP H11306058 A JPH11306058 A JP H11306058A
- Authority
- JP
- Japan
- Prior art keywords
- file
- version
- site
- journal
- data file
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99936—Pattern matching access
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
ったファイル保存サイトを調整させる改良された方法を
提供する。 【解決手段】 分散型ファイルシステムでのファイル調
停プロセスは、一組のジャーナルファイルまたはログフ
ァイルを使用し異なるサイトまたはディレクトリの組の
ファイル変更履歴をトラックする。調停の間に各ジャー
ナルの各ファイルと関連するバージョンエントリーのシ
ーケンスは更新されて比較され、(1)調停に関係する
ファイルの何れかに競合が存在するか、(2)存在しな
い場合、どのバージョンが最新のバージョンであるかを
判断する。バージョンエントリーはハッシュコードまた
はダイジェストを含み、ファイルバージョンのシーケン
スを識別する。マスク及びサイトインジケータフィール
ドはどのジャーナルファイルがバージョンエントリーの
複写を有しているかをトラックするのに使用される。
Description
タのための分散型ファイルシステムのフィールドに関連
するもので、より詳しくは、分散形計算機システム内部
の異なる記憶場所で存在する可能性があるファイルの異
なったバージョンの調停に関するものである。
に、分散型ファイルシステムを使用することがコンピュ
ータシステムにとってますます共通化されている。この
傾向は、伝統的な集中化されたファイルシステムをディ
スクに密接に連結された単一コンピュータ上で実行する
アプリケーションプログラムのみにアクセス可能な磁気
ディスクに記憶されているデータファイルに置き換える
ものである。コンピュータの機能性が増加し、それらの
コストが低下することに伴い、全体的なコンピュータシ
ステムの性能は、データファイルのコピーが複数の記憶
場所に存在できるようにすることの恩恵を受けてきた。
代の例は、ローカルファイルサーバに接続されたデスク
トップのワークステーションまたはパーソナルコンピュ
ータが関与する。デスクトップコンピュータ上のファイ
ルの記憶は、デスクトップコンピュータ上のプログラム
実行の速い実施を可能にする一方、ファイルサーバ上の
これらのファイルの存在は、データファイルシェアリン
グ、すなわち企業で使用される多くの分散アプリケーシ
ョンプログラムで要求される機能が提供される。
ュータを有しているモバイルユーザや、ワークステーシ
ョンでのユーザおよび組織の中に存在する中央のデータ
リポジトリー(中央データ格納庫)との間でのデータの
同種の調整を可能にする。分散型ファイルシステムにお
いては、一般的に、ある時間でファイルの少なくとも2
つの異なるバージョンが異なる記憶場所にあり、1つの
バージョンのみがシステムの全てのユーザによって使用
されるべき最新の、すなわち正しいバージョンであり得
る。この可能性のため、ファイルシステムの一貫性を保
証するためのメカニズムが分散型ファイルシステムに使
用される。
ージョンがアプリケーションプログラムに提供されるな
らば、システムにおける旧式すなわち正しくないバージ
ョンが存在することがあっても一貫性が保たれる。ファ
イルシステムの一貫性(coherence)を保持することへの
1つのアプローチは、直接的なユーザ制御のファイル転
送である。
である。他の例は、カーミット(Kermit)として知られ
ている公衆ファイル転送プロトコルとワシントンのトラ
ベリングソフトウェア社(Traveling Software, Inc.)
のラップリンク(Laplink)として知られている製品を
含む。Laplinkプログラムは、主にポータブルコンピュ
ータとデスクトップコンピュータまたは他のポータブル
コンピュータのいずれかとの間のファイルを転送するた
めに使われる。これらのファイル転送手順の全ては、フ
ァイル転送プロセス上のコンピュータの重要な制御をユ
ーザに与える。
システムの一貫性の問題向けに特注されたものでない。
ユーザには、ファイルのバージョン間の競合を予期し、
競合が生じる場合にそのような競合を検出し、現在用い
られていないバージョンをファイルから除去し、およ
び、ファイル更新が必要とされるシステムのポイントに
確実に適宜配布されるようにする実質的な責務が負われ
ている。
ァイルのシャドウイングや即時の更新を用いる。そのよ
うな技術は、ネットワークファイルシステム(NFS)
のようなシステムに使われる。これらの技術を用いてい
るシステムにおいては、ファイル更新は直接に全ての記
憶場所へ同報され、いくつかのケースにおいて、更新さ
れているファイルの使用は全てのコピーが更新されるま
で妨げられる場合もある。この保守的なアプローチは、
一貫性を保持することへの競合の可能性を除去し、主に
ユーザに対して平明(透過性のあるもの)である。しか
しながら、それは同様にシステム性能を下げ、ユーザ制
御の相対的な欠如に関連した他の問題を引き起こす傾向
がある。さらに、その技術は、より幅広いコンピュータ
システムに断続的にしか接続しないモバイルユーザには
それほど適していない。
ンピュータシステム内部のデータファイルのための「特
別な記憶場所」の存在に依存する。例えば、単一のファ
イルサーバが、ファイルの正しいバージョンが得られる
ことができるシステムにおける唯一のポイントであるか
もしれない。したがって、ファイルサーバは全てのファ
イル調停(reconciliation)に関与しなければならな
い。
ソフト社によって配布されたウインドウズ95オペレー
ティングシステムに含められる「ブリーフケース」とし
て知られているプログラムに具体的に表現される。ブリ
ーフケースは、デスクトップのパーソナルコンピュータ
とポータブルコンピュータの間のデータファイルの一貫
性を保持するために使用することができる。
ァイル記憶サイトとして取り扱われ、ポータブルコンピ
ュータはデスクトップコンピュータから得られたファイ
ルのコピーを一時的に保つ「ブリーフケース」として扱
われて、ユーザがオフィス環境に戻った時点で、コピー
すなわち更新されたバージョンがデスクトップコンピュ
ータに返送される。
システムは、その特別な記憶場所が壊れているかまたは
アクセス不可能である場合にファイルを更新する。CO
DAとBayouのようなバージョンベクトルシステムは、
各サイトで昇順のバージョン番号を生成し、新規のバー
ジョン番号を作成または更新する各オブジェクトと関連
させることによって、特別な記憶場所を使用することを
避けている。
サイトのIDと更新のためのそのサイトのバージョン番
号を含む。各最新のオブジェクトは、個々のサイトのバ
ージョン番号のサイトによってインデックス付けされる
ベクトルと関連させられる。
結びつくことができる。すなわち、1つのベクトルの全
てのコンポーネントは他のベクトルの対応するコンポー
ネント以下、その逆、あるいはそれよりも小さいものも
大きいものもある。最後のケースが、矛盾している更新
を検出するために使用される。
のアプローチは、1997年2月4日に発行された米国
特許第5,600,834号(発明者:ハワード)に記載
されており、ケンブリッジ・マサチューセッツの三菱電
機情報技術センターアメリカ社に譲渡された。このファ
イル調停技術には、自動メカニズムおよびユーザ制御の
組合せを使用するものと記載されている。
ルの作成、変更及び削除の履歴が記録されている一組の
ジャーナルファイルを使用しており、各ジャーナルファ
イルは、特定のサイトまたは記憶場所に関係する履歴の
部分を保持する。この明細暑中で使用されているよう
に、用語「サイト」は、ハードディスクかフロッピーデ
ィスクのような特定の記憶媒体の上の作業ディレクトリ
とそのサブディレクトリを意味する。
調停プロセスは、明らかにユーザによって遂行されて制
御され、ユーザによって指定されたサイトに存在するフ
ァイルと現行のディレクトリのバージョンを調停するよ
う動作する。そのプロセスは、各ファイルまたはディレ
クトリの単一の最新のバージョンがあるかどうかを判定
するために、ジャーナルファイルの中のサイトディレク
トリとバージョンエントリーを使用する。もし、それが
あるならば、そのバージョンを、調停に関係する他のサ
イトへコピーする。また、プロセスは、ファイルの異な
るバージョンが共通の以前のバージョンから派生したと
思えるシステムの中に存在するとき、これらの存在が示
された競合に対しチェックする。
トでの各々のファイルの生成/変更/削除履歴を復元する
ために、各々のジャーナルにおけるバージョンエントリ
ーのシーケンスを「結合する(merging)」ことによっ
て機能する。
なったジャーナルからのイベントを順序立てて配置する
ために、ジャーナルにおける「タイムスタンプ」として
言及され使用される。
が調停に関連した最新の時間を識別するために使用され
る「既知のサイト」エントリーにおけるタイムスタンプ
も含める。この情報は、間違いがなければジャーナルフ
ァイルの際限のない成長を妨げるためにジャーナルファ
イルからバージョンエントリーを除去するのに時折使用
される。
許5,600,834号の調停プロセスで記述されたよ
うなタイムスタンプの使用は、異なるコンピュータの間
の日時の不完全なトラッキングのため、時折望まれてい
ない結果を引き起こす。
サイトで存在しているファイルの以前のバージョンは、
タイムスタンプが旧式のバージョンをより最近のもので
あるかのように不正に見せかけさせるので、他のサイト
で存在している正しいバージョンの上書くされるかこと
がある。
時間時刻の間調整を行って、他のコンピュータがそのよ
うな調整をまだ行っていなかったときに、起こることが
ある。同様の理由で、タイムスタンプに頼ることは、サ
イト毎の調停時刻を追跡するプロセスの中で同様に問題
を引き起こす可能性がある。
もので、分散型ファイルシステムにおけるファイル調停
プロセスにおいて、各々のコンピュータシステムにおけ
る異なるサイトのそれぞれまたはディレクトリのセット
でファイル変更の履歴を追跡することができる異なるデ
ータファイル蓄積サイトを調停する方法及びデータ蓄積
サイト及びそれと関連した一組のジャーナルファイルを
含むシステムを提供する。
ァイルシステムにおける異なるファイル記憶サイトを調
停する改善された方法が開示される。一組のジャーナル
またはログファイルは、ファイル変更の履歴を異なるサ
イトの各々で追跡するために使用される。ジャーナルフ
ァイルは、対応するサイトの各ファイルと関連させられ
たバージョンエントリーのシーケンスを含む。
応するバージョンのコンテンツを高い確率でユニークに
識別するするためにハッシュコードまたはダイジェスト
を含む。調停プロセスの間に、各ジャーナルの中のバー
ジョンエントリーから得られたハッシュコードのシーケ
ンスは、(1)調停の中で含まれたいずれかのファイル
に競合が存在するかどうか、(2)存在しないのなら
ば、ファイルのバージョンは、最新のバージョンであ
る、ということを判定するために相互に比較される。次
に、最新のバージョンは必要に応じて他のサイトにコピ
ーされ、ジャーナルはコピーしているファイルを反映す
るために更新される。
ードが発生するファイルのコンテンツをユニークに識別
する非常に高い確率で既知のメッセージ・ダイジェスト
・プログラムに従うファイルのコンテンツから計算され
る。ファイルの異なるバージョンが異なるコンテンツを
持つので、それらは同様に異なるコードに結びつく。
た調停プロセスがタイムスタンプの使用から起こってい
る望まれていない上述したような結果をもたらさないよ
うに、ファイルの異なるバージョンを独立して識別す
る。
トに依存せずに独自の昇順バージョン番号を生成するこ
とは、バージョンベクトルを各々の目的のために保持す
る必要がないので、バージョンベクトルアプローチとも
異なる。
トの掛かり合いをファイル調停の中で追跡する。各々の
ジャーナルファイルにおける各々のバージョンエントリ
ーは、他のサイトに関連するジャーナルファイルのいず
れがエントリーのコピーを持つかを示すサイトインジケ
ーターフィールドを含む。
れると、サイトインジケータフィールドは、どのサイト
が調停に関連しているかを示す値に設定され、その結
果、バージョンエントリーのコピーを持つ。
ールドによって示されるように、バージョンエントリー
のコピーを持つとき、間違いなく、いかなる以前のバー
ジョンエントリーも削除されるようにすることが安全で
ある。
ントリーを使用するので、さらにハッシュコードの独自
性を活用してタイムスタンプの使用と関連した問題を回
避することができる。
してそれぞれ参照された2つの別々のサイトに存在して
いるファイルのリスト出力を示す。これらのファイル
は、ファイル名によってリストされる。SITE1は、3つ
のユーザファイルfile1.xxx、file2.xxx及びfile3.x
xx、2つの追加のファイルfile5.xxxとfile6.xxxを含
んでいるサブディレクトリsub1.dir及びジャーナルフ
ァイルsite1.jnlを含む。「xxx」値は、ユーザデータ
ファイルとしてファイルを識別するファイル形式拡張子
を表す。
たファイルfile4.xxxを含むという点と、file3.xxxを
持たないという点を除いては、SITE1と同じファイルを
含む。SITE2のジャーナルファイルは、site2.jnlと呼
ばれる。
ル及びディレクトリファイルは、サイトSITE1及びSITE
2が属するコンピュータシステムのユーザによって作
成、リード、変更及び削除される。
のファイル及びディレクトリは、互いを反映させるよう
に意図されている。例えば、サイトSITE1は、ユーザの
ワークステーションのハードディスク上の領域であって
もよく、サイトSITE2は、ワークステーションのファイ
ルの共有またはバックアップコピーを保有するのに使用
されるファイルサーバ内の大容量ディスクの領域であっ
てもよい。したがって、定期的に、2つのサイトでのユ
ーザファイルとディレクトリは、両方のサイトがファイ
ル及びディレクトリの最新のコピーを持つように、互い
に調整される。
構造を示す。図3に示すように、ジャーナルファイル
は、ヘッダ、一つ以上のサイトエントリー及び一つ以上
のバージョンエントリーから成る。サイトがサブディレ
クトリを持つ場合のように、複数のヘッダがあってもよ
いが、サイトエントリーは、最初のヘッダラインの後に
のみある。サイトエントリーは、調停に関連している各
サイトに存在する。
た各ファイルの各バージョンのために、ジャーナルファ
イルに加えられる。バージョンエントリーは、古くなっ
たときに排除されるので、いかなる与えられた時間でも
ジャーナルファイルにおけるバージョンエントリーも各
ファイルに関連のあるバージョンの履歴だけを表す。
ャーナルファイルに現れるサイトは、<sitename>とラベ
ルされたフィールドで識別される。また、ヘッダは、サ
イトが属するコンピュータシステムのタイプを識別する
ために使用される<systype>とラベルされたフィールド
と、ジャーナルファイルを作成した調停プログラムのバ
ージョンを識別するための<programname>とラベルされ
たフィールドをも含む。
は、いくつかのフィールドを含む。これらは次のように
記述される。
いくつかのフィールドを含む。これらは次のように記述
される。
2に示されたサイトに関する典型的なジャーナルファイ
ルを示す。 SITE1のジャーナル $ <date> <time> SITE2 ?1 $ <date> <time> SITE1 ?2 + f1date f1time file1.xxx dt=aaaaa + f2date f2time file2.xxx dt=bbbbb + f3date f3time file3.xxx dt=ccccc + s1date s1time sub1.dir/ SITE1/sub1.dirのジャーナル +f5date f5time file5.xxx dt=eeeee + f6date f6time file6.xxx dt=fffff
スは、調停に関係する相互に関連付けられた既存のジャ
ーナルファイル10及びディレクトリ11を読み込む。
ステップ12で、各サイトに関連するジャーナルにおけ
るバージョンエントリーは、個々のサイトのファイル及
びディレクトリの最新のバージョンを反映するように更
新される。
テンツが、サイトディレクトリ及びサブディレクトリを
読み込むことによって判断される。新たな「+」バージ
ョンエントリーが、(1)対応するバージョンエントリ
ーを有さない(従って新たに作成されたと推定される)
か、または(2)ジャーナルファイルのファイルまたは
ディレクトリに関する最後のバージョンエントリーに含
まれる日時とは異なった日時を有する(従って変更され
たと推測される)、ファイル及びディレクトリについて
作成される。「+」バージョンエントリーが作成される
方法は、図8を参照して以下に詳細に説明する。
を有し、タイムスタンプが適合すれば、サイトに存在す
るファイルのバージョンはそのファイルに関する最後の
バージョンエントリーと一致する。この場合、新たなバ
ージョンエントリーは作成されない。このようにして、
不必要なダイジェストの再計算が避けられる。ダイジェ
ストの計算はコンピュータ集約的であるため、新たなま
たは変更されたファイルについてのみ新たなダイジェス
トを作成するというこの特徴により、調停プロセスの性
能が高まる。
その削除であることがあり得る。ジャーナル全体を通し
てパスが行われ、既存のバージョンエントリーで命名さ
れた何れかのファイルまたはディレクトリがファイルシ
ステムから削除されているかどうかを判断する。かかる
ファイルの何れについても、削除されたファイルまたは
ディレクトリの名前を含む新たな「−」バージョンエン
トリーが作成され、最後に行われたアクションが対応す
るサイトでのファイルの削除であったことを示す。
と、最新の調整に関係しているサイト及びジャーナルに
記述された他のサイトの両方を含む、既知のサイトの単
一のマスターリストに、これらのジャーナルのサイトエ
ントリーがマージされる。またマスターリストは、新た
なジャーナルで使用されるマスクビットと、各サイトに
関する最後の既知の調整の日時を含む。
サイトエントリーが更新される。まず、最新の調停に関
係する各サイトに関するエントリーが、現在時を含むよ
うに更新される。次に、古いサイト(1ヶ月など長期に
亘ってアクセスされていない)が排除される。その結果
得られる最新の調整に関係しないサイトを含むサイトの
リストは、関係するサイトに関する新たなジャーナルの
全てに最終的に含まれることになる。
ては、特定のジャーナル内でのみ意味があることに注意
すべきである。上記のようにジャーナルがマージされる
と、サイトならびにバージョンエントリーの両方におけ
るマスクビットは、バージョンとサイトとの間の関連を
維持するのに適するように再度マッピングされる。
ットは次のようにサイトに割り当てられる。ジャーナル
に記述された第一のサイトにはマスク値1が与えられ、
第二のサイトにはマスク2が与えられ、第三にはマスク
4が与えられ、第四にはマスク8が与えられ、以下同様
に続く。この割り当ては任意であり、これに代わる実施
の形態において他の方法で行われてもよい。サイトが放
棄された場合には、その対応するマスクビットは他のサ
イトが自由に使用できるようになる。後のサイトはでき
たギャップを自動的に埋めるように上に移動する。
まず、ジャーナルの各ファイル名に関するバージョンエ
ントリーのシーケンスが比較される。この工程は、「マ
キシマム・コモン・サブシーケンス(Maximum common s
ubsequence)」またはMCSアルゴリズムとして知られ
るアルゴリズムを採用している。MCSアルゴリズム
は、各ファイル名に「共通の」バージョンエントリー、
すなわち調停しているサイトに関する全てのジャーナル
ファイルに含まれるバージョンエントリーのサブシーケ
ンスが存在すれば、かかるサブシーケンスを発見する。
この共通のサブシーケンスは、調停プロセスによる更な
るアクションの基礎を形成する。
の後に何れかのジャーナルファイルに現れる最後のバー
ジョンエントリーが存在すれば、かかるエントリーを識
別する。何れのジャーナルファイルも最後の共通のバー
ジョンエントリーの後にデータファイルに関するバージ
ョンエントリーを有していない場合には、ファイルの最
新のバージョンは各サイトに既に存在している。この場
合には、そのファイルに関しては更に調整アクションを
取る必要はない。
があるかどうかをチェックすることである。(1)調整
されるサイトのジャーナルにおけるファイル名について
共通のサブシーケンスが存在しないか、または(2)最
後の共通のバージョンエントリーの後に2つ以上のジャ
ーナルに異なったバージョンエントリーが存在する場合
に、競合が存在する。
のバージョンが最新であるかをハッシュコードから判断
することは不可能である。この場合に、競合するバージ
ョンの1つを独特で識別的な名前を使って名前を変更
し、競合を抹消する。どのバージョンの名前を変更する
かの選択は任意であり、選択するための1つの単純な方
法は早いタイムスタンプを有するバージョンを選ぶこと
である。この名前変更の後に、競合するバージョンの両
方が必要に応じて他のサイトに写され、ユーザは2つの
ファイルを比較して適切な修復アクションを取るように
通知される。
なければ、最後の共通のバージョンエントリーに続くバ
ージョンエントリーを有するサイトに存在するファイル
の最新バージョンは、他のサイトにコピーされる。最新
バージョンは1つのサイトにのみ存在することがしばし
ばある。しかし、コピーが行われる前に複数のサイトに
最新バージョンが存在することがあり得る。
れが存在するサイトの何れかからコピーされて、最新バ
ージョンが存在しないサイトにのみコピーされる。コピ
ーが行われると、ファイルの最新バージョンを受け取る
サイトのジャーナルに新たな「+」バージョンエントリ
ーが添付される。
ム間で、例えばUNIXシステムからWindowsシステムにコ
ピーされる場合がある。これらのシステムは異なった文
字を使って、テキストファイルにおけるテキストのライ
ンの末端を示す。このような場合には、エンド・オブ・
ライン文字は、コピー先のシステムとの適切な互換性を
確保するように、必要に応じてファイルコピー工程中に
変更される。以下に説明するように、テキストファイル
へのこれらの小さな変更は、独自にファイルを識別する
ハッシュコードの能力に影響せず、従ってハッシュコー
ドを変更せずにコピーできる。
ーの後の最後のバージョンエントリーが、ファイルが削
除されたことを示す「−」バージョンエントリーである
場合には、ファイルがまだ存在するサイトからそのファ
イルが削除され、それに応じて「−」バージョンエント
リーがジャーナルに添付される。
無限に増大するのを防ぐために、ジャーナルは再度検査
されて旧式のバージョンエントリーを排除する。(1)
全てのジャーナルに共通の何れかのバージョンエントリ
ーより先であるか、または(2)例えば1ヶ月などの妥
当な古さよりも古い場合に、バージョンエントリーは旧
式になる。
の最後のエントリーであって、従って、これらのファイ
ルに関する他のバージョンエントリーよりも先ではない
古い削除、すなわち「−」エントリーを扱うために行わ
れる。旧式のバージョンエントリーが排除された後に、
更新されたジャーナルが、それに続く調整に使われる更
新されたジャーナルファイル18として書き戻される。
ージョンエントリーが全てのサイトがファイルの所与の
バージョンを見た最新の時点を表すため、特に重要であ
ることに注意すべきである。更に、ジャーナルにおける
最新のバージョンエントリーもまた、どのバージョンが
現在サイトに保存されているかを表すために、特に重要
である。
するMCSアルゴリズムのバージョンが使用され、最新
及び現在存在するバージョンとの適合を優先させる。こ
の重み付けは、全てのサイトを最新のものにしようとす
る前述の調停プロセスにとっては意義のあるものであ
る。しかし、バージョンエントリーの他の重み付けも可
能であり、調停プロセスの他の実施の形態においては好
適な場合もある。
の作成を図8を参照してここで説明する。バージョンエ
ントリーが作成される時点では、日付、時間、名前及び
種類のフィールドに含められる値は既知であり、従っ
て、これらは個々のフィールドに単に挿入されるだけで
ある。
すように作成される。バージョンエントリーが最初に作
成されると、そのマスクは、そのバージョンが作成され
たサイトを除く全てのサイトについて設定され、その1
つのサイト以外の全てのサイトでは知られていないこと
を示す。他のサイトとのこのバージョンの調停が成功す
ると、バージョンの対応するマスクビットをリセットす
ることになり、そのバージョンが追加サイトにおいて知
られていることを示す。
ビットの全てがリセットされると、バージョンは知られ
てあらゆるところに伝えられる。バージョンがあらゆる
ところで知られると、同じファイルに関する全ての以前
のバージョンエントリーは旧式になり、安全なように排
除することができる。
ップ22で作成される。メッセージダイジェストバージ
ョン5(MD5)として知られる手順が、ファイルの内
容を入力として使用して実行される。この入力に基づい
て、MD5は、同じファイルの前後のバージョンを含
む、全てのあり得るファイルの中でファイルを独自に識
別する非常に高い確率を有する、16バイト(128ビ
ット)のダイジェストを計算する。
は、約1040またはほぼ100万から100万の累乗
(one million to the one-millionth power)である多
数の可能なコードによるものである。ハッシュコードを
作成する方法は他にもある。許容できる程度に低い率の
適合ミスを生ずるアルゴリズムを使用することが望まし
い。
ブ・ライン文字はダイジェストの計算において無視され
る。この特徴により、上記のようにファイルが異なった
種類のシステム間でコピーされる時に、これらの文字を
透過性のあるように変更することが可能になる。この特
徴は最適化であり、ダイジェストの計算にこれらの文字
を含めることは代替的な実施の形態においても役立つで
あろう。
結果を説明するために以下に例を示す。例1は通常で競
合がない場合である。例2は競合を示す。例3及び例4
はサイトエントリーの作成と旧式のバージョンエントリ
ーの排除を例示している。図9〜図11は、ぞれぞれfi
le1、file2及びfile3の以下のシナリオを作り出す変更
とコピーのシーケンスを示す。垂直の矢印は変更を示
し、水平の矢印はコピーを示す。関係のない詳細を省く
ためにファイルの拡張子は削除し、ファイルの異なった
バージョンから計算されるハッシュコードを5ビットの
英数字を使って表している。実際には、ハッシュコード
は上述のようにより長いストリングである。
ら): SITE1 SITE2 + file1 jj39z + file1 jj39z + file2 r9t4w + file2 r9t4w + file3 pq9zr + file3 pq9zr
の変更及びサイト2でのfile3の削除を示す最新のサイ
トディレクトリ: SITE1 SITE2 file1 jj39z file1 jj39z file2 kpn33 file2 r9t4w file3 pq9zr
ジャーナルの最初の更新の結果。 サイト1でのfile2及びサイト2でのfile3に関する新た
なバージョンエントリーが付加されている:
ァイルの最新バージョン間の適合は、破線で示されてい
る。file2の新たなバージョン及びfile3の削除は、対応
するバージョンエントリーがこれらのファイルの最新の
共通のエントリーの後に現れているため、削除した。
れに従ってジャーナルを更新した結果: SITE1 SITE2 + file1 jj39z + file1 jj39z + file2 r9t4w + file2 r9t4w + file2 kpn33 + file2 kpn33 + file3 pq9zr + file3 pq9zr - file3 - file3
て、ジャーナルから古いバージョンを排除した結果: SITE1 SITE2 + file1 jj39z + file1 jj39z + file2 kpn33 + file2 kpn33 - file3 - file3
両サイトのfile1のバージョンが不一致に更新されてい
るものとする。8.file1への競合のある更新の後の新
たなサイトの内容: SITE1 SITE2 file1 d9qlj file1 92w3a file2 kpn33 file2 kpn33
映するように更新した結果で、マージングと競合検出が
続く: SITE1 SITE2 + file1 jj39z ---- + file1 jj39z + file1 d9qlj + file1 92w3a + file2 kpn33 ---- + file2 kpn33 - file3 ---- - file3 両サイトで最後の共通のバージョンには適合しないバー
ジョンが続くfile1に関して競合が検出される。
を変更した結果としてのサイトの内容: SITE1 SITE2 file1 d9qlj file1#1 92w3a file2 kpn33 file2 kpn33
た新たな独自のファイル名である。ここで、各サイトに
は新たなファイルがある。
イトを一致させた結果: SITE1 SITE2 file1 d9qlj file1 d9qlj file1#1 92w3a file1#1 92w3a file2 kpn33 file2 kpn33
と、旧式のバージョンを排除することができ、その結
果: SITE1 SITE2 + file1 d9qlj + file1 d9qlj + file1#1 92w3a + file1#1 92w3a + file2 kpn33 + file2 kpn33 - file3 - file3
仮定すると、各ジャーナルファイルのサイトエントリー
は以下のとおり: site1.jnl: $ date1 time1 SITE1 ?01 $ date1 time1 SITE2 ?02 site2.jnl: $ date1 time1 SITE1 ?01 $ date1 time1 SITE2 ?02
の間で調整が行われる。新たなサイトエントリーは以下
のとおり: site1.jnl: $ date2 time2 SITE1 ?01 $ date1 time1 SITE2 ?02 $ date2 time2 SITE3 ?04 site2.jnl(変更せず) $ date1 time1 SITE1 ?01 $ date1 time1 SITE2 ?02 site3.jnl: $date2 time2 SITE1 ?01 $ date1 time1 SITE2 ?02 $ date2 time2 SITE3 ?04
バージョンを排除する 1.例1及び例2ではSITE1及びSITE2のみが存在すると
仮定した。仮に、例えばサイトマーク?4のSITE3などの
他のサイトがあるとすれば、古いジャーナルエントリー
は排除されず、ジャーナルは継続したであろう: SITE1(?1) SITE2(?2) SITE3(?4) + file1 jj39z + file1 jj39z + file1 jj93z + file1 d9qlj ?4 + file1 d9qlj ?4 + file1#1 92w3a ?4 + file1#1 92w3a ?4 + file2 r9t4w + file2 r9t4w + file2 r9t4w + file2 kpn33 ?4 + file2 kpn33 ?4 + file3 pq9zr + file3 pq9zr + file3 pq9zr - file3 ?4 - file3 ?4 例えばfile1(jj39z)についての旧式のエントリーは、そ
れに続くエントリー(d9qlj)が全てのサイトではまだ知
られていないため、排除することができない。
い)との間で調整が行われた場合には、適切なファイル
はSITE3にコピーされて、それらのジャーナルはこれを
反映するように更新されるであろう: SITE1 SITE2 SITE3(?4) + file1 jj39z + file1 jj39z + file1 jj93z + file1 d9qlj ?4 + file1 d9qlj + file1 d9qlj + file1#1 92w3a ?4 + file1#1 92w3a + file1#1 92w3a + file2 r9t4w + file2 r9t4w + file2 r9t4w + file2 kpn33 ?4 + file2 kpn33 + file2 kpn33 + file3 pq9zr + file3 pq9zr + file3 pq9zr - file3 ?4 - file3 - file3
ーが全てのサイトにあることが知られているため、SITE
2及びSITE3でジャーナルから排除することができる。 SITE1(?1) SITE2(?2) SITE3(?4) + file1 jj39z + file1 d9qlj ?4 + file1 d9qlj + file1 d9qlj + file1#1 92w3a ?4 + file1#1 92w3a + file1#1 92w3a + file2 r9t4w + file2 kpn33 ?4 + file2 kpn33 + file2 kpn33 + file3 pq9zr - file3 ?4 - file3 - file3 SITE1のジャーナルは、それが次回にSITE1またはSITE3
の何れかと調整されるときに排除されるであろう。
応する改良されたファイル調停プロセスを説明してき
た。開示した調停プロセスは多くの方法で変更が容易で
ある。例えば、バージョンエントリーを更新する場合、
その内容がタイムスタンプによって示されているように
変更されているかどうかに拘わらず、サイトで発見され
る全てのファイル及びディレクトリについて新たなバー
ジョンエントリーを作成することが可能である。この変
更は、コンピュータ集約的であるため、および変更され
ていないファイルについてのダイジェストの不必要な再
計算のために、性能が低下する見返りに幾分か工程を単
純にするであろう。上記のように、特定のダイジェスト
アルゴリズムは、適切な独自のダイジェストを生ずる多
くのアルゴリズムの何れであってもよい。
ョンエントリーは、バージョンエントリーのシーケンス
におけるその位置に関して異なった重み付けを受けるこ
とができる。例えば、ユーザが指定するバージョンエン
トリーには、シーケンスまたはタイムスタンプの何れか
における位置に基づいて完全に無視できるものもある。
かかるアプローチは、例えばサイトがある古い日付まで
あるいはある古い既存のバージョンまでに限って調整さ
れる場合には、役に立つであろう。
は、各サイトのファイル及びディレクトリに直接アクセ
スするためにその工程が実行されているプロセッサの能
力に依拠している。他のメカニズムを採用してファイル
操作を実行してもよい。例えば、調停プロセスは各コン
ピュータで独立した工程として実行することが可能であ
り、シグナリングやファイル交換プロトコルを独立の工
程の間で使用して、ディレクトリ、データ及びジャーナ
ルファイルの読み取りや書き込みを実行することができ
る。
概念から逸脱することなく、上記の方法及び装置に対す
る他の変更やそれらの変形が可能であることが明らかで
あろう。従って、この発明は、特許請求の範囲及び精神
によってのみ限定されるものと理解すべきである。
型ファイルシステムにおけるファイル調停プロセスにお
いて、各々のコンピュータシステムにおける異なるサイ
トのそれぞれまたはディレクトリのセットでファイル変
更の履歴を追跡することができる異なるデータファイル
蓄積サイトを調停する方法及びデータ蓄積サイト及びそ
れと関連した一組のジャーナルファイルを含むシステム
を提供することができる。
ル保存サイトのディレクトリリストである。
ル保存サイトのディレクトリリストである。
使用されるジャーナルファイルの構造図である。
ネントの構造図である。
ネントの構造図である。
ネントの構造図である。
チャートである。
ンエントリーが図7の調停プロセス中で作成される工程
の一部のフローチャートである。
ビティを例示したタイムライン図である。
ィビティを例示したタイムライン図である。
ィビティを例示したタイムライン図である。
Claims (9)
- 【請求項1】 コンテンツによってデータファイルの対
応するバージョンを独自に識別している各ハッシュコー
ドを生成するステップと、 生成されたハッシュコードをサイトと関連したジャーナ
ルファイルに蓄積し、各々のジャーナルファイルのハッ
シュコードは、データファイルの異なるバージョンが対
応するサイトで蓄積された順序を示しているシーケンス
で蓄積されるステップと、 (1)データファイルのバージョンは最新バージョンで
ある、 (2)最新のバージョンが蓄積されたサイトまたは複数
のサイト、 (3)最新のバージョンが蓄積されてないサイトまたは
複数のサイト を決定するために、ジャーナルファイルからのハッシュ
コードのシーケンスを分析するステップと、 データファイルの最新のバージョンを蓄積されているサ
イトから蓄積されていないサイトまたは複数のサイトに
複写するステップとからなる異なるデータファイル蓄積
サイトを調停する方法。 - 【請求項2】 請求項1に記載の異なるデータファイル
蓄積サイトを調停する方法において、 上記分析ステップは、競合がサイト間で存在するかどう
かを判定することを含み、少なくとも2つのジャーナル
ファイルが最後の共通のハッシュコードに続いて異なる
ハッシュコードを持つとき、競合が存在すると判定し、
最後の共通のハッシュ・コードは、個々のジャーナルフ
ァイルに現れるそれらのハッシュ・コードの最も最近生
成されたものであり、 上記複写ステップは、ジャーナルファイルが最後の共通
のハッシュコードに続くハッシュコードを持つサイトか
ら最後の共通のハッシュコードに続くハッシュコードを
持たない1または複数のサイトに複写することを含み、 上記複写ステップは、競合が存在しないことが判定され
たときのみ実行されることを特徴とする異なるデータフ
ァイル蓄積サイトを調停する方法。 - 【請求項3】 請求項2に記載の異なるデータファイル
蓄積サイトを調停する方法において、 競合が存在することが判定されたならば、1つの競合す
るバージョンを他の競合するバージョンと区別すると共
に競合の存在を示すように、ファイルの競合するバージ
ョンの1つの名称を変更するステップと、 ファイルの両方の競合するバージョンが全てのサイトに
存在するように他のサイトにファイルの競合するバージ
ョンを複写するステップとをさらに含むことを特徴とす
る異なるデータファイル蓄積サイトを調停する方法。 - 【請求項4】 請求項1に記載の異なるデータファイル
蓄積サイトを調停する方法において、上記ハッシュコー
ド蓄積ステップは、データファイルの最新のバージョン
を識別するハッシュコードを複写するステップを含み、
ハッシュコードは、データファイルの複写元のサイトに
関するジャーナルファイルから複写され、当該ハッシュ
コードは、データファイルの複写先の各サイトについて
のジャーナルファイルに複写されることを特徴とする異
なるデータファイル蓄積サイトを調停する方法。 - 【請求項5】 請求項1に記載の異なるデータファイル
蓄積サイトを調停する方法において、 上記ジャーナルファイルは、連続的に配置されたバージ
ョンエントリーを含み、各々のバージョンエントリー
は、対応するサイトで蓄積されているデータファイルの
対応するバージョンと関連し、 各ハッシュコードは、バージョンエントリーの対応する
一つに含められ、 各バージョンエントリーは、バージョンエントリーと共
に含まれたハッシュコードによって識別されたデータフ
ァイルのバージョンが生成された時間を示すタイムスタ
ンプを含め、 上記ハッシュ-コードを生成するステップは、 (1)ジャーナルファイルのデータファイルに対し最後
のシーケンシャル・バージョンエントリーのタイムスタ
ンプから、最後のバージョンエントリーの生成以降、ジ
ャーナルファイルと関連するサイトでデータファイルが
変更されたかどうかを判定するステップと、 (2)データファイルが最後のバージョンエントリーの
生成以降に変更されたならば、そのデータファイルに対
するハッシュコードを生成するステップと、 (3)データファイルが最後のバージョンエントリーの
生成以降に変更されなかったならば、そのデータファイ
ルに対するハッシュコードの生成をやめるステップとを
含め、 上記ハッシュコード蓄積ステップは、 データファイルが変更されたならば、新規のバージョン
エントリーをジャーナルファイルのバージョンエントリ
ーのシーケンスに添付するステップを含み、添付された
バージョンエントリーは、変更されたデータファイルに
ついて生成されたハッシュコードを含むことを特徴とす
る異なるデータファイル蓄積サイトを調停する方法。 - 【請求項6】 請求項1に記載の異なるデータファイル
蓄積サイトを調停する方法において、 (1)各ハッシュコードは、ジャーナルファイルにおけ
るバージョンエントリーの対応する1つに含まれ、 (2)ジャーナルファイルにおける各バージョンエント
リーは、サイトインジケータフィールドを含み、サイト
インジケータフィールドは、サブフィールドを有し、各
サブフィールドは、サイトの異なる1つに対応し、サブ
フィールドを含むバージョンエントリーがサブフィール
ドに対応しているサイトについてのジャーナルファイル
に現れるかどうかを示し、 バージョンエントリーをジャーナルファイルから削除す
ることが今後の調停に有害な影響を及ぼさないように、
旧式になったジャーナルファイルの中にバージョンエン
トリーがあるかどうかをジャーナルファイルの中のサイ
トインジケータから判定するステップと、 旧式と判定されたバージョンエントリーを削除するステ
ップとをさらに含むことを特徴とする異なるデータファ
イル蓄積サイトを調停する方法。 - 【請求項7】 請求項6に記載の異なるデータファイル
蓄積サイトを調停する方法において、 上記判定ステップは、ジャーナルファイル中に全てのジ
ャーナルファイルに共通する最も古いバージョンエント
リーに先行するバージョンエントリーがあるかどうかを
判定するステップを含み、 上記削除ステップは、最も古い共通のバージョンエント
リーに先行することが判定されたバージョンエントリー
を削除するステップでなることを特徴とする異なるデー
タファイル蓄積サイトを調停する方法。 - 【請求項8】 請求項1に記載の異なるデータファイル
蓄積サイトを調停する方法において、 ジャーナルファイルは、連続的に配置されたバージョン
エントリーを含み、各々のバージョンエントリーは、対
応するサイトに蓄積されているデータファイルの対応す
るバージョンと関連し、各々のバージョンエントリー
は、ファイルが、バイナリーまたはテキストフォーマッ
トであるかどうかを示すファイルタイプインジケータを
含み、 ファイルがテキストファイルであるかどうか、及びテキ
ストファイルの最終行を示すためにファイルがシステム
間で異なるキャラクターを使用して複写されているかど
うかを判定するステップをさらに含み、 ファイルがテキストファイルであり、ファイルがそのよ
うなシステムの間で複写されているならば、ファイルの
複写先のシステムと互換性があるようにファイルに現れ
る行末キャラクタを変えることを特徴とする異なるデー
タファイル蓄積サイトを調停する方法。 - 【請求項9】 データ蓄積サイト及びそれと関連した一
組のジャーナルファイルを含むシステムにおいて、 各々のジャーナルファイルは、サイトの対応する一つと
関連し、データファイルのどのバージョンがサイトに現
れたかを示すエントリーを含み、ジャーナルエントリー
は、サイトのコンテンツを調停するプロセスの間に更新
され、 ジャーナルファイルのうちの1つの中に現れているバー
ジョンエントリーの複写を含むジャーナルファイルをト
ラッキングする方法は、 1つのジャーナルファイルの中でマスクを蓄積し、各々
のマスクは、あらかじめ決められた関連したデータ値で
なり、サイトの対応する一つを独自に識別するステップ
と、 1つのジャーナルファイルにサイトインジケータフィー
ルドを蓄積し、各々のサイトインジケータフィールド
は、1つのジャーナルファイルの中でジャーナルエント
リーの対応する一つと関連し、かつサブフィールドを含
み、各々のサブフィールドは、あらかじめ決められた値
に設定されるとき、ジャーナルファイルの対応する一つ
がサブフィールドを含むサイトインジケータと関連した
ジャーナルエントリーの複写を持つかどうかを示すステ
ップと、 1つのサイトを他のサイトと調停する過程の間に、1つ
のジャーナルファイルにおけるジャーナルエントリーを
更新するに当たり、サイトインジケータがジャーナルエ
ントリーの複写が現れたジャーナルファイルの永続的な
記録であるように、各々のサイトと関連するサブフィー
ルドとマスクの初期値に基づいた値に従ってサイトイン
ジケータのサブフィールドのそれぞれを設定するステッ
プとからなるデータ蓄積サイト及びそれと関連した一組
のジャーナルファイルを含むシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/054330 | 1998-04-02 | ||
US09/054,330 US6098079A (en) | 1998-04-02 | 1998-04-02 | File version reconciliation using hash codes |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11306058A true JPH11306058A (ja) | 1999-11-05 |
Family
ID=21990316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11013070A Pending JPH11306058A (ja) | 1998-04-02 | 1999-01-21 | 異なるデ―タファイル蓄積サイトを調停する方法及びデ―タ蓄積サイト及びそれと関連した一組のジャ―ナルファイルを含むシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US6098079A (ja) |
EP (1) | EP0947932A2 (ja) |
JP (1) | JPH11306058A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000259474A (ja) * | 1999-03-05 | 2000-09-22 | Mitsubishi Electric Inf Technol Center America Inc | 異なるデータファイルを調停する方法 |
JP2005032249A (ja) * | 2003-07-10 | 2005-02-03 | Microsoft Corp | フェンシングおよびフェンシング解除による、複製情報の権限の細分制御 |
JP2009181311A (ja) * | 2008-01-30 | 2009-08-13 | Hitachi Computer Peripherals Co Ltd | データ比較装置 |
US8943025B2 (en) | 2003-06-27 | 2015-01-27 | Hitachi, Ltd. | Data replication among storage systems |
US9058305B2 (en) | 2003-06-27 | 2015-06-16 | Hitachi, Ltd. | Remote copy method and remote copy system |
Families Citing this family (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6317787B1 (en) * | 1998-08-11 | 2001-11-13 | Webtrends Corporation | System and method for analyzing web-server log files |
US6925442B1 (en) | 1999-01-29 | 2005-08-02 | Elijahu Shapira | Method and apparatus for evaluating vistors to a web server |
US7617175B1 (en) * | 1999-04-21 | 2009-11-10 | Cisco Technology, Inc. | Method and apparatus for upgrading a database in a redundant environment by release chaining |
US6564376B1 (en) * | 1999-09-30 | 2003-05-13 | International Business Machines Corporation | Method, system and program products for operationally backing out components of a cluster through emulation |
US6286032B1 (en) * | 1999-10-05 | 2001-09-04 | Motorola, Inc. | Method and apparatus in a communication network for updating and maintaining record data |
WO2001061563A1 (en) * | 2000-02-18 | 2001-08-23 | Avamar Technologies, Inc. | Hash file system and method for use in a commonality factoring system |
EP1154356A1 (en) * | 2000-05-09 | 2001-11-14 | Alcatel | Caching of files during loading from a distributed file system |
US7379940B1 (en) * | 2000-07-20 | 2008-05-27 | Repliweb, Inc. | Focal point compression method and apparatus |
DE10047216A1 (de) * | 2000-09-23 | 2002-04-11 | Philips Corp Intellectual Pty | Ein Verfahren zur Erkennung von Schreibkonflikten in replizierten Datenbanken ohne Speicheroverhead |
US7043636B2 (en) * | 2000-09-26 | 2006-05-09 | Telefonaktiebolaget Lm Ericsson (Publ) | Data integrity mechanisms for static and dynamic data |
US7047420B2 (en) | 2001-01-17 | 2006-05-16 | Microsoft Corporation | Exclusive encryption |
US7043637B2 (en) * | 2001-03-21 | 2006-05-09 | Microsoft Corporation | On-disk file format for a serverless distributed file system |
US7478243B2 (en) * | 2001-03-21 | 2009-01-13 | Microsoft Corporation | On-disk file format for serverless distributed file system with signed manifest of file modifications |
US7062490B2 (en) * | 2001-03-26 | 2006-06-13 | Microsoft Corporation | Serverless distributed file system |
US6981138B2 (en) * | 2001-03-26 | 2005-12-27 | Microsoft Corporation | Encrypted key cache |
US6988124B2 (en) * | 2001-06-06 | 2006-01-17 | Microsoft Corporation | Locating potentially identical objects across multiple computers based on stochastic partitioning of workload |
US7310644B2 (en) * | 2001-06-06 | 2007-12-18 | Microsoft Corporation | Locating potentially identical objects across multiple computers |
US7099869B1 (en) * | 2001-07-11 | 2006-08-29 | Apple Computer, Inc. | Method and apparatus for managing file extensions in a digital processing system |
US6820114B2 (en) * | 2001-09-27 | 2004-11-16 | Sap Aktiengesellschaft | Identifying object suppliers in a network |
GB2380830A (en) * | 2001-10-13 | 2003-04-16 | Hewlett Packard Co | Automatic file sharing in a peer to peer network by use of constraints between file system domains |
US7020665B2 (en) | 2002-03-07 | 2006-03-28 | Microsoft Corporation | File availability in distributed file storage systems |
US7562089B2 (en) * | 2002-06-26 | 2009-07-14 | Seagate Technology Llc | Systems and methods for storing information to allow users to manage files |
EP1387296A1 (en) * | 2002-07-10 | 2004-02-04 | Hewlett-Packard Company | Distributed file system |
US7761427B2 (en) * | 2003-04-11 | 2010-07-20 | Cricket Technologies, Llc | Method, system, and computer program product for processing and converting electronically-stored data for electronic discovery and support of litigation using a processor-based device located at a user-site |
US9678967B2 (en) * | 2003-05-22 | 2017-06-13 | Callahan Cellular L.L.C. | Information source agent systems and methods for distributed data storage and management using content signatures |
US20050015461A1 (en) * | 2003-07-17 | 2005-01-20 | Bruno Richard | Distributed file system |
US7822831B2 (en) * | 2003-07-31 | 2010-10-26 | International Business Machines Corporation | Method, system and program product for preserving and restoring mobile device user settings |
US7107416B2 (en) | 2003-09-08 | 2006-09-12 | International Business Machines Corporation | Method, system, and program for implementing retention policies to archive records |
US7146388B2 (en) | 2003-10-07 | 2006-12-05 | International Business Machines Corporation | Method, system, and program for archiving files |
US7188127B2 (en) | 2003-10-07 | 2007-03-06 | International Business Machines Corporation | Method, system, and program for processing a file request |
US8417673B2 (en) * | 2003-10-07 | 2013-04-09 | International Business Machines Corporation | Method, system, and program for retaining versions of files |
US7328217B2 (en) * | 2003-11-26 | 2008-02-05 | Symantec Operating Corporation | System and method for detecting and storing file identity change information within a file system |
US7398399B2 (en) * | 2003-12-12 | 2008-07-08 | International Business Machines Corporation | Apparatus, methods and computer programs for controlling performance of operations within a data processing system or network |
US7475427B2 (en) * | 2003-12-12 | 2009-01-06 | International Business Machines Corporation | Apparatus, methods and computer programs for identifying or managing vulnerabilities within a data processing network |
US7519726B2 (en) * | 2003-12-12 | 2009-04-14 | International Business Machines Corporation | Methods, apparatus and computer programs for enhanced access to resources within a network |
US20050234990A1 (en) * | 2004-04-18 | 2005-10-20 | Brighouse Christopher Nigel A | System and method for tracking documents |
US20050283623A1 (en) * | 2004-06-17 | 2005-12-22 | Vanderheyden Peter J | Computer-based method and apparatus for certifying a file |
US7730026B2 (en) * | 2004-07-01 | 2010-06-01 | Apple Inc. | Method and system using reusable state information for synchronization and maintenance of data |
US20060064394A1 (en) * | 2004-09-17 | 2006-03-23 | International Business Machines Corporation | Method for handling changing and disappearing online references to research information |
JP2006134214A (ja) * | 2004-11-09 | 2006-05-25 | Hitachi Ltd | ファイルのバージョン管理方法および計算機システム |
US20060106813A1 (en) * | 2004-11-17 | 2006-05-18 | Steven Blumenau | Systems and methods for propagating categorization information with a digital asset |
US20070112784A1 (en) * | 2004-11-17 | 2007-05-17 | Steven Blumenau | Systems and Methods for Simplified Information Archival |
US7809699B2 (en) * | 2004-11-17 | 2010-10-05 | Iron Mountain Incorporated | Systems and methods for automatically categorizing digital assets |
US7778963B2 (en) * | 2005-04-26 | 2010-08-17 | Microsoft Corporation | Constraint-based conflict handling for synchronization |
US7523146B2 (en) * | 2005-06-21 | 2009-04-21 | Apple Inc. | Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment |
US8495015B2 (en) * | 2005-06-21 | 2013-07-23 | Apple Inc. | Peer-to-peer syncing in a decentralized environment |
US8272058B2 (en) | 2005-07-29 | 2012-09-18 | Bit 9, Inc. | Centralized timed analysis in a network security system |
US8984636B2 (en) | 2005-07-29 | 2015-03-17 | Bit9, Inc. | Content extractor and analysis system |
US7895651B2 (en) | 2005-07-29 | 2011-02-22 | Bit 9, Inc. | Content tracking in a network security system |
US20070073985A1 (en) * | 2005-09-29 | 2007-03-29 | John Wilkes | System for and method of retrieval-based data redundancy |
US7552148B2 (en) * | 2006-02-28 | 2009-06-23 | Microsoft Corporation | Shutdown recovery |
US7860826B2 (en) | 2006-08-04 | 2010-12-28 | Apple Inc. | Method and system for using global equivalency sets to identify data during peer-to-peer synchronization |
US20080120319A1 (en) * | 2006-11-21 | 2008-05-22 | International Business Machines Corporation | System and method for identifying computer users having files with common attributes |
JP2008146601A (ja) * | 2006-12-13 | 2008-06-26 | Canon Inc | 情報処理装置及び情報処理方法 |
US7657769B2 (en) | 2007-01-08 | 2010-02-02 | Marcy M Scott | N-way synchronization of data |
US8683458B2 (en) * | 2007-11-30 | 2014-03-25 | Red Hat, Inc. | Automatic full install upgrade of a network appliance |
US8589592B2 (en) * | 2007-12-11 | 2013-11-19 | Red Hat, Inc. | Efficient object distribution |
US20090193210A1 (en) * | 2008-01-29 | 2009-07-30 | Hewett Jeffrey R | System for Automatic Legal Discovery Management and Data Collection |
WO2009132261A1 (en) * | 2008-04-25 | 2009-10-29 | Vmware, Inc. | Updating a file using differences and file format therefor |
US8418164B2 (en) * | 2008-05-29 | 2013-04-09 | Red Hat, Inc. | Image install of a network appliance |
GB2466427A (en) * | 2008-12-12 | 2010-06-23 | Nuclear Decommissioning Authority | Storing of changes to baseline table in a database |
US9792384B2 (en) * | 2009-02-26 | 2017-10-17 | Red Hat, Inc. | Remote retreival of data files |
US7591019B1 (en) | 2009-04-01 | 2009-09-15 | Kaspersky Lab, Zao | Method and system for optimization of anti-virus scan |
US8630980B2 (en) * | 2010-04-06 | 2014-01-14 | Microsoft Corporation | Synchronization framework that restores a node from backup |
US9628438B2 (en) | 2012-04-06 | 2017-04-18 | Exablox | Consistent ring namespaces facilitating data storage and organization in network infrastructures |
US8756194B1 (en) * | 2012-05-04 | 2014-06-17 | Sencha, Inc. | Cloud-based data replication for web applications with replica identifier reassignment feature |
US9552382B2 (en) | 2013-04-23 | 2017-01-24 | Exablox Corporation | Reference counter integrity checking |
US9514137B2 (en) | 2013-06-12 | 2016-12-06 | Exablox Corporation | Hybrid garbage collection |
JP2016526720A (ja) | 2013-06-19 | 2016-09-05 | エグザブロックス・コーポレーション | クラスタベースの記憶システムにおけるデータスクラビング |
US9934242B2 (en) | 2013-07-10 | 2018-04-03 | Exablox Corporation | Replication of data between mirrored data sites |
US9830234B2 (en) * | 2013-08-26 | 2017-11-28 | Vmware, Inc. | Distributed transaction log |
US10248556B2 (en) * | 2013-10-16 | 2019-04-02 | Exablox Corporation | Forward-only paged data storage management where virtual cursor moves in only one direction from header of a session to data field of the session |
US9985829B2 (en) | 2013-12-12 | 2018-05-29 | Exablox Corporation | Management and provisioning of cloud connected devices |
US9774582B2 (en) | 2014-02-03 | 2017-09-26 | Exablox Corporation | Private cloud connected device cluster architecture |
US9830324B2 (en) | 2014-02-04 | 2017-11-28 | Exablox Corporation | Content based organization of file systems |
US9811333B2 (en) | 2015-06-23 | 2017-11-07 | Microsoft Technology Licensing, Llc | Using a version-specific resource catalog for resource management |
US20170060924A1 (en) | 2015-08-26 | 2017-03-02 | Exablox Corporation | B-Tree Based Data Model for File Systems |
US11386067B2 (en) | 2015-12-15 | 2022-07-12 | Red Hat, Inc. | Data integrity checking in a distributed filesystem using object versioning |
US9846553B2 (en) | 2016-05-04 | 2017-12-19 | Exablox Corporation | Organization and management of key-value stores |
US11237963B2 (en) * | 2019-02-01 | 2022-02-01 | Red Hat, Inc. | Shared filesystem metadata caching |
WO2020254889A1 (en) | 2019-06-21 | 2020-12-24 | Datametica Solutions Pvt Ltd | System and method for data reconciliation |
US10903988B1 (en) * | 2019-11-04 | 2021-01-26 | International Business Machines Corporation | Unique instruction identifier that identifies common instructions across different code releases |
US11157268B2 (en) | 2020-01-23 | 2021-10-26 | International Business Machines Corporation | Linking copied code |
CN114637510A (zh) * | 2020-12-16 | 2022-06-17 | 华为云计算技术有限公司 | 代码分析的方法和相关设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3668647A (en) * | 1970-06-12 | 1972-06-06 | Ibm | File access system |
US5333315A (en) * | 1991-06-27 | 1994-07-26 | Digital Equipment Corporation | System of device independent file directories using a tag between the directories and file descriptors that migrate with the files |
US5778068A (en) * | 1995-02-13 | 1998-07-07 | Eta Technologies Corporation | Personal access management system |
US5754844A (en) * | 1995-12-14 | 1998-05-19 | Sun Microsystems, Inc. | Method and system for accessing chunks of data using matching of an access tab and hashing code to generate a suggested storage location |
US5778393A (en) * | 1996-05-20 | 1998-07-07 | International Business Machines Corporation | Adaptive multitasking for dataset storage |
-
1998
- 1998-04-02 US US09/054,330 patent/US6098079A/en not_active Expired - Lifetime
- 1998-11-02 EP EP98120749A patent/EP0947932A2/en not_active Withdrawn
-
1999
- 1999-01-21 JP JP11013070A patent/JPH11306058A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000259474A (ja) * | 1999-03-05 | 2000-09-22 | Mitsubishi Electric Inf Technol Center America Inc | 異なるデータファイルを調停する方法 |
US8943025B2 (en) | 2003-06-27 | 2015-01-27 | Hitachi, Ltd. | Data replication among storage systems |
US9058305B2 (en) | 2003-06-27 | 2015-06-16 | Hitachi, Ltd. | Remote copy method and remote copy system |
JP2005032249A (ja) * | 2003-07-10 | 2005-02-03 | Microsoft Corp | フェンシングおよびフェンシング解除による、複製情報の権限の細分制御 |
JP2011253574A (ja) * | 2003-07-10 | 2011-12-15 | Microsoft Corp | フェンシングおよびフェンシング解除による、複製情報の権限の細分制御 |
JP2009181311A (ja) * | 2008-01-30 | 2009-08-13 | Hitachi Computer Peripherals Co Ltd | データ比較装置 |
Also Published As
Publication number | Publication date |
---|---|
US6098079A (en) | 2000-08-01 |
EP0947932A2 (en) | 1999-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH11306058A (ja) | 異なるデ―タファイル蓄積サイトを調停する方法及びデ―タ蓄積サイト及びそれと関連した一組のジャ―ナルファイルを含むシステム | |
JP3450786B2 (ja) | 異なるデータファイルを調停する方法 | |
US5819272A (en) | Record tracking in database replication | |
US6098078A (en) | Maintaining consistency of database replicas | |
US6983293B2 (en) | Mid-tier-based conflict resolution method and system usable for message synchronization and replication | |
Hitz et al. | File System Design for an NFS File Server Appliance. | |
US5713008A (en) | Determination of working sets by logging and simulating filesystem operations | |
US8370311B2 (en) | Using versioning to back up multiple versions of a stored object | |
US6023710A (en) | System and method for long-term administration of archival storage | |
EP1053523B1 (en) | System and method for website development | |
KR100481771B1 (ko) | 필드레벨복사방법 | |
JP5081631B2 (ja) | データの削除を管理するための方法および装置 | |
US5600834A (en) | Method and apparatus for reconciling different versions of a file | |
US8082262B2 (en) | Methods, systems, and devices supporting data access in a data processing system | |
US6792454B2 (en) | System and method for website development | |
US20030200212A1 (en) | Method, system, and program product for transaction management in a distributed content management application | |
US9367579B1 (en) | System and method for maintaining a file change log within a distributed file system | |
EP0278472A2 (en) | Directory management in distributed data processing system network | |
US20040024786A1 (en) | Uniform name space referrals with location independence | |
US8214377B2 (en) | Method, system, and program for managing groups of objects when there are different group types | |
JP2004501451A (ja) | ファイル差分を使用するファイル送信システムおよび方法 | |
JP2009515264A (ja) | 文書およびソースコードの制御のための方法およびシステム | |
JP2008527571A5 (ja) | ||
KR20080071131A (ko) | 자원 복제를 위한 컴퓨터 실행가능 명령어를 갖는 컴퓨터판독가능 매체, 방법 및 장치 | |
US20080005164A1 (en) | System and method for website development involving journaling and parent maps replacement |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051221 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081028 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090128 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090202 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090224 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090331 |