JPH11353220A - キャッシュ制御方法およびリモートファイルロックの獲得制御方法およびファイル書込み制御方法 - Google Patents

キャッシュ制御方法およびリモートファイルロックの獲得制御方法およびファイル書込み制御方法

Info

Publication number
JPH11353220A
JPH11353220A JP10176633A JP17663398A JPH11353220A JP H11353220 A JPH11353220 A JP H11353220A JP 10176633 A JP10176633 A JP 10176633A JP 17663398 A JP17663398 A JP 17663398A JP H11353220 A JPH11353220 A JP H11353220A
Authority
JP
Japan
Prior art keywords
file
lock
computer
data
remote file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10176633A
Other languages
English (en)
Inventor
Aki Tomita
亜紀 富田
Nobutoshi Sagawa
暢俊 佐川
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP10176633A priority Critical patent/JPH11353220A/ja
Publication of JPH11353220A publication Critical patent/JPH11353220A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 ロックをかけたリモートファイルに対してキ
ャッシュを利用可能とし、ロックを用いたリモートファ
イル入出力性能を向上させることにある。 【解決手段】 ノード10の計算機のアプリケーション10
0からの他ノードの計算機のリモートファイルのデータ
の要求がなされたとき、他ノードのリモートファイルの
データに対して排他ロックを獲得した場合、あるいは、
読出しのみ可能として開いたリモートファイルのファイ
ルデータに対して共有ロックを獲得した場合、ロックを
獲得したノード10の計算機はキャッシュ310中にそのフ
ァイルデータのコピーを保持する。既にキャッシュ310
中にそのファイルデータのコピーが存在する場合にはそ
の有効性を判定し有効でなければ前記コピーを無効とす
る。コピーを変更した場合にはロックを解放するまでに
変更点をコピー元のファイルに反映させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は計算機システム間に
おいてリモートファイルの一貫性を制御する方法に係わ
り、計算機のキャッシュを有効に利用するための技術に
関する。
【0002】
【従来の技術】パーソナルコンピュータやワークステー
ション、メインフレーム等の様々な規模の計算機システ
ムがネットワークにより接続された分散コンピューティ
ング環境が構築されている。このような分散コンピュー
ティング環境では、通常、様々な情報が分散ファイルシ
ステムにより共有されている。特に、米国Sun Mi
crosystems社が開発した分散ファイルシステ
ムの仕様(倉骨彰訳/砂原秀樹監訳「NFS & NI
S」アスキー出版局、pp.183−218(1992
年12月1日)(原著:Managing NFS a
nd NIS、原著者:Hal Stern、原発行
所:O’Reilly&Associates,In
c.)は業界標準として使用されている。
【0003】ファイルロック機構は、複数の読出し/書
込み処理が同時に同じファイルに対して実行される場合
にファイルの一貫性を保証する。ファイルロックの種類
は共有ロックと排他ロックの二つに大別される。複数の
ユーザプログラムは同じファイルに対して同時に複数の
共有ロックをかけることができるが、同時に共有ロック
と排他ロックをかけることはできず、また、同時に複数
の排他ロックをかけることはできない。複数の読出し/
書込み処理が同時に同じファイルに対して実行される場
合に、読み出す際にはそのファイルに共有ロックをか
け、書き込む際にはそのファイルに排他ロックをかける
ことにより、ファイルの一貫性を保持することができ
る。先の分散ファイルシステムにおいてもファイルロッ
クを使用することができる。
【0004】しかし、この分散ファイルシステムにおい
ては、ロックをかけたリモートファイルに対してキャッ
シュを使用することはできない。多くの分散ファイルシ
ステムは入出力性能を高めるためにキャッシュを使用し
ている。クライアント計算機は、サーバ計算機から読み
出したデータや、サーバ計算機に書き込むデータを自分
のキャッシュ内に保持することができる。クライアント
計算機がサーバ計算機に対して読出し要求を出したデー
タが自分のキャッシュ内にあり、かつ、そのデータが有
効である場合には、クライアント計算機は自キャッシュ
内のデータを使用すればよいので、サーバ計算機に読出
し要求を送る必要がなく高い読出し性能を提供すること
ができる。また、書込みデータをキャッシュ内に蓄えた
後に一括してサーバ計算機に送ると、個々の小さな単位
でサーバ計算機に送るよりも高い書込み性能を提供する
ことができる。
【0005】リモートファイルに対してキャッシュを利
用すると、その入出力性能は向上するが、ファイルの一
貫性が損われてしまう危険性もある。例えば、複数のク
ライアント計算機のキャッシュ内に同じファイルのコピ
ーが存在し、そのコピーを各クライアント計算機が同時
に変更するとファイルの一貫性が損なわれてしまう。ク
ライアント計算機およびサーバ計算機のキャッシュ間の
データの一貫性を保つために、分散ファイルシステムは
キャッシュ一貫性制御機構を用いている。しかし、すべ
ての分散ファイルシステムのキャッシュ一貫性制御機構
がキャッシュ間のデータの完全な一貫性を保証するわけ
ではない。これは完全な一貫性を提供するキャッシュ制
御機構はファイル入出力性能を劣化させることによる。
同じファイルに対して複数のクライアントが同時に入出
力を行うことが極めて稀であるようなアプリケーション
を実行している場合には、完全なキャッシュ一貫性制御
機構は非効率的である。そこで、先の分散ファイルシス
テムにおいてはキャッシュ一貫性制御機構は完全な一貫
性を保証しない。
【0006】この分散ファイルシステムにおいては、キ
ャッシュの一貫性を保持するために、リモートファイル
を開いた時点や、キャッシュ内のデータの有効期限がき
れた時点に、クライアント計算機がキャッシュ内のデー
タが有効であるかをサーバ計算機に問い合わせる。ま
た、リモートファイルを閉じた時点や、キャッシュ内の
データの存続期限がきれた時点に、クライアント計算機
はキャッシュ内の変更されたデータをサーバ計算機に送
る。しかし、例えば、複数のクライアント計算機が同時
に同じファイルを開いて読出し/書込み処理を行ってい
る状況において、あるクライアント計算機がファイルに
データを書き込んだ後に、他のクライアント計算機がそ
のファイルを読み出しても、変更後の新しいデータを読
み出せない可能性がある。データを書き込んだファイル
を閉じる前や、キャッシュ内の書込みデータの存続期限
が切れる前に、同じファイルに対して読出し処理が行わ
れると書込み前のデータが読み出されてしまうからであ
る。
【0007】先に挙げた分散ファイルシステムのキャッ
シュ一貫性制御機構は完全な一貫性を保証しないので、
クライアント計算機が、一貫性の提供を目的としたロッ
クをリモートファイルに対してかけた場合には、そのリ
モートファイルに対してキャッシュを利用不可能として
いる。このような方針をとると、仮にサーバがそのファ
イルに対してロックを獲得せずに読出し/書込みを行っ
てもファイルの一貫性を実現することができる。しか
し、仮に他のクライアントがそのファイルに対してロッ
クを獲得せずに読出し/書込みを行った場合には、該他
のクライアントはそのファイルに対してキャッシュを利
用することができるので、ファイルの一貫性が提供され
ないこともある。したがって、ロックをかけたリモート
ファイルに対してキャッシュを利用不可能としても完全
な一貫性を保証することはできず、リモートファイル入
出力性能も劇的に低下する。
【0008】
【発明が解決しようとする課題】クライアント計算機が
サーバ計算機上のファイルに入出力要求を出した場合、
キャッシュを利用しないと、すべての入出力要求がサー
バ計算機に渡される。クライアント計算機はロックをか
けたリモートファイルからデータを読み出す際に、自分
のキャッシュから読み出すのではなく、必ずサーバ計算
機に読出し要求を送信し、ロックをかけたファイルに対
して書き込む際には必ずサーバ計算機に書込み要求を送
信する。キャッシュを利用しない場合のリモートファイ
ルの入出力性能はキャッシュを利用した場合と比較して
かなり低下する。従来、複数の計算機が同時に同じファ
イルに対して入出力処理を行う状況においてファイルの
一貫性を保つためにロックを用いると、そのファイルに
対してキャッシュを利用することはできなかった。ま
た、同じファイルに対してロックを獲得せずに入出力処
理を行う計算機が存在すると、ファイルの完全な一貫性
を提供することができなかった。
【0009】本発明の第1の目的は、キャッシュの完全
な一貫性を保証しないキャッシュ一貫性制御機構を用い
ている分散ファイルシステムにおいて、複数の計算機が
同時に同じファイルに対してファイルロックを用いた入
出力処理を行っている場合に、ファイルの完全な一貫性
を保証しながらキャッシュを利用可能とし、かつ、ロッ
クを獲得せずにそのファイルに対して入出力を行う計算
機が存在した場合でもファイルの完全な一貫性を提供す
るための方法を提供することにある。
【0010】
【課題を解決するための手段】上記の目的達成のため、
本発明は、リモートファイルの入出力を要求する第1の
計算機と該リモートファイルを保持し、かつ、該リモー
トファイルに対して発行された入出力要求を処理する第
2の計算機を有するシステムにおいて、該第1の計算機
が、該リモートファイルのデータに対して前記第2の計
算機から排他ロックを獲得した場合、あるいは、読出し
のみ可能と設定して開いた該リモートファイルのデータ
に対して前記第2の計算機から共有ロックを獲得した場
合に、前記第1の計算機は該リモートファイルのデータ
に対して該第1の計算機が有するキャッシュを利用可能
とするようにしている。
【0011】また、前記第1の計算機は、該第1の計算
機のキャッシュ中の前記リモートファイルのデータが変
更されている場合には、前記第2の計算機に該リモート
ファイルのデータのロックの解放要求を出して該第2の
計算機がロックを解放するまでに、前記キャッシュ中の
前記リモートファイルのデータを該第2の計算機の該リ
モートファイル上に反映させるようにしている。
【0012】また、リモートファイルの入出力を要求す
る第1の計算機と該リモートファイルを保持し、かつ、
該リモートファイルに対して発行された入出力要求を処
理する第2の計算機を有するシステムにおいて、該第1
の計算機は、該リモートファイルのデータに対して前記
第2の計算機からロックを獲得する際、該第1の計算機
のキャッシュ中に該リモートファイルのデータのコピー
が存在する場合、前記第2の計算機から該リモートファ
イルのデータのコピーの有効性判定用データを取得し、
該リモートファイルのデータのコピーの有効性を判定
し、有効でない場合には前記キャッシュ中の該リモート
ファイルのデータを無効にするようにしている。
【0013】また、リモートファイルの入出力を要求す
る第1の計算機と該リモートファイルを保持し、かつ、
該リモートファイルに対して発行された入出力要求を処
理する第2の計算機を有するシステムにおいて、前記第
2の計算機は、前記第1の計算機がリモートファイルデ
ータに対するロックの獲得を要求した場合、該第1の計
算機以外の計算機がそのロックの獲得先のリモートファ
イルデータが属するファイルを書込みのみ可能、もしく
は、読み書き可能として開いている場合には、該第1の
計算機に対して前記リモートファイルデータに対するロ
ックの獲得を許可しないようにしている。
【0014】また、リモートファイルの入出力を要求す
る第1の計算機と該リモートファイルを保持し、かつ、
該リモートファイルに対して発行された入出力要求を処
理する第2の計算機を有するシステムにおいて、該第2
の計算機は、該リモートファイルに対するファイルデー
タの書込み要求を受けた場合、該リモートファイルの書
込み先のファイルデータに対して排他ロックを保持して
いる場合、あるいは、該ファイルデータに対して排他ロ
ック、もしくは、共有ロックが獲得されていない場合に
限り、ファイルデータの書込みを許可するようにしてい
る。
【0015】
【発明の実施の形態】次に、本発明の一実施例を図面を
用いて詳細に説明する。 [1]構成の概略 図1は本発明が適用される分散システムの一実施例であ
るハードウェア構成を示している。ノード10A、10
B、10Cはネットワーク20で接続されており、それ
ぞれ外部記憶装置30A、30B、30Cや、プロセッ
サ40A、40B、40Cや、メモリ50A、50B、
50Cを持つ独立動作可能な計算機である。各ノードは
他のノードの外部記憶装置上にあるファイル60A、6
0B、60Cに対するリモートファイル入出力処理を行
うことができる。本明細書では、自分に直接接続されて
いる外部記憶装置上にないファイルに対する入出力要求
を出すノードをクライアント、入出力要求先のファイル
が格納されている外部記憶装置が直接接続されており、
クライアントからの入出力要求を処理するノードをサー
バと呼ぶ。
【0016】図2は個々のノードのソフトウェア構成を
示している。各ノード上ではOS300が、アプリケー
ション100の処理、アプリケーション100から分散
ファイルシステム200に対する入出力処理を制御して
いる。分散ファイルシステム200は、キャッシュ利用
可能性判別付きクライアントファイルロック獲得プログ
ラム210、キャッシュ利用可能性判別付きクライアン
トファイルロック解放プログラム220、書込み権確認
付きファイル書込みプログラム230、キャッシュ利用
可能性判別付きサーバファイルロック獲得プログラム2
40、キャッシュ利用可能性判別付きサーバファイルロ
ック解放プログラム250、ファイルデータ330に対
して獲得したロックを管理するためのファイルロック管
理表260、を持っている。アプリケーション100が
ファイル60を開く際に、読み出しのみ可能フラグ、書
き込みのみ可能フラグ、読み書き可能フラグの3種類の
オープンフラグの中のいずれか一つを設定する。分散フ
ァイルシステムは200は、開かれたファイル60に対
して設定したオープンフラグを管理するためのオープン
フラグ管理表270も持っている。OS300は、クラ
イアントがサーバから読み出したファイルデータやサー
バがディスクから読み出したファイルデータを格納する
キャッシュ310、ファイルデータが最も最近変更され
た際の時刻を管理するファイルデータ最終変更時刻管理
表320、ノード上の時刻を獲得するためのノード時刻
獲得プログラム340、を保持している。
【0017】図3は本発明におけるリモートファイルロ
ック獲得/解放処理のための分散システムでのソフトウ
ェア構成例を示している。図3における、ノード10A
の分散ファイルシステムとしては、そのクライアント部
分のみが示され、ノード10Bの分散ファイルシステム
としては、そのサーバ部分のみが示されている。アプリ
ケーション100Aがファイル60Bのサーバファイル
データ330Bを読み出すと、OS300Aがクライア
ントファイルデータ330Aとしてキャッシュ310A
に格納する。OS300Bがファイル60Bのデータを
ディスクから読み出すとサーバファイルデータ330B
としてキャッシュ310Bに格納する。アプリケーショ
ン100Aのファイル60Bに対する読出し要求、書込
み要求、ロック獲得要求、ロック解放要求はネットワー
ク20を介してサーバ10Bの分散ファイルシステム2
00Bに渡される。アプリケーション100Aがファイ
ル60Bを開くと、分散ファイルシステム200Aがフ
ァイル60BのIDと設定したオープンフラグをオープ
ンフラグ管理表270Aに登録する。また、アプリケー
ション100Aがファイル60Bのサーバファイルデー
タ330Bに対してロックを獲得した際には、サーバフ
ァイルデータ330Bが属するファイル60BのID、
ファイルデータ330Bの範囲、獲得したロックをファ
イルロック管理表260Aに登録する。
【0018】[2]リモートファイルロック獲得処理の
実施例 次に具体的な例を挙げてリモートファイルロック獲得処
理の流れを示す。図4は、クライアント10A上のアプ
リケーション100Aが、サーバ10B上のファイル6
0Bのファイルデータであるサーバファイルデータ33
0Bに対するロックの獲得を要求した例における、本発
明のリモートファイルロック獲得方法の主要部分のタイ
ムチャートを示している。タイムチャートはキャッシュ
利用可能性判別付きクライアントリモートファイルロッ
ク獲得プログラム210Aの動作を左側に、キャッシュ
利用可能性判別付きサーバリモートファイルロック獲得
プログラム210Bの動作を右側に示す。
【0019】(1)リモートファイルロック獲得要求4
00 クライアント10Aにおいてアプリケーション100A
が、サーバ10B上のファイル60Bのファイルデータ
であるサーバファイルデータ330Bに対してリモート
ファイルロック獲得要求400を出すと、キャッシュ利
用可能性判別付きクライアントファイルロック獲得プロ
グラム210Aが実行される。図5はキャッシュ利用可
能性判別付きクライアントファイルロック獲得プログラ
ム210Aの処理の流れを示す。まず、ロック獲得時キ
ャッシュ利用可能性判別プログラム600(図6により
後述)を実行する(ステップ500)。ロック獲得時キ
ャッシュ利用可能性判別プログラム600は、サーバフ
ァイルデータ330Bの最終変更時刻をサーバから獲得
する必要があるか否かを返す。なお、最終変更時刻はリ
モートファイルのデータのコピーの有効性判定用データ
となる。サーバファイルデータ330Bの最終変更時刻
を獲得する必要か否かを調べる(ステップ501)。獲
得する必要がある場合には、キャッシュ一貫性制御付き
ファイルロック獲得プログラム700(図7により後
述)が実行される(ステップ510)。
【0020】ファイルデータ最終変更時刻が不必要と判
定された場合には、キャッシュ一貫性制御なしファイル
ロック獲得プログラム800(図8により後述)が実行
される(ステップ520)。
【0021】図6はロック獲得時キャッシュ利用可能性
判別プログラム600の処理の流れを示している。クラ
イアントオープンフラグ管理表270Aの既に登録され
た内容を参照して、ファイルロックの獲得を要求してい
るリモートファイル60Bのオープンフラグが読出しの
み可能であるか否かを調べ(ステップ601)、読出し
のみ可能であればリモートファイル60Bに対してキャ
ッシュ310Aを利用可能とする(ステップ610)。
そして、ロックの獲得を要求しているサーバファイルデ
ータ330Bに該当しているクライアントファイルデー
タ330Aが既にキャッシュ310A内に存在するか否
かを調べ(ステップ611)、存在する場合にはサーバ
ファイルデータ330Bの最終変更時刻の獲得を要求す
るとして(ステップ612)終了する。クライアントフ
ァイルデータ330Aがキャッシュ310A内に存在し
なければ、サーバファイルデータ330Bの最終変更時
刻の獲得を要求しないとして(ステップ632)終了す
る。
【0022】リモートファイル60Bのオープンフラグ
が読出しのみ可能でなければ、リモートファイル60B
のファイルデータ330Bに対して獲得を要求している
ロックが排他ロックであるか否かを判定する(ステップ
620)。排他ロックである場合には、ファイルデータ
330Bに対してキャッシュを利用可能とする(ステッ
プ610)。獲得を要求しているロックが排他ロックで
なければ、ファイルデータ330Bに対してキャッシュ
310Aを利用不可能とし(ステップ621)、サーバ
ファイルデータ330Bの最終変更時刻の獲得は要求し
ないとして(ステップ632)終了する。
【0023】(2a)サーバファイルデータ330Bの
ロックと最終変更時刻獲得要求送信 図7はキャッシュ一貫性制御付きファイルロック獲得プ
ログラム700の処理の流れを示している。サーバファ
イルデータ330Bのロックと最終変更時刻の獲得要求
をサーバ10Aに送信し(ステップ701)、サーバフ
ァイルデータ330Bのロックと最終変更時刻の獲得成
功/失敗通知を待つ(ステップ702)。以後のステッ
プについては後述する。
【0024】(2b)サーバファイルデータ330Bの
ロック獲得要求送信 図8はキャッシュ一貫性制御なしファイルロック獲得プ
ログラム800の処理の流れを示している。サーバファ
イルデータ330Bのロックの獲得要求をサーバ10B
に送信し(ステップ801)、サーバファイルデータ3
30Bのロック獲得成功/失敗通知を待つ(ステップ8
02)。以後のステップについては後述する。
【0025】(3)サーバファイルデータ330Bのロ
ックと最終変更時刻の獲得要求受信、あるいは、サーバ
ファイルデータ330Bのロック獲得要求受信 サーバ10Bはサーバファイルデータ330Bのロック
獲得要求を受信すると、キャッシュ利用可能性判別付き
サーバファイルロック獲得プログラム210Bを実行す
る。図9はキャッシュ利用可能性判別付きサーバファイ
ルロック獲得プログラム210Bの処理の流れを示して
いる。サーバファイルロック獲得プログラム1000を
実行する(ステップ900)。そして、サーバファイル
データ330Bの最終変更時刻の獲得要求も受信してい
るか否かを調べる(ステップ901)。受信していない
場合には、サーバファイルデータ330Bのロック獲得
成功/失敗通知をクライアント10Aに送信して(ステ
ップ920)終了する。サーバファイルデータ330B
の最終変更時刻の獲得要求を受信した場合には、サーバ
ファイルデータ最終変更時刻管理表320Bを参照して
サーバファイルデータ330Bの最終変更時刻を獲得し
(ステップ910)、サーバファイルデータ330Bの
ロック獲得成功/失敗通知とサーバファイルデータ33
0Bの最終変更時刻をクライアント10Aに送信して
(ステップ911)終了する。
【0026】図10はサーバファイルロック獲得プログ
ラム1000の処理の流れを示している。サーバオープ
ンフラグ管理表270Bを参照して、ロックの獲得を要
求したサーバファイルデータ330Bが属するファイル
60Bを、書込みのみ可能あるいは読み書き可能として
開いているプログラムが複数個あるか調べる(ステップ
1001)。複数個ある場合にはサーバファイルデータ
330Bのロック獲得失敗として(ステップ1002)
終了する。ファイル60Bを開いているプログラムが1
個である場合(クライアント10Aのみがロックの獲得
を要求している場合)には、獲得を要求しているロック
が排他ロックであるか否かを調べる(ステップ101
0)。排他ロックである場合には、サーバオープンフラ
グ管理表270Bを参照して、ファイル60Bが読出し
のみ可能としてオープンされているか否かを調べる(ス
テップ1011)。読出しのみ可能としてオープンされ
ている場合にはサーバファイルデータ330Bのロック
獲得失敗として(ステップ1002)終了する。ファイ
ル60Bが読出しのみ可能として開かれていない場合に
は(書込みのみ可能、もしくは、読み書き可能として開
かれている場合には)、サーバファイルロック管理表2
60Bを参照してサーバファイルデータ330Bに対し
て既に排他ロックもしくは共有ロックが獲得されている
か否かを調べる(ステップ1012)。獲得されている
場合にはサーバファイルデータ330Bのロック獲得失
敗として(ステップ1002)終了する。サーバファイ
ルデータ330Bに対して排他ロックも共有ロックも獲
得されていない場合には、サーバファイルデータ330
Bの排他ロックを獲得し、サーバファイルロック管理表
260Bにファイル60BのID、サーバファイルデー
タ330Bの範囲、獲得したロックを登録して(ステッ
プ1013)終了する。
【0027】サーバファイルデータ330Bに対して排
他ロックの獲得を要求していない場合には(サーバファ
イルデータ330Bに対して共有ロックの獲得を要求し
ている場合には)、サーバオープンフラグ管理表270
Bを参照してファイル60Bが読出しのみ可能としてオ
ープンされているか否かを調べる(ステップ102
0)。読出しのみ可能としてオープンされていない場合
には(書込みのみ可能、もしくは、読み書き可能として
オープンされている場合には)、サーバファイルデータ
330Bのロック獲得失敗として(ステップ1002)
終了する。ファイル60Bが読出しのみ可能として開か
れている場合には、サーバオープンフラグ管理表270
Bを参照して、サーバファイルデータ330Bに対して
既に排他ロックが獲得されているか否かを調べる(ステ
ップ1021)。獲得されている場合にはサーバファイ
ルデータ330Bのロック獲得失敗として(ステップ1
002)終了する。サーバファイルデータ330Bに対
して排他ロックが獲得されていない場合には、サーバフ
ァイルデータ330Bに対して共有ロックを獲得し、フ
ァイル60BのID、サーバファイルデータ330Bの
範囲、獲得したロックをサーバファイルロック管理表2
60Bに登録して(ステップ1022)終了する。
【0028】(5a)サーバファイルデータ330Bの
ロック獲得成功/失敗通知と最終変更時刻獲得要求受信 図7に戻り、ロックと最終変更時刻の獲得に成功したか
否かを調べる(ステップ703)。成功しなかった場合
には、ロックと最終変更時刻の獲得要求を再送するか否
かを調べる(ステップ720)。再送する場合にはステ
ップ701に戻り、再送しない場合には終了する。ロッ
クと最終変更時刻の獲得に成功した場合には、ファイル
60BのID、サーバファイルデータ330Bの範囲、
獲得したロックをクライアントファイルロック管理表2
60Aに登録する(ステップ710)。そして、獲得し
たサーバファイルデータ330Bの最終変更時刻とクラ
イアントファイルデータ最終変更時刻管理表320A中
のクライアントファイルデータ330Aの最終変更時刻
が一致するか否かを調べる(ステップ711)。一致し
た場合には終了する。一致しない場合にはクライアント
ファイルデータ330Aを無効にして(ステップ71
2)終了する。
【0029】(5b)サーバファイルデータ330Bの
ロック獲得成功/失敗通知受信図8に戻り、 ロックの獲得に成功したか否かを調べる(ステップ80
3)。成功しなかった場合には、ロックの獲得要求を再
送するか否かを調べる(ステップ810)。再送する場
合にはステップ801に戻り、再送しない場合には終了
する。ロックの獲得に成功した場合にはファイル60B
のID、サーバファイルデータ330Bの範囲、ロック
をクライアントファイルロック管理表260Aに登録し
て(ステップ804)終了する。
【0030】[3]リモートファイルロック解放処理の
実施例 次に具体的な例を挙げてリモートファイルロック解放処
理の流れを示す。図11はクライアント10Aがリモー
トファイルロック解放要求を出した例における、本発明
におけるリモートファイルロック解放処理の主要部分の
タイムチャートである。タイムチャートはキャッシュ利
用可能性判別付きクライアントファイルロック解放プロ
グラム220A、キャッシュ利用可能性判別付きサーバ
ファイルロック解放プログラム220Bの動作を示す。
【0031】(1)サーバファイルデータ330Bのロ
ック解放要求と、(2)サーバファイルデータ330B
のロック解放要求とクライアントファイルデータ330
Aの書込み要求送信、あるいは、サーバファイルデータ
330Bのロック開放要求送信と、(5)サーバファイ
ルデータ330Bのロック解放とクライアントファイル
データ330Aの書込み終了通知の受信、あるいは、サ
ーバリモートファイルデータ330Bのロック解放終了
通知クライアント10Aのアプリケーション100Aが
サーバファイルデータ330Bのロック解放要求110
0を出すと、キャッシュ利用可能性判別付きクライアン
トファイルロック解放プログラム220Aが実行され
る。図12はキャッシュ利用可能性判別付きクライアン
トファイルロック解放プログラム220Aの処理の流れ
を示す。ロック解放時キャッシュ利用可能性判別プログ
ラム1300を実行する(ステップ1200)。
【0032】図13はロック解放時キャッシュ利用可能
性判別プログラム1300の処理の流れを示す。クライ
アントファイルロック管理表260Aを参照して解放を
要求しているロックが排他ロックであるか否かを判定す
る(ステップ1301)。本発明におけるリモートファ
イルロック獲得/解放処理においては、排他ロックをか
けたファイルに書き込む場合にのみキャッシュを利用可
能としている。解放を要求しているロックが排他ロック
でなければ、キャッシュ310A内にあるクライアント
ファイルデータ330Aが変更されることはない。よっ
て、解放を要求しているロックが排他ロックでない場合
には、クライアントファイルデータ330Aの書込みは
必要なしとして(ステップ1305)終了する。解放を
要求しているロックが排他ロックである場合には、クラ
イアントオープンフラグ管理表270Aを参照してリモ
ートファイル60Bのオープンフラグが書込みのみ可
能、もしくは、読み書き可能である否かを調べる(ステ
ップ1302)。書込みのみ可能でも読み書き可能でも
ない場合には、クライアントファイルデータ330Aの
書込みは必要なしとして(ステップ1305)終了す
る。リモートファイル60Bのオープンフラグが書込み
のみ可能、もしくは、読み書き可能である場合には、サ
ーバファイルデータ330Bに該当するクライアントフ
ァイルデータ330Aが変更されたか否かを調べる(ス
テップ1303)。変更されている場合には、クライア
ントファイルデータ330Aの書込みは必要として(ス
テップ1304)終了する。クライアントファイルデー
タ330Aが変更されていない場合には、クライアント
ファイルデータ330Aの書込みは必要なしとして(ス
テップ1305)終了する。
【0033】図12に戻って、ロック解放時キャッシュ
利用可能性判別プログラム1300を実行した結果、ク
ライアントファイルデータ330Aを書き込む必要があ
ると判定されたか否かを調べる(ステップ1201)。
書き込む必要があると判定された場合には、サーバファ
イルデータ330Bのロックの解放要求とクライアント
ファイルデータ330Aの書込み要求をサーバ10Bに
送信する(ステップ1210)。そして、サーバファイ
ルデータ330Bのロック解放とクライアントファイル
データ330Aの書込み処理の終了通知を待つ(ステッ
プ1211)。サーバファイルデータ330Bのロック
解放とクライアントファイルデータ330Aの書込み処
理の終了通知を受信した後(ステップ1212)終了す
る。
【0034】クライアントファイルデータ330Aを書
き込む必要がないと判定された場合には、サーバファイ
ルデータ330Aのロックの解放要求をサーバ10Bに
送信する(ステップ1220)。そして、サーバファイ
ルデータ330Bのロック解放処理の終了通知を待つ
(ステップ1221)。サーバファイルデータ330B
のロック解放処理の終了通知を受信した後(ステップ1
222)終了する。
【0035】(3)サーバファイルデータ330Bのロ
ック開放要求受信、あるいは、サーバファイルデータ3
30Bのロック解放要求とクライアントファイルデータ
330Aの書込み要求受信と、(4)サーバファイルデ
ータ330Bのロック開放とクライアントファイルデー
タ330Aの書込み終了通知の送信、あるいは、サーバ
ファイルデータ330Bのロック開放終了通知サーバ1
0Bはサーバファイルデータ330Aのロック解放要求
を受信すると、キャッシュ利用可能性判別付きサーバフ
ァイルロック解放プログラム220Bを実行する。図1
4はキャッシュ利用可能性判別付きサーバファイルロッ
ク解放プログラム220Bの処理の流れを示している。
クライアントファイルデータ330Aの書込み要求を受
信したか否かを調べる(ステップ1400)。書き込む
必要がある場合には、クライアントファイルデータ33
0Aの書込み処理を実行した後(ステップ1410)、
サーバファイルデータ330Bのロックを解放し(ステ
ップ1411)、サーバファイルデータ330Bのロッ
ク解放終了通知とクライアントファイルデータ330A
の書込み終了通知をクライアント10Aに送信して(ス
テップ1412)終了する。クライアントファイルデー
タ330Aの書込み要求を受信しない場合には、サーバ
ファイルデータ330Bのロックを解放し(ステップ1
420)、サーバファイルデータ330Bのロック解放
終了通知をクライアント10Aに送信して(ステップ1
421)終了する。
【0036】[4]ファイル書込み方法の実施例 次に、具体的に、クライアント10A(サーバ10B)
がリモートファイル60Bのサーバファイルデータ33
0Bを変更する例を挙げて、ファイル書込み方法の処理
の流れを示す。ローカルファイル及びリモートファイル
に書き込む際に書込み権確認付き書込みプログラム23
0を実行する。
【0037】図15は書込み権確認付き書込みプログラ
ム230の処理の流れを示す。クライアント10A(サ
ーバ10B)が、クライアントファイルロック管理表2
60A(サーバファイルロック管理表260B)を参照
してサーバファイルデータ60Bに対して排他ロックを
保持しているか調べる(ステップ1500)。排他ロッ
クを保持している場合にはクライアント10A(サーバ
10B)は書込み処理を実行し、ノード時刻獲得プログ
ラム340を用いて現在のノードの時刻を獲得し、クラ
イアントファイルデータ最終変更時刻管理表320A
(サーバファイルデータ最終変更時刻管理表320B)
にファイルデータIDと獲得した時刻を登録して(ステ
ップ1501)終了する。クライアント10A(サーバ
10B)がサーバファイルデータ60Bに対して排他ロ
ックを保持していない場合には、サーバオープンフラグ
管理表270Bを参照して他の計算機がサーバファイル
データ60Bに対して排他ロックもしくは共有ロックが
獲得しているか否かを調べる(ステップ1510)。獲
得されている場合には書込み処理失敗を通知して(ステ
ップ1511)終了する。他の計算機がサーバファイル
データ330Bに対して排他ロックもしくは共有ロック
を獲得していない場合には、クライアント10A(サー
バ10B)はステップ1501を実行して終了する。
【0038】
【発明の効果】本発明は、ロックをかけたリモートファ
イルに対してキャッシュを利用可能とすることにより、
ロックをかけたリモートファイルの入出力性能を向上さ
せる。
【図面の簡単な説明】
【図1】本発明が適用される分散システムの一実施例で
あるハードウェア構成を示す図である。
【図2】個々のノードのソフトウェア構成を示す図であ
る。
【図3】リモートファイルロック獲得/解放処理のため
の分散システムでのソフトウェア構成例を示す図であ
る。
【図4】リモートファイルロック獲得例のタイムチャー
トを示す図である。
【図5】キャッシュ利用可能性判別付きクライアントフ
ァイルロック獲得プログラム210Aのフローチャート
を示す図である。
【図6】ロック獲得時キャッシュ利用可能性判別プログ
ラム600のフローチャートを示す図である。
【図7】キャッシュ一貫性制御付きファイルロック獲得
プログラム700のフローチャートを示す図である。
【図8】キャッシュ一貫性制御なしファイルロック獲得
プログラム800のフローチャートを示す図である。
【図9】キャッシュ利用可能性判別付きサーバファイル
ロック獲得プログラム210Bのフローチャートを示す
図である。
【図10】サーバファイルロック獲得プログラム100
0のフローチャートを示す図である。
【図11】リモートファイルロック解放例のタイムチャ
ートを示す図である。
【図12】キャッシュ利用可能性判別付きクライアント
ファイルロック解放プログラム220Aのフローチャー
トを示す図である。
【図13】ロック解放時キャッシュ利用可能性判別プロ
グラム1300のフローチャートを示す図である。
【図14】キャッシュ利用可能性判別付きサーバファイ
ルロック解放プログラム220Bのフローチャートを示
す図である。
【図15】書込み権確認付き書込みプログラム230A
のフローチャートを示す図である。
【符号の説明】
10A、10B、10C ノード 20 ネットワーク 30A、30B、30C 外部記憶装置 40A、40B、40C プロセッサ 50A、50B、50C メモリ 60A、60B、60C ファイル

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 リモートファイルの入出力を要求する第
    1の計算機と該リモートファイルを保持し、かつ、該リ
    モートファイルに対して発行された入出力要求を処理す
    る第2の計算機を有するシステムにおいて、 該第1の計算機が、該リモートファイルのデータに対し
    て前記第2の計算機から排他ロックを獲得した場合、あ
    るいは、読出しのみ可能と設定して開いた該リモートフ
    ァイルのデータに対して前記第2の計算機から共有ロッ
    クを獲得した場合に、前記第1の計算機は該リモートフ
    ァイルのデータに対して該第1の計算機が有するキャッ
    シュを利用可能とすることを特徴とするキャッシュ制御
    方法。
  2. 【請求項2】 請求項1記載のキャッシュ制御方法にお
    いて、 前記第1の計算機は、該第1の計算機のキャッシュ中の
    前記リモートファイルのデータが変更されている場合に
    は、前記第2の計算機に該リモートファイルのデータの
    ロックの解放要求を出して該第2の計算機がロックを解
    放するまでに、前記キャッシュ中の前記リモートファイ
    ルのデータを該第2の計算機の該リモートファイル上に
    反映させることを特徴とするキャッシュ制御方法。
  3. 【請求項3】 リモートファイルの入出力を要求する第
    1の計算機と該リモートファイルを保持し、かつ、該リ
    モートファイルに対して発行された入出力要求を処理す
    る第2の計算機を有するシステムにおいて、 該第1の計算機は、該リモートファイルのデータに対し
    て前記第2の計算機からロックを獲得する際、該第1の
    計算機のキャッシュ中に該リモートファイルのデータの
    コピーが存在する場合、前記第2の計算機から該リモー
    トファイルのデータのコピーの有効性判定用データを取
    得し、該リモートファイルのデータのコピーの有効性を
    判定し、有効でない場合には前記キャッシュ中の該リモ
    ートファイルのデータを無効にすることを特徴とするキ
    ャッシュ制御方法。
  4. 【請求項4】 リモートファイルの入出力を要求する第
    1の計算機と該リモートファイルを保持し、かつ、該リ
    モートファイルに対して発行された入出力要求を処理す
    る第2の計算機を有するシステムにおいて、 前記第2の計算機は、前記第1の計算機がリモートファ
    イルデータに対するロックの獲得を要求した場合、該第
    1の計算機以外の計算機がそのロックの獲得先のリモー
    トファイルデータが属するファイルを書込みのみ可能、
    もしくは、読み書き可能として開いている場合には、該
    第1の計算機に対して前記リモートファイルデータに対
    するロックの獲得を許可しないことを特徴とするリモー
    トファイルロックの獲得制御方法。
  5. 【請求項5】 リモートファイルの入出力を要求する第
    1の計算機と該リモートファイルを保持し、かつ、該リ
    モートファイルに対して発行された入出力要求を処理す
    る第2の計算機を有するシステムにおいて、 該第2の計算機は、該リモートファイルに対するファイ
    ルデータの書込み要求を受けた場合、該リモートファイ
    ルの書込み先のファイルデータに対して排他ロックを保
    持している場合、あるいは、該ファイルデータに対して
    排他ロック、もしくは、共有ロックが獲得されていない
    場合に限り、ファイルデータの書込みを許可することを
    特徴とするファイル書込み制御方法。
JP10176633A 1998-06-09 1998-06-09 キャッシュ制御方法およびリモートファイルロックの獲得制御方法およびファイル書込み制御方法 Pending JPH11353220A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10176633A JPH11353220A (ja) 1998-06-09 1998-06-09 キャッシュ制御方法およびリモートファイルロックの獲得制御方法およびファイル書込み制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10176633A JPH11353220A (ja) 1998-06-09 1998-06-09 キャッシュ制御方法およびリモートファイルロックの獲得制御方法およびファイル書込み制御方法

Publications (1)

Publication Number Publication Date
JPH11353220A true JPH11353220A (ja) 1999-12-24

Family

ID=16017002

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10176633A Pending JPH11353220A (ja) 1998-06-09 1998-06-09 キャッシュ制御方法およびリモートファイルロックの獲得制御方法およびファイル書込み制御方法

Country Status (1)

Country Link
JP (1) JPH11353220A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006525571A (ja) * 2003-04-29 2006-11-09 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピューティング環境のオブジェクトへのアクセスの管理

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006525571A (ja) * 2003-04-29 2006-11-09 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピューティング環境のオブジェクトへのアクセスの管理
US8700584B2 (en) 2003-04-29 2014-04-15 International Business Machines Corporation Managing access to objects of a computing environment

Similar Documents

Publication Publication Date Title
JP3213766B2 (ja) レプリケートファイル更新システム
US6385625B1 (en) Highly available cluster coherent filesystem
JP3199718B2 (ja) キャッシュ整合性維持方法
Franklin et al. Client-server caching revisited
US7376651B2 (en) Virtual storage device that uses volatile memory
US7254578B2 (en) Concurrency classes for shared file systems
US6269432B1 (en) Distributed transactional processing system having redundant data
US5140689A (en) Data recovery system and method of distributed transaction processing system
US7548918B2 (en) Techniques for maintaining consistency for different requestors of files in a database management system
US20030065672A1 (en) System and method for implementing journaling in a multi-node environment
US20040267706A1 (en) Method, system, and program for managing requests to tracks subject to a relationship
US9208090B2 (en) Transactional memory proxy
JPH04502678A (ja) 回路網化されたコンピュータシステムにおいてファイルキャッシングを開く方法及び装置
US11611617B2 (en) Distributed data store with persistent memory
JP2004303211A (ja) データベース結果および導出オブジェクトをキャッシュし、無効にするためのシステムおよび方法
JPH0922392A (ja) オブジェクト間のコンスピラシのための方法および装置
US11468175B2 (en) Caching for high-performance web applications
US20020147719A1 (en) Distribution of physical file systems
JP4491254B2 (ja) 複製コマンド配布のシステムおよび方法
JP2000155729A (ja) 改良したクラスタ管理方法及び装置
TWI386810B (zh) 多處理器系統以目錄為主之資料傳輸協定
JPH10254748A (ja) 分散共有メモリ一貫性最適制御方法
KR100745878B1 (ko) 저장 제어 장치 및 방법, 컴퓨터 프로그램 제품
EP4124963B1 (en) System, apparatus and methods for handling consistent memory transactions according to a cxl protocol
US8521957B2 (en) Cache control method for a computer system