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
Application number
JP11013070A
Other languages
English (en)
Inventor
H Howard John
ジョン・エイチ・ハワード
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.)
Mitsubishi Electric Information Technology Corp
Mitsubishi Electric Research Laboratories Inc
Original Assignee
Mitsubishi Electric Information Technology Corp
Mitsubishi Electric Research Laboratories Inc
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 Mitsubishi Electric Information Technology Corp, Mitsubishi Electric Research Laboratories Inc filed Critical Mitsubishi Electric Information Technology Corp
Publication of JPH11306058A publication Critical patent/JPH11306058A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • 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
    • 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/99956File 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

(57)【要約】 【課題】 分散化されたファイルシステムにおいて異な
ったファイル保存サイトを調整させる改良された方法を
提供する。 【解決手段】 分散型ファイルシステムでのファイル調
停プロセスは、一組のジャーナルファイルまたはログフ
ァイルを使用し異なるサイトまたはディレクトリの組の
ファイル変更履歴をトラックする。調停の間に各ジャー
ナルの各ファイルと関連するバージョンエントリーのシ
ーケンスは更新されて比較され、(1)調停に関係する
ファイルの何れかに競合が存在するか、(2)存在しな
い場合、どのバージョンが最新のバージョンであるかを
判断する。バージョンエントリーはハッシュコードまた
はダイジェストを含み、ファイルバージョンのシーケン
スを識別する。マスク及びサイトインジケータフィール
ドはどのジャーナルファイルがバージョンエントリーの
複写を有しているかをトラックするのに使用される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般にコンピュー
タのための分散型ファイルシステムのフィールドに関連
するもので、より詳しくは、分散形計算機システム内部
の異なる記憶場所で存在する可能性があるファイルの異
なったバージョンの調停に関するものである。
【0002】
【従来の技術】データファイルの記憶および検索のため
に、分散型ファイルシステムを使用することがコンピュ
ータシステムにとってますます共通化されている。この
傾向は、伝統的な集中化されたファイルシステムをディ
スクに密接に連結された単一コンピュータ上で実行する
アプリケーションプログラムのみにアクセス可能な磁気
ディスクに記憶されているデータファイルに置き換える
ものである。コンピュータの機能性が増加し、それらの
コストが低下することに伴い、全体的なコンピュータシ
ステムの性能は、データファイルのコピーが複数の記憶
場所に存在できるようにすることの恩恵を受けてきた。
【0003】これらの分散型ファイルシステムの第一世
代の例は、ローカルファイルサーバに接続されたデスク
トップのワークステーションまたはパーソナルコンピュ
ータが関与する。デスクトップコンピュータ上のファイ
ルの記憶は、デスクトップコンピュータ上のプログラム
実行の速い実施を可能にする一方、ファイルサーバ上の
これらのファイルの存在は、データファイルシェアリン
グ、すなわち企業で使用される多くの分散アプリケーシ
ョンプログラムで要求される機能が提供される。
【0004】より最近のシステムは、ポータブルコンピ
ュータを有しているモバイルユーザや、ワークステーシ
ョンでのユーザおよび組織の中に存在する中央のデータ
リポジトリー(中央データ格納庫)との間でのデータの
同種の調整を可能にする。分散型ファイルシステムにお
いては、一般的に、ある時間でファイルの少なくとも2
つの異なるバージョンが異なる記憶場所にあり、1つの
バージョンのみがシステムの全てのユーザによって使用
されるべき最新の、すなわち正しいバージョンであり得
る。この可能性のため、ファイルシステムの一貫性を保
証するためのメカニズムが分散型ファイルシステムに使
用される。
【0005】ファイルシステムは、ファイルの正しいバ
ージョンがアプリケーションプログラムに提供されるな
らば、システムにおける旧式すなわち正しくないバージ
ョンが存在することがあっても一貫性が保たれる。ファ
イルシステムの一貫性(coherence)を保持することへの
1つのアプローチは、直接的なユーザ制御のファイル転
送である。
【0006】このアプローチの1つの例は、電子メール
である。他の例は、カーミット(Kermit)として知られ
ている公衆ファイル転送プロトコルとワシントンのトラ
ベリングソフトウェア社(Traveling Software, Inc.)
のラップリンク(Laplink)として知られている製品を
含む。Laplinkプログラムは、主にポータブルコンピュ
ータとデスクトップコンピュータまたは他のポータブル
コンピュータのいずれかとの間のファイルを転送するた
めに使われる。これらのファイル転送手順の全ては、フ
ァイル転送プロセス上のコンピュータの重要な制御をユ
ーザに与える。
【0007】しかし、一般的に、それらは特にファイル
システムの一貫性の問題向けに特注されたものでない。
ユーザには、ファイルのバージョン間の競合を予期し、
競合が生じる場合にそのような競合を検出し、現在用い
られていないバージョンをファイルから除去し、およ
び、ファイル更新が必要とされるシステムのポイントに
確実に適宜配布されるようにする実質的な責務が負われ
ている。
【0008】一貫性技術のもう一つの種類は、データフ
ァイルのシャドウイングや即時の更新を用いる。そのよ
うな技術は、ネットワークファイルシステム(NFS)
のようなシステムに使われる。これらの技術を用いてい
るシステムにおいては、ファイル更新は直接に全ての記
憶場所へ同報され、いくつかのケースにおいて、更新さ
れているファイルの使用は全てのコピーが更新されるま
で妨げられる場合もある。この保守的なアプローチは、
一貫性を保持することへの競合の可能性を除去し、主に
ユーザに対して平明(透過性のあるもの)である。しか
しながら、それは同様にシステム性能を下げ、ユーザ制
御の相対的な欠如に関連した他の問題を引き起こす傾向
がある。さらに、その技術は、より幅広いコンピュータ
システムに断続的にしか接続しないモバイルユーザには
それほど適していない。
【0009】一貫性技術の3番目の一般的な種類は、コ
ンピュータシステム内部のデータファイルのための「特
別な記憶場所」の存在に依存する。例えば、単一のファ
イルサーバが、ファイルの正しいバージョンが得られる
ことができるシステムにおける唯一のポイントであるか
もしれない。したがって、ファイルサーバは全てのファ
イル調停(reconciliation)に関与しなければならな
い。
【0010】よく知られた例は、ワシントンのマイクロ
ソフト社によって配布されたウインドウズ95オペレー
ティングシステムに含められる「ブリーフケース」とし
て知られているプログラムに具体的に表現される。ブリ
ーフケースは、デスクトップのパーソナルコンピュータ
とポータブルコンピュータの間のデータファイルの一貫
性を保持するために使用することができる。
【0011】デスクトップのマシンは、主たるデータフ
ァイル記憶サイトとして取り扱われ、ポータブルコンピ
ュータはデスクトップコンピュータから得られたファイ
ルのコピーを一時的に保つ「ブリーフケース」として扱
われて、ユーザがオフィス環境に戻った時点で、コピー
すなわち更新されたバージョンがデスクトップコンピュ
ータに返送される。
【0012】調整するために特別な記憶場所を要求する
システムは、その特別な記憶場所が壊れているかまたは
アクセス不可能である場合にファイルを更新する。CO
DAとBayouのようなバージョンベクトルシステムは、
各サイトで昇順のバージョン番号を生成し、新規のバー
ジョン番号を作成または更新する各オブジェクトと関連
させることによって、特別な記憶場所を使用することを
避けている。
【0013】ジャーナルエントリーは、更新を実行した
サイトのIDと更新のためのそのサイトのバージョン番
号を含む。各最新のオブジェクトは、個々のサイトのバ
ージョン番号のサイトによってインデックス付けされる
ベクトルと関連させられる。
【0014】ベクトル比較は、3つの解のうちの1つに
結びつくことができる。すなわち、1つのベクトルの全
てのコンポーネントは他のベクトルの対応するコンポー
ネント以下、その逆、あるいはそれよりも小さいものも
大きいものもある。最後のケースが、矛盾している更新
を検出するために使用される。
【0015】また、データファイルの一貫性問題への他
のアプローチは、1997年2月4日に発行された米国
特許第5,600,834号(発明者:ハワード)に記載
されており、ケンブリッジ・マサチューセッツの三菱電
機情報技術センターアメリカ社に譲渡された。このファ
イル調停技術には、自動メカニズムおよびユーザ制御の
組合せを使用するものと記載されている。
【0016】調停技術は、システム全体におけるファイ
ルの作成、変更及び削除の履歴が記録されている一組の
ジャーナルファイルを使用しており、各ジャーナルファ
イルは、特定のサイトまたは記憶場所に関係する履歴の
部分を保持する。この明細暑中で使用されているよう
に、用語「サイト」は、ハードディスクかフロッピーデ
ィスクのような特定の記憶媒体の上の作業ディレクトリ
とそのサブディレクトリを意味する。
【0017】米国特許5,600,834号に記述された
調停プロセスは、明らかにユーザによって遂行されて制
御され、ユーザによって指定されたサイトに存在するフ
ァイルと現行のディレクトリのバージョンを調停するよ
う動作する。そのプロセスは、各ファイルまたはディレ
クトリの単一の最新のバージョンがあるかどうかを判定
するために、ジャーナルファイルの中のサイトディレク
トリとバージョンエントリーを使用する。もし、それが
あるならば、そのバージョンを、調停に関係する他のサ
イトへコピーする。また、プロセスは、ファイルの異な
るバージョンが共通の以前のバージョンから派生したと
思えるシステムの中に存在するとき、これらの存在が示
された競合に対しチェックする。
【0018】一般的に、このプロセスは、関連するサイ
トでの各々のファイルの生成/変更/削除履歴を復元する
ために、各々のジャーナルにおけるバージョンエントリ
ーのシーケンスを「結合する(merging)」ことによっ
て機能する。
【0019】日時の値は、この結合プロセスにおいて異
なったジャーナルからのイベントを順序立てて配置する
ために、ジャーナルにおける「タイムスタンプ」として
言及され使用される。
【0020】また、このプロセスは、与えられたサイト
が調停に関連した最新の時間を識別するために使用され
る「既知のサイト」エントリーにおけるタイムスタンプ
も含める。この情報は、間違いがなければジャーナルフ
ァイルの際限のない成長を妨げるためにジャーナルファ
イルからバージョンエントリーを除去するのに時折使用
される。
【0021】
【発明が解決しようとする課題】しかしながら、米国特
許5,600,834号の調停プロセスで記述されたよ
うなタイムスタンプの使用は、異なるコンピュータの間
の日時の不完全なトラッキングのため、時折望まれてい
ない結果を引き起こす。
【0022】例えば、いくつかの事情の下では、1つの
サイトで存在しているファイルの以前のバージョンは、
タイムスタンプが旧式のバージョンをより最近のもので
あるかのように不正に見せかけさせるので、他のサイト
で存在している正しいバージョンの上書くされるかこと
がある。
【0023】これは、例えば、1つのコンピュータが夏
時間時刻の間調整を行って、他のコンピュータがそのよ
うな調整をまだ行っていなかったときに、起こることが
ある。同様の理由で、タイムスタンプに頼ることは、サ
イト毎の調停時刻を追跡するプロセスの中で同様に問題
を引き起こす可能性がある。
【0024】この発明は、上述した点に鑑みてなされた
もので、分散型ファイルシステムにおけるファイル調停
プロセスにおいて、各々のコンピュータシステムにおけ
る異なるサイトのそれぞれまたはディレクトリのセット
でファイル変更の履歴を追跡することができる異なるデ
ータファイル蓄積サイトを調停する方法及びデータ蓄積
サイト及びそれと関連した一組のジャーナルファイルを
含むシステムを提供する。
【0025】
【課題を解決するための手段】この発明により、分散フ
ァイルシステムにおける異なるファイル記憶サイトを調
停する改善された方法が開示される。一組のジャーナル
またはログファイルは、ファイル変更の履歴を異なるサ
イトの各々で追跡するために使用される。ジャーナルフ
ァイルは、対応するサイトの各ファイルと関連させられ
たバージョンエントリーのシーケンスを含む。
【0026】各バージョンエントリーは、ファイルの対
応するバージョンのコンテンツを高い確率でユニークに
識別するするためにハッシュコードまたはダイジェスト
を含む。調停プロセスの間に、各ジャーナルの中のバー
ジョンエントリーから得られたハッシュコードのシーケ
ンスは、(1)調停の中で含まれたいずれかのファイル
に競合が存在するかどうか、(2)存在しないのなら
ば、ファイルのバージョンは、最新のバージョンであ
る、ということを判定するために相互に比較される。次
に、最新のバージョンは必要に応じて他のサイトにコピ
ーされ、ジャーナルはコピーしているファイルを反映す
るために更新される。
【0027】ハッシュコードまたはダイジェストは、コ
ードが発生するファイルのコンテンツをユニークに識別
する非常に高い確率で既知のメッセージ・ダイジェスト
・プログラムに従うファイルのコンテンツから計算され
る。ファイルの異なるバージョンが異なるコンテンツを
持つので、それらは同様に異なるコードに結びつく。
【0028】したがって、ハッシュコードは、開示され
た調停プロセスがタイムスタンプの使用から起こってい
る望まれていない上述したような結果をもたらさないよ
うに、ファイルの異なるバージョンを独立して識別す
る。
【0029】また、この発明のプロセスにおいて、サイ
トに依存せずに独自の昇順バージョン番号を生成するこ
とは、バージョンベクトルを各々の目的のために保持す
る必要がないので、バージョンベクトルアプローチとも
異なる。
【0030】また、この発明の改善された方法は、サイ
トの掛かり合いをファイル調停の中で追跡する。各々の
ジャーナルファイルにおける各々のバージョンエントリ
ーは、他のサイトに関連するジャーナルファイルのいず
れがエントリーのコピーを持つかを示すサイトインジケ
ーターフィールドを含む。
【0031】バージョンエントリーが調停の間に作成さ
れると、サイトインジケータフィールドは、どのサイト
が調停に関連しているかを示す値に設定され、その結
果、バージョンエントリーのコピーを持つ。
【0032】全てのサイトが、サイトインジケータフィ
ールドによって示されるように、バージョンエントリー
のコピーを持つとき、間違いなく、いかなる以前のバー
ジョンエントリーも削除されるようにすることが安全で
ある。
【0033】このトラッキングプロセスがバージョンエ
ントリーを使用するので、さらにハッシュコードの独自
性を活用してタイムスタンプの使用と関連した問題を回
避することができる。
【0034】
【発明の実施の形態】図1と図2は、SITE1とSITE2と
してそれぞれ参照された2つの別々のサイトに存在して
いるファイルのリスト出力を示す。これらのファイル
は、ファイル名によってリストされる。SITE1は、3つ
のユーザファイルfile1.xxx、file2.xxx及びfile3.x
xx、2つの追加のファイルfile5.xxxとfile6.xxxを含
んでいるサブディレクトリsub1.dir及びジャーナルフ
ァイルsite1.jnlを含む。「xxx」値は、ユーザデータ
ファイルとしてファイルを識別するファイル形式拡張子
を表す。
【0035】一般に、SITE2は、SITE1に含まれなかっ
たファイルfile4.xxxを含むという点と、file3.xxxを
持たないという点を除いては、SITE1と同じファイルを
含む。SITE2のジャーナルファイルは、site2.jnlと呼
ばれる。
【0036】図1及び図2の中で示されるユーザファイ
ル及びディレクトリファイルは、サイトSITE1及びSITE
2が属するコンピュータシステムのユーザによって作
成、リード、変更及び削除される。
【0037】さらに、一般に、サイトSITE1及びSITE2
のファイル及びディレクトリは、互いを反映させるよう
に意図されている。例えば、サイトSITE1は、ユーザの
ワークステーションのハードディスク上の領域であって
もよく、サイトSITE2は、ワークステーションのファイ
ルの共有またはバックアップコピーを保有するのに使用
されるファイルサーバ内の大容量ディスクの領域であっ
てもよい。したがって、定期的に、2つのサイトでのユ
ーザファイルとディレクトリは、両方のサイトがファイ
ル及びディレクトリの最新のコピーを持つように、互い
に調整される。
【0038】図3ないし図6は、ジャーナルファイルの
構造を示す。図3に示すように、ジャーナルファイル
は、ヘッダ、一つ以上のサイトエントリー及び一つ以上
のバージョンエントリーから成る。サイトがサブディレ
クトリを持つ場合のように、複数のヘッダがあってもよ
いが、サイトエントリーは、最初のヘッダラインの後に
のみある。サイトエントリーは、調停に関連している各
サイトに存在する。
【0039】バージョンエントリーは、サイトに存在し
た各ファイルの各バージョンのために、ジャーナルファ
イルに加えられる。バージョンエントリーは、古くなっ
たときに排除されるので、いかなる与えられた時間でも
ジャーナルファイルにおけるバージョンエントリーも各
ファイルに関連のあるバージョンの履歴だけを表す。
【0040】ヘッダ構造は、図4に示される。履歴がジ
ャーナルファイルに現れるサイトは、<sitename>とラベ
ルされたフィールドで識別される。また、ヘッダは、サ
イトが属するコンピュータシステムのタイプを識別する
ために使用される<systype>とラベルされたフィールド
と、ジャーナルファイルを作成した調停プログラムのバ
ージョンを識別するための<programname>とラベルされ
たフィールドをも含む。
【0041】図5に示すように、バージョンエントリー
は、いくつかのフィールドを含む。これらは次のように
記述される。
【0042】
【表1】
【0043】図6に示すように、サイトエントリーは、
いくつかのフィールドを含む。これらは次のように記述
される。
【0044】
【表2】
【0045】上記の説明に基づいて、以下は図1及び図
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
【0046】SITE2のジャーナル $ <date> <time> SITE2?1 $ <date> <time> SITE1?2 + f1time f1time file1.xxx dt=aaaaa + f2date f2time file2.xxx dt=bbbbb + f4date f4time file4.xxx dt=ddddd + s1date s1time sub1.dir/ SITE2/subl.dirのジャーナル +f5date f5time file5.xxx dt=eeeee + f6date f6time file6.xxx dt=fffff
【0047】図7は、調停プロセスを図示する。プロセ
スは、調停に関係する相互に関連付けられた既存のジャ
ーナルファイル10及びディレクトリ11を読み込む。
ステップ12で、各サイトに関連するジャーナルにおけ
るバージョンエントリーは、個々のサイトのファイル及
びディレクトリの最新のバージョンを反映するように更
新される。
【0048】まず、調停に関係するサイトの実際のコン
テンツが、サイトディレクトリ及びサブディレクトリを
読み込むことによって判断される。新たな「+」バージ
ョンエントリーが、(1)対応するバージョンエントリ
ーを有さない(従って新たに作成されたと推定される)
か、または(2)ジャーナルファイルのファイルまたは
ディレクトリに関する最後のバージョンエントリーに含
まれる日時とは異なった日時を有する(従って変更され
たと推測される)、ファイル及びディレクトリについて
作成される。「+」バージョンエントリーが作成される
方法は、図8を参照して以下に詳細に説明する。
【0049】ファイルが対応するバージョンエントリー
を有し、タイムスタンプが適合すれば、サイトに存在す
るファイルのバージョンはそのファイルに関する最後の
バージョンエントリーと一致する。この場合、新たなバ
ージョンエントリーは作成されない。このようにして、
不必要なダイジェストの再計算が避けられる。ダイジェ
ストの計算はコンピュータ集約的であるため、新たなま
たは変更されたファイルについてのみ新たなダイジェス
トを作成するというこの特徴により、調停プロセスの性
能が高まる。
【0050】ファイルの最新「バージョン」が実際には
その削除であることがあり得る。ジャーナル全体を通し
てパスが行われ、既存のバージョンエントリーで命名さ
れた何れかのファイルまたはディレクトリがファイルシ
ステムから削除されているかどうかを判断する。かかる
ファイルの何れについても、削除されたファイルまたは
ディレクトリの名前を含む新たな「−」バージョンエン
トリーが作成され、最後に行われたアクションが対応す
るサイトでのファイルの削除であったことを示す。
【0051】ジャーナルがステップ12で読み込まれる
と、最新の調整に関係しているサイト及びジャーナルに
記述された他のサイトの両方を含む、既知のサイトの単
一のマスターリストに、これらのジャーナルのサイトエ
ントリーがマージされる。またマスターリストは、新た
なジャーナルで使用されるマスクビットと、各サイトに
関する最後の既知の調整の日時を含む。
【0052】次に、以下のようにステップ13において
サイトエントリーが更新される。まず、最新の調停に関
係する各サイトに関するエントリーが、現在時を含むよ
うに更新される。次に、古いサイト(1ヶ月など長期に
亘ってアクセスされていない)が排除される。その結果
得られる最新の調整に関係しないサイトを含むサイトの
リストは、関係するサイトに関する新たなジャーナルの
全てに最終的に含まれることになる。
【0053】ここで、マスクビットのサイトへの割り当
ては、特定のジャーナル内でのみ意味があることに注意
すべきである。上記のようにジャーナルがマージされる
と、サイトならびにバージョンエントリーの両方におけ
るマスクビットは、バージョンとサイトとの間の関連を
維持するのに適するように再度マッピングされる。
【0054】図示した実施の形態においては、マスクビ
ットは次のようにサイトに割り当てられる。ジャーナル
に記述された第一のサイトにはマスク値1が与えられ、
第二のサイトにはマスク2が与えられ、第三にはマスク
4が与えられ、第四にはマスク8が与えられ、以下同様
に続く。この割り当ては任意であり、これに代わる実施
の形態において他の方法で行われてもよい。サイトが放
棄された場合には、その対応するマスクビットは他のサ
イトが自由に使用できるようになる。後のサイトはでき
たギャップを自動的に埋めるように上に移動する。
【0055】調停プロセスは次にステップ14に進む。
まず、ジャーナルの各ファイル名に関するバージョンエ
ントリーのシーケンスが比較される。この工程は、「マ
キシマム・コモン・サブシーケンス(Maximum common s
ubsequence)」またはMCSアルゴリズムとして知られ
るアルゴリズムを採用している。MCSアルゴリズム
は、各ファイル名に「共通の」バージョンエントリー、
すなわち調停しているサイトに関する全てのジャーナル
ファイルに含まれるバージョンエントリーのサブシーケ
ンスが存在すれば、かかるサブシーケンスを発見する。
この共通のサブシーケンスは、調停プロセスによる更な
るアクションの基礎を形成する。
【0056】次のステップは、最後の共通のエントリー
の後に何れかのジャーナルファイルに現れる最後のバー
ジョンエントリーが存在すれば、かかるエントリーを識
別する。何れのジャーナルファイルも最後の共通のバー
ジョンエントリーの後にデータファイルに関するバージ
ョンエントリーを有していない場合には、ファイルの最
新のバージョンは各サイトに既に存在している。この場
合には、そのファイルに関しては更に調整アクションを
取る必要はない。
【0057】これ以外の場合には、次のステップは競合
があるかどうかをチェックすることである。(1)調整
されるサイトのジャーナルにおけるファイル名について
共通のサブシーケンスが存在しないか、または(2)最
後の共通のバージョンエントリーの後に2つ以上のジャ
ーナルに異なったバージョンエントリーが存在する場合
に、競合が存在する。
【0058】何れの場合においても、調停プロセスがど
のバージョンが最新であるかをハッシュコードから判断
することは不可能である。この場合に、競合するバージ
ョンの1つを独特で識別的な名前を使って名前を変更
し、競合を抹消する。どのバージョンの名前を変更する
かの選択は任意であり、選択するための1つの単純な方
法は早いタイムスタンプを有するバージョンを選ぶこと
である。この名前変更の後に、競合するバージョンの両
方が必要に応じて他のサイトに写され、ユーザは2つの
ファイルを比較して適切な修復アクションを取るように
通知される。
【0059】所与のファイル名について競合が発見され
なければ、最後の共通のバージョンエントリーに続くバ
ージョンエントリーを有するサイトに存在するファイル
の最新バージョンは、他のサイトにコピーされる。最新
バージョンは1つのサイトにのみ存在することがしばし
ばある。しかし、コピーが行われる前に複数のサイトに
最新バージョンが存在することがあり得る。
【0060】このような場合には、そのバージョンはそ
れが存在するサイトの何れかからコピーされて、最新バ
ージョンが存在しないサイトにのみコピーされる。コピ
ーが行われると、ファイルの最新バージョンを受け取る
サイトのジャーナルに新たな「+」バージョンエントリ
ーが添付される。
【0061】ファイルが2つの異なったタイプのシステ
ム間で、例えばUNIXシステムからWindowsシステムにコ
ピーされる場合がある。これらのシステムは異なった文
字を使って、テキストファイルにおけるテキストのライ
ンの末端を示す。このような場合には、エンド・オブ・
ライン文字は、コピー先のシステムとの適切な互換性を
確保するように、必要に応じてファイルコピー工程中に
変更される。以下に説明するように、テキストファイル
へのこれらの小さな変更は、独自にファイルを識別する
ハッシュコードの能力に影響せず、従ってハッシュコー
ドを変更せずにコピーできる。
【0062】MCSにおける最新のバージョンエントリ
ーの後の最後のバージョンエントリーが、ファイルが削
除されたことを示す「−」バージョンエントリーである
場合には、ファイルがまだ存在するサイトからそのファ
イルが削除され、それに応じて「−」バージョンエント
リーがジャーナルに添付される。
【0063】ステップ16では、ジャーナルファイルが
無限に増大するのを防ぐために、ジャーナルは再度検査
されて旧式のバージョンエントリーを排除する。(1)
全てのジャーナルに共通の何れかのバージョンエントリ
ーより先であるか、または(2)例えば1ヶ月などの妥
当な古さよりも古い場合に、バージョンエントリーは旧
式になる。
【0064】この後者のアクションは、通常はファイル
の最後のエントリーであって、従って、これらのファイ
ルに関する他のバージョンエントリーよりも先ではない
古い削除、すなわち「−」エントリーを扱うために行わ
れる。旧式のバージョンエントリーが排除された後に、
更新されたジャーナルが、それに続く調整に使われる更
新されたジャーナルファイル18として書き戻される。
【0065】前記においては、MCSにおける最後のバ
ージョンエントリーが全てのサイトがファイルの所与の
バージョンを見た最新の時点を表すため、特に重要であ
ることに注意すべきである。更に、ジャーナルにおける
最新のバージョンエントリーもまた、どのバージョンが
現在サイトに保存されているかを表すために、特に重要
である。
【0066】従って、これらのエントリーの重みを反映
するMCSアルゴリズムのバージョンが使用され、最新
及び現在存在するバージョンとの適合を優先させる。こ
の重み付けは、全てのサイトを最新のものにしようとす
る前述の調停プロセスにとっては意義のあるものであ
る。しかし、バージョンエントリーの他の重み付けも可
能であり、調停プロセスの他の実施の形態においては好
適な場合もある。
【0067】図5に示した「+」バージョンエントリー
の作成を図8を参照してここで説明する。バージョンエ
ントリーが作成される時点では、日付、時間、名前及び
種類のフィールドに含められる値は既知であり、従っ
て、これらは個々のフィールドに単に挿入されるだけで
ある。
【0068】サイトインジケータは、ステップ20に示
すように作成される。バージョンエントリーが最初に作
成されると、そのマスクは、そのバージョンが作成され
たサイトを除く全てのサイトについて設定され、その1
つのサイト以外の全てのサイトでは知られていないこと
を示す。他のサイトとのこのバージョンの調停が成功す
ると、バージョンの対応するマスクビットをリセットす
ることになり、そのバージョンが追加サイトにおいて知
られていることを示す。
【0069】マスクは調停毎に保存される。そのマスク
ビットの全てがリセットされると、バージョンは知られ
てあらゆるところに伝えられる。バージョンがあらゆる
ところで知られると、同じファイルに関する全ての以前
のバージョンエントリーは旧式になり、安全なように排
除することができる。
【0070】ハッシュコードまたはダイジェストはステ
ップ22で作成される。メッセージダイジェストバージ
ョン5(MD5)として知られる手順が、ファイルの内
容を入力として使用して実行される。この入力に基づい
て、MD5は、同じファイルの前後のバージョンを含
む、全てのあり得るファイルの中でファイルを独自に識
別する非常に高い確率を有する、16バイト(128ビ
ット)のダイジェストを計算する。
【0071】ファイルを独自に識別する能力は、一部に
は、約1040またはほぼ100万から100万の累乗
(one million to the one-millionth power)である多
数の可能なコードによるものである。ハッシュコードを
作成する方法は他にもある。許容できる程度に低い率の
適合ミスを生ずるアルゴリズムを使用することが望まし
い。
【0072】テキストファイルに関しては、エンド・オ
ブ・ライン文字はダイジェストの計算において無視され
る。この特徴により、上記のようにファイルが異なった
種類のシステム間でコピーされる時に、これらの文字を
透過性のあるように変更することが可能になる。この特
徴は最適化であり、ダイジェストの計算にこれらの文字
を含めることは代替的な実施の形態においても役立つで
あろう。
【0073】ここで開示している調停プロセスとその
結果を説明するために以下に例を示す。例1は通常で競
合がない場合である。例2は競合を示す。例3及び例4
はサイトエントリーの作成と旧式のバージョンエントリ
ーの排除を例示している。図9〜図11は、ぞれぞれfi
le1、file2及びfile3の以下のシナリオを作り出す変更
とコピーのシーケンスを示す。垂直の矢印は変更を示
し、水平の矢印はコピーを示す。関係のない詳細を省く
ためにファイルの拡張子は削除し、ファイルの異なった
バージョンから計算されるハッシュコードを5ビットの
英数字を使って表している。実際には、ハッシュコード
は上述のようにより長いストリングである。
【0074】例1−競合がない場合 1.既存のジャーナルファイル(ある以前の調停か
ら): SITE1 SITE2 + file1 jj39z + file1 jj39z + file2 r9t4w + file2 r9t4w + file3 pq9zr + file3 pq9zr
【0075】2.以前の調停以来のサイト1でのfile2
の変更及びサイト2でのfile3の削除を示す最新のサイ
トディレクトリ: SITE1 SITE2 file1 jj39z file1 jj39z file2 kpn33 file2 r9t4w file3 pq9zr
【0076】3.サイトの最新のコンテンツを反映した
ジャーナルの最初の更新の結果。 サイト1でのfile2及びサイト2でのfile3に関する新た
なバージョンエントリーが付加されている:
【0077】4.マージングと競合チェックの結果。フ
ァイルの最新バージョン間の適合は、破線で示されてい
る。file2の新たなバージョン及びfile3の削除は、対応
するバージョンエントリーがこれらのファイルの最新の
共通のエントリーの後に現れているため、削除した。
【0078】5.file2をコピーし、file3を削除し、そ
れに従ってジャーナルを更新した結果: SITE1 SITE2 + file1 jj39z + file1 jj39z + file2 r9t4w + file2 r9t4w + file2 kpn33 + file2 kpn33 + file3 pq9zr + file3 pq9zr - file3 - file3
【0079】6.対応する更新されたサイトの内容: SITE1 SITE2 file1 jj39z file1 jj39z file2 kpn33 file2 kpn33
【0080】7.他のサイトは存在しないものと仮定し
て、ジャーナルから古いバージョンを排除した結果: SITE1 SITE2 + file1 jj39z + file1 jj39z + file2 kpn33 + file2 kpn33 - file3 - file3
【0081】例2−競合のある調整 上記6及び7のサイトの内容及びジャーナルに続いて、
両サイトのfile1のバージョンが不一致に更新されてい
るものとする。8.file1への競合のある更新の後の新
たなサイトの内容: SITE1 SITE2 file1 d9qlj file1 92w3a file2 kpn33 file2 kpn33
【0082】9.ジャーナルを新たなサイトの内容を反
映するように更新した結果で、マージングと競合検出が
続く: SITE1 SITE2 + file1 jj39z ---- + file1 jj39z + file1 d9qlj + file1 92w3a + file2 kpn33 ---- + file2 kpn33 - file3 ---- - file3 両サイトで最後の共通のバージョンには適合しないバー
ジョンが続くfile1に関して競合が検出される。
【0083】10.競合があるバージョンの1つの名前
を変更した結果としてのサイトの内容: SITE1 SITE2 file1 d9qlj file1#1 92w3a file2 kpn33 file2 kpn33
【0084】11.対応する更新されたジャーナル: SITE1 SITE2 + file1 jj39z ---- + file1 jj39z + file1 d9qlj + file1#1 92w3a + file2 kpn33 ---- + file2 kpn33 - file3 ----- - file3 「file1#1」は、調整プログラムによって割り当てられ
た新たな独自のファイル名である。ここで、各サイトに
は新たなファイルがある。
【0085】12.新たなバージョンをコピーして両サ
イトを一致させた結果: SITE1 SITE2 file1 d9qlj file1 d9qlj file1#1 92w3a file1#1 92w3a file2 kpn33 file2 kpn33
【0086】13.結果として得られるジャーナル: SITE1 SITE2 + file1 jj39z + file1 jj39z + file1 d9qlj + file1 d9qlj + file1#1 92w3a +file1#1 92w3a +file2 kpn33 + file2 kpn33 - file3 - file3
【0087】14.他のサイトは存在しないと仮定する
と、旧式のバージョンを排除することができ、その結
果: SITE1 SITE2 + file1 d9qlj + file1 d9qlj + file1#1 92w3a + file1#1 92w3a + file2 kpn33 + file2 kpn33 - file3 - file3
【0088】例3−サイトエントリーの作成 1.サイトSITE1とSITE2との間の上記の調整を開始点と
仮定すると、各ジャーナルファイルのサイトエントリー
は以下のとおり: site1.jnl: $ date1 time1 SITE1 ?01 $ date1 time1 SITE2 ?02 site2.jnl: $ date1 time1 SITE1 ?01 $ date1 time1 SITE2 ?02
【0089】2.続いて、SITE1と新たなサイトSITE3と
の間で調整が行われる。新たなサイトエントリーは以下
のとおり: 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
【0090】例4−サイトインジケータを管理して古い
バージョンを排除する 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)が全てのサイトではまだ知
られていないため、排除することができない。
【0091】2.ここで、SITE2とSITE3(SITE1ではな
い)との間で調整が行われた場合には、適切なファイル
は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
【0092】3.旧式のエントリーは、新たなエントリ
ーが全てのサイトにあることが知られているため、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
の何れかと調整されるときに排除されるであろう。
【0093】様々な分散化されたファイルシステムに適
応する改良されたファイル調停プロセスを説明してき
た。開示した調停プロセスは多くの方法で変更が容易で
ある。例えば、バージョンエントリーを更新する場合、
その内容がタイムスタンプによって示されているように
変更されているかどうかに拘わらず、サイトで発見され
る全てのファイル及びディレクトリについて新たなバー
ジョンエントリーを作成することが可能である。この変
更は、コンピュータ集約的であるため、および変更され
ていないファイルについてのダイジェストの不必要な再
計算のために、性能が低下する見返りに幾分か工程を単
純にするであろう。上記のように、特定のダイジェスト
アルゴリズムは、適切な独自のダイジェストを生ずる多
くのアルゴリズムの何れであってもよい。
【0094】また、ジャーナルファイルにおけるバージ
ョンエントリーは、バージョンエントリーのシーケンス
におけるその位置に関して異なった重み付けを受けるこ
とができる。例えば、ユーザが指定するバージョンエン
トリーには、シーケンスまたはタイムスタンプの何れか
における位置に基づいて完全に無視できるものもある。
かかるアプローチは、例えばサイトがある古い日付まで
あるいはある古い既存のバージョンまでに限って調整さ
れる場合には、役に立つであろう。
【0095】説明したように、開示した調停プロセス
は、各サイトのファイル及びディレクトリに直接アクセ
スするためにその工程が実行されているプロセッサの能
力に依拠している。他のメカニズムを採用してファイル
操作を実行してもよい。例えば、調停プロセスは各コン
ピュータで独立した工程として実行することが可能であ
り、シグナリングやファイル交換プロトコルを独立の工
程の間で使用して、ディレクトリ、データ及びジャーナ
ルファイルの読み取りや書き込みを実行することができ
る。
【0096】当業者には、本明細書に開示された発明の
概念から逸脱することなく、上記の方法及び装置に対す
る他の変更やそれらの変形が可能であることが明らかで
あろう。従って、この発明は、特許請求の範囲及び精神
によってのみ限定されるものと理解すべきである。
【0097】
【発明の効果】以上のように、この発明によれば、分散
型ファイルシステムにおけるファイル調停プロセスにお
いて、各々のコンピュータシステムにおける異なるサイ
トのそれぞれまたはディレクトリのセットでファイル変
更の履歴を追跡することができる異なるデータファイル
蓄積サイトを調停する方法及びデータ蓄積サイト及びそ
れと関連した一組のジャーナルファイルを含むシステム
を提供することができる。
【図面の簡単な説明】
【図1】 コンピュータシステムにおけるデータファイ
ル保存サイトのディレクトリリストである。
【図2】 コンピュータシステムにおけるデータファイ
ル保存サイトのディレクトリリストである。
【図3】 本明細書中で開示した調停プロセスにおいて
使用されるジャーナルファイルの構造図である。
【図4】 図3に示したジャーナルファイルのコンポー
ネントの構造図である。
【図5】 図3に示したジャーナルファイルのコンポー
ネントの構造図である。
【図6】 図3に示したジャーナルファイルのコンポー
ネントの構造図である。
【図7】 本明細書中で開示した調停プロセスのフロー
チャートである。
【図8】 図3のジャーナルファイルにおけるバージョ
ンエントリーが図7の調停プロセス中で作成される工程
の一部のフローチャートである。
【図9】 調停に関係するファイルに影響するアクティ
ビティを例示したタイムライン図である。
【図10】 調停に関係するファイルに影響するアクテ
ィビティを例示したタイムライン図である。
【図11】 調停に関係するファイルに影響するアクテ
ィビティを例示したタイムライン図である。
フロントページの続き (71)出願人 597067574 201 BROADWAY, CAMBRI DGE, MASSACHUSETTS 02139, U.S.A. (72)発明者 ジョン・エイチ・ハワード アメリカ合衆国、マサチューセッツ州、ケ ンブリッジ、コーズウェル・アベニュー 8

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 コンテンツによってデータファイルの対
    応するバージョンを独自に識別している各ハッシュコー
    ドを生成するステップと、 生成されたハッシュコードをサイトと関連したジャーナ
    ルファイルに蓄積し、各々のジャーナルファイルのハッ
    シュコードは、データファイルの異なるバージョンが対
    応するサイトで蓄積された順序を示しているシーケンス
    で蓄積されるステップと、 (1)データファイルのバージョンは最新バージョンで
    ある、 (2)最新のバージョンが蓄積されたサイトまたは複数
    のサイト、 (3)最新のバージョンが蓄積されてないサイトまたは
    複数のサイト を決定するために、ジャーナルファイルからのハッシュ
    コードのシーケンスを分析するステップと、 データファイルの最新のバージョンを蓄積されているサ
    イトから蓄積されていないサイトまたは複数のサイトに
    複写するステップとからなる異なるデータファイル蓄積
    サイトを調停する方法。
  2. 【請求項2】 請求項1に記載の異なるデータファイル
    蓄積サイトを調停する方法において、 上記分析ステップは、競合がサイト間で存在するかどう
    かを判定することを含み、少なくとも2つのジャーナル
    ファイルが最後の共通のハッシュコードに続いて異なる
    ハッシュコードを持つとき、競合が存在すると判定し、
    最後の共通のハッシュ・コードは、個々のジャーナルフ
    ァイルに現れるそれらのハッシュ・コードの最も最近生
    成されたものであり、 上記複写ステップは、ジャーナルファイルが最後の共通
    のハッシュコードに続くハッシュコードを持つサイトか
    ら最後の共通のハッシュコードに続くハッシュコードを
    持たない1または複数のサイトに複写することを含み、 上記複写ステップは、競合が存在しないことが判定され
    たときのみ実行されることを特徴とする異なるデータフ
    ァイル蓄積サイトを調停する方法。
  3. 【請求項3】 請求項2に記載の異なるデータファイル
    蓄積サイトを調停する方法において、 競合が存在することが判定されたならば、1つの競合す
    るバージョンを他の競合するバージョンと区別すると共
    に競合の存在を示すように、ファイルの競合するバージ
    ョンの1つの名称を変更するステップと、 ファイルの両方の競合するバージョンが全てのサイトに
    存在するように他のサイトにファイルの競合するバージ
    ョンを複写するステップとをさらに含むことを特徴とす
    る異なるデータファイル蓄積サイトを調停する方法。
  4. 【請求項4】 請求項1に記載の異なるデータファイル
    蓄積サイトを調停する方法において、上記ハッシュコー
    ド蓄積ステップは、データファイルの最新のバージョン
    を識別するハッシュコードを複写するステップを含み、
    ハッシュコードは、データファイルの複写元のサイトに
    関するジャーナルファイルから複写され、当該ハッシュ
    コードは、データファイルの複写先の各サイトについて
    のジャーナルファイルに複写されることを特徴とする異
    なるデータファイル蓄積サイトを調停する方法。
  5. 【請求項5】 請求項1に記載の異なるデータファイル
    蓄積サイトを調停する方法において、 上記ジャーナルファイルは、連続的に配置されたバージ
    ョンエントリーを含み、各々のバージョンエントリー
    は、対応するサイトで蓄積されているデータファイルの
    対応するバージョンと関連し、 各ハッシュコードは、バージョンエントリーの対応する
    一つに含められ、 各バージョンエントリーは、バージョンエントリーと共
    に含まれたハッシュコードによって識別されたデータフ
    ァイルのバージョンが生成された時間を示すタイムスタ
    ンプを含め、 上記ハッシュ-コードを生成するステップは、 (1)ジャーナルファイルのデータファイルに対し最後
    のシーケンシャル・バージョンエントリーのタイムスタ
    ンプから、最後のバージョンエントリーの生成以降、ジ
    ャーナルファイルと関連するサイトでデータファイルが
    変更されたかどうかを判定するステップと、 (2)データファイルが最後のバージョンエントリーの
    生成以降に変更されたならば、そのデータファイルに対
    するハッシュコードを生成するステップと、 (3)データファイルが最後のバージョンエントリーの
    生成以降に変更されなかったならば、そのデータファイ
    ルに対するハッシュコードの生成をやめるステップとを
    含め、 上記ハッシュコード蓄積ステップは、 データファイルが変更されたならば、新規のバージョン
    エントリーをジャーナルファイルのバージョンエントリ
    ーのシーケンスに添付するステップを含み、添付された
    バージョンエントリーは、変更されたデータファイルに
    ついて生成されたハッシュコードを含むことを特徴とす
    る異なるデータファイル蓄積サイトを調停する方法。
  6. 【請求項6】 請求項1に記載の異なるデータファイル
    蓄積サイトを調停する方法において、 (1)各ハッシュコードは、ジャーナルファイルにおけ
    るバージョンエントリーの対応する1つに含まれ、 (2)ジャーナルファイルにおける各バージョンエント
    リーは、サイトインジケータフィールドを含み、サイト
    インジケータフィールドは、サブフィールドを有し、各
    サブフィールドは、サイトの異なる1つに対応し、サブ
    フィールドを含むバージョンエントリーがサブフィール
    ドに対応しているサイトについてのジャーナルファイル
    に現れるかどうかを示し、 バージョンエントリーをジャーナルファイルから削除す
    ることが今後の調停に有害な影響を及ぼさないように、
    旧式になったジャーナルファイルの中にバージョンエン
    トリーがあるかどうかをジャーナルファイルの中のサイ
    トインジケータから判定するステップと、 旧式と判定されたバージョンエントリーを削除するステ
    ップとをさらに含むことを特徴とする異なるデータファ
    イル蓄積サイトを調停する方法。
  7. 【請求項7】 請求項6に記載の異なるデータファイル
    蓄積サイトを調停する方法において、 上記判定ステップは、ジャーナルファイル中に全てのジ
    ャーナルファイルに共通する最も古いバージョンエント
    リーに先行するバージョンエントリーがあるかどうかを
    判定するステップを含み、 上記削除ステップは、最も古い共通のバージョンエント
    リーに先行することが判定されたバージョンエントリー
    を削除するステップでなることを特徴とする異なるデー
    タファイル蓄積サイトを調停する方法。
  8. 【請求項8】 請求項1に記載の異なるデータファイル
    蓄積サイトを調停する方法において、 ジャーナルファイルは、連続的に配置されたバージョン
    エントリーを含み、各々のバージョンエントリーは、対
    応するサイトに蓄積されているデータファイルの対応す
    るバージョンと関連し、各々のバージョンエントリー
    は、ファイルが、バイナリーまたはテキストフォーマッ
    トであるかどうかを示すファイルタイプインジケータを
    含み、 ファイルがテキストファイルであるかどうか、及びテキ
    ストファイルの最終行を示すためにファイルがシステム
    間で異なるキャラクターを使用して複写されているかど
    うかを判定するステップをさらに含み、 ファイルがテキストファイルであり、ファイルがそのよ
    うなシステムの間で複写されているならば、ファイルの
    複写先のシステムと互換性があるようにファイルに現れ
    る行末キャラクタを変えることを特徴とする異なるデー
    タファイル蓄積サイトを調停する方法。
  9. 【請求項9】 データ蓄積サイト及びそれと関連した一
    組のジャーナルファイルを含むシステムにおいて、 各々のジャーナルファイルは、サイトの対応する一つと
    関連し、データファイルのどのバージョンがサイトに現
    れたかを示すエントリーを含み、ジャーナルエントリー
    は、サイトのコンテンツを調停するプロセスの間に更新
    され、 ジャーナルファイルのうちの1つの中に現れているバー
    ジョンエントリーの複写を含むジャーナルファイルをト
    ラッキングする方法は、 1つのジャーナルファイルの中でマスクを蓄積し、各々
    のマスクは、あらかじめ決められた関連したデータ値で
    なり、サイトの対応する一つを独自に識別するステップ
    と、 1つのジャーナルファイルにサイトインジケータフィー
    ルドを蓄積し、各々のサイトインジケータフィールド
    は、1つのジャーナルファイルの中でジャーナルエント
    リーの対応する一つと関連し、かつサブフィールドを含
    み、各々のサブフィールドは、あらかじめ決められた値
    に設定されるとき、ジャーナルファイルの対応する一つ
    がサブフィールドを含むサイトインジケータと関連した
    ジャーナルエントリーの複写を持つかどうかを示すステ
    ップと、 1つのサイトを他のサイトと調停する過程の間に、1つ
    のジャーナルファイルにおけるジャーナルエントリーを
    更新するに当たり、サイトインジケータがジャーナルエ
    ントリーの複写が現れたジャーナルファイルの永続的な
    記録であるように、各々のサイトと関連するサブフィー
    ルドとマスクの初期値に基づいた値に従ってサイトイン
    ジケータのサブフィールドのそれぞれを設定するステッ
    プとからなるデータ蓄積サイト及びそれと関連した一組
    のジャーナルファイルを含むシステム。
JP11013070A 1998-04-02 1999-01-21 異なるデ―タファイル蓄積サイトを調停する方法及びデ―タ蓄積サイト及びそれと関連した一組のジャ―ナルファイルを含むシステム Pending JPH11306058A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (6)

* Cited by examiner, † Cited by third party
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