JPH035848A - 分散データ処理システムにおけるフアイル属性の管理方式 - Google Patents

分散データ処理システムにおけるフアイル属性の管理方式

Info

Publication number
JPH035848A
JPH035848A JP2123213A JP12321390A JPH035848A JP H035848 A JPH035848 A JP H035848A JP 2123213 A JP2123213 A JP 2123213A JP 12321390 A JP12321390 A JP 12321390A JP H035848 A JPH035848 A JP H035848A
Authority
JP
Japan
Prior art keywords
data processing
processing system
file
client
server
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
JP2123213A
Other languages
English (en)
Other versions
JPH073658B2 (ja
Inventor
Donavon W Johnson
ドナヴアン・ウイリアム・ジヨンソン
Stephen P Morgan
ステイブン・ポール・モーガン
Todd A Smith
トツド・アレン・スミス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH035848A publication Critical patent/JPH035848A/ja
Publication of JPH073658B2 publication Critical patent/JPH073658B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1787Details of non-transparently synchronising 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

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)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、通信リンクによって接続された複数のデータ
処理システムに関する。特に分散ネットワーク環境にお
けるローカル処理システムと遠隔処理システムとの間で
のファイルのアクセスに関する。
B、従来技術 第5図に示すように、分散ネットワーク環境1は、通信
リンク又はネットワーク3により接続された2以上のノ
ードA、B、Cから構成される。
ネットワーク3は、ローカル・エリア・ネットワーク(
LAN)又は広域ネットワーク(WAN)のどちらでも
よい。
ノードA、B、Cには、ワークステーション等の処理シ
ステムIOA、IOB、IOCが存在しうる。これら処
理システムIOA、LOB、10Cの各々は、シングル
・ユーザー・システムでも又マルチ・ユーザー・システ
ムでもよく、ネ・ントワーク3を用いて遠隔のノードに
位置するファイルにアクセスする能力を有している。例
えば、ローカル・ノードAの処理システムIOAは、各
々遠隔ノードB、Cにあるファイル5B、5Cにアクセ
スする事ができる。
本明細書において、用語「サーバー」は、ファイルが永
久的に保持できる形で記憶されている処理システムを示
すために使われ、用語「クライエント」は、そのファイ
ルにアクセスするプロセスを有する他の処理システムを
意味するために使われる。しかしながら、用語「サーバ
ー」は、あるローカル・エリア・ネットワーク・システ
ムで使われているような専用のサーバーを意味するもの
ではない。本発明が実施される分散サービス・システム
は、システム中の異なったノードで種々のアプリケーシ
ョンが走行し、それらがシステム中のどこに位置するフ
ァイルにもアクセスし得る真の分散システムである。
上述のように、以下説明する発明は、通信ネットワーク
中の分散データ処理システムに関するものである。この
環境において、ネットワーク中のノードの各処理装置は
、ファイルがとのノードにあっても、ネットワーク中の
全てのファイルにアクセスする事ができる。
分散データ処理システムを支援する他の方式も知られて
いる。例えば、IBMのAIXオペレーティング・シス
テムに関する分散サービスは、1987年2月13日に
出願された米国特許出願筒]4897号に開示されてい
る。さらに、サン・マイクロシステムズはネットワーク
・ファイル・システム(NFS)をリリースし、ベル研
究所は、す′モート・ファイル・システム(RFS)を
開発している。サン・マイクロシステムズのNFSは、
S、R,Kleiman、  ”Vnodes: An
 Architecture forMultiple
 File 5ysteIIITypes  in S
un UNIX”。
−247;  Ru5sel Sandberg et
 al、+  ”Design andImpleme
nLation  of  Lhe  Sun  Ne
twork  File−sysLems、   Co
nference  Proceedings、   
USENIX1985、  pp、  119 − 1
30  ;  Dan Walsh  at al、。
+Overview or t、he Sun Net
work File Systems 。
pp、  117−124 ; JoMei Chan
g、  ”5tatus Mon1torProvid
es  Network Locking 5ervi
ce  for  NFS”+JoMei Chang
 、 ”5unNet”、 pp、 71−75 ;及
びBradley  Taylor、  ’″5ecu
re  Networking  in  theSu
n Environment”、 pp、 28−36
を含む一連の刊行物に記載されている。ATTのRFS
は、Andrew P、 Rirkin et al、
、 −RFS ArchitecturalOverv
iew 、  USENIX Gonrerence 
Proceeding。
At1anta、 Georgia (June 19
68)+ pp、 1−12 :Richard Ha
milton et al、、 ”An Admini
strator’sView of Remote F
ile Sharing + pp、 1−9 ; T
om)1oughton et al、’、 −Fil
e 5yste+++s 5w1tch”、 pp。
1−2;及びDavid J、 01ander et
 al−+ ”AFramework for Net
working in System V−r pp、
 1−8を含む一連の刊行物に記載されている。
本発明が実施される分散サービス・システムの1つの特
徴であって、サン・マインロシステムズのNFSと異な
る点は、例えば、サンの方式が基本的に状態非保存の(
stateless)サーバーを設計しようとした事で
ある。これは、サーバーがクライエント・ノードに関す
る情報を記憶しない事を意味している。情報としては、
例えば、どのクライエント・ノードがサーバー・ファイ
ルをオーブンしているか、又はクライエント・ノードの
プロセスがファイルを読取り専用モード又は読み書きモ
ードのどちらでオープンしているかといった事である。
そのような実施形態はサーバーの設計を単純化する。と
いうのは、クライエントがサーバーの資源に対する要求
を解放しようとしている事をサーバーに適切に伝える事
なしにクライエントが故障したり又はオフライン状態に
なったりした時に生じるエラー回復状況を、サーバーが
処理する必要がないからである。
本発明が実施される分散サービス・システムの設計では
、完全に異なった方式が取られた。より具体的には、そ
の分散サービス・システムは「状態保存式の(stat
erul)実現」として特徴付けられる。ここで述べる
ような「状態保存式」サーバーは、そのファイルを誰が
使用しているか、及びファイルがどのように使用されて
いるかについての情報を保持する。従って、サーバーは
、クライエントに関する蓄積された状態情報を廃棄でき
るように、クライエントとの接触の喪失を検出する何ら
かの方法を有していなければならない。ここで述べるキ
ャッシュ管理方式は、サーバーがそのような状態情報を
保持しなければ実現できない。
遠隔ノードをアクセスする時に出会う問題は、先ず、単
独で用いられるシステムがどのようにファイルにアクセ
スするかを調べる事によって良く理解できる。第2図に
示すノード10のような単独のシステムにおいて、ワー
クステーション中のハード・ファイル又はディスク等の
永久的記憶装置2とユーザーのアドレス空間14との間
で転送されるデータをバッファするために、オペレーテ
ィング°システムll中のローカル・バッファ12が使
用される。オペレーティング・システム11中のローカ
ル・バッファ12は、ローカル・キャッシュ又はカーネ
ル・バッファとも呼ばれる。
単独のシステムでは、カーネル・バッファ12はブロッ
ク15に分割されている。これは、デバイス番号、及び
デバイス内の論理ブロック番号により識別されている。
読取りシステム・コール16が発行される時、それは第
3図のステップ101に示すようにファイル5のファイ
ル記述子及びファイル5内のバイト範囲と共に発行され
る。オペレーティング・システム11は、この情報を受
取り、第3図のステップ102に示すようにそれをデバ
イス番号及びデバイス中の論理ブロック番号に変換する
。もしブロックがキャッシュ中にあれば(ステップ10
3)、データはisキャッシュから得られる(ステップ
105)。キャッシュが、探しているブロックを保持し
ていない場合(ステップ103)、データはキャッシュ
中に読み込まれ(ステップ104)、その後キャッシュ
からデータが取得される(ステップ105)。
ディスク2から読取られたデータは、キャッシュ・ブロ
ック15が他の目的のために必要になるまで、キャッシ
ュ・ブロック中に保持される。従って、処理システム1
0上で走行しているアプリケーション4からの連続した
読取り要求が、以前に読取ったのと同じデータに関する
場合は、ディスク2ではなくキャッシュ12にアクセス
が行なわれる。キャッシュからの読取りは、ディスクか
らの読取りよりも通かに時間を要しない。
同様に、アプリケーション4から書込まれたデータは、
即座にディスク2上には保存されず、キャッシュ12に
書込まれる。これは、他の書込動作が同じブロックに対
して行なわれる場合にディスクのアクセスを節約する。
キャッシュ12中の変更されたデータ・ブロックは、周
期的にディスク2に保存される。
AIXオペレーティング・システムを用いる単独のシス
テムでのキャッシュの使用は、連続した読取りと書込み
に関してディスクのアクセスが不用になるので、システ
ムの全体的性能を改善する。
全体的性能の改善は、永久的記憶装置のアクセスがキャ
ッシュのアクセスよりも低速で且つより高価な事による
上述のように、オペレーティング・システム中のローカ
ル・バッファは、単独のシステムでのファイルへのアク
セスの性能を改善するために使われる。これらローカル
・バッファは、高速メモリ中に保持されるが、ファイル
は通常、より低速のディスク・ドライブ等の永久的記憶
装置中に保持される。より大きなバッファ・キャッシュ
はデータ処理システムの性能を増強できる。これは、キ
ャッシュがシステムのファイルに属するデータをより多
く保持する事ができ、従って低速のディスク・ドライブ
を使用する必要性を減少させるからである。しかしシス
テムの物理的な高速メモリは、限定されたサイズしか持
たない。オペレーティング・システムのカーネル・バッ
ファのために物理的メモリの一定部分を区分して使用す
る代りに、システムのディスク・ファイルへのアクセス
を高速化するために、仮想記憶技術を使用できる。この
仮想記憶技術では、ディスクのブロックの固定したキャ
ッシュは存在しない。その代りに、データは、物理的メ
モリではなく仮想メモリ中にキャッシュされる。
仮想メモリは、利用可能な物理的メモリよりも大きなメ
モリ空間を提供する。この仮想メモリ空間は、・複数ペ
ージに分割され、あたかも仮想メモリ空間が真の物理的
メモリであるかのようにプログラムによって使用される
。システムの仮想メモリのページは、現実の物理的メモ
リのフレーム、ディスクのブロック、のいずれが、又は
その両方に存在している。仮想メモリ・ページが物理的
フレーム中に存在しない時は、そのページを使用しよう
とする試みは、ページ・フォールトとして知られる例外
条件を生じさせる。そのようなページを使用しようとす
るプログラムは、ページ・フォールトを生成し、−時的
に停止させられる。その間に、仮想メモリのページが、
現在それが存在しているディスク・ブロックから検索さ
れ、物理的メモリ・フレームにコピーされる。仮想メモ
リ・ページが物理的フレームに割当てられた後、元のフ
ォールトを起こしたプログラムは継続する事を許され、
その仮想メモリ・ページ中のデータが利用可能である事
を見出すであろう。
仮想メモリによって提供される柔軟性を利用する1つの
方法は、プロセスがファイルをその仮想アドレス空間に
マツプ(写像)する事を可能にする事である。このよう
にして、プロセスは、読取り又は書込みのシステム・コ
ールを実行する事なく、ファイルの内容にアクセスする
事ができる。ファイルの読取り及び書込みが実行される
が、それは、ファイルがマツプされたアドレス空間内の
アドレスに対して実行されるプロセスのロード及びスト
ア(記憶)操作に応答して、仮想メモリ・マネジャに止
り実行される。例えば、100バイトの短いファイルが
、4800〜4899のアドレスの範囲にマツプされた
とする。プロセスが記憶位置4805から1バイトをロ
ードする時、プロセスはそのファイル内のオフセット5
のバイトを得るであろう。プロセスが記憶位置4800
にストアを行なう時、プロセスはオフセット0の、即ち
ファイルの最初のバイトの内容を変更するであろう。
この事は、プロセスが、読取り又は書込みのシステム−
コールを行なう事なく、ファイルの内容にアクセスしそ
れを変更する事を可能にする。
第2B図に示すように、マツプされたファイル92を含
むメモリ・セグメント91に対するストアは、ファイル
92を拡張する可能性があるが、ファイル・システム論
理93は各ストア操作毎には呼出されない。従って、も
しアプリケーション94がファイルをマツプし、ストア
操作によりファイルを拡張する場合、iノード・データ
構造95の中のファイル・サイズ属性は同期して更新さ
れる事はない。任意の特定の瞬間には、ファイル・サイ
ズについてのファイル・システムの意見(iノード中に
記憶されたサイズ)は、最も最近の仮想メモリの記憶内
容と一致してはいない。ファイル92に関する情報を含
むデータ構造であるiノード95は、5ync% fs
y’ncs  close等のシステム・コールにより
、またオペレーティング・システム96により実行され
る周期的な5ync動作により最新状態にされる。ファ
イルが従来のシステム・コール(例えば、書込み)によ
り変更される時、ファイル・システム論理93が起動さ
れ、それはマツプされたファイル記憶を使用して、ファ
イルのデータを更新する。ファイル−システム論理93
は、システム・コールのパラメータによって、ファイル
に対して何が行なわれているかを知り、同期的にiノー
ド・データ構造95中のファイル・サイズを更新する。
5tatシステム・コールは、現在のiノードのファイ
ル・サイズ値を返すが、それは仮想メモリ・マネジャ9
7には照会しない。その結果、もしファイル92が専ら
システム・コールによってのみ操作されていれば、iノ
ード・データ構造中に見出されるファイル・サイズ、及
びs tatよって返されるファイル・サイズの値は、
常に最新のものである。
しかし、もしファイルがマツプされた記憶域により操作
されていれば、5tatにより返されるファイル・サイ
ズは、最も最近の記憶の結果を反映していないがもじれ
ない。(システム・コールではなく)マツプ式アクセス
を使用するアプリケーション94は、5tatが最も最
近の変更を反映している事を保証したいならば、fsy
ncシステム・コールを発行する事ができる。もしアプ
リケーションが、(システム・コールではなく)ストア
操作を用いてファイル92を拡張したならば、仮想メモ
リ・マネジャ97はどのページがファイルの「最右端」
のページかを知っているが、そのページ内のとのバイト
がファイルの最後のバイトかは知らない。しかし、シス
テム・コールが使用されると、ファイル・システムは、
バイトの粒状性(granularity)を用いて、
ファイル・サイズを知る。
第5図に示すような、分散環境において、ローカル・ノ
ードCにある処理システムIOCがノードAからファイ
ル5Aを読取る事ができる2つの方法がある。1つの方
法では、処理システム1゜Cがファイル5A全体をコピ
ーし、あたかもそれがノードCに存在するローカル・フ
ァイル5cであるかのように読取りを行なう。この方法
のファイル読取りは、もしファイル5Aがファイル5C
としてノードCにコピーされた後で他のノードAの他の
処理システムIOAがファイル5Aを変更する場合に、
問題を生じる。その場合、処理システムIOCは、ファ
イル5Aに対するこれら最新の変更にアクセスしないで
あろう。
ノードAのファイル5Aに処理システムIOCがアクセ
スする他の方法は、ノードCの処理システムが要求する
時に、1ブロツク、例えばN1を読取る事である。この
方法に伴う問題は、あらゆる読取りが、ネットワーク通
信リンク3を経由して、ファイルが存在しているノード
Aに行かなければならない事である。各連続した読取り
毎にデータを送信するのは多大の時間を要する。
ネットワークを介してファイルにアクセスする事は、上
述のように2つの競合する問題を生じる。
1つの問題は、連続した読取りと書込みのためにネット
ワークを介してデータを転送するのに必要な時間に関係
している。一方、もしネットワーク・トラフィックを減
少させるためにファイルのデータがノードに記憶される
ならば、ファイルの整合性が失われる可能性がある。例
えば、もし幾つかのノードの1つがファイルに書込みも
行なうと、そのファイルにアクセスしている他のノード
は、ちょうど書込まれた最新の更新されたデータにはア
クセスしない可能性がある。従って、ノードが正しくな
く且つ古くなったファイルにアクセスする可能性がある
という意味で、ファイルの整合性が失われる。
分散環境中のファイルに篤するデータを管理する困難性
に加えて、分散処理環境中でアクセスされるファイルの
属性を管理するという間層が存在する。ファイルは、頻
繁に変化する3つの重要な属性を有している。それは、
ファイル・サイズ、最後の変更の時刻、そしてファイル
への最後のアクセスの時刻である。プロセスがファイル
の終端にデータを付は加える毎に、最後の変更の時刻及
び最後のアクセスの時刻ととも゛にファイル・サイズが
変化する。またファイルがプロセスにより読取られる毎
に、最後のアクセスの時刻が変化する。
この情報を正確に保持する1つの方法は、ファイル・サ
ーバーに情報を保持する事である。クライエントにより
ファイルがアクセスされる毎に又はファイル・サイズが
変更される毎に、クライエントは、サーバーにメツセー
ジを送って、サーバーに変更を通知する。クライエント
により属性が要求される毎に、クライエントはサーバー
に属性の値を要求するメツセージを送る。この解決方法
は正しいファイル属性を維持するが、クライエントでフ
ァイルが読取り又は書込みされる毎にサーバーとの間で
メツセージの送受信が必要なのでコストが余りに高くな
る。
一方、もし属性がクライエントの計算機に保持されるな
らば、分散環境中の他のクライエント及びサーバーは正
しい属性値を有しないであろう。
複数のクライエントが同時にファイルにアクセスする事
があるので、矛盾のある属性値が同時に種々のクライエ
ントに存在する事もありうる。
プロセスがファイルをその仮想アドレス空間にマツプす
る事を許す事により、さらに付加的な複雑さが生じる。
これが行なわれると、プロセスは、読取り又は書込みの
等のシステム・コールを使う事なく、ファイルの内容を
操作し、おそらくそのサイズ及び最後のアクセス又は変
更の時刻を変更する事が可能である。このアクセスはロ
ード及びストア命令を通じて起きる。この種の状況では
、オペレーティング・システムは、システム−コールを
用いた場合のようには、最後のアクセス時刻及び他のフ
ァイル属性を追跡する機会を持たない。
同様に、プロセスが遠隔ファイルを仮想アドレス空間に
マツプする事を許す分散環境でも、もし有用なファイル
属性が保持されるべきであれば、これらの複雑さが存在
する。
C0発明が解決しようとする課題 従って、本発明の目的は、サイズ、最後の変更の時刻、
及び最後のアクセスの時刻等のファイル属性が分散処理
環境中の全てのクライエントにおいて正確であり且つ利
用可能であるように、それらのファイル属性を維持する
事である。
本発明の他の目的は、不当なオーバーヘッド、性能コス
ト及びネットワーク・トラフイ・ンクなしにファイル属
性を正確に維持する事である。
02課題を解決するための手段 本発明のシステム及び方法は、ファイルの属性が関係プ
ロセスの全てに対して効率的且つ正確に分散されるよう
な形で、分散環境中のプロセスが、読取り及び書込み等
のシステム・コール、又はファイルをそれ自身のアドレ
ス空間にマツプする機構のいずれを通じてもファイルに
アクセスする事を可能にするプロトコルを提供する。
ファイル・サイズ属性、変更時刻属性、及び最終アクセ
ス時刻属性等のファイルの属性は、各々別個に、そして
分散環境中の他の属性の各々とは独立に管理される。
ファイル・サイズ属性は、次のように管理される。読取
り又は書込みのシステム・コールを実行するクライエン
トは、ファイルの読取りトークンの1つ又はファイルの
書込みトークンを要求する事により、ファイルのサーバ
ーからそのようにする許可を取得する。ファイルに対す
る操作の実行の許可を与える事に加えて、トークンはフ
ァイルの現在のサイズも含んでいる。−時にただ1つの
クライエントだけしか書込みトークンを所有できないの
で、書込みトークンを有しているクライエントのプロセ
スだけがそのファイルに書込みを行なう事ができ、ファ
イル・サイズは書込みトークン中に保持できる。書込み
システム・コールによるファイル・サイズの変更は、書
込みトークン中に保持されているサイズを更新する事に
より反映できる。
ファイルをそれ自身の仮想アドレス空間にマツプする事
を通じてファイルにアクセスするプロセスは、書込みト
ークンを取得する事なくファイルを拡張しサイズを変更
する事ができる。ファイル・サイズに対するこれらの変
更は、そのファイルに関するサーバーのサイズ情報が時
代遅れにならないように周期的にサーバーに伝達される
。ネットワーク中のどこかのプロセスがファイル・サイ
ズに興味を持つと、そのプロセスは、サーバーにget
  attrメツセージを送る。次に、サーバーは、書
込みトークンを所有しているノードに質関し、それと、
(ファイルをマツピングする事によりファイルを拡張し
たプロセスを有しているクライエントから)サーバーが
得た情報とを組合せる。サーバーは、ファイルの現在の
サイズに関する最良の利用可能な情報を反映するファイ
ル・サイズを、要求を行なっているクライエントに返す
変更時刻とアクセス時刻の保持は、既に述べたファイル
・サイズ属性の保持と同様に行われる。
これらの属性は読取り及び書込みトークン中に保持され
る。
変更時刻属性に関して、書込みトークンは、次のルール
に従って変更時刻属性を管理するために使われる。サー
バーは、ファイルに関する変更カウントを保持する。ク
ライエントが書込みトークンを取得する時、それは変更
カウントも取得する。
クライエントがファイルを変更する時、クライエントは
変更カウントを力計数する。ファイルが変更されたかど
うかをサーバーが判定したい時、サーバーは、特別の取
消トークン・メツセージを送る。これはクライエントに
、変更カウントをサーバーに送り返させる。サーバーは
、クライエントからの変更カウント(これは力計数され
ているかもしれない)をサーバーの変更カウントと比較
し、クライエントが書込みトークンを有している間にフ
ァイルが変更されたか否かを判定する。もしサーバーが
、ファイルが変更されたと判定すると、サーバーは、変
更時刻を現在の時刻に設定する。
最後にファイルがアクセスされた時をクライエントが知
る事はより重要ではない。多くのクライエントが読取り
トークンを有しているかもしれないので、読取りトーク
ンを有している各クライエントに最後のアクセスの時刻
を照会するのは余りに煩雑である。その代りに、要求を
行っているクライエントは、ただ、サーバーに、どこか
のクライエントによる最後のアクセスの時刻だけを照会
する。読取りトークンを有しているクライエントは、フ
ァイルへのアクセスについて定期的にサーバーに知らせ
るように要求されているので、サーバーは最後のアクセ
スの時刻を決定できる。
E、実施例 第4A図〜第41図を参照すると、ここで使用されるノ
ード間メツセージが記載されている。
第4A図は、ファイルに関するサーバーの知識をクライ
エントのものと同期させるために使われるf  5yn
cメツセージを示している。クライエントからのf  
5yncメツセージに応答して、サーバーはf  5y
nc動作を実行する。fsync動作は、変更されてい
るがまだ書込まれていない全てのデータを、サーバーが
、サーバーのディスクに書込むようにさせる。そうする
ために、サーバーは、未解決のファイル・トークンを取
消し、クライエントの計算機上のファイルに付随するデ
ータ・バイトを取消し、次に変更されたデータ・バイト
をディスクに書込ませるサーバーでのローカルf  5
ync動作を実行する。もしクライエントが書込みのた
めにファイルを以前にオーブンして、まだクローズして
いなければ、サーバーはだだf  5ync動作を実行
するだけである。
opコード421.423は、どの動作が実行されるか
を示す。Opコードの値は、各個々の動作に関するメツ
セージとは独立である。ファイル・ハンドル422は、
サーバー計算機に存在するファイルを一意に識別する値
である。リターン・コード424は、要求された動作の
成功又は失敗を示す値、である。
第4B図は、ファイルの属性を得るget  attr
メツセージ430を示す。ファイル属性435は、アク
セス時刻436、変更時刻437、及びファイル・サイ
ズ438等のファイルに関する情報を含んでいる。
第4C図は、ファイルからデータ・バイトを要求するg
et  bytesメツセージ440を示している。オ
フセット441は、要求されたデータの開始点を示すフ
ァイルのオフセットである。
長さ442は、・要求されたバイトの数である。読取り
/書込みフラグ443は、クライエントが、データの読
取り専用のコピーを要求しているか又は書込み可能のコ
ピーを要求しているかを示すために使われる。R/Wフ
ラグの許された値は、もしクライエントがバイト範囲を
読取るだけの場合は0xOOOOであり、もしクライエ
ントがバイトを変更しうる場合は0xOOO1である。
もしクライエント・ノードが互換モードでファイルを以
前にオーブンしていて、まだクローズしていなければ、
サーバーはget  bytes動作だけを実行する。
もしR/Wフラグ443が読取り専用であれば、クライ
エントはファイルを読取りのためにオーブンさせたはず
である。もしR/Wフラグ443が読み書きであれば、
クライエントはファイルを書込みのためにオーブンさせ
たはずである。
get  bytesメツセージ440の応答において
、NZオフセット444は、初期(nascent)ゼ
ロが存在するバイトが要求されているファイル内のオフ
セットである(初期ゼロは、本発明の関連出願に説明さ
れている)。このフィールドは、フィールドNZ長さが
ゼロよりも大きい時にのみ意味を持つ。フィールドNZ
長さ445は、初期ゼロのバイト数であり、これはNZ
オフセット444から始まる。サーバーは、要求者に返
すためにNZオフセットを選択する。サーバーは、常に
初期ゼロの処置を行なわないように選択しても良く、こ
のフィールドにゼロを返す事によってこの事を示す。長
さ446は、返されるデータの長さである。データ44
7は、要求された実際のデータ・バイトである。
第4D図は、サーバーからトークンを要求するためにク
ライエントにより使用されるget  tknメツセー
ジ450を示している。トークン型451は、どの種類
のトークンが要求されているかを指定する。もし読取り
専用トークンが要求されているならば、許された値は0
xOOO1であり、もし読取り/書込みトークンが要求
されているならば、0xOO02である。もしクライエ
ント・ノードが以前にオーブンされていて且つまだクロ
ーズされていす、ファイルが互換モードであれば、サー
バーは単にget  tkn動作しか実行しない。ファ
イル・サイズ452は、ファイルのサイズである。変更
カウント453は、ファイルの変更を反映する、サーバ
ーによって保持されている値である。アクセス・カウン
ト454は、ファイルへのアクセスを反映する、サーバ
ーによって保持されている値である。
第4E図は、put  bytesメツセージ460を
示す。クライエントは、put  byteSメツセー
ジ460を用いてサーバーに変更データを返す。もしク
ライエントが以前にオープンを行っていて且つまだクロ
ーズを行っていす、ファイルが書込み用であれば、サー
バーは単にputbytes動作だけを実行する。オフ
セット461は、長さ462のデータ・バイト463が
置かれるべきファイル内のオフセットである。
第4F図は、revoke  bytesメツセージ4
70を示す。このメツセージは、ge=t−bytes
メツセージ440に対する応答の中でクライエントに以
前与えられたバイトを取消すためにファイルのサーバー
からクライエントに送られる。クライエントは、オフセ
ット471及び長さ472によって示されるバイト範囲
に関して、それが全てのクリーンなキャッシュされたデ
ータ及び初期ゼロを廃棄し、全ての汚れたデータをサー
バーに書込み応答を受取るまでは、応答を送らない。ク
ライエントが応答を送る時、それは、取消されたバイト
範囲に関するキャッシュされたデータを全く有していな
いはずである。このメツセージは、取消し範囲内に入る
、以前に返された初期ゼロをクライエントが使用する権
利を取消す。
revoke  bytesが処理される時に未解決で
あったget  bytes要求により返された取消さ
れたバイト範囲内のどのデータ又は初期ゼロも、それら
が到着する時に取消されなければならない。クライエン
トは、要求されたよりも大きなバイト範囲を取消す事を
選択しても良く、又要求された範囲よりも大きな範囲中
に取消すものが存在しない事を判定できても良い。その
ような場合、応答オフセット473及び応答長さ474
が、クライエントがキャッシュされたページを持たない
範囲を示す。応答オフセット473及び応答長さ474
は、少なくとも、オフセット471及び長さ472によ
って示された範囲を含まなければならない。
第4G図は、revoke  tknメツセージ480
を示す。このメツセージは、get  t。
kenメツセージ450に応答してクライエントが受取
ったトークンを取消すために、サーバーがらクライエン
トに送られる。残留トークン型481は、クライエント
に残されるべきトークンの種類を特定する。許される値
は、クライエントが読取り専用トークンを保持する場合
、read  tkn  0xOOO1であり、クライ
エントが読取り/書込みトークンを保持する場合、wr
itetkn  0xOO02であり、クライエントが
何のトークンも保持しない場合は、no  tknOx
OOOである。
ファイル・サイズ482は、データの変更後にクライエ
ントから見たファイルのサイズである。
システムの状態に関するサーバーとクライエントとの間
の混乱を避けるために、次のルールに従わなければなら
ない。クライエントにおけるファイルに関するrevo
ke  tkn480の処理は、そのファイルに関する
未解決のget  tkn450に対する応答が処理さ
れるまで、遅延される。
第4H図は、5ane  attrメツセージ490を
示す。このメツセージは、ファイルの属性に対して同期
化動作を実行する。トークン型491は、クライエント
がどの種類のトークンを保持しているかを特定する。有
効な値は次の通りである。
クライエントが読取り専用トークンを保持するならば、
read  tkn  0xOOO1、クライエントが
読取り/書込みトークンを保持するならば、write
  tkn  0xOO02である。
要求ファイル・サイズ493は、クライエントにおける
ファイル・サイズである。応答ファイル・サイズ494
は、サーバーにおけるファイル・サイズである。応答変
更カウント495は、サーバーに記録された変更を反映
する。応答アクセス・カウント496は、サーバーに記
録されたアクセスを反映している。システムの状態に関
するサーバーとクライエントとの間の混乱を避けるため
に、次のルールに従わなければならない。get  t
k、n動作及び5ync  attr動作は、クライエ
ントにおいて直列化される。特定のファイルに関するg
et  tknW求は、そのファイルに関する未解決の
5ync  attrが存在する間は、発行できない。
第4工図は、クライエントがサーバーにクローズ動作を
知らせるために使用されるcloseメツセージ410
を示す。変更カウント411は、クライエントにおける
変更を反映する値である。
アクセス・カウント412は、クライエントでのアクセ
スを反映する値である。
第1図に示すような、本発明の良好な実施例では、第2
A図に示すような従来のカーネル・バッファ12を使う
代りに、キャッシュされたファイル・データを管理する
ために仮想メモリ・マネジャ33が使われる。さらに、
本発明の良好な実施例は、ファイルがアプリケーション
34の仮想記憶セグメント35にマツプされる事を可能
にする。
しかし、この良好な実施例は、ファイル・システム論理
36が仮想メモリ・マネジャ論理33と過度に干渉する
のを避けている。5ync、fsync、ファイル・シ
ステムの定期的な5ynC(これらはAIXオペレーテ
ィング・システムのシステム・コールであり、’ AI
X OperatingSystem Technic
al Rererence」に記載されているが、ディ
スク又は永久的記憶装置上に存在すべきメモリ中の全て
の情報を書き出させる他のオペレーティング・システム
のシステム・コールにも適用可能である)、及びファイ
ルの最後のクローズの間に、iノード・データ構造26
中のファイル・サイズが次のルールに従って、セットさ
れる。
もしiノードのファイル・サイズが最右端のページに含
まれているならば、iノードのファイル・サイズはその
ままにされる。そうでなければ、iノードのファイル・
サイズは最右端のページの終端にセットされる。
iノードのアクセス時刻及び変更時刻の属性は、同様に
、最も最近の仮想記憶の活動にルーズに結合している。
第1図及び第6A図を参照すると、クライエント30は
、ファイルの終端を越えて記憶動作を行なう事によりフ
ァイル25を拡張する事ができる。
記憶動作を行なう記憶位置にファイル中のページが存在
しない事がクライエントで起きる時、クライエントはサ
ーバーにget  bytes要求440を発行する事
によってページに関するデータを得るように強制される
。get  bytes要求440は、ページ中に挿入
されたデータ・ブロックを返し、記憶動作はそのページ
内容を対象とする。またクライエントは、ファイルの終
端を越えて空間を予約しているかもしれない。この予約
された空間への記憶動作は、サーバーにget−byt
es要求が発行される必要がない。クライエントがge
t  ’bytes 440をファイルの終端で発行す
る時(ステップ601.602)、サーバーは、クライ
エントがファイルの終端を越えて空間を予約できる標識
444.445(第4CI!l!り(ステップ603)
を返してもよい(ステップ604.605)。この予約
された空間は、関連出願に開示されているように、初期
ゼロと呼ばれる。クライエントがこれらの初期ゼロに記
憶動作を行なう時、ファイルのサイズが増加する(ステ
ップ606)。サーバー20は、クライエントがput
  bytes  460(第4E図)を発行してデー
タをサーバーに書き戻す(ステップ610.611)ま
で、ファイルの成長に気付かない。クライエントは、デ
ータを書き戻すように一方的に決定してもよく、又re
voke  bytesメツセージ470(第4F図)
により、そうする事を命令されてもよい。このメッセー
 ジは、他のプロセスが同しデータを要求する(ステッ
プ607)事が原因となって、サーバー20からクライ
エント30が受け取る(ステップ608.609)。こ
の他のプロセスは、revoke  bytes要求4
70に対する応答がサーバーに到着した(ステップ61
4.615)後で、このデータを使用する事が許される
。ステップ614で、クライエント30は、ステップ6
12.613のput  bytesの応答を受け取っ
た後に、revoke−bytes応答470を送信す
る。
第6B図を参照すると、クライエントが、ファイルの属
性を照会するために5tat動作を実行する時、5ta
t動作は、get  attr要求430がファイルの
サーバーに送られる原因になる。get  attrに
より返される構造体中の要素の1つは、ファイルのサイ
ズ436(第4B図)である。次のシナリオを考察する
1、クライエントAが、get  bytes応答44
.0を受け取り、ファイル終端の初期ゼロに記憶動作を
行う(ステップ616.617.618)。クライエン
トは、サーバーに新しいファイル・データを送り返して
いない。
2、クライエントBが、そのファイルに関するget 
 attr  430を発行する(ステップ619.6
20)。
もし厳密な正確さが必要であれば、サーバーは、クライ
エントBのget  attr 430に応答する(ス
テップ629,630)前に、ファイル終端の初期ゼロ
に記憶動作が行なわれたか否かを判定するためにクライ
エントAにrevoke−bytes 470を発行し
なければならない(ステップ621.622)。get
  attr 430中で返されるファイル・サイズ4
36(第4B図)が、最も最近のクライエントの記憶動
作を正確に反映する事を要求すると、2重の性能上のペ
ナルティが課される。
1、get  attrは、revoke  byte
s 470が発行され(ステップ621.622)、そ
して応答がなされる(ステップ627.628)まで、
ステップ629.630で応答が行なわれることはない
2、revoke  bytesに応答して、クライエ
ントは、サーバーに1以上のputbytes  46
0を発行しくステップ623.624)、そしてその応
答を待機しくステップ625,626)なければならな
い。
この性能のペナルティを回避するために、且つ書込みの
ためにオーブンされているファイルのサイズは変化する
可能性が高いという事実を考慮して、プロトコルは、g
et  attr 430によって返されるファイル・
サイズ436が最も最近のクライエントの記憶動作を反
映している事は要求しない。サーバーは、get  a
ttr  430に応答する前にrevoke  by
tes470を発行するように実現してもよいが、クラ
イエントはサーバーがそのようにする事に依存できない
クライエントに関する緩められたルールを考慮し、且つ
サーバーの実施形態のオプションを許容するために、プ
ロトコルは、get  attr430によって返され
るファイル・サイズ436がサーバー・プロセスによる
最も最近の記憶動作を反映することを要求しない。そし
て、サーバーは、put  bytes  460によ
り送られたバイト、及び同様にローカル・プロセスによ
り書き込まれたバイトを取り扱う事が多いので、プロト
コルは、get  attr  430によって返され
るファイル・サイズ436が最も最適量は取ったput
  bytesを反映する事を要求しない。
プロトコルは、以下の事を要求する。
1、クライエントは、変更された又は形成されたファイ
ル・データ(即ち、記憶が行われた初期ゼロ)を、pu
t  bytes  460を介して、周期的に送信す
る事が期待される。又、クライエントは、ファイルに関
する最後のクローズ・メツセージ410を送信する前に
、変更又は形成されたデータを送信する事が期待される
2、サーバーは、サーバー・プロセスによる最近の活動
を反映し、且つ最近受取ったput  bytesメツ
セージ460を反映するように、iノード・データ構造
26(第1図)中のファイル・サイズを周期的に更新す
る事が期待される。
3、fsync要求を処理する一部として、サーバーは
、全てのクライエントからのデータを取消し、返された
データを反映するように、且つサーパー・プロセスによ
る以前の活動を反映するように、get  attr 
 430により返されたファイル・サイズ436を更新
する事が期待される。
従って、クライエントの周期的な同期化動作の一部は、
サーバーに汚れたデータを書込む事であり、サーバーの
周期的な同期化動作の一部は、ローカルな変更及び受取
ったクライエントの変更をディスクに書込む事である。
fsync又はファイルの最後のクローズ等の、何らか
の他の事象が起きなければ、クライエントの変更は、ク
ライエントの周期的な同期化がサーバーの周期的な同期
化に続くまで、get  attr  430により返
されるファイル・サイズ436中に示されない。
クライエントは、そのファイル・データ・キャッシュを
固定サイズのブロックの形に構成している事が多い。次
のシナリオを考察する。
1、クライエントがファイル終端部の初期ゼロ中に記憶
を行う。これは、ファイル・サイズを増加させる。
2、クライエントにおける周期的な同期化動作が、pu
t  bytesメツセージをサーバーに送らせる。
典型的なりライエンドの実施形態では、putbyte
sメツセージ460中でオフセット461と長さ462
により指定されたバイト範囲は、クライエント・ページ
と整合している。バイト範囲は、ファイル中の最後のバ
イトを含むが、多くの場合、この最後のバイトを越えて
延長している。
さらに、サーバーのページ・サイズは、クライエントの
それと一致しない事がある。従って、put  byt
esデータがサーバーに届いた時、それは、メツセージ
中で送られた最後のデータ・バイトを過ぎて延長してい
るサーバー・ページにおかれる可能性がある。このペー
ジ・サイズの量子化により、サーバーは、どのバイトが
ファイル終端かを正確に知る事は合理的には不可能であ
る。
それはただ、最後のバイトを含むページを知っているだ
けである。このため、プロトコルは、単に、サーバーが
iノード・データ構造26中のファイル・サイズを周期
的に更新してそれがサーバーの最右端のページを含むよ
うにする事だけしが要求しない。ファイル中の最後のバ
イトは、put−bytes  460を介して以前に
送られているかもしれず、又サーバー・プロセスにより
形成されているかもしれない。
上述のように、クライエントは、put  bytes
メツセージをファイルのサーバーに送る事によってファ
イルのサイズを変更できる。クライエントは、ファイル
の書込みトークンを取得する事によってファイルのサイ
ズを変更する時に、より正確な制御を行う事ができる。
第6C図を参照すると、クライエントAが、書込みトー
クンを要求するget  tkn450を送る時(ステ
ップ631.632)、応答(ステップ633.6・3
4)は、ファイルのサイズ452(第4D図)を伝達す
る。これは、get  attr要求430中で返され
るのと同じサイズ値436である。クライエントがファ
イルの書込みトークンを保持している間、それはファイ
ルのサイズを変更しうる(ステップ635)。変更され
たサイズは、revoke  tknメツセージ480
又は5ync  attrメツセージ490に応答して
サーバーに返される。ファイル・サイズを支配するルー
ルは、次のように述べられる。
サーバーがget  attr要求430を受取る時(
ステップ636.637)、それは、もしファイルの書
込みトークンを保持しているクライエントが存在すれば
、そのクライエントにrev。
ke  tknメツセージ480を送る(ステップ63
8.639)。このrevoke  tknメツセージ
480は、クライエントに、ファイルの現在のサイズを
、応答(ステップ640.641)中で返すように指令
する。しがし、これは、クライエントにトークンの所有
権を失なわせる事はない(即ち、それは非パージング取
消しとしてフラグされている)。返されたファイル・サ
イズは、iノード26(第1図)中に置かれ(ステップ
642)、get  attr応答で返される(ステッ
プ643.644)。
第6D図を参照すると、サーバーにおけるいくつかの動
作が、ファイルのiノード中に記憶されたファイル・サ
イズを、仮想メモリ・マネジャによって保持されるファ
イルの最右端のページの位置と矛盾しないようにさせる
(ステップ656)。
もし結果的に得られたファイル終端が最右端のページ内
に入るならば、ファイル・サイズに矛盾はない。これら
の同期化事象は、下記の通りである。
1)サーバーが、ファイルの周期的な同期化を行う(ス
テップ651)。
2)サーバーが、ファイルの最後のクローズを行う(ス
テップ652)。
3)サーバーが、クライエントとサーバーとのファイル
に関する知識を同期化させる、fsync等の、いくつ
かのメツセージの1つを受取る(ステップ653)。
4)サーバー・プロセスが、クライエントとサーバーと
のファイルに関する知識を同期化させる、fsync等
の、いくつかの動作の1つをを行う(ステップ654)
もし上記同期化事象の1つが起き、そしてiノードのフ
ァイル・サイズがサーバーのファイルの最右端のページ
内に含まれているか又はファイルの最右端のページの右
側にあれば(ステップ655)、iノード値はそのまま
残される(ステップ658)。もしそうでなければ、i
ノードのサイズは、最右端のページの最後のバイトにフ
ァイル終端を置くように調整される(ステップ656)
クライエントは、まだサーバーに送られていない変更さ
れた被キャッシュ・ページ有している可能性がある。従
って、revoke  tknメツセージ480(第4
E図)で返されたファイル・サイズは、サーバーの最右
端のページの右側にある可能性がある。
サーバーは、(クライエントの周期的同期化により発行
された)sync  attrメツセージを受取る時(
ステップ653)、又はrevoketknに対する応
答を受取る時(ステップ659)に、iノードのファイ
ル・サイズを更新する。
書込みトークンを有し且つファイルを変更するために書
込みを使用しているクライエントは、キャッシュ・オー
バーフローにより、ファイルの最右端のページを送信し
ている可能性がある。もしサーバーがこれを受取り、次
に周期的な同期化を行うと(ステップ651)、ステッ
プ655で決定されるようにこのページがファイル・サ
イズについてのサーバーの現在の記録よりも彼方のペー
ジである時は、それはファイル・サイズをこのページの
終りに移動する(ステップ656)。その後クライエン
トが、トークン取消し要求(ステップ659)、5yn
c  attr又はrsync要求(ステップ653)
によりファイル・サイズを送信する時、iノードのファ
イル・サイズは、サーバーに知られている最右端のペー
ジ内にある事が見出されるかもしれず(ステップ655
)、従ってそのままにされる(ステップ658)。この
動作は、ファイル・サイズを、最右端のページの終りの
値から減少させるかもしれない。
良好な実施例では、従来の書込みシステム・コールを用
いてファイルに対して操作を行っているクライエント・
プロセスは、書込みトークンを取得し書込みの進行とと
もにファイル・サイズを更新する事が期待される。もし
そのようにしているならば、get  attrにより
返されるファイル・サイズは常に最新のものになってい
る。クライエントは、ファイルの書込みトークンを取得
する事なく、単にget  bytes及びput−b
ytesを発行する事によって、マツプされたアクセス
により操作する事もある。この場合は、get  at
trにより返されるファイル・サイズは、最右端のバイ
トを含むサーバーの仮想メモリのページの終端にあり、
最も最近のサーバーの周期的な同期化の前にサーバーに
書込まれたクライエント・データのみがサイズに表われ
ている。
書込みトークンを保持しているクライエントが、システ
ム・コールによりファイルのサイズを変更する事を許さ
れた唯一のノードであるとしても、ファイルに対するマ
ツプされたアクセスは、他のクライエント又はサーバー
に、直接のメモリ参照によりファイルのサイズを変化さ
せる事を可能にする。ファイルを使用している全てのク
ライエントがファイル・サイズに関して合理的に最新の
状態を保持するために、ファイルを使用している全ての
クライエントは、5ync  attrメツセージ49
0を用いてファイルに関する属性情報をサーバーに周期
的に送信する。サーバーの現在計算されたファイルのサ
イズは、5ync  attrメツセージ490に対す
る応答中で返される。
従って、1つのクライエントにおけるファイル・サイズ
の変更は、このクライエントが5ync−attrメツ
セージを実行する時に、サーバーに伝達され、そしてフ
ァイルを使用している他のクライエントの各々がその後
そのファイルに関して5ync  attrメツセージ
490を実行する時に、各クライエントに伝達される。
ファイルの属性を照会するシステム・コール、例えば5
tatシステム・コールによって返されるような、ファ
イルの変更時刻の管理は、はぼファイル・サイズの管理
と同様である。もしクライエントが、ファイルの書込み
トークンを取得する事なく、専らput  bytes
を通じて動作するならば、そのファイル変更は、最終的
には、しかし即座ではなく、サーバー又は他のクライエ
ントにおいて実行されるシステム・コールによって返さ
れる変更時刻に反映される。
しかしながら、ファイルの書込みトークンを取得し且つ
適切に管理しているクライエントは、サーバー又は他の
クライエントにおけるシステム・コールによって返され
る変更時刻が、このクライエントによるファイルに対す
る変更を適切に反映している事を、保証される。
第7A図を参照すると、いくつかの事象を原因として、
サーバーが、ファイルの変更がファイル変更時刻に反映
される必要があるか否か見るために検査する。これらの
同期化事象は、下記のものである。
1)サーバーがファイルの周期的同期化を実行する(ス
テップ7o1)。
2)サーバーがファイルの最後のクローズを実行する(
ステップ702)。
3)サーバーが、クライエントとサーバーとのファイル
に関する知識を同期化させる、fsync等の、いくつ
かのメツセージのどれかを受取る(ステップ703)。
4)サーバー・プロセスが、クライエントとサーバーと
のファイルに関する知識を同期化させる、fsync等
の、いくつかの動作のどれかを実行する(ステップ70
4)。
同期化事象の1つが起きた時、サーバーは、それがpu
t  bytesを受取っているか、又は以前の同期化
事象以来何らかのローカル・プロセスによってファイル
に記憶が行われているかを見るために検査を行う(ステ
ップ705.70g)。
もしそうであれば、ファイルの変更時刻は、サーバーの
現在の時刻に更新される(ステップ706)。
もしクライエントが、ファイルの書込みトークンを保持
する事なくput  bytesによりファイルを変更
する事を選択すると、下記のシナリオが生じる。
1)クライエントAが、ファイルをオープンし、get
  bytesにより何らかのデータを取り出す。
2)クライエントAのプロセスが、取り出されたデータ
に記憶を行う。
3)クライエントBのプロセスがそのファイルに関して
get  attrを発行する。
4)クライエントAは書込みトークンを要求していない
ので、サーバーからクライエントAには何のメツセージ
も送られない。
5)サーバーは、クライエントAがファイルを変更した
事に気付かず、従ってget  attr中にオープン
前の変更時刻を返す。
上記の可能性を避けるために、クライエントは、ファイ
ルの書込みトークンを使用して、それらの変更の全てが
第7B図に示すようにget  attrによって返さ
れる変更時刻中に反映されるようにする事ができる。書
込みトークンは、下記のルールに従って変更時刻を管理
するために使われる。
1)サーバーが、ファイルに関する変更カウントを記憶
している(ステップ710)。
2)クライエントがget  tknにより書込みトー
クンを要求する時(ステップ711)、変更カウントが
応答中に返される(ステップ712)。
3)クライエントが、後続のget  attrの変更
時刻中にファイルの変更が反映される事を確証したい時
、クライエントは変更を行う時に変更カウントを増計数
する(ステップ713)。例えば、書込み(2)システ
ム・コールは、変更カウントを増計数する。
4)変更カウントは、5ync  attr、  cl
ose、及びrevoke  tknに対する応答に応
じて、サーバーに返される(ステップ716)。以前に
説明したように、サーバーがgetattrを処理する
時、それは、書込みトークンを保持するクライエントに
非パージングrevoke  tknを送る(ステップ
715)。
5)ファイルの書込みトークンを保持しているノードか
らサーバーが変更カウントを受取る時、それがどのよう
に到着したかに無関係に、サーバーはそれを、記憶して
いるカウントと比較する(ステップ718)。もし受取
ったカウントが記憶しているカウントよりも大きい場合
(ステップ719)、受取ったカウントが記憶カウント
になり、変更時刻はサーバーの現在の時刻にセットされ
る(ステップ720)。そうでない場合、受取ったカウ
ントは破棄される(ステップ721)。
従って、以前のシナリオは次のようになる。
1)クライエントAが、ファイルをオープンし、書込み
トークンを得るためにget  tknを発行する(ス
テップ711)。そしてget  bytesにより何
らかのデータを取り出す。
2)クライエントAのプロセスが書込み(2)システム
・コールを発行する。これは、書込みトークンの変更カ
ウントを増計数させる(ステップ713)。
3)クライエントBのプロセスがファイルに対してge
t  attrを発行する(ステップ714)。
4)サーバーが、クライエントAに非パージングrev
oke  tknを発行する(ステップ715)。返さ
れた変更カウントは、サーバーが記憶しているカウント
よりも大きいので、記憶されたカウントは更新され、サ
ーバーの現在の時刻がget  attr中の変更時刻
として返される(ステップ722.723)。
このシナリオでは、クライエントAが書込みトークンを
使用する事により、その変更がget−attrにより
報告される。
少しの例外があるが、ファイルのアクセス時刻の取扱い
は、変更時刻の取扱いと類似である。それらの例外は、
以下説明する。
1つだけの書込みトークンしか存在しなければ、サーバ
ーは1つだけの変更カウントを記憶するだけでよいかも
しれない。しかしながら、複数のクライエント・ノード
が存在し、各々が読取りトークンを保持していることが
ある。従って、サーバーは、各読取りトークン毎にアク
セス・カウントを記憶しなければならない。
サーバーがget  attrを受取る時、それは、書
込みトークンの保持者に非パージング型のrevoke
  tknを発行する。これは、ファイルのクライエン
ト変更の学習を可能にする。アクセス時刻に関する類似
の動作は、サーバーが非パージングrevoke  t
knを読取りトークンの保持者に発行する事を要求する
。しめルながら、2つの場合の間には相違点が存在する
。第一に、多くのクライエント・ノードが読取りトーク
ンを保持している可能性がある。revoke−tkn
メツセージをこれらのクライエントの各々に送る事は高
く付くであろう。第二に、ファイルが変更されたか否か
は、ファイルがアクセスされたか否かよりも重要な情報
である。
これらの理由により、及びget  attrは比較的
頻繁な要求であるという事実を考慮して、プロトコルは
、読取りトークンの保持者がgetattrに対するサ
ーバーの応答の一部としてポーリングされる事を要求し
ない。クライエント及びサーバーの周期的な同期化動作
は、システム・コールを介するアクセスを、(クライエ
ント及びサーバーの周期的な同期化の頻度に依存して)
最終的にアクセス時刻属性中に現れさせる。ファイルの
読取りトークンの利点を伴わない、get−bytes
によるアクセスは、アクセス時刻属性中に反映されない
上述のように、ファイル属性は、読取り及び書込みトー
クン中に保持されている。ファイル・・サイズ及び変更
時刻属性は書込みトークン中に保持され、アクセス時刻
属性は読取りトークン中に保持される。読取り及び書込
みトークン中にファイル属性を保持する事は、読取り及
び書込み動作を実行しているプロセスにとって有用であ
る。プロセスは、書込みトークンを取得する必要がなく
、マツプされたアクセスを通してファイルを拡張し、そ
れによってファイル・サイズ属性を変化させ且つ時刻属
性を変更するので、ファイル・サイズ属性は、トークン
中に記憶されるだけでなく、ファイルの最右端のページ
にも記憶される。ファイルの最右端のページは、ファイ
ルのサイズとは異なっている事がある。ファイルの最右
端のページは、仮想メモリ・マネジャによって知られて
いる。仮想メモリ・マネジャは、ファイルの正確なサイ
ズは知らないが、ファイルの最右端のページは知ってい
る。従って、プロセスは、ファイルの最右端のページを
延長する仮想メモリ・マネジャによってファイルを拡張
する事ができ、又プロセスは書込みトークンを通じてフ
ァイルに書込み且つファイルを拡張する事ができる。
サーバーは、クライエントにおける書込みトークン内に
含まれる情報と最右端のページからの情報とを組合せて
、これらのファイル属性を要求する他のクライエントか
らの要求に応答して、ファイルの現在のサイズに到達す
る。
マツプされたアクセスを通じてファイルを拡張するプロ
セスは、そのプロセスによりファイルがクローズされる
時に最右端のページを通じて、又は周期的な同期化動作
により、ファイルのサイズをサーバーに返す。
全てのクライエントは、put  bytesメツセー
ジを用いて変更されたデータをサーバーに周期的に送ら
なければならない。これは、サーバーに、クライエント
がファイルを拡張した時を知る事を可能にする。次に、
サーバーは、この情報を用いてファイルに関するiノー
ド・データ構造を更新する。
もしクライエントがサーバーに最新の属性を要求すると
、サーバーは、トークン中に記憶された属性値に関する
現在の情報を求めてトークンを有するクライエントに要
求を送る。クライエントからの属性取得要求に応答して
、サーバーは、書込みトークンを保持しているクライエ
ントにトークン取消しメツセージを送る。このトークン
取消しメ・ンセージは、クライエントに書込みトークン
を失なわせない特別なトークン取消しメツセージである
。その代りに、クライエントは、書込みトークンを保持
しながら、ファイル属性を有する書込みトークンのコピ
ーをサーバーに送る。次に、サーバーは、書込みトーク
ンからのこの情報及び最右端のページを使用して、別の
クライエントからの属性取得要求に答える。
下記の事象のどれかが起きると、サーバーのファイル・
サイズ属性が調整される。もしサーバーがファイルの周
期的同期化、ファイルの最終のクローズ、又はf  5
ync要求を実行するならば、サーバーはファイル属性
のサイズを最右端のページに調整する。
F0発明の効果 本発明によれば、サイズ、最後の変更の時刻、及び最後
のアクセスの時刻等のファイル属性が分散処理環境中の
全てのクライエントにおいて正確であり且つ利用可能で
あるように維持される。又、その維持管理は、不当なオ
ーバーヘッド、性能コスト及びネットワーク・トラフィ
ックなしに行われる。
【図面の簡単な説明】
第1図は本発明の分散データ処理システム中のクライエ
ントデータ処理システムとサーバーデータ処理システム
を示す図、 第2A図はシステム・コールを通うてファイルにアクセ
スする事に関して従来技術のスタンドアローンのデータ
処理システムを示すブロック図、第2B図はマツプ式の
ファイル・アクセスを示す従来技術のスタンドアローン
のデータ処理システムを示すブロック図、 第3図はシステム・コールを通じてファイルにアクセス
する第2図のデータ処理システムの流れ図、 第4A〜4工図は種々のメツセージのデータ構造を示す
図、 第5図は従来技術で知られている分散データ処理システ
ムのブロック図、 第6A図は2つのクライエントが同じデータに書込み許
可を要求する時のノード間メツセージの系列を示す流れ
図、 第6B図は他のクライエントが変更を行っているファイ
ルの属性をあるクライエントが要求する時の流れ図、 第6C図は1つのクライエントがファイルに対して読取
り又は読み書きの許可を要求し、且つ他のクライエント
がファイルの属性を要求する時に、サーバーが最新のフ
ァイル属性を維持する手続きを示す流れ図、 第6D図はサーバーに記憶されているファイル・サイズ
を仮想メモリ・マネジャの最右端のページと矛盾のない
ようにする、サーバーでの動作を示す流れ図、 第7A図はサーバーにファイルの変更時間を更新させる
事象を示す流れ図、 第7B図はクライエントがファイルに書込みを行う時に
サーバーが最新のファイル変更時間を維持する手続きを
示す流れ図である。

Claims (25)

    【特許請求の範囲】
  1. (1)通信手段により少なくとも1つのクライエント・
    データ処理システムに接続されたサーバー・データ処理
    システムに存在するファイルの第1のファイル・サイズ
    を維持する方法であって、上記少なくとも1つのクライ
    エント・データ処理システムにおいてファイル・サイズ
    を変更する能力と共に第2のファイル・サイズを維持す
    るステップと、 上記少なくとも1つのクライエント・データ処理システ
    ムによって上記第2のファイル・サイズを変更するステ
    ップと、 サーバー・データ処理システムによって、上記クライエ
    ント・データ処理システムからの上記第2のファイル・
    サイズを、サーバー・データ処理システムにおける上記
    第1のファイル・サイズと組合せて最新のファイル・サ
    イズ値を決定するステップとを含む方法。
  2. (2)サーバー・データ処理システムによって、上記最
    新のファイル・サイズを決定する前に、上記少なくとも
    1つのクライエント・データ処理システムの少なくとも
    1つから上記第2のファイル・サイズに関する情報を取
    得するステップを含む請求項1に記載の方法。
  3. (3)サーバー・データ処理システムから少なくとも1
    つのクライエント・データ処理システムの少なくとも1
    つに送られた要求に応答して上記第2のファイル・サイ
    ズを受け取るステップを含む請求項2に記載の方法。
  4. (4)クライエント・データ処理システムがクライエン
    ト・データ処理システムで変更されたデータを周期的に
    サーバー・データ処理システムに書込む時に、上記少な
    くとも1つのクライエント・データ処理システムの少な
    くとも1つから上記第2のファイル・サイズを受け取る
    ステップを含む請求項2に記載の方法。
  5. (5)クライエント・データ処理システムが周期的な同
    期化動作を行う時に、上記少なくとも1つのクライエン
    ト・データ処理システムの少なくとも1つから上記第2
    のファイル・サイズを受け取るステップを含む請求項2
    に記載の方法。
  6. (6)最新のファイル・サイズ値を決定する前に上記第
    2のファイル・サイズに関する上記要求を上記少なくと
    も1つのクライエント・データ処理システムの少なくと
    も1つが受け取るべき事をサーバー・データ処理システ
    ムに通知するステップを含む請求項2に記載の方法。
  7. (7)上記クライエント・データ処理システムが上記要
    求を受け取るべき事を示すためにトークンを使用し、上
    記トークンは、上記クライエント・データ処理システム
    がファイルに書込む許可を要求する時に上記クライエン
    ト・データ処理システムによって上記サーバー・データ
    処理システムから要求される、請求項6に記載の方法。
  8. (8)上記少なくとも1つのクライエント・データ処理
    システムに上記決定された最新のファイル・サイズ値を
    送るステップを含む請求項2に記載の方法。
  9. (9)上記少なくとも1つのクライエント・データ処理
    システムに上記決定された最新のファイル・サイズ値を
    送るステップを含む請求項5に記載の方法。
  10. (10)上記少なくとも1つのクライエント・データ処
    理システムにおいて、仮想メモリのアクセスを通じて及
    びシステム・コールのアクセスを通じて、上記ファイル
    ・サイズを変更する能力と共に上記第2のファイル・サ
    イズを維持する請求項1に記載の方法。
  11. (11)最右端の仮想メモリ・ページ内に含まれるファ
    イル終端を通じて最新のファイル・サイズ値を決定する
    請求項11に記載の方法。
  12. (12)サーバー・データ処理システムにおいて、少な
    くとも1つのクライエント・データ処理システムから受
    け取ったファイル・サイズに関する要求に応答して最新
    のファイル・サイズを決定し、上記最新のファイル・サ
    イズ値を上記少なくとも1つのクライエント・データ処
    理システムに返す請求項1に記載の方法。
  13. (13)サーバー・データ処理システムにより、上記少
    なくとも1つの属性の上記最新の値の決定を行う前に上
    記少なくとも1つのクライエント・データ処理システム
    に上記ファイル・サイズに関する少なくとも1つの要求
    を送る事によって、上記少なくとも1つのクライエント
    ・データ処理システムから上記ファイル・サイズに関す
    る情報を受け取る請求項1に記載の方法。
  14. (14)通信手段を介して少なくとも1つのクライエン
    ト・データ処理システムに接続されたサーバー・データ
    処理システムに存在するファイルの第1のファイル・サ
    イズを維持する方法であって、サーバー・データ処理シ
    ステムからファイルに書込む許可を受けている上記クラ
    イエント・データ処理システムの1つにより、上記書込
    み許可と共にファイルの第2のファイル・サイズ維持す
    るステップと、 上記クライエント・データ処理システムが上記ファイル
    を変更する時に、上記第2のファイル・サイズを更新す
    るステップと、 ファイルに関する書込み許可を有しているクライエント
    ・データ処理システムからの情報及びファイルの最右端
    のページを組合せて、サーバー・データ処理システムに
    より、最新のファイル・サイズを決定するステップとを
    含む方法。
  15. (15)ファイルへのマップ式アクセスを有している上
    記クライエント・データ処理システムの1つにより、サ
    ーバー・データ処理システムへ、ファイルに対する変更
    を周期的に送り、クライエント・データ処理システムが
    マップ式アクセスによりファイルを拡張した時にサーバ
    ー・データ処理システムが該拡張を知りうるようにした
    請求項14に記載の方法。
  16. (16)上記組合せのステップが、上記クライエント・
    データ処理システムの1つによるファイル・サイズに関
    する要求に応答してサーバー・データ処理システムによ
    り実行される請求項14に記載の方法。
  17. (17)サーバー・データ処理システムにおいて、サー
    バーが周期的なファイルの同期化動作を実行する場合に
    ファイルの最右端のページに対応するように最新のファ
    イル・サイズを調整するステップを含む請求項14に記
    載の方法。
  18. (18)サーバー・データ処理システムにおいて、ファ
    イルの最後のクローズの後で、ファイルの最右端のペー
    ジに対応するように最新のファイル・サイズを調整する
    ステップを含む請求項14に記載の方法。
  19. (19)サーバー・データ処理システムにおいて、上記
    クライエント・データ処理システムの1つにおける全て
    の変更をサーバー・データ処理システムに記憶する要求
    中に、ファイルの最右端のページに対応するように最新
    のファイル・サイズを調整するステップを含む請求項1
    4に記載の方法。
  20. (20)調整ステップがf_sync動作中に実行され
    る請求項19に記載の方法。
  21. (21)通信手段により少なくとも1つのクライエント
    ・データ処理システムに接続されたサーバー・データ処
    理システムに存在するファイルの変更時刻を維持する方
    法であって、 サーバー・データ処理システムにより、ファイルに関す
    る変更カウント及び対応する変更時刻を追跡するステッ
    プと、 書込み許可を有するクライエント・データ処理システム
    により、クライエント・データ処理システムがファイル
    を変更する時に変更カウントを増計数するステップと、 クライエント・データ処理システムから、サーバー・デ
    ータ処理システムへ、周期的な同期化動作時に変更カウ
    ントを送るステップと、 サーバー・データ処理システムにより、上記送られた変
    更カウントと上記追跡された変更カウントとを比較して
    、クライエント・データ処理システムが書込み許可を有
    している間にファイルが変更されたか否かを判定するス
    テップと、 サーバー・データ処理システムにより、上記比較結果か
    らファイルが変更されたと判定された場合、対応する上
    記追跡された変更時刻を上記送られた変更時刻に更新す
    るステップとを含む方法。
  22. (22)通信手段により少なくとも1つのクライエント
    ・データ処理システムに接続されたサーバー・データ処
    理システムにおけるファイルの変更時刻を維持する方法
    であって、クライエント・データ処理システムによりフ
    ァイルに書込むためのサーバー・データ処理システムか
    らの許可と共に変更カウント及び対応する変更時刻を維
    持するステップと、 サーバー・データ処理システムによりファイルに関する
    変更カウントを追跡するステップと、書込み許可を有す
    るクライエント・データ処理システムにより、クライエ
    ント・データ処理システムがファイルを変更した時に変
    更カウントを増計数するステップと、 クライエント・データ処理システムからサーバー・デー
    タ処理システムへ、サーバー・データ処理システムから
    の要求に応じて変更カウントを送るステップと、 サーバー・データ処理システムにより、上記送られた変
    更カウントと上記追跡された変更カウントとを比較して
    、クライエント・データ処理システムが書込み許可を有
    している間にファイルが変更されたか否かを判定するス
    テップと、 サーバー・データ処理システムにより、上記比較結果か
    らファイルが変更されたと判定された場合、上記追跡さ
    れた変更時刻を上記送られた変更時刻に更新するステッ
    プとを含む方法。
  23. (23)通信手段により少なくとも1つのクライエント
    ・データ処理システムに接続されたサーバー・データ処
    理システムにおけるファイルのアクセス時刻を維持する
    方法であって、 少なくとも1つのクライエント・データ処理システムの
    1つによりファイルを読取るためのサーバー・データ処
    理システムからの許可と共にクライエント・アクセス時
    刻を維持するステップと、読取り許可を有するクライエ
    ント・データ処理システムにより、クライエント・デー
    タ処理システムがファイルにアクセスした時にクライエ
    ント・アクセス時刻を増計数するステップと、 読取り許可を有する上記クライエント・データ処理シス
    テムの各々から、サーバー・データ処理システムへ、対
    応するクライエント・アクセス時刻を送るステップと、 サーバー・データ処理システムにより、上記送られたク
    ライエント・アクセス時刻とサーバー・データ処理シス
    テムにおける記録されたアクセス時刻とを比較して、ク
    ライエント・データ処理システムが読取り許可を有して
    いる間にファイルがアクセスされたか否かを判定するス
    テップと、サーバー・データ処理システムにより、上記
    比較結果からファイルがアクセスされたと判定された場
    合、上記記録されたアクセス時刻を上記送られたクライ
    エント・アクセス時刻に更新するステップとを含む方法
  24. (24)周期的に送信するステップが、読取り許可を有
    するクライエント・データ処理システムの各々により、
    sync_attrメッセージを通じて実行される請求
    項23に記載の方法。
  25. (25)通信手段を介して少なくとも1つのクライエン
    ト・データ処理システムに接続可能なサーバー・データ
    処理システムに存在するファイルの第1のファイル・サ
    イズを維持する手段を有するサーバー・データ処理シス
    テムで使用されるコンピュータ・プログラム製品であっ
    て、 サーバー・データ処理システムからファイルに書込む許
    可を受けている上記クライエント・データ処理システム
    の1つから、上記書込み許可と共に上記クライエント・
    データ処理システムにより維持され且つ上記クライエン
    ト・データ処理システムがファイルを変更する時に更新
    可能な第2のファイル・サイズを要求する手段と、 マップ式アクセスによりファイルを拡張している上記少
    なくとも1つの上記クライエント・データ処理システム
    からファイルの最右端のページを周期的に受け取る手段
    と、 サーバー・データ処理システムにより、ファイルに関し
    て書込み許可を有しているクライエント・データ処理シ
    ステムから第2の更新可能なファイル・サイズと、ファ
    イルの最右端のページとを組合せて、上記サーバー・デ
    ータ処理システムで維持されている最新のファイル・サ
    イズを決定する手段とを含むコンピュータ・プログラム
    製品。
JP2123213A 1989-05-15 1990-05-15 分散データ処理システムにおけるフアイル属性の管理方式 Expired - Lifetime JPH073658B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US352090 1989-05-15
US07/352,090 US5113519A (en) 1989-05-15 1989-05-15 Maintenance of file attributes in a distributed data processing system

Publications (2)

Publication Number Publication Date
JPH035848A true JPH035848A (ja) 1991-01-11
JPH073658B2 JPH073658B2 (ja) 1995-01-18

Family

ID=23383759

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2123213A Expired - Lifetime JPH073658B2 (ja) 1989-05-15 1990-05-15 分散データ処理システムにおけるフアイル属性の管理方式

Country Status (5)

Country Link
US (1) US5113519A (ja)
EP (1) EP0398494B1 (ja)
JP (1) JPH073658B2 (ja)
BR (1) BR9002251A (ja)
DE (1) DE69031926T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997041835A1 (de) 1996-05-02 1997-11-13 Merck Patent Gmbh Geschmacksverbesserung von arzneimittelwirkstoffen

Families Citing this family (153)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5261051A (en) * 1989-08-14 1993-11-09 Microsoft Corporation Method and system for open file caching in a networked computer system
US5237680A (en) * 1990-09-27 1993-08-17 Sun Microsystems, Inc. Method for incremental rename propagation between hierarchical file name spaces
US5673394A (en) * 1990-10-31 1997-09-30 Microsoft Corporation Method of sharing memory between an operating system and an application program
US5426747A (en) 1991-03-22 1995-06-20 Object Design, Inc. Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system
JP3064469B2 (ja) * 1991-04-19 2000-07-12 株式会社日立製作所 Cad部品管理システム
US5295262A (en) * 1991-05-16 1994-03-15 International Business Machines Corporation Read-only access without blocking via access vectors
US5940504A (en) * 1991-07-01 1999-08-17 Infologic Software, Inc. Licensing management system and method in which datagrams including an address of a licensee and indicative of use of a licensed product are sent from the licensee's site
FR2683108A1 (fr) * 1991-10-28 1993-04-30 Hornus Jean Claude Procede de communication reliant un nombre limite ou non limite de sites en une liaison interactive reelle ou virtuelle.
US5388255A (en) * 1991-12-19 1995-02-07 Wang Laboratories, Inc. System for updating local views from a global database using time stamps to determine when a change has occurred
JPH05233570A (ja) * 1991-12-26 1993-09-10 Internatl Business Mach Corp <Ibm> 異オペレーティング・システム間分散データ処理システム
WO1993024890A1 (en) * 1992-06-03 1993-12-09 Pitts William R System for accessing distributed data cache channel at each network node to pass requests and data
US5611049A (en) * 1992-06-03 1997-03-11 Pitts; William M. System for accessing distributed data cache channel at each network node to pass requests and data
US6026452A (en) 1997-02-26 2000-02-15 Pitts; William Michael Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data
US5832511A (en) * 1992-06-11 1998-11-03 Beck Systems, Inc. Workgroup network manager for controlling the operation of workstations within the computer network
JP3252454B2 (ja) * 1992-06-30 2002-02-04 富士ゼロックス株式会社 共有データ変更状況把握装置
US5386559A (en) * 1992-07-16 1995-01-31 International Business Machines Corporation Variant domains and variant maps in a versioned database management system
JP3017892B2 (ja) * 1992-09-30 2000-03-13 株式会社東芝 ファイル管理装置
US5452447A (en) * 1992-12-21 1995-09-19 Sun Microsystems, Inc. Method and apparatus for a caching file server
US5493728A (en) * 1993-02-19 1996-02-20 Borland International, Inc. System and methods for optimized access in a multi-user environment
US5737536A (en) * 1993-02-19 1998-04-07 Borland International, Inc. System and methods for optimized access in a multi-user environment
JP2710550B2 (ja) * 1993-05-27 1998-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション データ記憶分散装置および方法
US5495603A (en) * 1993-06-14 1996-02-27 International Business Machines Corporation Declarative automatic class selection filter for dynamic file reclassification
US5630116A (en) * 1993-08-11 1997-05-13 Nec Corporation Automatic delivery system for master files in a distributed processing system
US5499358A (en) * 1993-12-10 1996-03-12 Novell, Inc. Method for storing a database in extended attributes of a file system
US5588147A (en) * 1994-01-14 1996-12-24 Microsoft Corporation Replication facility
US6119151A (en) * 1994-03-07 2000-09-12 International Business Machines Corp. System and method for efficient cache management in a distributed file system
US5644751A (en) * 1994-10-03 1997-07-01 International Business Machines Corporation Distributed file system (DFS) cache management based on file access characteristics
US5638443A (en) * 1994-11-23 1997-06-10 Xerox Corporation System for controlling the distribution and use of composite digital works
US5629980A (en) * 1994-11-23 1997-05-13 Xerox Corporation System for controlling the distribution and use of digital works
US6963859B2 (en) 1994-11-23 2005-11-08 Contentguard Holdings, Inc. Content rendering repository
US5634012A (en) * 1994-11-23 1997-05-27 Xerox Corporation System for controlling the distribution and use of digital works having a fee reporting mechanism
US5715403A (en) * 1994-11-23 1998-02-03 Xerox Corporation System for controlling the distribution and use of digital works having attached usage rights where the usage rights are defined by a usage rights grammar
US20050149450A1 (en) * 1994-11-23 2005-07-07 Contentguard Holdings, Inc. System, method, and device for controlling distribution and use of digital works based on a usage rights grammar
US6865551B1 (en) 1994-11-23 2005-03-08 Contentguard Holdings, Inc. Removable content repositories
JPH08263438A (ja) * 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
US7117180B1 (en) 1994-11-23 2006-10-03 Contentguard Holdings, Inc. System for controlling the use of digital works using removable content repositories
US6085234A (en) * 1994-11-28 2000-07-04 Inca Technology, Inc. Remote file services network-infrastructure cache
US5644768A (en) * 1994-12-09 1997-07-01 Borland International, Inc. Systems and methods for sharing resources in a multi-user environment
US5617568A (en) * 1994-12-14 1997-04-01 International Business Machines Corporation System and method for supporting file attributes on a distributed file system without native support therefor
US5832487A (en) * 1994-12-15 1998-11-03 Novell, Inc. Replicated object identification in a partitioned hierarchy
US5608903A (en) * 1994-12-15 1997-03-04 Novell, Inc. Method and apparatus for moving subtrees in a distributed network directory
US6110228A (en) * 1994-12-28 2000-08-29 International Business Machines Corporation Method and apparatus for software maintenance at remote nodes
EP0723230B1 (en) * 1995-01-23 2002-05-22 Compaq Computer Corporation A distributed data cache for cached multiprocessor system
US6760463B2 (en) 1995-05-08 2004-07-06 Digimarc Corporation Watermarking methods and media
US5956712A (en) * 1995-06-07 1999-09-21 International Business Machines Corporation Byte range locking in a distributed environment
US5713008A (en) * 1995-06-08 1998-01-27 Sun Microsystems Determination of working sets by logging and simulating filesystem operations
US5594863A (en) * 1995-06-26 1997-01-14 Novell, Inc. Method and apparatus for network file recovery
CA2223876C (en) * 1995-06-26 2001-03-27 Novell, Inc. Apparatus and method for redundant write removal
US5829023A (en) * 1995-07-17 1998-10-27 Cirrus Logic, Inc. Method and apparatus for encoding history of file access to support automatic file caching on portable and desktop computers
US6192365B1 (en) 1995-07-20 2001-02-20 Novell, Inc. Transaction log management in a disconnectable computer and network
US5991771A (en) * 1995-07-20 1999-11-23 Novell, Inc. Transaction synchronization in a disconnectable computer and network
US5918224A (en) * 1995-07-26 1999-06-29 Borland International, Inc. Client/server database system with methods for providing clients with server-based bi-directional scrolling at the server
US6006018A (en) * 1995-10-03 1999-12-21 International Business Machines Corporation Distributed file system translator with extended attribute support
US6044377A (en) * 1995-11-07 2000-03-28 Sun Microsystem, Inc. User-defined object type and method of making the object type wherein a file associated with a rule is invoked by accessing the file which generates code at run time
JP2000503154A (ja) 1996-01-11 2000-03-14 エムアールジェイ インコーポレイテッド デジタル所有権のアクセスと分配を制御するためのシステム
US5737523A (en) * 1996-03-04 1998-04-07 Sun Microsystems, Inc. Methods and apparatus for providing dynamic network file system client authentication
US5832512A (en) * 1996-04-15 1998-11-03 Sun Microsystems, Inc. Apparatus and method for file number re-mapping for disconnected operations in a client-server network
US5864837A (en) * 1996-06-12 1999-01-26 Unisys Corporation Methods and apparatus for efficient caching in a distributed environment
US6412017B1 (en) 1996-07-01 2002-06-25 Microsoft Corporation Urgent replication facility
US5905978A (en) * 1996-07-15 1999-05-18 Unisys Corporation Window size determination using fuzzy logic
US5878434A (en) * 1996-07-18 1999-03-02 Novell, Inc Transaction clash management in a disconnectable computer and network
US5919247A (en) * 1996-07-24 1999-07-06 Marimba, Inc. Method for the distribution of code and data updates
FI104599B (fi) * 1996-08-29 2000-02-29 Nokia Networks Oy Tapahtumien tallettaminen palvelutietokantajärjestelmässä
FI104597B (fi) * 1996-08-29 2000-02-29 Nokia Networks Oy Tapahtumien tallettaminen palvelutietokantajärjestelmässä
US5826021A (en) * 1996-09-17 1998-10-20 Sun Microsystems, Inc. Disconnected write authorization in a client/server computing system
US5778323A (en) * 1996-10-04 1998-07-07 Motorola, Inc. Method and apparatus for facilitating a recovery from a configuration error in a communication system
US6049809A (en) * 1996-10-30 2000-04-11 Microsoft Corporation Replication optimization system and method
US20060195595A1 (en) * 2003-12-19 2006-08-31 Mendez Daniel J System and method for globally and securely accessing unified information in a computer network
US5946690A (en) * 1996-12-17 1999-08-31 Inca Technology, Inc. NDC consistency reconnect mechanism
US6233684B1 (en) * 1997-02-28 2001-05-15 Contenaguard Holdings, Inc. System for controlling the distribution and use of rendered digital works through watermaking
US6173432B1 (en) * 1997-06-20 2001-01-09 Micron Technology, Inc. Method and apparatus for generating a sequence of clock signals
US6138251A (en) * 1997-06-30 2000-10-24 Sun Microsystems, Inc. Method and system for reliable remote object reference management
US6078952A (en) * 1997-08-01 2000-06-20 International Business Machines Corporation Method and apparatus for maintaining directory services for a video transmission network
US6990458B2 (en) * 1997-08-28 2006-01-24 Csg Systems, Inc. System and method for computer-aided technician dispatch and communication
US5924096A (en) * 1997-10-15 1999-07-13 Novell, Inc. Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand
WO1999023571A1 (en) * 1997-11-03 1999-05-14 Inca Technology, Inc. Automatically configuring network-name-services
US6029168A (en) * 1998-01-23 2000-02-22 Tricord Systems, Inc. Decentralized file mapping in a striped network file system in a distributed computing environment
US6604236B1 (en) 1998-06-30 2003-08-05 Iora, Ltd. System and method for generating file updates for files stored on read-only media
US6349399B1 (en) * 1998-09-03 2002-02-19 Micron Technology, Inc. Method and apparatus for generating expect data from a captured bit pattern, and memory device using same
US7068787B1 (en) 1998-10-23 2006-06-27 Contentguard Holdings, Inc. System and method for protection of digital works
US6470060B1 (en) 1999-03-01 2002-10-22 Micron Technology, Inc. Method and apparatus for generating a phase dependent control signal
US6859533B1 (en) 1999-04-06 2005-02-22 Contentguard Holdings, Inc. System and method for transferring the right to decode messages in a symmetric encoding scheme
US7356688B1 (en) 1999-04-06 2008-04-08 Contentguard Holdings, Inc. System and method for document distribution
US6937726B1 (en) 1999-04-06 2005-08-30 Contentguard Holdings, Inc. System and method for protecting data files by periodically refreshing a decryption key
US7286665B1 (en) 1999-04-06 2007-10-23 Contentguard Holdings, Inc. System and method for transferring the right to decode messages
US7634453B1 (en) 1999-08-13 2009-12-15 Storage Technology Corporation Distributed file data location
US6885748B1 (en) 1999-10-23 2005-04-26 Contentguard Holdings, Inc. System and method for protection of digital works
US7596563B1 (en) * 1999-10-28 2009-09-29 Hewlett-Packard Development Company, L.P. Computerized file system and method
US7028251B2 (en) * 2000-03-02 2006-04-11 Iora, Ltd. System and method for reducing the size of data difference representations
JP4086449B2 (ja) * 2000-04-28 2008-05-14 キヤノン株式会社 通信装置、通信方法及び記憶媒体
US20030196120A1 (en) * 2000-08-28 2003-10-16 Contentguard Holdings, Inc. Method and apparatus for automatic deployment of a rendering engine
US7073199B1 (en) 2000-08-28 2006-07-04 Contentguard Holdings, Inc. Document distribution management method and apparatus using a standard rendering engine and a method and apparatus for controlling a standard rendering engine
US6931545B1 (en) 2000-08-28 2005-08-16 Contentguard Holdings, Inc. Systems and methods for integrity certification and verification of content consumption environments
US7743259B2 (en) 2000-08-28 2010-06-22 Contentguard Holdings, Inc. System and method for digital rights management using a standard rendering engine
US6742028B1 (en) 2000-09-15 2004-05-25 Frank Wang Content management and sharing
JP2002105639A (ja) * 2000-09-25 2002-04-10 L'air Liquide Mocvd処理用の銅原料液及びその製造方法
US7343324B2 (en) * 2000-11-03 2008-03-11 Contentguard Holdings Inc. Method, system, and computer readable medium for automatically publishing content
US20020078170A1 (en) * 2000-12-15 2002-06-20 International Business Machines Corporation Method and system for minimizing network bandwidth bottlenecks
US6912294B2 (en) * 2000-12-29 2005-06-28 Contentguard Holdings, Inc. Multi-stage watermarking process and system
US7028009B2 (en) * 2001-01-17 2006-04-11 Contentguardiholdings, Inc. Method and apparatus for distributing enforceable property rights
US7206765B2 (en) * 2001-01-17 2007-04-17 Contentguard Holdings, Inc. System and method for supplying and managing usage rights based on rules
US6754642B2 (en) 2001-05-31 2004-06-22 Contentguard Holdings, Inc. Method and apparatus for dynamically assigning usage rights to digital works
US7774279B2 (en) * 2001-05-31 2010-08-10 Contentguard Holdings, Inc. Rights offering and granting
US8069116B2 (en) * 2001-01-17 2011-11-29 Contentguard Holdings, Inc. System and method for supplying and managing usage rights associated with an item repository
US20030220880A1 (en) * 2002-01-17 2003-11-27 Contentguard Holdings, Inc. Networked services licensing system and method
AU2002234254B2 (en) 2001-01-17 2005-04-21 Contentguard Holdings, Inc. Method and apparatus for managing digital content usage rights
US20030043852A1 (en) * 2001-05-18 2003-03-06 Bijan Tadayon Method and apparatus for verifying data integrity based on data compression parameters
US8001053B2 (en) * 2001-05-31 2011-08-16 Contentguard Holdings, Inc. System and method for rights offering and granting using shared state variables
US8275716B2 (en) * 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Method and system for subscription digital rights management
US8275709B2 (en) * 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US20030009424A1 (en) * 2001-05-31 2003-01-09 Contentguard Holdings, Inc. Method for managing access and use of resources by verifying conditions and conditions for use therewith
US8099364B2 (en) * 2001-05-31 2012-01-17 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US7222104B2 (en) * 2001-05-31 2007-05-22 Contentguard Holdings, Inc. Method and apparatus for transferring usage rights and digital work having transferrable usage rights
US7152046B2 (en) * 2001-05-31 2006-12-19 Contentguard Holdings, Inc. Method and apparatus for tracking status of resource in a system for managing use of the resources
US6973445B2 (en) * 2001-05-31 2005-12-06 Contentguard Holdings, Inc. Demarcated digital content and method for creating and processing demarcated digital works
US6976009B2 (en) 2001-05-31 2005-12-13 Contentguard Holdings, Inc. Method and apparatus for assigning consequential rights to documents and documents having such rights
US6895503B2 (en) * 2001-05-31 2005-05-17 Contentguard Holdings, Inc. Method and apparatus for hierarchical assignment of rights to documents and documents having such rights
US7725401B2 (en) * 2001-05-31 2010-05-25 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
US6876984B2 (en) 2001-05-31 2005-04-05 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
WO2002101494A2 (en) * 2001-06-07 2002-12-19 Contentguard Holdings, Inc. Protected content distribution system
US7853531B2 (en) * 2001-06-07 2010-12-14 Contentguard Holdings, Inc. Method and apparatus for supporting multiple trust zones in a digital rights management system
US7774280B2 (en) * 2001-06-07 2010-08-10 Contentguard Holdings, Inc. System and method for managing transfer of rights using shared state variables
AU2002312351B2 (en) * 2001-06-07 2006-11-30 Contentguard Holdings, Inc. Method and apparatus managing the transfer of rights
US6801989B2 (en) * 2001-06-28 2004-10-05 Micron Technology, Inc. Method and system for adjusting the timing offset between a clock signal and respective digital signals transmitted along with that clock signal, and memory device and computer system using same
US6944785B2 (en) * 2001-07-23 2005-09-13 Network Appliance, Inc. High-availability cluster virtual server system
US20040205587A1 (en) * 2001-08-07 2004-10-14 Draper Stephen P.W. System and method for enumerating arbitrary hyperlinked structures in which links may be dynamically calculable
US20030033303A1 (en) * 2001-08-07 2003-02-13 Brian Collins System and method for restricting access to secured data
US7203719B2 (en) 2001-08-22 2007-04-10 International Business Machines Corporation Method and system to measure distributed system's relative size
US7529778B1 (en) 2001-12-12 2009-05-05 Microsoft Corporation System and method for providing access to consistent point-in-time file versions
JP2003215880A (ja) * 2002-01-23 2003-07-30 Oki Data Corp カラー画像記録装置
US6922757B2 (en) * 2002-02-15 2005-07-26 Exanet Inc. Flexible and adaptive read and write storage system architecture
US7035860B2 (en) * 2003-01-17 2006-04-25 International Business Machines Corporation Trusted access by an extendible framework method, system, article of manufacture, and computer program product
US7512790B2 (en) * 2003-04-17 2009-03-31 International Business Machines Corporation Method, system and article of manufacture for management of co-requisite files in a data processing system using extended file attributes
US7168027B2 (en) * 2003-06-12 2007-01-23 Micron Technology, Inc. Dynamic synchronization of data capture on an optical or other high speed communications link
US7472254B2 (en) * 2003-10-10 2008-12-30 Iora, Ltd. Systems and methods for modifying a set of data objects
US7234070B2 (en) 2003-10-27 2007-06-19 Micron Technology, Inc. System and method for using a learning sequence to establish communications on a high-speed nonsynchronous interface in the absence of clock forwarding
US7617256B2 (en) * 2004-07-19 2009-11-10 Microsoft Corporation Remote file updates through remote protocol
US20060271493A1 (en) * 2005-05-24 2006-11-30 Contentguard Holdings, Inc. Method and apparatus for executing code in accordance with usage rights
US8316129B2 (en) 2005-05-25 2012-11-20 Microsoft Corporation Data communication coordination with sequence numbers
US7438078B2 (en) * 2005-08-05 2008-10-21 Peter Woodruff Sleeping bag and system
US7996366B1 (en) * 2005-10-13 2011-08-09 Cadence Design Systems, Inc. Method and system for identifying stale directories
WO2007133308A2 (en) * 2006-02-16 2007-11-22 United States Postal Service Centralized processing and management system
US8161111B2 (en) * 2006-03-27 2012-04-17 Packet Video, Corp System and method for identifying common media content
US7761424B2 (en) * 2006-08-10 2010-07-20 International Business Machines Corporation Recording notations per file of changed blocks coherent with a draining agent
KR100912870B1 (ko) * 2007-06-12 2009-08-19 삼성전자주식회사 컨텐츠 및 메타데이터의 무결성 보장 시스템 및 방법
JP2009027525A (ja) * 2007-07-20 2009-02-05 Nec Corp 光伝送システムおよび光伝送方法
US8190655B2 (en) * 2009-07-02 2012-05-29 Quantum Corporation Method for reliable and efficient filesystem metadata conversion
US8631277B2 (en) 2010-12-10 2014-01-14 Microsoft Corporation Providing transparent failover in a file system
US9331955B2 (en) 2011-06-29 2016-05-03 Microsoft Technology Licensing, Llc Transporting operations of arbitrary size over remote direct memory access
US8856582B2 (en) 2011-06-30 2014-10-07 Microsoft Corporation Transparent failover
US20130067095A1 (en) 2011-09-09 2013-03-14 Microsoft Corporation Smb2 scaleout
US8788579B2 (en) 2011-09-09 2014-07-22 Microsoft Corporation Clustered client failover
CN103914451B (zh) * 2012-12-30 2017-04-12 杭州新世纪电子科技有限公司 门户系统构建方法、信息处理方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4432057A (en) * 1981-11-27 1984-02-14 International Business Machines Corporation Method for the dynamic replication of data under distributed system control to control utilization of resources in a multiprocessing, distributed data base system
US4620276A (en) * 1983-06-02 1986-10-28 International Business Machines Corporation Method and apparatus for asynchronous processing of dynamic replication messages
US4558413A (en) * 1983-11-21 1985-12-10 Xerox Corporation Software version management system
US4621321A (en) * 1984-02-16 1986-11-04 Honeywell Inc. Secure data processing system architecture
US4825354A (en) * 1985-11-12 1989-04-25 American Telephone And Telegraph Company, At&T Bell Laboratories Method of file access in a distributed processing computer network
US4887204A (en) * 1987-02-13 1989-12-12 International Business Machines Corporation System and method for accessing remote files in a distributed networking environment
US4897781A (en) * 1987-02-13 1990-01-30 International Business Machines Corporation System and method for using cached data at a local node after re-opening a file at a remote node in a distributed networking environment
US4888726A (en) * 1987-04-22 1989-12-19 Allen-Bradley Company. Inc. Distributed processing in a cluster of industrial controls linked by a communications network
US5053945A (en) * 1988-10-06 1991-10-01 Alphatronix System and method for performing a multi-file transfer operation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997041835A1 (de) 1996-05-02 1997-11-13 Merck Patent Gmbh Geschmacksverbesserung von arzneimittelwirkstoffen

Also Published As

Publication number Publication date
EP0398494A2 (en) 1990-11-22
DE69031926D1 (de) 1998-02-19
JPH073658B2 (ja) 1995-01-18
BR9002251A (pt) 1991-08-13
EP0398494B1 (en) 1998-01-14
US5113519A (en) 1992-05-12
EP0398494A3 (en) 1991-10-30
DE69031926T2 (de) 1998-08-13

Similar Documents

Publication Publication Date Title
JPH035848A (ja) 分散データ処理システムにおけるフアイル属性の管理方式
US10185629B2 (en) Optimized remote cloning
US20200012568A1 (en) Scalable log-based continuous data protection for distributed databases
US5175851A (en) System and method for controlling client machine access to a portion of a file with a variable length
US10534681B2 (en) Clustered filesystems for mix of trusted and untrusted nodes
US10853182B1 (en) Scalable log-based secondary indexes for non-relational databases
JP4297706B2 (ja) 記憶システム
JP4568115B2 (ja) ハードウェアベースのファイルシステムのための装置および方法
US6950833B2 (en) Clustered filesystem
US7483882B1 (en) Dynamic management of multiple persistent data stores
US7464116B2 (en) Method and apparatus for cloning filesystems across computing systems
US7593968B2 (en) Recovery and relocation of a distributed name service in a cluster filesystem
US20100174690A1 (en) Method, Apparatus and Computer Program Product for Maintaining File System Client Directory Caches with Parallel Directory Writes
US20030028514A1 (en) Extended attribute caching in clustered filesystem
JPH0561662B2 (ja)
JP2007018399A (ja) 条件別スナップショット取得方法及びシステム
JPH0564811B2 (ja)
JP2004280283A (ja) 分散ファイルシステム、分散ファイルシステムサーバ及び分散ファイルシステムへのアクセス方法
JP2003526156A (ja) 転送中のデータのブリッジ・ボリューム及び内部スナップショット・コピーを使用して、一次記憶装置と二次記憶装置との間でデータを転送する方法及びそのシステム
JPH1031612A (ja) 高度ファイル・サーバ
JPWO2004055675A1 (ja) ファイル管理装置、ファイル管理プログラム、ファイル管理方法およびファイルシステム
US8380806B2 (en) System and method for absolute path discovery by a storage virtualization system
EP0398493B1 (en) File extension by client processors in a distributed data processing system
JP3866448B2 (ja) ノード間共用ファイル制御方式
JP4005102B2 (ja) ゲートウェイ装置