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

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

Info

Publication number
JPH073658B2
JPH073658B2 JP2123213A JP12321390A JPH073658B2 JP H073658 B2 JPH073658 B2 JP H073658B2 JP 2123213 A JP2123213 A JP 2123213A JP 12321390 A JP12321390 A JP 12321390A JP H073658 B2 JPH073658 B2 JP H073658B2
Authority
JP
Japan
Prior art keywords
file
data processing
processing system
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.)
Expired - Lifetime
Application number
JP2123213A
Other languages
English (en)
Other versions
JPH035848A (ja
Inventor
ドナヴアン・ウイリアム・ジヨンソン
ステイブン・ポール・モーガン
トツド・アレン・スミス
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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)

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明は、通信リンクによって接続された複数のデータ
処理システムに関する。特に分散ネットワーク環境にお
けるローカル処理システムと遠隔処理システムとの間で
のファイルのアクセスに関する。
B.従来技術 第5図に示すように、分散ネットワーク環境1は、通信
リンク又はネットワーク3により接続された2以上のノ
ードA、B、Cから構成される。ネットワーク3は、ロ
ーカル・エリア・ネットワーク(LAN)又は広域ネット
ワーク(WAN)のどちらでもよい。
ノードA、B、Cには、ワークステーション等の処理シ
ステム10A、10B、10Cが存在しうる。これら処理システ
ム10A、10B、10Cの各々は、シングル・ユーザー・シス
テムでも又マルチ・ユーザー・システムでもよく、ネッ
トワーク3を用いて遠隔のノードに位置するファイルに
アクセスする能力を有している。例えば、ローカル・ノ
ードAの処理システム10Aは、各々遠隔ノードB、Cに
あるファイル5B、5Cにアクセスする事ができる。
本明細書において、用語「サーバー」は、ファイルが永
久的に保持できる形で記憶されている処理システムを示
すために使われ、用語「クライエント」は、そのファイ
ルにアクセスするプロセスを有する他の処理システムを
意味するために使われる。しかしながら、用語「サーバ
ー」は、あるローカル・エリア・ネットワーク・システ
ムで使われているような専用のサーバーを意味するもの
ではない。本発明が実施される分散サービス・システム
は、システム中の異なったノードで種々のアプリケーシ
ョンが走行し、それらがシステム中のどこに位置するフ
ァイルにもアクセスし得る真の分散システムである。
上述のように、以下説明する発明は、通信ネットワーク
中の分散データ処理システムに関するものである。この
環境において、ネットワーク中のノードの各処理装置
は、ファイルがどのノードにあっても、ネットワーク中
の全てのファイルにアクセスする事ができる。
分散データ処理システムを支援する他の方式も知られて
いる。例えば、IBMのAIXオペレーティング・システムに
関する分散サービスは、1987年2月13日に出願された米
国特許出願第014897号に開示されている。さらに、サン
・マイクロシステムズはネットワーク・ファイル・シス
テム(NFS)をリリースし、ベル研究所は、リモート・
ファイル・システム(RFS)を開発している。サン・マ
イクロシステムズのNFSは、S.R.Kleiman,“Vnodes:An A
rchitecture for Multiple File System Types in Sun
UNIX",Conference Proceedings,USENIX 1986 Summer Te
chnical Conference and Exhibition,pp.238-247;Russe
l Sandberg et al.,“Design and Implementation of t
he Sun Network File-systems",Conference Proceeding
s,USENIX 1985,pp.119-130;Dan Walsh et al.,“Overvi
ew of the Sun Network File Systems",pp.117-124;JoM
ei Chang,“Status Monitor Provides Network Locking
Service for NFS",JoMei Chang,“SunNet",pp.71-75;
及びBradley Taylor,“Secure Networking in the Sun
Environment",pp,28-36を含む一連の刊行物に記載され
ている。ATTのRFSは、Andrew P.Rifkin et al.,“RFS A
rchitectural Overview",USENIX Conference Proceedin
g,Atlanta,Georgia(June 1968),pp.1-12;Richard Ham
ilton et al.,“An Administrator′s View of Remote
File Sharing",pp.1-9;Tom Houghton et al.,“File Sy
stems Switch",pp.1-2;及びDavid J.Olander et al.,
“A Framework for Networking in System V",pp.1-8を
含む一連の刊行物に記載されている。
本発明が実施される分散サービス・システムの1つの特
徴であって、サン・マインロシステムズのNFSと異なる
点は、例えば、サンの方式が基本的に状態非保存の(st
ateless)サーバーを設計しようとした事である。これ
は、サーバーがクライエント・ノードに関する情報を記
憶しない事を意味している。情報としては、例えば、ど
のクライエント・ノードがサーバー・ファイルをオープ
ンしているか、又はクライエント・ノードがプロセスが
ファイルを読取り専用モード又は読み書きモードのどち
らでオープンしているかといった事である。そのような
実施形態はサーバーの設計を単純化する。というのは、
クライエントがサーバーの資源に対する要求を解放しよ
うとしている事をサーバーに適切に伝える事なしにクラ
イエントが故障したり又はオフライン状態になったりし
た時に生じるエラー回復状態を、サーバーが処理する必
要がないからである。
本発明が実施される分散サービス・システムの設計で
は、完全に異なった方式が取られた。より具体的には、
その分散サービス・システムは「状態保存式の(statef
ul)実現」として特徴付けられる。ここで述べるような
「状態保存式」サーバーは、そのファイルを誰が使用し
ているか、及びファイルがどのように使用されているか
についての情報を保持する。従って、サーバーは、クラ
イエントに関する蓄積された状態情報を廃棄できるよう
に、クライエントとの接触の喪失を検出する何らかの方
法を有していなければならない。ここで述べるキャッシ
ュ管理方式は、サーバーがそのような状態情報を保持し
なければ実現できない。
遠隔ノードをアクセスする時に出会う問題は、先ず、単
独で用いられるシステムがどのようにファイルにアクセ
スするかを調べる事によって良く理解できる。第2図に
示すノード10のような単独のシステムにおいて、ワーク
ステーション中のハード・ファイル又はディスク等の永
久的記憶装置2とユーザーのアドレス空間14との間で転
送されるデータをバッファするために、オペレーティン
グ・システム11中のローカル・バッファ12が使用され
る。オペレーティング・システム11中のローカル・バッ
ファ12は、ローカル・キャッシュ又はカーネル・バッフ
ァとも呼ばれる。
単独のシステムでは、カーネル・バッファ12はブロック
15に分割されている。これは、デバイス番号、及びデバ
イス内の論理ブロック番号により識別されている。読取
りシステム・コール16が発行される時、それは第3図の
ステップ101に示すようにファイル5のファイル記述子
及びファイル5内のバイト範囲と共に発行される。オペ
レーティング・システム11は、この情報を受取り、第3
図のステップ102に示すようにそれをデバイス番号及び
デバイス中の論理ブロック番号に変換する。もしブロッ
クがキャッシュ中にあれば(ステップ103)、データは
直接キャッシュから得られる(ステップ105)。キャッ
シュが、探しているブロックを保持していない場合(ス
テップ103)、データはキャッシュ中に読み込まれ(ス
テップ104)、その後キャッシュからデータが取得され
る(ステップ105)。
ディスク2から読取られたデータは、キャッシュ・ブロ
ック15が他の目的のために必要になるまで、キャッシュ
・ブロック中に保持される。従って、処理システム10上
で走行しているアプリケーション4からの連続した読取
り要求が、以前に読取ったのと同じデータに関する場合
は、ディスク2ではなくキャッシュ12にアクセスが行な
われる。キャッシュからの読取りは、ディスクからの読
取りよりも遥かに時間を要しない。
同様に、アプリケーション4から書込まれたデータは、
即座にディスク2上には保存されず、キャッシュ12に書
込まれる。これは、他の書込動作が同じブロックに対し
て行なわれる場合にディスクのアクセスを節約する。キ
ャッシュ12中の変更されたデータ・ブロックは、周期的
にディスク2に保存される。
AIXオペレーティング・システムを用いる単独のシステ
ムでのキャッシュの使用は、連続した読取りと書込みに
関してディスクのアクセスが不用になるので、システム
の全体的性能を改善する。全体的性能の改善は、永久的
記憶装置のアクセスがキャッシュのアクセスよりも低速
で且つより高価な事による。
上述のように、オペレーティング・システム中のローカ
ル・バッファは、単独のシステムでのファイルへのアク
セスの性能を改善するために使われる。これらローカル
・バッファは、高速メモリ中に保持されるが、ファイル
は通常、より低速のディスク・ドライブ等の永久的記憶
装置中に保持される。より大きなバッファ・キャッシュ
はデータ処理システムの性能を増強できる。これは、キ
ャッシュがシステムのファイルに属するデータをより多
く保持する事ができ、従って低速のディスク・ドライブ
を使用する必要性を減少させるからである。しかしシス
テムの物理的な高速メモリは、限定されたサイズしか持
たない。オペレーティング・システムのカーネル・バッ
ファのために物理的メモリの一定部分を区分して使用す
る代りに、システムのディスク・ファイルへのアクセス
を高速化するために、仮想記憶技術を使用できる。この
仮想記憶技術では、ディスクのブロックの固定したキャ
ッシュは存在しない。その代りに、データは、物理的メ
モリではなく仮想メモリ中にキャッシュされる。
仮想メモリは、利用可能な物理的メモリよりも大きなメ
モリ空間を提供する。この仮想メモリ空間は、複数ペー
ジに分割され、あたかも仮想メモリ空間が真の物理的メ
モリであるかのようにプログラムによって使用される。
システムの仮想メモリのページは、現実の物理的メモリ
のフレーム、ディスクのブロック、のいずれか、又はそ
の両方に存在している。仮想メモリ・ページが物理的フ
レーム中に存在しない時は、そのページを使用しようと
する試みは、ページ・フォールトとして知られる例外条
件を生じさせる。そのようなページを使用しようとする
プログラムは、ページ・フォールトを生成し、一時的に
停止させられる。その間に、仮想メモリのページが、現
在それが存在しているディスク・ブロックから検索さ
れ、物理的メモリ・フレームにコピーされる。仮想メモ
リ・ページが物理的フレームに割当てられた後、元のフ
ォールトを起こしたプログラムは継続する事を許され、
その仮想メモリ・ページ中のデータが利用可能である事
を見出すであろう。
仮想メモリによって提供される柔軟性を利用する1つの
方法は、プロセスがファイルをその仮想アドレス空間に
マップ(写像)する事を可能にする事である。このよう
にして、プロセスは、読取り又は書込みのシステム・コ
ールを実行する事なく、ファイルの内容にアクセスする
事ができる。ファイルの読取り及び書込みが実行される
が、それは、ファイルがマップされたアドレス空間内の
アドレスに対して実行されるプロセスのロード及びスト
ア(記憶)操作に応答して、仮想メモリ・マネジャによ
り実行される。例えば、100バイドの短いファイルが、4
800〜4899のアドレスの範囲にマップされたとする。プ
ロセスが記憶位置4805から1バイトをロードする時、プ
ロセスはそのファイル内のオフセット5のバイトを得る
であろう。プロセスが記憶位置4800にストアを行なう
時、プロセスはオフセット0の、即ちファイルの最初の
バイトの内容を変更するであろう。この事は、プロセス
が、読取り又は書込みのシステム・コールを行なう事な
く、ファイルの内容にアクセスしそれを変更する事を可
能にする。
第2B図に示すように、マップされたファイル92を含むメ
モリ・セグメント91に対するストアは、ファイル92を拡
張する可能性があるが、ファイル・システム論理93は各
ストア操作毎には呼出されない。従って、もしアプリケ
ーション94がファイルをマップし、ストア操作によりフ
ァイルを拡張する場合、iノード・データ構造95の中の
ファイル・サイズ属性は同期して更新される事はない。
任意の特定の瞬間には、ファイル・サイズについてのフ
ァイル・システムの意見(iノード中に記憶されたサイ
ズ)は、最も最近の仮想メモリの記憶内容と一致しては
いない。ファイル92に関する情報を含むデータ構造であ
るiノード95は、sync、fsync、close等のシステム・コ
ールにより、またオペレーティング・システム96により
実行される周期的なsync動作により最新状態にされる。
ファイルが従来のシステム・コール(例えば、書込み)
により変更される時、ファイル・システム論理93が起動
され、それはマップされたファイル記憶を使用して、フ
ァイルのデータを更新する。ファイル・システム論理93
は、システム・コールのパラメータによって、ファイル
に対して何が行なわれているかを知り、同期的にiノー
ド・データ構造95中のファイル・サイズを更新する。st
atシステム・コールは、現在のiノードのファイル・サ
イズ値を返すが、それは仮想メモリ・マネジャ97には照
会しない。その結果、もしファイル92が専らシステム・
コールによってのみ操作されていれば、iノード・デー
タ構造中に見出されるファイル・サイズ、及びstatよっ
て返されるファイル・サイズの値は、常に最新のもので
ある。しかし、もしファイルがマップされた記憶域によ
り操作されていれば、statにより返されるファイル・サ
イズは、最も最近の記憶の結果を反映していないかもし
れない。(システム・コールではなく)マップ式アクセ
スを使用するアプリケーション94は、statが最も最近の
変更を反映している事を保証したいならば、fsyncシス
テム・コールを発行する事ができる。もしアプリケーシ
ョンが、(システム・コールではなく)ストア操作を用
いてファイル92を拡張したならば、仮想メモリ・マネジ
ャ97はどのページがファイルの「最右端」のページかを
知っているが、そのページ内のどのバイトがファイルの
最後のバイトかは知らない。しかし、システム・コール
が使用されると、ファイル・システムは、バイトの粒状
性(granularity)を用いて、ファイル・サイズを知
る。
第5図に示すような、分散環境において、ローカル・ノ
ードCにある処理システム10CがノードAからファイル5
Aを読取る事ができる2つの方法がある。1つの方法で
は、処理システム10Cがファイル5A全体をコピーし、あ
たかもそれがノードCに存在するローカル・ファイル5C
であるかのように読取りを行なう。この方法のファイル
読取りは、もしファイル5Aがファイル5CとしてノードC
にコピーされた後で他のノードAの他の処理システム10
Aがファイル5Aを変更する場合に、問題を生じる。その
場合、処理システム10Cは、ファイル5Aに対するこれら
最新の変更にアクセスしないであろう。
ノードAのファイル5Aに処理システム10Cがアクセスす
る他の方法は、ノードCの処理システムが要求する時
に、1ブロック、例えばN1を読取る事である。この方法
に伴う問題は、あらゆる読取りが、ネットワーク通信リ
ンク3を経由して、ファイルが存在しているノードAに
行かなければならない事である。各連続した読取り毎に
データを送信するのは多大の時間を要する。
ネットワークを介してファイルにアクセスする事は、上
述のように2つの競合する問題を生じる。1つの問題
は、連続した読取りと書込みのためにネットワークを介
してデータを転送するのに必要な時間に関係している。
一方、もしネットワーク・トラフィックを減少させるた
めにファイルのデータがノードに記憶されるならば、フ
ァイルの整合性が失われる可能性がある。例えば、もし
幾つかのノードの1つがファイルに書込みも行なうと、
そのファイルにアクセスしている他のノードは、ちょう
ど書込まれた最新の変更されたデータにはアクセスしな
い可能性がある。従って、ノードが正しくなく且つ古く
なったファイルにアクセスする可能性があるという意味
で、ファイルの整合性が失われる。
分散環境中のファイルに属するデータを管理する困難性
に加えて、分散処理環境中でアクセスされるファイルの
属性を管理するという問題が存在する。ファイルは、頻
繁に変化する3つの重要な属性を有している。それは、
ファイル・サイズ、最後の変更の時刻、そしてファイル
への最後のアクセスの時刻である。プロセスがファイル
の終端にデータを付け加える毎に、最後の変更の時刻及
び最後のアクセスの時刻とともにファイル・サイズが変
化する。またファイルがプロセスにより読取られる毎
に、最後のアクセスの時刻が変化する。
この情報を正確に保持する1つの方法は、ファイル・サ
ーバーに情報を保持する事である。クライエントにより
ファイルがアクセスされる毎に又はファイル・サイズが
変更される毎に、クライエントは、サーバーにメッセー
ジを送って、サーバーに変更を通知する。クライエント
により属性が要求される毎に、クライエントはサーバー
に属性の値を要求するメッセージを送る。この解決方法
は正しいファイル属性を維持するが、クライエントでフ
ァイルが読取り又は書込みされる毎にサーバーとの間で
メッセージの送受信が必要なのでコストが余りに高くな
る。
一方、もし属性がクライエントの計算機に保持されるな
らば、分散環境中の他のクライエント及びサーバーは正
しい属性値を有しないであろう。複数のクライエントが
同時にファイルにアクセスする事があるので、矛盾のあ
る属性値が同時に種々のクライエントに存在する事もあ
りうる。
プロセスがファイルをその仮想アドレス空間にマップす
る事を許す事により、さらに付加的な複雑さが生じる。
これが行なわれると、プロセスは、読取り又は書込みの
等のシステム・コールを使う事なく、ファイルの内容を
操作し、おそらすそのサイズ及び最後のアクセス又は変
更の時刻を変更する事が可能である。このアクセスはロ
ード及びストア命令を通じて起きる。この種の状況で
は、オペレーティング・システムは、システム・コール
を用いた場合のようには、最後のアクセス時刻及び他の
ファイル属性を追跡する機会を持たない。同様に、プロ
セスが遠隔ファイルを仮想アドレス空間にマップする事
を許す分散環境でも、もし有用なファイル属性が保持さ
れるべきであれば、これらの複雑さが存在する。
C.発明が解決しようとする課題 従って、本発明の目的は、サイズ、最後の変更の時刻、
及び最後のアクセスの時刻等のファイル属性が分散処理
環境中の全てのクライエントにおいて正確であり且つ利
用可能であるように、それらのファイル属性を維持する
事である。
本発明の他の目的は、不当なオーバーヘッド、性能コス
ト及びネットワーク・トラフィックなしにファイル属性
を正確に維持する事である。
D.課題を解決するための手段 本発明のシステム及び方法は、ファイルの属性が関係プ
ロセスの全てに対して効率的且つ正確に分散されるよう
な形で、分散環境中のプロセスが、読取り及び書込み等
のシステム・コール、又はファイルをそれ自身のアドレ
ス空間にマップする機構のいずれを通じてもファイルに
アクセスする事を可能にするプロトコルを提供する。
ファイル・サイズ属性、変更時刻属性、及び最終アクセ
ス時刻属性等のファイルの属性は、各々別個に、そして
分散環境中の他に属性の各々とは独立に管理される。
ファイル・サイズ属性は、次のように管理される。読取
り又は書込みのシステム・コールを実行するクライエン
トは、ファイルの読取りトークンの1つ又はファイルの
書込みトークンを要求する事により、ファイルのサーバ
ーからそのようにする許可を取得する。ファイルに対す
る操作の実行の許可を与える事に加えて、トークンはフ
ァイルの現在のサイズも含んでいる。一時にただ1つの
クライエントだけしか書込みトークンを所有できないの
で、書込みトークンを有しているクライエントのプロセ
スだけがそのファイルに書込みを行なう事ができ、ファ
イル・サイズは書込みトークン中に保持できる。書込み
システム・コールによるファイル・サイズの変更は、書
込みトークン中に保持されているサイズを更新する事に
より反映できる。
ファイルをそれ自身の仮想アドレス空間にマップする事
を通じてファイルにアクセスするプロセスは、書込みト
ークンを取得する事なくファイルを拡張してサイズを変
更する事ができる。ファイル・サイズに対するこれらの
変更は、そのファイルに関するサーバーのサイズ情報が
時代遅れにならないように周期的にサーバーに伝達され
る。ネットワーク中のどこかのプロセスがファイル・サ
イズに興味を持つと、そのプロセスは、サーバーにget_
attrメッセージを送る。次に、サーバーは、書込みトー
クンを所有しているノードに質問し、それと、(ファイ
ルをマッピングする事によりファイルを拡張したプロセ
スを有しているクライエントから)サーバーが得た情報
とを組合せる。サーバーは、ファイルの現在のサイズに
関する最良の利用可能な情報を反映するファイル・サイ
ズを、要求を行なっているクライエントに返す。
変更時刻とアクセス時刻の保持は、既に述べたファイル
・サイズ属性の保持と同様に行われる。これらの属性は
読取り及び書込みトークン中に保持される。
変更時刻属性に関して、書込みトークンは、次のルール
に従って変更時刻属性を管理するために使われる。サー
バーは、ファイルに関する変更カウントを保持する。ク
ライエントが書込みトークンを取得する時、それは変更
カウントも取得する。クライエントがファイルを変更す
る時、クライエントは変更カウントを増計数する。ファ
イルが変更されたかどうかをサーバーが判定したい時、
サーバーは、特別の取消トークン・メッセージを送る。
これはクライエントに、変更カウントをサーバーに送り
返させる。サーバーは、クライエントからの変更カウン
ト(これは増計数されているかもしれない)をサーバー
の変更カウントと比較し、クライエントが書込みトーク
ンを有している間にファイルが変更されたか否かを判定
する。もしサーバーが、ファイルが変更されたと判定す
ると、サーバーは、変更時刻を現在の時刻に設定する。
最後にファイルがアクセスされた時をクライエントが知
る事はより重要ではない。多くのクライエントが読取り
トークンを有しているかもしれないので、読取りトーク
ンを有している各クライエントの最後のアクセスの時刻
を照会するのは余りに煩雑である。その代りに、要求を
行っているクライエントは、ただ、サーバーに、どこか
のクライエントによる最後のアクセスの時刻だけを照会
する。読取りトークンを有しているクライエントは、フ
ァイルへのアクセスについて定期的にサーバーに知らせ
るように要求されているので、サーバーは最後のアクセ
スの時刻を決定できる。
E.実施例 第4A図〜第4I図を参照すると、ここで使用されるノード
間メッセージが記載されている。
第4A図は、ファイルに関するサーバーの知識をクライエ
ントのものと同期させるために使われるf_syncメッセー
ジを示している。クライエントからのf_syncメッセージ
に応答して、サーバーはf_sync動作を実行する。f_sync
動作は、変更されているがまだ書込まれていない全ての
データを、サーバーが、サーバーのディスクに書込むよ
うにさせる。そうするために、サーバーは、未解決のフ
ァイル・トークンを取消し、クライエントの計算機上の
ファイルに付随するデータ・バイトを取消し、次に変更
されたデータ・バイトをディスクに書込ませるサーバー
でのローカルf_sync動作を実行する。もしクライエント
が書込みのためにファイルを以前にオープンして、まだ
クローズしていなければ、サーバーはただf_sync動作を
実行するだけである。opコード421、423は、どの動作が
実行されるかを示す。opコードの値は、各個々の動作に
関するメッセージとは独立である。ファイル・ハンドル
422は、サーバー計算機に存在するファイルを一意に識
別する値である。リターン・コード424は、要求された
動作の成功又は失敗を示す値である。
第4B図は、ファイルの属性を得るget_attrメッセージ43
0を示す。ファイル属性435は、アクセス時刻436、変更
時刻437、及びファイル・サイズ438等のファイルに関す
る情報を含んでいる。
第4C図は、ファイルからデータ・バイトを要求するget_
bytesメッセージ440を示している。オフセット441は、
要求されたデータの開始点を示すファイルのオフセット
である。長さ442は、要求されたバイトの数である。読
取り/書込みフラグ443は、クライエントが、データの
読取り専用のコピーを要求しているか又は書込み可能の
コピーを要求しているかを示すために使われる。R/Wフ
ラグの許された値は、もしクライエントがバイト範囲を
読取るだけの場合は0x0000であり、もしクライエントが
バイトを変更しうる場合は0x0001である。もしクライエ
ント・ノードが互換モードでファイルを以前にオープン
していて、まだクローズしていなければ、サーバーはge
t_bytes動作だけを実行する。もしR/Wフラグ443が読取
り専用であれば、クライエントはファイルを読取りのた
めにオープンさせたはずである。もしR/Wフラグ443が読
み書きであれば、クライエントはファイルを書込みのた
めにオープンさせたはずである。
get_bytesメッセージ440の応答において、NZオフセット
444は、初期(nascent)ゼロが存在するバイトが要求さ
れているファイル内のオフセットである(初期ゼロは、
本発明の関連出願に説明されている)。このフィールド
は、フィールドNZ長さがゼロよりも大きい時にのみ意味
を持つ。フィールドNZ長さ445は、初期ゼロのバイト数
であり、これはNZオフセット444から始まる。サーバー
は、要求者に返すためにNZオフセットを選択する。サー
バーは、常に初期ゼロの処置を行なわないように選択し
ても良く、このフィールドにゼロを返す事によってこの
事を示す。長さ446は、返されるデータの長さである。
データ447は、要求された実際のデータ・バイトであ
る。
第4D図は、サーバーからトークンを要求するためにクラ
イエントにより使用されるget_tknメッセージ450を示し
ている。トークン型451は、どの種類のトークンが要求
されているかを指定する。もし読取り専用トークンが要
求されているならば、許された値は0x0001であり、もし
読取り/書込みトークンが要求されているならば、0x00
02である。もしクライエント・ノードが以前にオープン
されていて且つまだクローズされていず、ファイルが互
換モードであれば、サーバーは単にget_tkn動作しか実
行しない。ファイル・サイズ452は、ファイルのサイズ
である。変更カウント453は、ファイルの変更を反映す
る、サーバーによって保持されている値である。アクセ
ス・カウント454は、ファイルへのアクセスを反映す
る、サーバーによって保持されている値である。
第4E図は、pu_bytesメッセージ460を示す。クライエン
トは、put_bytesメッセージ460を用いてサーバーに変更
データを返す。もしクライエントが以前にオープンを行
っていて且つまだクローズを行っていず、ファイルが書
込み用であれば、サーバーは単にput_bytes動作だけを
実行する。オフセット461は、長さ462のデータ・バイト
463が置かれるべきファイル内のオフセットである。
第4F図は、revoke_bytesメッセージ470を示す。このメ
ッセージは、get_bytesメッセージ440に対する応答の中
でクライエントに以前与えられたバイトを取消すために
ファイルのサーバーからクライエントに送られる。クラ
イエントは、オフセット471及び長さ472によって示され
るバイト範囲に関して、それが全てのクリーンなキャッ
シュされたデータ及び初期ゼロを廃棄し、全ての汚れた
データをサーバーに書込み応答を受取るまでは、応答を
送らない。クライエントが応答を送る時、それは、取消
されたバイト範囲に関するキャッシュされたデータを全
く有していないはずである。このメッセージは、取消し
範囲内に入る、以前に返された初期ゼロをクライエント
が使用する権利を取消す。revoke_bytesが処理される時
に未解決であったget_bytes要求により返された取消さ
れたバイト範囲内のどのデータ又は初期ゼロも、それら
が到着する時に取消されなければならない。クライエン
トは、要求されたよりも大きなバイト範囲を取消す事を
選択しても良く、又要求された範囲よりも大きな範囲中
に取消すものが存在しない事を判定できても良い。その
ような場合、応答オフセット473及び応答長さ474が、ク
ライエントがキャッシュされたページを持たない範囲を
示す。応答オフセット473及び応答長さ474は、少なくと
も、オフセット471及び長さ472によって示された範囲を
含まなければならない。
第4G図は、revoke−tknメッセージ480を示す。このメッ
セージは、get_tokenメッセージ450に応答してクライエ
ントが受取ったトークンを取消すために、サーバーから
クライエントに送られる。残留トークン型481は、クラ
イエントに残されるべきトークンの種類を特定する。許
される値は、クライエントが読取り専用トークンを保持
する場合、read_tkn 0x0001であり、クライエントが読
取り/書込みトークンを保持する場合、write_tkn 0x0
002であり、クライエントが何のトークンも保持しない
場合は、no_tkn0x000である。
ファイル・サイズ482は、データの変更後にクライエン
トから見たファイルのサイズである。
システムの状態に関するサーバーとクライエントとの間
の混乱を避けるために、次のルールに従わなければなら
ない。クライエントにおけるファイルに関するrevoke_t
kn480の処理は、そのファイルに関する未解決のget_tkn
450に対する応答が処理されるまで、延長される。
第4H図は、sync_attrメッセージ490を示す。このメッセ
ージは、ファイルの属性に対して同期化動作を実行す
る。トークン型491は、クライエントがどの種類のトー
クンを保持しているかを特定する。有効な値は次の通り
である。
クライエントが読取り専用トークンを保持するならば、
read_tkn 0x0001、クライエントが読取り/書込みトー
クンを保持するならば、write_tkn 0x0002である。
要求ファイル・サイズ493は、クライエントにおけるフ
ァイル・サイズである。応答ファイル・サイズ494は、
サーバーにおけるファイル・サイズである。応答変更カ
ウント495は、サーバーに記録された変更を反映する。
応答アクセス・カウント496は、サーバーに記録された
アクセスを反映している。システムの状態に関するサー
バーとクライエントとの間の混乱を避けるために、次の
ルールに従わなければならない。get_tkn動作及びsync_
attr動作は、クライエントにおいて直列化される。特定
のファイルに関するget_tkn要求は、そのファイルに関
する未解決のsync_attrが存在する間は、発行できな
い。
第4I図は、クライエントがサーバーにクローズ動作を知
らせるために使用されるcloseメッセージ410を示す。変
更カウント411は、クライエントにおける変更を反映す
る値である。アクセス・カウント412は、クライエント
でのアクセスを反映する値である。
第1図に示すような、本発明の良好な実施例では、第2A
図に示すような従来のカーネル・バッファ12を使う代り
に、キャッシュされたファイル・データを管理するため
に仮想メモリ・マネジャ33が使われる。さらに、本発明
の良好な実施例は、ファイルがアプリケーション34の仮
想記憶セグメント35にマップされる事を可能にする。し
かし、この良好な実施例は、ファイル・システム論理36
が仮想メモリ・マネジャ論理33と過度に干渉するのを避
けている。sync、fsync、ファイル・システムの定期的
なsync(これらはAIXオペレーティング・システムのシ
ステム・コールであり、「AIX Operating System Techn
ical Reference」に記載されているが、ディスク又は永
久的記憶装置上に存在すべきメモリ中の全ての情報を書
き出させる他のオペレーティング・システムのシステム
・コールにも適用可能である)、及びファイルの最後の
クローズの間に、iノード・データ構造26中のファイル
・サイズが次のルールに従って、セットされる。
もしiノードのファイル・サイズが最右端のページに含
まれているならば、iノードのファイル・サイズはその
ままにされる。そうでなければ、iノードのファイル・
サイズは最右端のページに終端にセットされる。
iノードのアクセス時刻及び変更時刻の属性は、同様
に、最も最近の仮想記憶の活動にルーズに結合してい
る。
第1図及び第6A図を参照すると、クライエント30は、フ
ァイルの終端を越えて記憶動作を行なう事によりファイ
ル25を拡張する事ができる。記憶動作を行なう記憶位置
にファイル中のページが存在しない事がクライエントで
起きる時、クライエントはサーバーにget_bytes要求440
を発行する事によってページに関するデータを得るよう
に強制される。get_bytes要求440は、ページ中に挿入さ
れたデータ・ブロックを返し、記憶動作はそのページ内
容を対象とする。またクライエントは、ファイルの終端
を越えて空間を予約しているかもしれない。この予約さ
れた空間への記憶動作は、サーバーにget_bytes要求が
発行される必要がない。クライエントがget_bytes440を
ファイルの終端で発行する時(ステップ601、602)、サ
ーバーは、クライエントがファイルの終端を越えて空間
を予約できる標識444、445(第4C図)(ステップ603)
を返してもよい(ステップ604、605)。この予約された
空間は、関連出願に開示されているように、初期ゼロと
呼ばれる。クライエントがこれらの初期ゼロに記憶動作
を行なう時、ファイルのサイズが増加する(ステップ60
6)。サーバー20は、クライエントがput_bytes460(第4
E図)を発行してデータをサーバーに書き戻す(ステッ
プ610、611)まで、ファイルの成長に気付かない。クラ
イエントは、データを書き戻すように一方的に決定して
もよく、又revoke_bytesメッセージ470(第4F図)によ
り、そうする事を命令されてもよい。このメッセージ
は、他のプロセスが同じデータを要求する(ステップ60
7)事が原因となって、サーバー20からクライエント30
が受け取る(ステップ608、609)。この他のプロセス
は、revoke_bytes要求470に対する応答がサーバーに到
着した(ステップ614、615)後で、このデータを使用す
る事が許される。ステップ614で、クライエント30は、
ステップ612、613のput_bytesの応答を受け取った後
に、revoke_bytes応答470を送信する。
第6B図を参照すると、クライエントが、ファイルの属性
を照会するためにstat動作を実行する時、stat動作は、
get_attr要求430がファイルのサーバーに送られる原因
になる。get_attrにより返される構造体中の要素の1つ
は、ファイルのサイズ436(第4B図)である。次のシナ
リオを考察する。
1.クライエントAが、get_bytes応答440を受け取り、フ
ァイル終端の初期ゼロに記憶動作を行う(ステップ61
6、617、618)。クライエントは、サーバーに新しいフ
ァイル・データを送り返していない。
2.クライエントBが、そのファイルに関するget_attr
430を発行する(ステップ619、620)。
もし厳密な正確さが必要であれば、サーバーは、クライ
エントBのget_attr430に応答する(ステップ629、63
0)前に、ファイル終端の初期ゼロに記憶動作が行なわ
れたか否かを判定するためにクライエントAにrevoke_b
ytes470を発行しなければならない(ステップ621、62
2)。get_attr430中で返されるファイル・サイズ436
(第4B図)が、最も最近のクライエントの記憶動作を正
確に反映する事を要求すると、2重の性能上のペナルテ
ィが課される。
1.get_attrは、revoke_bytes470が発行され(ステップ6
21、622)、そして応答がなされる(ステップ627、62
8)まで、ステップ629、630で応答が行なわれることは
ない。
2.revoke_bytesに応答して、クライエントは、サーバー
に1以上のput_bytes460を発行して(ステップ623、62
4)、そしてその応答を待機し(ステップ625、626)な
ければならない。
この性能のペナルティを回避するために、且つ書込みの
ためにオープンされているファイルのサイズは変化する
可能性が高いという事実を考慮して、プロトコルは、ge
t_attr430によって返されるファイル・サイズ436が最も
最近のクライエントの記憶動作を反映している事は要求
しない。サーバーは、get_attr430に応答する前にrevok
e_bytes470を発行するように実現してもよいが、クライ
エントはサーバーがそのようにする事に依存できない。
クライエントに関する緩められたルールを考慮し、且つ
サーバーの実施形態のオプションを許容するために、プ
ロトコルは、get_attr430によって返されるファイル・
サイズ436がサーバー・プロセスによる最も最近の記憶
動作を反映することを要求しない。そして、サーバー
は、put_bytes460により送られたバイト、及び同様にロ
ーカル・プロセスにより書き込まれたバイトを取り扱う
事が多いので、プロトコルは、get_attr430によって返
されるファイル・サイズ436が最も最近受け取ったput_b
ytesを反映する事を要求しない。
プロトコルは、以下の事を要求する。
1.クライエントは、変更された又は形成されたファイル
・データ(即ち、記憶が行われた初期ゼロ)を、put_by
tes460を介して、周期的に送信する事が期待される。
又、クライエントは、ファイルに関する最後のクローズ
・メッセージ410を送信する前に、変更又は形成された
データを送信する事が期待される。
2.サーバーは、サーバー・プロセスによる最近の活動を
反映し、且つ最近受取ったput_bytesメッセージ460を反
映するように、iノード・データ構造26(第1図)中の
ファイル・サイズを周期的に更新する事が期待される。
3.fsync要求を処理する一部として、サーバーは、全て
のクライエントからのデータを取消し、返されたデータ
を反映するように、且つサーバー・プロセスによる以前
の活動を反映するように、get_attr430により返された
ファイル・サイズ436を更新する事が期待される。
従って、クライエントの周期的な同期化動作の一部は、
サーバーに汚れたデータを書込む事であり、サーバーの
周期的な同期化動作の一部は、ローカルな変更及び受取
ったクライエントの変更をディスクに書込む事である。
fsync又はファイルの最後のクローズ等の、何らかの他
の事象が起きなければ、クライエントの変更は、クライ
エントの周期的な同期化がサーバーの周期的な同期化に
続くまで、get_attr430により返されるファイル・サイ
ズ436中に示されない。
クライエントは、そのファイル・データ・キャッシュを
固定サイズのブロックの形に構成している事が多い。次
のシナリオを考察する。
1.クライエントがファイル終端部の初期ゼロ中に記憶を
行う。これは、ファイル・サイズを増加させる。
2.クライエントにおける周期的な同期化動作が、put_by
tesメッセージをサーバーに送らせる。
典型的なクライエントの実施形態では、put_bytesメッ
セージ460中でオフセット461と長さ462により指定され
たバイト範囲は、クライエント・ページと整合してい
る。バイト範囲は、ファイル中の最後のバイトとを含む
が、多くの場合、この最後のバイトを越えて延長してい
る。さらに、サーバーのページ・サイズは、クライエン
トのそれと一致しない事がある。従って、put_bytesデ
ータがサーバーに届いた時、それは、メッセージ中で送
られた最後のデータ・バイトを過ぎて延長しているサー
バー・ページにおかれる可能性がある。このページ・サ
イズの量子化により、サーバーは、どのバイトがファイ
ル終端かを正確に知る事は合理的には不可能である。そ
れはただ、最後のバイトを含むページを知っているだけ
である。このため、プロトコルは、単に、サーバーがi
ノード・データ構造26中のファイル・サイズを周期的に
更新してそれがサーバーの最右端のページを含むように
する事だけしか要求しない。ファイル中の最後のバイト
は、put_bytes460を介して以前に送られているかもしれ
ず、又サーバー・プロセスにより形成されているかもし
れない。
上述のように、クライエントは、put_bytesメッセージ
をファイルのサーバーに送る事によってファイルのサイ
ズを変更できる。クライエントは、ファイルの書込みト
ークンを取得する事によってファイルのサイズを変更す
る時に、より正確な制御を行う事ができる。
第6C図を参照すると、クライエントAが、書込みトーク
ンを要求するget_tkn450を送る時(ステップ631、63
2)、応答(ステップ633、634)は、ファイルのサイズ4
52(第4D図)を伝達する。これは、get_attr要求430中
で返されるのと同じサイズ値436である。クライエント
がファイルの書込みトークンを保持している間、それは
ファイルのサイズを変更しうる(ステップ635)。変更
されたサイズは、revoke_tknメッセージ480又はsync_at
trメッセージ490に応答してサーバーに返される。ファ
イル・サイズを支配するルールは、次のように述べられ
る。
サーバーがget_attr要求430を受取る時(ステップ636、
637)、それは、もしファイルの書込みトークンを保持
しているクライエントが存在すれば、そのクライエント
にrevoke_tknメッセージ480を送る(ステップ638、63
9)。このrevoke_tknメッセージ480は、クライエント
に、ファイルの現在のサイズを、応答(ステップ640、6
41)中で返すように指令する。しかし、これは、クライ
エントにトークンの所有権を失わわせる事はない(即
ち、それは非バージング取消しとしてフラグされてい
る)。返されたファイル・サイズは、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(第4E図)で返された
ファイル・サイズは、サーバーの最右端のページの右側
にある可能性がある。
サーバーは、(クライエントの周期的同期化により発行
された)sync_attrメッセージを受取る時(ステップ65
3)、又はrevoke_tknに対する応答を受取る時(ステッ
プ659)に、iノードのファイル・サイズを更新する。
書込みトークンを有し且つファイルを変更するために書
込みを使用しているクライエントは、キャッシュ・オー
バーフローにより、ファイルの最右端のページを送信し
ている可能性がある。もしサーバーがこれを受取り、次
に周期的な同期化を行うと(ステップ651)、ステップ6
55で決定されるようにこのページがファイル・サイズに
ついてのサーバーの現在の記録よりも彼方のページであ
る時は、それはファイル・サイズをこのページの終りに
移動する(ステップ656)。その後クライエントが、ト
ークン取消し要求(ステップ659)、sync_attr又はfsyn
c要求(ステップ653)によりファイル・サイズを送信す
る時、iノードのファイル・サイズは、サーバーに知ら
れている最右端のページ内にある事が見出されるかもし
れず(ステップ655)、従ってそのままにされる(ステ
ップ658)。この動作は、ファイル・サイズを、最右端
のページの終りの値から減少させるかもしれない。
良好な実施例では、従来の書込みシステム・コールを用
いてファイルに対して操作を行っているクライエント・
プロセスは、書込みトークンを取得し書込みの進行とと
もにファイル・サイズを更新する事が期待される。もし
そのようにしているならば、get_attrにより返されるフ
ァイル・サイズは常に最新のものになっている。クライ
エントは、ファイルの書込みトークンを取得する事な
く、単にget_bytes及びput_bytesを発行する事によっ
て、マップされたアクセスにより操作する事もある。こ
の場合は、get_attrにより返されるファイル・サイズ
は、最右端のバイトを含むサーバーの仮想メモリのペー
ジの終端にあり、最も最近のサーバーの周期的な同期化
の前にサーバーに書込まれたクライエント・データのみ
がサイズに表われている。
書込みトークンを保持しているクライエントが、システ
ム・コールによりファイルのサイズを変更する事を許さ
れた唯一のノードであるとしても、ファイルに対するマ
ップされたアクセスは、他のクライエント又はサーバー
に、直接のメモリ参照によりファイルのサイズを変化さ
せる事を可能にする。ファイルを使用している全てのク
ライエントがファイル・サイズに関して合理的に最新の
状態を保持するために、ファイルを使用している全ての
クライエントは、sync_attrメッセージ490を用いてファ
イルに関する属性情報をサーバーに周期的に送信する。
サーバーの現在計算されたファイルのサイズは、sync_a
ttrメッセージ490に対する応答中で返される。従って、
1つのクライエントにおけるファイル・サイズの変更
は、このクライエントがsync_attrメッセージを実行す
る時に、サーバーに伝達され、そしてファイルを使用し
ている他のクライエントの各々がその後そのファイルに
関してsync_attrメッセージ490を実行する時に、各クラ
イエントに伝達される。
ファイルの属性を照会するシステム・コール、例えばst
atシステム・コールによって返されるような、ファイル
の変更時刻の管理は、ほぼファイル・サイズの管理と同
様である。もしクライエントが、ファイルの書込みトー
クンを取得する事なく、専らput_bytesを通じて動作す
るならば、そのファイル変更は、最終的には、しかし即
座ではなく、サーバー又は他のクライエントにおいて実
行されるシステム・コールによって返される変更時刻に
反映される。
しかしながら、ファイルの書込みトークンを取得し且つ
適切に管理しているクライエントは、サーバー又は他の
クライエントにおけるシステム・コールによって返され
る変更時刻が、このクライエントによるファイルに対す
る変更を適切に反映している事を、保証される。
第7A図を参照すると、いくつかの事象を原因として、サ
ーバーが、ファイルの変更がファイル変更時刻に反映さ
れる必要があるか否か見るために検査する。これらの同
期化事象は、下記のものである。
1)サーバーがファイルの周期的同期化を実行する(ス
テップ701)。
2)サーバーがファイルの最後のクローズを実行する
(ステップ702)。
3)サーバーが、クライエントとサーバーとのファイル
に関する知識を同期化させる、fsync等の、いくつかの
メッセージのどれかを受取る(ステップ703)。
4)サーバー・プロセスが、クライエントとサーバーと
のファイルに関する知識を同期化させる、fsync等の、
いくつかの動作のどれかを実行する(ステップ704)。
同期化事象の1つが起きた時、サーバーは、それがput_
bytesを受取っているか、又は以前の同期化事象以来何
らかのローカル・プロセスによってファイルに記憶が行
われているかを見るために検査を行う(ステップ705、7
09)。もしそうであれば、ファイルの変更時刻は、サー
バーの現在の時刻に更新される(ステップ706)。
もしクライエントが、ファイルの書込みトークンを保持
する事なくput_bytesによりファイルを変更する事を選
択すると、下記のシナリオが生じる。
1)クライエントAが、ファイルをオープンし、get_by
tesにより何らかのデータを取り出す。
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)変更カウントは、sync_attr、_close、及びrevoke_
tknに対する応答に応じて、サーバーに返される(ステ
ップ716)。以前に説明したように、サーバーがget_att
rを処理する時、それは、書込みトークンを保持するク
ライエントに非バージングrevoke_tknを送る(ステップ
715)。
5)ファイルの書込みトークンを保持しているノードか
らサーバーが変更カウントを受取る時、それがどのよう
に到着したかに無関係に、サーバーはそれを、記憶して
いるカウントと比較する(ステップ718)。もし受取っ
たカウントが記憶しているカウントよりも大きい場合
(ステップ719)、受取ったカウントが記憶カウントに
なり、変更時刻はサーバーの現在の時刻にセットされる
(ステップ720)。そうでない場合、受取ったカウント
は破棄される(ステップ721)。
従って、以前のシナリオは次のようになる。
1)クライエントAが、ファイルをオープンし、書込み
トークンを得るためにget_tknを発行する(ステップ71
1)。そしてget_bytesにより何らかのデータを取り出
す。
2)クライエントAのプロセスが書込み(2)システム
・コールを発行する。これは、書込みトークンの変更カ
ウントを増計数させる(ステップ713)。
3)クライエントBのプロセスがファイルに対してget_
attrを発行する(ステップ714)。
4)サーバーが、クライエントAが非バージングrevoke
_tknを発行する(ステップ715)。返された変更カウン
トは、サーバーが記憶しているカウントよりも大きいの
で、記憶されたカウントは更新され、サーバーの現在の
時刻がget_attr中の変更時刻として返される(ステップ
722、723)。
このシナリオでは、クライエントAが書込みトークンを
使用する事により、その変更がget_attrにより報告され
る。
少しの例外があるが、ファイルのアクセス時刻の取扱い
は、変更時刻の取扱いと類似である。それらの例外は、
以下説明する。
1つだけの書込みトークンしか存在しなければ、サーバ
ーは1つだけの変更カウントを記憶するだけでよいかも
しれない。しかしながら、複数のクライエント・ノード
が存在し、各々が読取りトークンを保持していることが
ある。従って、サーバーは、各読取りトークン毎にアク
セス・カウントを記憶しなければならない。
サーバーがget_attrを受取る時、それは、書込みトーク
ンの保持者に非パージング型のrevoke_tknを発行する。
これは、ファイルのクライエント変更の学習を可能にす
る。アクセス時刻に関する類似の動作は、サーバーが非
パージングrevoke_tknを読取りトークンの保持者に発行
する事を要求する。しかしながら、2つの場合の間には
相違点が存在する。第一に、多くのクライエント・ノー
ドが読取りトークンを保持している可能性がある。revo
ke_tknメッセージをこれらのクライエントの各々に送る
事は高く付くであろう。第二に、ファイルが変更された
か否かは、ファイルがアクセスされたか否かよりも重要
な情報である。
これらの理由により、及びget_attrは比較的頻繁な要求
であるという事実を考慮して、プロトコルは、読取りト
ークンの保持者がget_attrに対するサーバーの応答の一
部としてポーリングされる事を要求しない。クライエン
ト及びサーバーの周期的な同期化動作は、システム・コ
ールを介するアクセスを、(クライエント及びサーバー
の周期的な同期化の頻度に依存して)最終的にアクセス
時刻属性中に現れさせる。ファイルの読取りトークンの
利点を伴わない、get_bytesによるアクセスは、アクセ
ス時刻属性中に反映されない。
上述のように、ファイル属性は、読取り及び書込みトー
クン中に保持されている。ファイル・サイズ及び変更時
刻属性は書込みトークン中に保持され、アクセス時刻属
性は読取りトークン中に保持される。読取り及び書込み
トークン中にファイル属性を保持する事は、読取り及び
書込み動作を実行しているプロセスにとって有用であ
る。プロセスは、書込みトークンを取得する必要がな
く、マップされたアクセスを通じてファイルを拡張し、
それによってファイル・サイズ属性を変化させ且つ時刻
属性を変更するので、ファイル・サイズ属性は、トーク
ン中に記憶されるだけで、ファイルの最右端のページに
も記憶される。ファイルの最右端のページは、ファイル
のサイズとは異なっている事がある。ファイルの最右端
のページは、仮想メモリ・マネジャによって知られてい
る。仮想メモリ・マネジャは、ファイルの正確なサイズ
は知らないが、ファイルの最右端のページは知ってい
る。従って、プロセスは、ファイルの最右端のページを
延長する仮想メモリ・マネジャによってファイルを拡張
する事ができ、又プロセスは書込みトークンを通じてフ
ァイルに書込み且つファイルを拡張する事ができる。
サーバーは、クライエントにおける書込みトークン内に
含まれる情報と最右端のページからの情報とを組合せ
て、これらのファイル属性を要求する他のクライエント
からの要求に応答して、ファイルの現在のサイズに到達
する。
マップされたアクセスを通じてファイルを拡張するプロ
セスは、そのプロセスによりファイルがクローズされる
時に最右端のページを通じて、又は周期的な同期化動作
により、ファイルのサイズをサーバーに返す。
全てのクライエントは、put_bytesメッセージを用いて
変更されたデータをサーバーに周期的に送らなければな
らない。これは、サーバーに、クライエントがファイル
を拡張した時を知る事を可能にする。次に、サーバー
は、この情報を用いてファイルに関するiノード・デー
タ構造を更新する。
もしクライエントがサーバーに最新の属性を要求する
と、サーバーは、トークン中に記憶された属性値に関す
る現在の情報を求めてトークンを有するクライエントに
要求を送る。クライエントからの属性取得要求に応答し
て、サーバーは、書込みトークンを保持しているクライ
エントにトークン取消しメッセージを送る。このトーク
ン取消しメッセージは、クライエントに書込みトークン
を失なわせない特別なトークン取消しメッセージであ
る。その代りに、クライエントは、書込みトークンを保
持しながら、ファイル属性を有する書込みトークンのコ
ピーをサーバーに送る。次に、サーバーは、書込みトー
クンからのこの情報及び最右端のページを使用して、別
のクライエントからの属性取得要求に答える。
下記の事象のどれかが起きると、サーバーのファイル・
サイズ属性が調整される。もしサーバーがファイルの周
期的同期化、ファイルの最終のクローズ、又はf_sync要
求を実行するならば、サーバーはファイル属性のサイズ
を最右端のページに調整する。
F.発明の効果 本発明によれば、サイズ、最後の変更の時刻、及び最後
のアクセスの時刻等のファイル属性が分散処理環境中の
全てのクライエントにおいて正確であり且つ利用可能で
あるように維持される。又、その維持管理は、不当なオ
ーバーヘッド、性能コスト及びネットワーク・トラフィ
ックなしに行われる。
【図面の簡単な説明】
第1図は本発明の分散データ処理システム中のクライエ
ントデータ処理システムとサーバーデータ処理システム
を示す図、 第2A図はシステム・コールを通じてファイルにアクセス
する事に関して従来技術のスタンドアローンのデータ処
理システムを示すブロック図、 第2B図はマップ式のファイル・アクセスを示す従来技術
のスタンドアローンのデータ処理システムを示すブロッ
ク図、 第3図はシステム・コールを通じてファイルにアクセス
する第2図のデータ処理システムの流れ図、 第4A〜4I図は種々のメッセージのデータ構造を示す図、 第5図は従来技術で知られている分散データ処理システ
ムのブロック図、 第6A図は2つのクライエントが同じデータに書込み許可
を要求する時のノード間メッセージの系列を示す流れ
図、 第6B図は他のクライエントが変更を行っているファイル
の属性をあるクライエントが要求する時の流れ図、 第6C図は1つのクライエントがファイルに対して読取り
又は読み書きの許可を要求し、且つ他のクライエントが
ファイルの属性を要求する時に、サーバーが最新のファ
イル属性を維持する手続きを示す流れ図、 第6D図はサーバーに記憶されているファイル・サイズを
仮想メモリ・マネジャの最右端のページと矛盾のないよ
うにする、サーバーでの動作を示す流れ図、 第7A図はサーバーにファイルの変更時間を変更させる事
象を示す流れ図、 第7B図はクライエントがファイルに書込みを行う時にサ
ーバーが最新のファイル変更時間を維持する手続きを示
す流れ図である。

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】通信手段を介して少なくとも1つのクライ
    エント・データ処理システムに接続されたサーバー・デ
    ータ処理システムにおいて、該サーバー・データ処理シ
    ステム中に記憶されたファイルのサイズを維持する方法
    であって、 上記サーバー・データ処理システムから上記ファイルに
    書き込む許可を受けている上記クレイエント・データ処
    理システムの1つにより、上記書込み許可と共に該クラ
    イエント・データ処理システム中に記憶された上記ファ
    イルのサイズを維持するステップと、 上記クライエント・データ処理システムが上記ファイル
    を変更する時に、該クライエント・データ処理システム
    中に記憶された上記ファイルのサイズを更新するステッ
    プと、 上記サーバー・データ処理システムによって、上記ファ
    イルの最新のファイル・サイズを決定するために、上記
    ファイルの最後のページ及び上記ファイルに関する書込
    み許可を有しているクライエント・データ処理システム
    からの情報を組合せるステップとを含む方法。
  2. 【請求項2】ファイルへのメモリ・マップド・ファイル
    によるアクセスであるマップ式アクセスを有している上
    記クライエント・データ処理システムの1つにより、サ
    ーバー・データ処理システムへ、ファイルに対する変更
    を周期的に送り、クライエント・データ処理システムが
    マップ式アクセスによりファイルを拡張した時にサーバ
    ー・データ処理システムが該拡張を知りうるようにした
    請求項1に記載の方法。
  3. 【請求項3】上記組合せのステップが、上記クライエン
    ト・データ処理システムの1つによるファイル・サイズ
    に関する要求に応答してサーバー・データ処理システム
    により実行される請求項1に記載の方法。
  4. 【請求項4】サーバー・データ処理システムにおいて、
    ファイルの最後のクローズの後で、ファイルの最後のペ
    ージに対応するように最新のファイル・サイズを調整す
    るステップを含む請求項1に記載の方法。
  5. 【請求項5】サーバー・データ処理システムにおいて、
    上記クライエント・データ処理システムの1つにおける
    全ての変更をサーバー・データ処理システムに記憶する
    要求中に、ファイルの最後のページに対応するように上
    記最新のファイル・サイズを調整するステップを含む請
    求項1に記載の方法。
  6. 【請求項6】通信手段により少なくとも1つのクライエ
    ント・データ処理システムに接続されたサーバー・デー
    タ処理システムにおけるファイルの変更時刻を維持する
    方法であって、 クライエント・データ処理システムによりファイルに書
    込むためのサーバー・データ処理システムからの許可と
    共に変更カウント及び対応する変更時刻を維持するステ
    ップと、 サーバー・データ処理システムによりファイルに関する
    変更カウントを追跡するステップと、 書込み許可を有するクライエント・データ処理システム
    により、クライエント・データ処理システムがファイル
    を変更した時に変更カウントを増計数するステップと、 クライエント・データ処理システムからサーバー・デー
    タ処理システムへ、サーバー・データ処理システムから
    の要求に応じて変更カウントを送るステップと、 サーバー・データ処理システムにより、上記送られた変
    更カウントと上記追跡された変更カウントとを比較し
    て、クライエント・データ処理システムが書込み許可を
    有している間にファイルが変更されたか否かを判定する
    ステップと、 サーバー・データ処理システムにより、上記比較結果か
    らファイルが変更されたと判定された場合、上記追跡さ
    れた変更時刻を上記送られた変更時刻に更新するステッ
    プとを含む方法。
  7. 【請求項7】通信手段により少なくとも1つのクライエ
    ント・データ処理システムに接続されたサーバー・デー
    タ処理システムにおけるファイルのアクセス時刻を維持
    する方法であって、 少なくとも1つのクライエント・データ処理システムの
    1つによりファイルを読取るためのサーバー・データ処
    理システムからの許可と共にクライエント・アクセス時
    刻を維持するステップと、 読取り許可を有するクライエント・データ処理システム
    により、クライエント・データ処理システムがファイル
    にアクセスした時にクライエント・アクセス時刻を増計
    数するステップと、 読取り許可を有する上記クライエント・データ処理シス
    テムの各々から、サーバー・データ処理システムへ、対
    応するクライエント・アクセス時刻を送るステップと、 サーバー・データ処理システムにより、上記送られたク
    ライエント・アクセス時刻とサーバー・データ処理シス
    テムにおける記録されたアクセス時刻とを比較して、ク
    ライエント・データ処理システムが読取り許可を有して
    いる間にファイルがアクセスされたか否かを判定するス
    テップと、 サーバー・データ処理システムにより、上記比較結果か
    らファイルがアクセスされたと判定された場合、上記記
    録されたアクセス時刻を上記送られたクライエント・ア
    クセス時刻に更新するステップとを含む方法。
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 JPH035848A (ja) 1991-01-11
JPH073658B2 true 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)

Families Citing this family (154)

* 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
DE19617487A1 (de) 1996-05-02 1997-11-06 Merck Patent Gmbh Geschmacksverbesserung von Arzneimittelwirkstoffen
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

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH073658B2 (ja) 分散データ処理システムにおけるフアイル属性の管理方式
US5175851A (en) System and method for controlling client machine access to a portion of a file with a variable length
JP4568115B2 (ja) ハードウェアベースのファイルシステムのための装置および方法
US20200012568A1 (en) Scalable log-based continuous data protection for distributed databases
TWI232382B (en) A distributed storage system for data-sharing among client computers running different operating system types
JP4799936B2 (ja) 条件別スナップショット取得方法及びシステム
EP0278317B1 (en) A 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
CN101819577B (zh) 维护文件系统客户端目录高速缓存的方法、系统和装置
US6026474A (en) Shared client-side web caching using globally addressable memory
US8255430B2 (en) Shared namespace for storage clusters
US8290899B2 (en) Group stamping style asynchronous replication utilizing a loosely-accurate global clock
KR100825721B1 (ko) 객체 기반 스토리지 시스템에서 사용자 파일 관리자 내의시간 기반 캐쉬 일관성 유지 시스템 및 방법
JPH0564811B2 (ja)
KR920008449B1 (ko) 분산 데이터 처리 시스템에서 파일내의 비이트 범위에 액세스하기 위한 방법 및 시스템
US10628391B1 (en) Method and system for reducing metadata overhead in a two-tier storage architecture
JP4286857B2 (ja) ノード間共用ファイル制御方法
JP3819517B2 (ja) 分散共有メモリのデータ転送制御方法および計算機システム
JPH0198020A (ja) 索引管理方式