JPH036751A - フアイル・ロツク方法及び装置 - Google Patents

フアイル・ロツク方法及び装置

Info

Publication number
JPH036751A
JPH036751A JP2123226A JP12322690A JPH036751A JP H036751 A JPH036751 A JP H036751A JP 2123226 A JP2123226 A JP 2123226A JP 12322690 A JP12322690 A JP 12322690A JP H036751 A JPH036751 A JP H036751A
Authority
JP
Japan
Prior art keywords
file
lock
server
client machine
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2123226A
Other languages
English (en)
Inventor
Larry W Henson
ラリー・ウイリアム・ヘンソン
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 JPH036751A publication Critical patent/JPH036751A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • 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/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • G06F16/1774Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files

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)
  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明はネットワークを介して接続された処理システム
に関し、具体的に、ネットワーク内の局所処理システム
と遠隔処理システムの間でのファイル・アクセスに関す
る。
B、従来の技術 第1図に図示されるように、分散ネットワーキング環境
1は、通信リンクまたはネットワーク3を介して接続さ
れた2つ以上のノードA、B、Cから成る。ネットワー
ク3は、ローカル・エリア・ネットワーク(LAN) 
、あるいは広域ネットワーク(WAN)のどちらかであ
る。
ノードA1B、Cのどれにも、ワークステージジンなど
の処理システムIOA、IOB、IOCがある。これら
の処理システムIOA、IOB、10Cはそれぞれ、遠
隔ノードにあるファイルにアクセスするためにネットワ
ーク3を使用することができる、単一ユーザ・システム
またはマルチユーザ・システムである。たとえば、局所
ノードAにある処理システム10Aは、それぞれ遠隔ノ
ードB及びCにあるファイル5B及び5Cにアクセスす
ることができる。
本明細書では、用語”サーバは、ファイルがそこに永久
に記憶される処理システムを表すために使用し、用語”
クライエント”は、ファイルにアクセスする処理を有す
る他の任意の処理システムを意味するために使用する。
ただし、用語”サーバは、ある種のローカル・エリア・
ネットワーク・システムで使用されるような専用サーバ
を意味しないことを理解されたい。本発明が実施される
分散サービス・システムは、実は、システム内の異なる
ノードで走行し、システム内のどこにあるファイルにも
アクセスできる、広範囲のアプリケージぼンを支援する
分散システムである。
上記のように、以下で説明する本発明は、通信ネットワ
ーク内の分散データ処理システムを対象とする。この環
境では、ネットワーク内のあるノードにある各プロセッ
サは、ファイルがどのノードにあろうと、ネットワーク
内のすべてのファイルに問題なくアクセスできる。
分散データ処理システムを支援する他の手法も知られて
いる。たとえば、AIXオペレーティング・システム用
のIBM分敢分散サービス米国特許出願第071014
897号明細書に開示されている。さらに、サン・マイ
クロシステムズ社(Sun Microsystems
)は、ネットワーク−ファイル・システム(NFS)を
発表し、ベル研究所は、遠隔ファイル・システム(RF
S)を開発した。
サン・マイクロシステムズのNFSは、S、R,フライ
マン(Kleiman)  の「Vノード:サンUNI
Xにおける多重ファイル・システム・タイプ用のアーキ
テクチ+ (Vnodes:An Architect
ure forMultiple  File  Sy
stem  Types  in  Sun  UNI
X)」USENIX1988年夏技術会議展示会報文集
、pp、238−247;ラッセル・サンドバーブ(R
usset Sandberg)他のrサン・ネットワ
ーク・ファイル・システムの設計と実施様態(Desi
gn andImplementation of t
he Sun Netovork FileSyste
m) J 、U S E N I X 1985報文集
、pp、t19−130;ダン・ウオールシー (Da
n Valsh)他の「サンネットワーク・ファイル・
システムの概要(Overview of the S
un Network FileSystem) J 
、pp、 117−124 ;ジトメイ・チャン(Jo
)lei Chang)の「状態モニタはNFS用のネ
ットワーク・ロッキング・サービスを提供する(Sta
tus Mon1tor Provides Netw
ork LockingService for NF
S) J N ジaNメイ・チャン編「サンネット(S
unset) J 、pp、 71−75 :及びプラ
トレイ・ティラー(Bradley Taylor)の
1サン環境における安全なネットワーキング(Secu
reNetvorking  in  the  Su
n  Envirorvent)J  pp、2 8 
−36を含む、一連の刊行物に記載されている。AT&
TのRFSも、アンドリューP・リフキン(Andre
v P、 Rifkin)他の rRFs構造の概要(
RFS  Architectural  Overv
iew)J  、 (U S E NIX報文集、ジョ
ーシア州アトランタ(1986年6月)、pp−1−1
2;リチャード・ハミルトン(Richard )Ia
milton)他の「遠隔ファイル共用に対する管理者
の見方(An Administrator’sVie
w  or  Remote  File  Shar
ing)J  %  pp、  1 − 9  ;トム
・ツートン(Tom Iloughton)他の「ファ
イル・システム・スイッチ(Pile 5ystera
 5vitch)4、pp。
1−2;及びデーヴイドJ、オランダ−(DavidJ
 、 01ander )他の、「システム■における
ネットワーキングのためのフレームワーク(A Fra
meworkfor Netvorking in 5
yste+* V) J % pp、 1−8を含む、
一連の刊行物に記載されている。
遠隔ノードにあるデータにアクセスする際に遭遇する問
題のいくつかは、まず従来技術の分散データ処理システ
ムがどのようにファイルを使うかを検討すると、よりよ
く理解することができる。米国特許出願第071014
891号明細書に教示されているように、サーバ・ノー
ドに記憶されたファイルは、遠隔クライエント・ノード
上で走行する処理からアクセスすることができる。複数
のクライエントによるファイルの使用を同期し調整する
ために、そのような分散データ処理システム内で働くロ
ッキング機能が設けられている。ファイルをロックする
ことにより、処理はファイルを利用したいとの意図を示
す。実際は、排他的アクセスを望むことを示すロック、
共用アクセスを望むことを示すロック、ファイルの一部
分に対するロック、及びファイル全体に対するロックな
ど、様々な種類のファイル・ロックがある。複数のクラ
イエントが1つのファイルを使用中であることがあるの
で、置かれたロックを記述するデータ構造は、複数のク
ライエントが実際にファイルを使用中である可能性があ
る時は、サーバで保持される。単一のクライエントがそ
のファイルの唯一のユーザであることが明らかな場合に
は、ロックを記述するデータ構造は、そのクライエント
で保持される。従来技術では、このデータ構造がどこに
あるかの判定は、ファイルを開いた処理に基づいて行な
われる。ファイルにロックをかける前に、処理はそれら
のファイルを開かなければならない。
したがって、ファイルを開いた処理がすべて1つのノー
ドにある時は、そのファイルにかけたロックを記述する
データ構造は、そのノードに保持される。
この従来技術の手法に伴う難点は、この判定が、どの処
理がファイルを開いたかに基づいていることから生じる
。ファイルが複数のクライエントに共用される状況では
、ロックを記述するデータ構造は、−時にただ1つの処
理しかファイルをロックするのに関係していないにもか
かわらず、常にサーバで保持される。異なるクライエン
トにある処理がファイルを開く時、ロックを記述するデ
ータ構造を配置し直す必要があるため、もう1つの難点
が生じる。サーバにある資源に制限があるため、これを
開く時にデータ構造をサーバに戻すことが不可能となる
ことがある。それが発生すると、ロッキング情報が失わ
れるか、(非常に望ましくない選択肢)あるいは開いた
動作が拒絶される(m=のアプリケ−シロンが扱う準備
を終えている状況)。
従来技術によって教示されるように、ロックに対する要
求は、ロックを記述するデータ構造がサーバにある時は
、サーバに送られる。これらの要求は、サーバにあるカ
ーネルによって実行される。
カーネル処理とは、ロックを記述するデータ構造を含む
オペレーティング・システムのデータにアクセスできる
処理である。競合するロックがすでにかけられているた
めにロック要求が許可できない時は、妨げとなっている
ロックが解除され、要求されたロックがかけられるまで
待つように、はとんどのロック動作は設計されている。
従来技術によって用いられる技術に伴う問題は、妨げと
なっているロックが解除されるまで、カーネル処理(k
procs )がサーバで待たなければならないことで
ある。kprocsは、サーバの資源を消費し、したが
ってその数が制限される。妨げとなるロックが存在する
時、カーネル処理を強制的に遊休状態にすると、その設
計は、すべての利用可能なkprocsが消耗しやすく
なる。いくつかのクライエントの処理が共用ファイルに
アクセスしているアプリケージ「ンでは、1つの処理が
ファイルをロックし、その後ユーザ・エラーまたはソフ
トウェア・エラーのために、ファイルのロックを解除で
きなかった場合、多数のkprocsが無期限に拘束さ
れることがある。極端な状況では、使用可能なすべての
kprocsが、このようにして占有され、システムが
もうそれ以上遠隔動作を支援できなくなる。
したがって、処理がファイルを開くことに基づいである
ファイルに対するロックを記述するデータ構造を探さず
、かつ妨げとなるロックがある時1’: kprocs
が待つ必要のない、遠隔ファイルをロックするためのシ
ステム及び方法を提供すれば、分散データ処理システム
において大きな利益となるはずである。
C2課題を解決するための手段 したがって、分散データ処理システムにおいて、ファイ
ルに対するロックは、クライエント機械またはそのファ
イルのサーバのどちらかに存在するデータ構造によって
支援される。ただ1つのクライアントの処理だけがファ
イルをロックしている時は、データ構造はそのクライエ
ント上に存在することができる。複数のクライエント機
械があるファイルに対してロックをかけようと試みる時
は、そのデータ構造はサーバに移される。このため、ロ
ック動作を実行する時、ファイルをロックしているクラ
イエントはサーバと通信することを強いられる。
クライエントで実行されるロック動作は、クライアント
に1つのファイル・ロック・データ構造がある時、その
データ構造を使用する。データ構造がロッキングを行な
っているクライアント内にある時は、サーバとの通信は
必要ない。デーフッ構造がクライエントにない時は、ク
ライエントはそのロック要求をサーバに送る。その要求
を受け取ると、ファイルのサーバは、要求されたロック
動作がファイルに現在適用されている唯一のものである
のかどうか決定する。それが唯一のものである場合は、
サーバは、ロック要求メンセージに応答して、クライエ
ントがそのノードでロッキング情報の維持を始めること
ができることを示す回答を出す。後で第2のクライエン
トが、このファイルに対するロック要求をサーバに送っ
た場合、サーバは第1のクライエントのロックを維持す
るデータ構造を取り消す。第1のクライエントは、デー
タ構造をサーバに送り戻し、その後(ロック情報の維持
を開始できることをサーバから再び知らされるまで)サ
ーバに要求を送ることにより、ロッキング動作を実行す
る。
クライエントが、妨げとなるロックが存在するために許
可できないサーバからのロックを要求する時、クライエ
ントは、要求処理を、再試行通知を待って休眠している
伏態に置くようにと指示される。ファイルに対するロッ
クに、そのようなりライエンドの現在休眠中の処理がロ
ックを獲得できそうな、変更がある時、サーバはクライ
エントに再試行通知を送る。これによって、クライエン
トで休眠中の処理が覚醒し、その処理は、次いでメツセ
ージをサーバに送ることによって、ロック動作を再び試
みる。
本発明の上記及びその他の目的、特徴、拡張、及び利点
は、添付の図面内に図示した本発明の好ましい実施例に
ついての下記のより具体的な説明から明らかになる。
D、実施例 本発明を、次のシナリオで例示する。本発明の改良によ
って機能が改善された、第1図の従来技術のネットワー
クを参照すると、クライエント10Aは、サーバ10C
に記憶されているファイル5Cにロックをかけることを
要求するメツセージをサーバ10Cに送る。サーバIO
Cはフライエン)10Aの要求に答えて、現在そのファ
イルにロックがかかっていないと知らせ、かつサーバに
よって取り消されるまで、クライアント10Aにロック
情報を維持するようにと指示する。その後クライエント
IOBが、同じファイルに対するロック要求をサーバ1
0Cに送る。その場合、サーバ10CはクライエントI
OAに取り消しロック・メツセージを送る。それに応じ
て、クライアント10Aは、サーバIOCにそのファイ
ルに対するロック情報を送り戻す。サーバIOCは、こ
の時、クライアントIOBによるロック要求が許可でき
ないこと、及びクライエントIOB上の処理が、ロック
を獲得するまで待たなければならないことを発見するこ
とがある。サーバ10Cは、クライエントIOAが妨げ
となるロックの1つを除去する時、再試行通知がクライ
エント10Bに送られることを示す回答中で、クライエ
ントIOBにこのことを示す。クライエントIOBが再
びファイルのロックを試みる時、クライエントIOBが
その再試行を実行する前にかけられたのと異なる口。
りまたは同じロックによって依然として妨げられている
こともある。
第2図は、そのクライエントで実行中の処理がファイル
に対するロック動作の実行を試みる時に、クライアント
・ノードで行なわれる処理を示すフローチャートである
。クライエントをサーバに接続する通信機械によってメ
ツセージが遅延する可能性があることから、2つの具体
的問題が発生する。これらの問題は、第2図に示した処
理によって扱われる。
この処理は、まず他のロック要求がそのファイルに対し
て進行中でないことを確かめる。他の口、。
り要求がこのファイルに対して進行中でないことを保証
することにより、−時に1つのファイルに対してわずか
1つのロック要求しか未処理となり得ない。第1の要求
に対する回答がクライエントに到着する前に、第1のロ
ック要求に答えたサーバに第2のロック要求が送られる
場合、問題が発生する可能性があるので、このことは重
要である。
この場合、サーバは、第1の要求に対する回答中で、そ
のクライエントにあるファイルに対する口、ツクを記述
するデータ構造を保持するための許可をクライエントに
与えることができる。このようにして、ロッキング情報
を記録するようにクライエントに指示した後、サーバは
、後続のロック要求を満足することを求められることを
予期しない。
クライエントが第1のロック要求に対する回答を受け取
る前に、第2のロック要求がそのクライエントから出さ
れる場合に、この望ましくない状況が発生し得る。この
ため、クライエントでのロック処理は、そのファイルに
対する後続のロック要求を開始する前に、ファイルに対
する未処理のロック要求が回答されるまで待つ。
進行中の未処理のロック要求がないことを確認した後、
ロック処理は、ファイル・サーバから受け取ったそのフ
ァイルに対するロック取消し要求の処理を妨げる。これ
は、ロック取消し要求が、回答中で許されるロックを参
照できるクライエントで処理される前に、サーバに送ら
れるロック要求に対する回答を受け取ることを保証する
ために重要である。ロック取消し要求が妨げられなかっ
た場合は、クライエントはファイルをロックするための
要求を送ることができ、サーバはその要求を許可して、
クライエントに回答を送ることができ、またサーバは、
次いで許可されたばかりのロックを参照するロック取消
しを出すことができる。
この場合に、ロック要求に回答する前にロック取消し要
求がクライエントに到着した場合は、クライエントは取
消しを正しく処理することができず、さらにロックに対
する回答が到着した時、クライエントは、ファイルに対
するロックを有すると、間違ってとるかも知れない。
第2図を参照すると、ステップ201で、テストを行な
って、そのファイルに対する処理中の未処理のロック要
求があるかどうか判定する。ある場合は、ステップ20
6で、現在処理中の要求が待ち行列に入れられ、ステッ
プ207で、未処理の要求が完了した時に覚醒すべく休
眠状態に置かれる。これが起こると、処理ループはステ
ップ201に戻る。そのファイルに対する進行中のロッ
ク要求がない場合は、ステップ202に進み、ロック取
消し要求の処理が妨げられる。これは、現在処理中のロ
ック取消し要求が完了するまで現行の要求が待ち、さら
に後で解禁されるまで、まだ始まっていないロック取消
し要求が開始するのを防げることを意味する。ステップ
203で、このファイルに対するロック情報を記述する
データ構造(今後、このファイルに対する「ロック・テ
ーブル」と呼ぶ)が、局所的に保持されているかどうか
判定する。ステップ204で、ロック・テーブルが局所
にあり、ロック動作が局所テーブルで実行される場合、
次に進む。ステップ205で、ロック取消し要求の処理
が解禁される。
そのファイルに対するロック・テーブルが局所にない時
は、ステップ212に進み、このファイルに対するロッ
ク要求がサーバに送られる。ステップ214で、処理は
、ロック要求に対する回答を待つ。回答が到着すると、
ステップ215に進み、回答を検査する。その回答が、
処理を後で再び試みるようにと指示する場合は、ステッ
プ216に進んで、ロック取消し要求処理が解禁される
。ステップ213で、処理は、再試行メツセージを受け
取る時に覚醒すべく休眠状態に置かれる。覚醒すると、
ステップ217で、ロック取消し要求処理が妨げられ、
212に戻る。
ロック要求に対する回答が、後で再び試行するようにと
指示しない場合は、ステップ208で、回答を検査する
。回答が、ロックをこのクライエシトで局所的に保持す
るようにと指示する場合は、ステップ209に進む。ス
テップ209で、このファイルに対する局所ロック・テ
ーブルを作成する。ステップ210で、元のロック要求
を四ツク・テーブルに入れる。ステップ204でロック
・テーブルにロックを入れると、このファイルに対する
妨げとなるロックが別の処理によって解除されるまで、
待つことが必要となるこきがある。しかし、ステップ2
10で、ロック・テーブルにロックを入れても、テーブ
ルが新しく作成された空のテーブルなので、妨げとなる
ロックを待つ必要はない。
これでロック要求が完了したので、ステップ211で、
ロック取消し要求の処理が解禁され、ロック取消し処理
が先に進むことが可能になる。
下記のプログラミング設計言語リストは、そのクライエ
ントで実行中の処理が、ファイルに対するロック動作の
実行を試みる時に、クライエント・ノードで行なわれる
上記の処理の、他の形による記述である。このリストは
、第2図について上述した動作と並行している。
/*クライエンシト走行中の処理によるロッキング要求
*/ WHILE  ファイルに対して他のロック要求が進行
中 D。
待機中のロック要求側のリストにこの要求を入れる; 休眠する、ロック要求の完了時に覚醒する;ENDWH
ILE; この要求が進行中であることを示して、他の要求を休眠
させる; 新しいロック取消し要求が処理を開始されるのを妨げる
; IF  ロック取消し要求が進行中 THEN取消しが
完了するまで待つ; END I F ; IF  ファイルに対するロック・テーブルが局所にあ
る THEN ロック動作を実行する; ロック取消し要求の処理を解禁する; LSE ロック要求をサーバに送る; 回答を待つ; WHILE  回答が後で再び試行と指示するり。
ロック取消し要求の処理を解禁する; 休眠する、再試行メツセージで覚醒する;ロック取消し
要求の処理を妨げる; ロック要求をサーバに送る; 回答を侍つ; ENDWHI LE ; IF  回答が局所ロックの保持を始めよと指示する 
THEN ファイルに対するロック・テーブルを作成する; ロックを局所テーブルに入れる; LSE /零回答が、遠隔ロッキング要求の結果を指*//*示
する*/ END  I  F  ; END  I  F  ; /*ロック動作は完了し、そのファイルミZ対する*/
/木他のロック要求に進むことができる*/第3図は、
ロック要求に応じてサーバで実行される動作を示す流れ
図である。ファイル・ロック解除要求は、クライエント
への再試行通知の送信をトリガすることができる。クラ
イエントがらファイル・ロック要求があると、ロック・
テーブルを局所的に保持できること、あるいは再試行メ
ツセージを受け取るまで休眠すべきこと、あるいはロッ
ク動作が実行されたことがクライエントに知らされる。
これらのケースは、第3図に図示されている。
例として、クライエントIOAが、サーバ1゜Cに記憶
されているファイルに対するロック・テーブルを現在維
持しているものと仮定する。クライエント10Bが、こ
のファイルに対するロックを要求した場合、クライエン
トIOCは、ロック取消しメツセージをクライエントI
OAに送り、クライエントIOCがもつ、ロック・テー
ブルを受け取るのに使用できる空間の量をクライエント
1OAに知らせる。クライエントIOAは、そのロック
・テーブルが大きすぎてこの空間に収容できないと判断
した場合、このことの指示をサーバ10Cに戻す。この
場合、サーバ10Cは、そのロック要求が許可されず、
失敗したとの回答をクライエントIOBに送る。
第3図のステップ313で、ロック・テーブルがクライ
エントに記憶されているかどうか判定する。そうである
場合は、ステップ314で、サーバはロック取消しメツ
セージをクライエントに出す。ステップ315で、この
ロック・テーブル情報がうまく戻された場合は、ステッ
プ301に進む。(たとえば、ロック・テーブルのサイ
ズが、サーバにある、ロック・テーブルを記憶するのに
使用可能な空間を超えたため)ロック・テーブルがうま
く戻されなかった場合は、ステ、ブ316で、ロック要
求を拒絶し、クライエントにその旨を知らせる。
ステップ301で、実行中の要求のタイプを検査する。
要求がロック解除要求である場合は、ステップ310に
進み、以前にロック要求に対する回答を送られ、再メツ
セージを待って休眠させられたクライエント、及びロッ
ク解除が実行された後にその元のロック要求が許可され
る可能性のあるクライエントを決定する。ステップ31
1で、ロック解除動作を実行し、結果を表示する回答を
要求側に送る。ステップ312で、影響を受けるすべて
のクライエントに再試行メツセージを送る。
要求のタイプがロック要求である場合は、ステップ30
2に進み、現在ファイルに対する他のロックがあるかど
うか判定する。ない場合は、ステップ308に進み、ク
ライエントが局所ロック・テーブルを作成できることを
示す、元のロック要求に対する回答を送る。ステップ3
09で、局所ロック・テーブルを維持しているクライエ
ントの記録を作る。
ファイルに対する他のロックがないと判定した場合は、
ステップ303に進んで、さらに、その要求が待つ必要
があるかどうか決定する。その要求が、すでに確立され
たロックに、その要求を待だせる形で干渉する場合は、
ステップ306に進んで、クライエントでの要求処理を
再試行メツセージを待つ休眠状態にするようにと指示す
る回答を送る。干渉をひき起こすロックに関連して、再
試行メツセージを待っているクライエントの記録をロッ
ク・テーブル内で作る。
その要求が、待つ必要なしに実行される場合は、ステッ
プ304に進んで、この要求を実行する。
ステップ305で、要求の結果を示す回答をクライエン
トに送る。
下記のプログラミング設計言語リストは、ロック要求に
応じてサーバで実行される上記の動作の、他の形による
記述である。このリストは、第3図について上述した動
作と並行している。
/*ロック要求のサーバ処理*/ IF  ファイルに対するロック・テーブルが現在クラ
イエントにある THEN ロック・テーブルを有するクライエントにロック取消し
要求を送る; 回答を待つ; IF  ロック・リストを戻すことができないTHEN 要求が失敗したことを示す、ロック要求に対する回答を
送る; RETURN ; END I F ; END I F ; IF  要求がロッキング要求である THENIFロ
ック・テーブルが少なくとも1つのエントリを有する 
THEN IF  その要求がすでにテーブル内でロックによって
妨げられている THEN 再試行通知を待って休眠しなければならないとの回答を
クライエントに送る: クライエントを、再試行を待っているクライエントのロ
ック・テーブル・リストに加える; LSE /*要求が妨げられていない*/ 要求を実行する: 回答をクライエントに送る; END I F ; LSE /*ファイルに対するロックがまだない*/ロツタ・リ
ストを維持するようにとの回答をクライエントに送る; このクライエントがロック・テーブルをもっていると記
録する; /*将来の取消しで使用するため*/ END I F LSE /*要求がロック解除要求である*/ ロック・テーブル内で再試行を必要とするクライエント
のリストを走査することにより、影響を受けるクライエ
ントを決定する; ロック解除動作を実行する; ロック解除の要求側に回答を送る; 影響を受ける各クライエントに再試行メツセージを送る
; END I F ; 第4図は、ファイル・ロック・テーブル401の構造を
示している。テーブルは、個々のエントリ410を含む
。それぞれのエントリ401は、4つのフィールド40
4−407を有する。エントリ404は、ロックの範囲
とタイプを記述する。
範囲とは、このフィールドに示されたロックのタイプに
応じて、共用または排他的使用のためにロックされた、
ファイル中のバイトの範囲を表す。エントリ405は、
ファイルをロックした処理を識別し、エントリ406は
、この処理がそこで走行しているクライエント・ノード
を識別する。エントリ407は、要素402のリストを
指すポインタを含むリンク・フィールドである。各要素
は、次の要素に対するリンク、またはリストの終りを示
す値を含む、フィールド409を含む。各要素のフィー
ルド408は、要求処理が、再試行メツセージを送るま
で休眠するようにと指示する、ロック要求に対する回答
を送られたクライエントを識別する。ロックが解除され
ると、要素のリストを走査して、再試行通知が各クライ
エントに送られる。
要約すると、ファイルに対するロックが、クライエント
機械またはファイル・サーバのどちらかにあるデータ構
造によって支援されるという、分散データ処理のシステ
ムと方法が開示されている。
ただ1つのクライエントの処理だけがファイルをロック
している時は、データ構造はそのクライエントに存在す
ることができる。複数のクライエント機械があるファイ
ルにロックをかけようと試みる時は、データ構造はサー
バに移される。これによって、ロック動作を実行する時
、ファイルをロックするクライエントはサーバと通信す
ることを強いられる。クライエントがサーバから、妨げ
となるロックが存在するために、許可されないロックを
要求した時は、クライエントは、要求処理を再試行通知
を待って休眠状態にするようにと指示される。ファイル
に対するロックに、そのようなりライエンドの現在休眠
中の処理がロックを獲得できそうな変更がある時、サー
バは、再試行通知をクライエントに送る。これによって
、クライエントにある休眠中の処理が覚醒し、次いでそ
の処理は、サーバにメソセージを送ることによって、ロ
ック動作を再び試みる。
【図面の簡単な説明】
第1図は、当技術分野で周知の分散データ処理システム
のブロック・ダイヤグラムである。 第2図は、クライエントで実行中の処理が、ファイルに
対するロック動作の実行を試みる時に、クライエント・
ノードで行なわれる処理を示すフローチャートである。 第3図は、ロック要求に応じてサーバで実行される動作
を示すフローチャートである。 第4図は、ファイル・ロック・テーブルの構造を示す図
である。 A、BlC・・・・ノード、1・・・・lネットワーキ
ング環境、3・・・・ネットワーク、l0A110B・
・・・クライエント・ノード、10C・・・・サーバ・
ノード。 ぜD

Claims (6)

    【特許請求の範囲】
  1. (1)少なくとも1つのクライエント機械がサーバに記
    憶されたファイルにアクセスできるようにした、分散デ
    ータ処理システムのサーバに記憶されたファイルの一部
    分をロックする方法であって、前記1つのクライエント
    機械が、前記ファイルの前記部分をロックしようと試み
    る唯一のクライエント機械である時に、前記ファイルの
    前記部分に対するロックを記述するデータ構造を、その
    クライエント機械で維持するステップと、 複数のクライエント機械が、前記ファイルの前記部分を
    ロックしようと試みている時に、前記データ構造を前記
    サーバで維持するステップとを有することを特徴とする
    ファイル・ロック方法。
  2. (2)少なくとも1つのクライエント機械がサーバに記
    憶されたファイルにアクセスできるようにした、分散デ
    ータ処理システムのサーバに記憶されたファイルの第1
    部分をロックする方法であって、前記ファイルの前記第
    1部分をロックすることを求める1つのクライエント機
    械からの要求を、前記サーバで受け取るステップと、 他のクライエント機械が前記ファイルのいずれかの部分
    をロックしたかどうかを、前記サーバで検出するステッ
    プと、 他のクライエント機械が前記ファイルのどの部分もロッ
    クしようと試みない間、前記1つのクライエント機械が
    前記ファイルの前記第1部分に対する前記ロックを局所
    的に維持することができると、前記1つのクライエント
    機械に回答するステップとを有することを特徴とするフ
    ァイル・ロック方法。
  3. (3)少なくとも1つのクライエント機械が、サーバに
    記憶されたファイルにアクセスできるようにした、分散
    データ処理システムのサーバで記憶されるファイルをロ
    ックする方法であって、 前記ファイルの一部分をロックすることを第1のクライ
    エント機械が試みるステップと、他のクライエント機械
    が前記ファイルの前記部分のデータをロックしたかどう
    かを、前記サーバで検出するステップと、 前記ファイルの前記部分が前記他のクライエント機械に
    よってすでにロックされているとき、前記ファイルに対
    する前記の試みられたロックを要求する処理を前記第1
    のクライエント機械で休眠させるように、前記サーバか
    ら前記第1のクライエント機械に通知するステップとを
    有することを特徴とするファイル・ロック方法。
  4. (4)少なくとも1つのクライエント機械が、サーバに
    記憶されたファイルにアクセスできるようにした、分散
    データ処理システムのサーバに記憶されたファイルの第
    1部分をロックする装置であって、 前記ファイルの前記第1部分をロックすることを求める
    1つのクライエント機械からの要求を、前記サーバで受
    け取る手段と、 前記受取り手段に応答して、他のクライエント機械が前
    記ファイルのいずれかの部分をロックしたかどうかを前
    記サーバで検出する手段と、他のクライエント機械が前
    記ファイルのどの部分もロックしようと試みない間、前
    記1つのクライエント機械が前記ファイルの前記第1部
    分に対する前記ロックを局所的に維持することができる
    と、前記1つのクライエント機械に回答する、前記検出
    手段に接続された手段とを有することを特徴とするファ
    イル・ロック装置。
  5. (5)少なくとも1つのクライエント機械が、サーバに
    記憶されたファイルにアクセスできるようにした、分散
    データ処理システムのサーバに記憶されたファイルをロ
    ックする装置であって、 前記試行手段に応答して、前記ファイルの一部分をロッ
    クすることを第1のクライエント機械によって試みる手
    段と、 他のクライエント機械が前記ファイルの前記部分のデー
    タをロックしたかどうかを、前記サーバで検出する手段
    と、 前記ファイルの前記部分が、前記他のクライエント機械
    によってすでにロックされているとき、前記ファイルに
    対する前記の試みられたロックを要求する処理を前記第
    1のクライエント機械で休眠させるように、前記サーバ
    から前記第1のクライエント機械に通知する、前記検出
    手段に接続された手段とを有することを特徴とするファ
    イル・ロック装置。
  6. (6)少なくとも1つのクライエント機械が、サーバに
    記憶されたファイルにアクセスできるようにした、分散
    データ処理システムのサーバに記憶されたファイルの第
    1部分をロックするデータ処理プログラムであって、 前記ファイルの前記第1部分をロックすることを求める
    1つのクライエント機械からの要求を、前記サーバで受
    け取る手段と 前記受取り手段に応答して、他のクライエント機械が前
    記ファイルのいずれかの部分をロックしたかどうかを、
    前記サーバで検出する手段と、他のクライエント機械が
    前記ファイルのどの部分もロックしようと試みない間、
    前記1つのクライエント機械が前記ファイルの前記第1
    部分に対する前記ロックを局所的に維持することができ
    ると、前記1つのクライエント機械に回答する、前記検
    出手段に接続された手段とを有することを特徴とするデ
    ータ処理用プログラム製品。
JP2123226A 1989-05-15 1990-05-15 フアイル・ロツク方法及び装置 Pending JPH036751A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US35208089A 1989-05-15 1989-05-15
US352080 1989-05-15

Publications (1)

Publication Number Publication Date
JPH036751A true JPH036751A (ja) 1991-01-14

Family

ID=23383712

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2123226A Pending JPH036751A (ja) 1989-05-15 1990-05-15 フアイル・ロツク方法及び装置

Country Status (4)

Country Link
EP (1) EP0398495B1 (ja)
JP (1) JPH036751A (ja)
BR (1) BR9002271A (ja)
DE (1) DE69029760T2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2269920A (en) * 1992-08-18 1994-02-23 Clairmont Maintaining database integrity
JP3474646B2 (ja) * 1994-09-01 2003-12-08 富士通株式会社 入出力制御装置及び入出力制御方法
US7548918B2 (en) 2004-12-16 2009-06-16 Oracle International Corporation Techniques for maintaining consistency for different requestors of files in a database management system
US20060136508A1 (en) * 2004-12-16 2006-06-22 Sam Idicula Techniques for providing locks for file operations in a database management system
US7716260B2 (en) 2004-12-16 2010-05-11 Oracle International Corporation Techniques for transaction semantics for a database server performing file operations
US7627574B2 (en) 2004-12-16 2009-12-01 Oracle International Corporation Infrastructure for performing file operations by a database server
US8224837B2 (en) 2005-06-29 2012-07-17 Oracle International Corporation Method and mechanism for supporting virtual content in performing file operations at a RDBMS
US7809675B2 (en) 2005-06-29 2010-10-05 Oracle International Corporation Sharing state information among a plurality of file operation servers
US7610304B2 (en) 2005-12-05 2009-10-27 Oracle International Corporation Techniques for performing file operations involving a link at a database management system
CN112039970B (zh) * 2020-08-25 2023-04-18 北京思特奇信息技术股份有限公司 一种分布式业务锁服务方法、服务端、系统及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63201864A (ja) * 1987-02-13 1988-08-19 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 分散型データ処理システム
JPS63204437A (ja) * 1987-02-13 1988-08-24 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン ロック・システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63201864A (ja) * 1987-02-13 1988-08-19 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 分散型データ処理システム
JPS63204437A (ja) * 1987-02-13 1988-08-24 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン ロック・システム

Also Published As

Publication number Publication date
EP0398495A2 (en) 1990-11-22
DE69029760T2 (de) 1997-07-17
EP0398495A3 (en) 1991-11-06
DE69029760D1 (de) 1997-03-06
BR9002271A (pt) 1991-08-06
EP0398495B1 (en) 1997-01-22

Similar Documents

Publication Publication Date Title
US5537645A (en) File lock management in a distributed data processing system
US6385701B1 (en) Method, system and program products for sharing data between varied clients using token management
US5913227A (en) Agent-implemented locking mechanism
US8181183B2 (en) Method, system and program products for managing thread pools of a computing environment to avoid deadlock situations
US6377948B2 (en) Directory access method
JP3197789B2 (ja) 分散ファイル・システム内にあるディレクトリの操作を要求する方法およびシステム
US5481720A (en) Flexible interface to authentication services in a distributed data processing environment
EP0720091B1 (en) Multi-level token management for distributed file systems
US5544353A (en) Distributed processing object shared resource control apparatus and method
US7100161B2 (en) Method and apparatus for resource access synchronization
JP4759570B2 (ja) データベース管理システムにおけるファイル操作のためのロックを提供するための手法
US20040199734A1 (en) Deadlock resolution through lock requeuing
EP0456920A2 (en) Remote authentication and authorisation in a distributed data processing system
JPH10187519A (ja) 分配システムの競合を防止する方法
US6697901B1 (en) Using secondary resource masters in conjunction with a primary resource master for managing resources that are accessible to a plurality of entities
JPH07219792A (ja) ロック装置及び方法
JP2008524707A (ja) データベースサーバによるファイル操作を実行するためのインフラストラクチャ
JP2008146380A (ja) キャッシュサーバ、キャッシュサーバの制御方法、プログラム及び情報記憶媒体
JPH036751A (ja) フアイル・ロツク方法及び装置
US6058425A (en) Single server access in a multiple TCP/IP instance environment
JP4607999B2 (ja) ロック関連の一貫性欠如を処理する方法
JP2898012B2 (ja) 計算機資源の排他制御方式
JPS6320634A (ja) 計算機資源排他制御方式
KR100266220B1 (ko) 실시간 운영체제 커널 상에서의 락 서버방법
JP2001175522A (ja) 排他制御方法及びシステム