JPH06314227A - バージョン化オブジェクトに対するロッキング機構 - Google Patents

バージョン化オブジェクトに対するロッキング機構

Info

Publication number
JPH06314227A
JPH06314227A JP6039531A JP3953194A JPH06314227A JP H06314227 A JPH06314227 A JP H06314227A JP 6039531 A JP6039531 A JP 6039531A JP 3953194 A JP3953194 A JP 3953194A JP H06314227 A JPH06314227 A JP H06314227A
Authority
JP
Japan
Prior art keywords
subset
lock
user
request
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP6039531A
Other languages
English (en)
Other versions
JP2703498B2 (ja
Inventor
Shaw-Ben Shi
シャウ−ベン・シ
Peter C-T Wang
ピーター・チュン−ツィ・ウォン
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 JPH06314227A publication Critical patent/JPH06314227A/ja
Application granted granted Critical
Publication of JP2703498B2 publication Critical patent/JP2703498B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】 分散データ処理環境において、複数のユーザ
によるバージョン化オブジェクトへの同時アクセスを制
御する方法、及びシステム。 【構成】 最初にユーザがアクセスを希望するデータ・
セットの第1の部分に対する書込みロックを探索する。
書込みロックが検出されない場合、第1の部分に対する
書込みアクセスを許可することにより要求が許可され
る。書込みロックが設定されている場合、他のユーザが
それを変更することを禁止するが、他のユーザは第1の
部分への読出しアクセスは許可される。第2のユーザが
データ・セットの第2の部分へのアクセスを希望し、第
2の部分が第1の部分と幾つかの共通要素と、共有され
ない要素を有するとき、第2のユーザの要求は、第1の
部分と共有されない第2の部分の1部だけに対し、部分
的に許可される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータ・システム
におけるデータ記憶装置に関し、特に、バージョン化オ
ブジェクトのロッキング方法及びシステムに関する。
【0002】
【従来の技術】複数のプロセッサがネットワーク内にお
いて相互接続される分散コンピュータ環境が普及しつつ
ある。これらの環境では、何人かのユーザが同時に同一
のバージョン化オブジェクトをアクセス及び潜在的には
更新することを望む可能性がある。バージョン化オブジ
ェクトは、複数のユーザに対する複数のコピーを有する
オブジェクトである。バージョン制御は、例えばソフト
ウェア・エンジニアリング、CAD/CAMシステム、
及び複合文書を扱うオフィス情報システムなどの様々な
データ集中型アプリケーション分野における重要な機能
の1つである。バージョン制御は、データの単一のバー
ジョンが全てのユーザによって使用可能であることを保
証する。更に、これらの環境のユーザは、オブジェクト
の複数のバージョンを試してみる必要がある。
【0003】従来の読出し/書込みロッキング機構は親
オブジェクトであるか子オブジェクトかを区別せず、ま
た部分オブジェクトを扱わない。ユーザは全オブジェク
トをロックまたはアンロックしなければならない。更
に、誰かがオブジェクトをロックしたことによりロック
要求が失敗する場合、ユーザはオブジェクトが使用可能
になるまで、何度もロック要求を再試行しなければなら
ない。
【0004】従来の方法によれば、トークンの使用を通
じ、複数のユーザがデータ・ファイルへのアクセスを共
有することができる。複数のユーザはデータの1部に対
する読出しトークンを有するが、あるユーザが読出し/
書込みトークンを獲得する時、他のユーザにより保持さ
れる全ての読出しトークンは無効となる。読出し/書込
みトークンを有するユーザは、ユーザが変更を希望する
ファイルの論理部分だけを制御するのではなく、そのフ
ァイルのために使用される記憶装置の物理ページを制御
する。
【0005】
【発明が解決しようとする課題】本発明の目的は、分散
データ処理環境において、複数のユーザによるバージョ
ン化オブジェクトへの同時アクセスを支援することであ
る。
【0006】本発明の別の目的は、バージョン化オブジ
ェクトの1部に対するあるユーザの変更にもとづき、バ
ージョン化オブジェクトの複数のコピーを更新すること
である。
【0007】本発明の更に別の目的は、異なるユーザに
よる排他的書込みアクセスに対し、オブジェクトの異な
る論理部分をロックすることである。
【0008】
【課題を解決するための手段】これらの目的が、バージ
ョン化オブジェクトの同時制御を扱うために設計される
複数のロック・モードにより達成される。"協調(Coope
rative)"、"通知(Notify)"及び"予約(Reserve)"ロ
ック・モードは、オブジェクトの同時使用を増加するた
めに設計される特定のロック・モードである。
【0009】複数のユーザによるコンピュータ・システ
ムの共用メモリへの同時アクセスのための方法、システ
ム及びプログラムは、最初に、ユーザがアクセスを希望
するデータ・セットの第1の部分に対するロックを探索
する。ロックが検出されない場合、所望の部分に対する
アクセスを許可することにより、要求が許可される。そ
れから、ロックがデータ・セットの所望の部分に設定さ
れ、他のユーザがアクセスすることを禁止する。第2の
ユーザがデータ・セットの第2の部分を希望する場合に
ついても、処理は同様である。データ・セットの第2の
部分に対するロックが探索される。ロックが見い出され
ない場合、第2の部分へのアクセスのための第2のユー
ザの要求が許可される。他のユーザのアクセスを禁止す
るために、第2の部分に対するロックが設定される。第
3のユーザがデータ・セットの第3の部分へのアクセス
を希望し、第3のデータ・セットが、既にロックが設定
された第1の部分と幾つかの共通要素を共有する場合、
第3のユーザの要求は部分的に許可される。彼は、第1
の部分により共有されない第3の部分の1部に対する排
他的書込みロックを受信する。ユーザはオブジェクトの
任意部分に対する排他的書込みロックの有無に関わら
ず、一般にオブジェクトの全ての部分に対する読出しア
クセスを有する。ユーザがデータ・セットの自身の部分
に関して終了すると、ロックが除去され、ユーザの更新
部分のレコード数が、最初に受信された時のこの部分の
レコード数と比較され、データ・セットの親コピーがそ
れに従い更新される。
【0010】通常、ユーザがデータ・セットの予め予約
された部分へのアクセスを要求する時、要求は拒絶され
る。しかしながら、本発明はこうした状況を緩和する2
つのモードを含む。ユーザが実際にデータ・セットの1
部を必要かどうかが不確かであるが、将来の使用のため
に所望の部分にロックを設定したい場合、ユーザは通知
(Notify)モードによりロックする。第2のユーザによ
る第2の要求が検出されると、通知ロックを有するユー
ザに対し、所望部分に対する第2の要求が受信されたこ
とを示すメッセージが送信される。ユーザはロック・モ
ードを排他的結合アクセス・モードに変更するか、何も
アクションを起こさない場合には、所望部分に対する彼
のロックが除去される。予約(Reserve) モードは、ロ
ックの探索により所望部分が既に使用されていることが
示される場合に、所望部分に対してユーザが予め順番待
ちすることを許可する。
【0011】
【実施例】本発明は多数の異なるオペレーティング・シ
ステム下で動作する様々なコンピュータまたはコンピュ
ータの集合において実行される。コンピュータは例えば
パーソナル・コンピュータ、ミニ・コンピュータ、また
はメインフレーム・コンピュータなどである。ローカル
・エリア・ネットワークまたはワイド・エリア・ネット
ワークまたは大規模テレプロセシング・システムなどの
ネットワークの1部である複数のコンピュータが使用さ
れる。コンピュータの特定の選択はディスク及びディス
ク記憶要求によってのみ制限されるが、IBM PS/
2(TM)シリーズのコンピュータが本発明においては
使用される。IBMのPS/2シリーズ・コンピュータ
に関する詳しい情報については、Technical Reference
ManualPersonal System/2 Model 50、60 Systems IBM C
orporation、Part No.68X2224Order Number S68X-2224
及びTechnical Reference Manual Personal Systems/2
(model 80)IBM Corporation Part No.68X2256 Order
Number S68X-2254 等を参照されたい。IBM PS/
2パーソナル・コンピュータが動作するオペレーティン
グ・システムの1つは、IBMのOS/2 2.0(T
M)であり、IBMOS/2 2.0オペレーティング
・システムに関する詳しい情報については、OS/2 2.0
Technical Library、Programming Guide Vol.1、2、3
Version2.00 Order Nos.10G6261、10G6495、10G6494
等を参照されたい。
【0012】また、コンピュータ・システムがAIX
(TM)オペレーティング・システム上で動作するIB
M RISC System/6000(TM)ライン
のコンピュータであってもよい。RISC Syste
m/6000の様々なモデルがIBMからの多くの刊行
物に述べられており、例えば、RISC System/6000、7073
and 7016 POWERstation and POWERserver Hardware Tec
hnical reference、Order No.SA23-2644-00などがあ
る。AIXオペレーティング・システムについては、Ge
neral Concepts and Procedure-- AIX Version 3 for R
ISC System/6000 Order No.SC23-2202-00及びIBMか
らの他の刊行物に述べられている。
【0013】図1において、システム・ユニット11、
キーボード12、マウス13、及び表示装置14を含む
コンピュータ10が示されている。表示装置14の画面
16はデータ・オブジェクト対する可視的変化を提供す
るために使用される。オペレーティング・システムによ
り支援されるグラフィカル・ユーザ・インタフェース
は、ユーザがポインタ15を画面16上の特定の位置に
位置するデータ・オブジェクトを表すアイコンに移動す
ることにより、入力に関するポイント及びシュート方法
の使用を可能とし、またマウス・ボタンの1つを押して
ユーザ・コマンドまたは選択を実行することを可能とす
る。
【0014】図2は図1に示されるパーソナル・コンピ
ュータの構成要素のブロック図を示す。システム・ユニ
ット11はシステム・バスまたは複数のシステム・バス
21を含み、これに様々な構成要素が接続され、それに
より様々な構成要素間の通信が達成される。マイクロプ
ロセッサ22はシステム・バス21に接続され、同様に
システム・バス21に接続される読出し専用メモリ(R
OM)23及びランダム・アクセス・メモリ(RAM)
24により支援される。IBMマルチメディアPS/2
シリーズのコンピュータ内で使用されるマイクロプロセ
ッサは、インテル社のマイクロプロセッサ・ファミリの
1つであり、これには386または486マイクロプロ
セッサが含まれる。しかしながら、他のマイクロプロセ
ッサも使用可能であり、例えばモトローラ社のマイクロ
プロセッサ・ファミリに含まれる68000、6802
0または68030マイクロプロセッサ、及びIBM、
ヒューレット・パッカード、サン、インテル、モトロー
ラ、及びその他による様々な縮小命令セット・コンピュ
ータ(RISC)・マイクロプロセッサなどが特定のコ
ンピュータにおいて使用される。
【0015】ROM23は他のコードと共に基本入出力
システム(BIOS)を含み、これは対話及びディスク
・ドライブ及びキーボードなどの基本ハードウェア動作
を制御する。RAM24は主メモリであり、これにはオ
ペレーティング・システム及びアプリケーション・プロ
グラムがロードされる。メモリ管理チップ25がシステ
ム・バス21に接続され、RAM24とハード・ディス
ク・ドライブ26及びフロッピー・ディスク・ドライブ
27間のデータ転送などの直接メモリ・アクセス動作を
制御する。CD ROMドライブ32がまたシステム・
バス21に接続され、例えばマルチメディア・プログラ
ムまたはプレゼンテーションなどの大量のデータを記憶
するために使用される。
【0016】システム・バス21には更に様々な入出力
制御装置が接続される。これらにはキーボード制御装置
28、マウス制御装置29、ビデオ制御装置30、及び
音声制御装置31が含まれる。キーボード制御装置28
はキーボード12に対応するハードウェア・インタフェ
ースを提供し、マウス制御装置29はマウス13に対応
するハードウェア・インタフェースを提供し、ビデオ制
御装置30は表示装置14に対応するハードウェア・イ
ンタフェースである。入出力制御装置40は例えばトー
クン・リング・アダプタであり、ネットワーク42を介
して、他の類似に構成されるデータ処理システムとの通
信を可能とする。
【0017】メモリ24内の複数のコード・モジュール
内で実現されるバージョン制御システムの構成が図3に
示される。
【0018】バージョン制御システム(version contro
l system)は、RAM24内に活動状態で存在しない時
には、フロッピー・ディスク・ドライブ用のフロッピー
・ディスケット、CD−ROMドライブ用のCD−RO
Mなどのコンピュータ読出し可能媒体上、またはハード
・ディスク・ドライブ上に記憶される。
【0019】バージョン制御システムは次の主要構成要
素を含む。バージョン・マネージャ(version manage
r) 100、ロック・マネージャ(lock manager)10
1、及び固有ファイル・システム(native file syste
m)102。バージョン・マネージャ100は、ユーザ
からチェック・イン(checkin) 及びチェック・アウト
(checkout)・コマンドを獲得するために、ユーザと対
話する。バージョン・マネージャ100は値が適切であ
ることを確認するために、パラメータを解析する。次
に、バージョン・マネージャ100はLockParentコマン
ドをロック・マネージャ101に発行し、ユーザが子オ
ブジェクトを生成可能かどうかをチェックする。ロック
・マネージャ101は全てのチェック・イン及びチェッ
ク・アウト・レコードを保持する。ロック・マネージャ
101はチェック・アウト・キュー103及び予約済み
のチェック・アウト・キュー104を保持し、オブジェ
クトの状態を追跡する。チェック・アウト・キュー10
3は、部分または全体オブジェクトをチェック・アウト
したユーザを追跡する。予約済みチェック・アウト・キ
ュー104は、オブジェクトへのアクセスを予約したユ
ーザを追跡する。
【0020】ロック・マネージャ101がロック・アク
セスを承認した後、バージョン・マネージャ100は固
有ファイル・システム102を呼出し、親オブジェクト
から子オブジェクトを生成する。子オブジェクト識別子
がユーザに返却される。
【0021】ユーザはオブジェクトをバージョン化オブ
ジェクトまたは非バージョン化オブジェクトとして宣言
することができる。ユーザはバージョン化オブジェクト
をアクセスするために、バージョン・マネージャにより
提供される "チェック・アウト"・コマンド及び "チェ
ック・イン"・コマンドを使用する。新たなバージョン
は既存のバージョンの更新時に、その既存のバージョン
から生成される。バージョン・マネージャ100はバー
ジョン派生階層を追跡する。
【0022】ユーザがバージョン化オブジェクトをチェ
ック・アウトするために "チェック・アウト"・コマン
ド を使用する時、バージョン・マネージャはユーザ用
の一時的なバージョンを生成する。全ての更新がこの一
時オブジェクトに適応される。この一時オブジェクトは
このユーザにのみ属するために、彼はロック・マネージ
ャ100により、自動的に一時オブジェクトに対する排
他的ロックを獲得する。
【0023】同一の親バージョンは、通常、他のユーザ
によりチェック・アウトされるため、一時オブジェクト
が存在する時に、親オブジェクトへのアクセスが制御さ
れなければならない。ロッキング・コマンドは"lockPar
ent"と称され、新たなバージョンが同一の親バージョン
から生成されるかどうかを制御する。このコマンドはバ
ージョン・マネージャ100により使用される。ユーザ
はチェック・アウト・コマンドを発行する時、ロック・
モード及びフラグも提示しなければならない。次にバー
ジョン・マネージャ100が、ユーザにより提供される
情報にもとづき、LockParentを発行する。
【0024】LockParentコマンドの形式を次に示す。 LockParent(userid、objectId、mode、from、to)
【0025】"userid"はユーザ識別子(またはログオン
・ユーザid)を示す。"objectId"は親オブジェクトの
オブジェクト識別子を示す。"mode"はロック・マネージ
ャにより提供されるアクセス・モードを示す。"from"及
び"to"はユーザがチェック・アウトを希望する開始レコ
ード及び終了レコードを示す。
【0026】ロック・マネージャは次のアクセス・モー
ドを提供する。
【0027】"R"は要求される親オブジェクトに対す
る"参照(reference)" アクセスを提供する。親バージ
ョンが"参照"モードにロックされている場合には、他の
ユーザはこの親バージョンを依然としてチェック・アウ
トでき、チェック・アウト・コマンドを通じ、並列バー
ジョンを生成できる。
【0028】"F"は要求される親オブジェクトに対す
る"フリーズ(freeze)"アクセスを提供する。このアク
セスが許可されると、どのユーザもこのオブジェクトか
ら永久バージョンを生成することが許可されない。しか
しながら、参照モードにおけるロッキング要求に対する
一時バージョンは生成される。
【0029】"C"は要求される親オブジェクトに対す
る"協調(cooperative)" アクセスを提供する。このモ
ードでは、要求される親オブジェクトから並列な子バー
ジョンが生成される。"from"及び"to"レコード番号を提
供することにより、ユーザは部分オブジェクトをチェッ
ク・アウトできる。ロック・マネージャは、各ユーザの
作業が衝突しないことを保証し、オブジェクトが再度チ
ェック・インされる時に、非衝突作業を併合する。実際
上、各ユーザは親オブジェクトの特定部分への "フリー
ズ"・アクセス、及び全ての他の部分への"参照"アクセ
スを有する。
【0030】"N"は要求される親オブジェクトに対す
る"通知(notify)"アクセスを提供する。このロック・
モードは、チェック・アウトしたオブジェクトをどのよ
うに処置するか定まっていないユーザのためのモードで
ある。ロック・マネージャは彼らに判断を延期させる。
【0031】"RE"は親オブジェクトに対する"予約(r
eserve)" アクセスを提供する。ユーザはバージョン化
オブジェクトへのアクセスを予約することができる。
【0032】参照モード("R")は、アイデアを借りる
ために関連ソース・オブジェクトを見ようとするプログ
ラマにとって、特に有用である。この場合、彼は別の人
間がそのオブジェクトの新たなバージョンを生成してい
るかどうかを全く気にしない。"チェック・イン"・コマ
ンドは"参照"モードでは禁止される。協調モード( "
C" )は、複数のユーザが同一のソース・ファイル(但
し異なるモジュール)を処理する時に有用である。協調
アクセス・モードでは、複数の人間が同一の親バージョ
ンから子バージョンを生成することができる。
【0033】通知モード("N")は、誰か別の人間が同
一の親オブジェクトに対する "フリーズ"・ロック を要
求するまで、ユーザが実際のロック・モードに関する決
定を延期することを許可する。この機能は従来のユーザ
による不要なロック要求を低減し、同時オブジェクト使
用を増加させる。
【0034】予約モード("RE")は、ユーザが特定の
オブジェクトをアクセスするための予約を許可する。通
常、親オブジェクトが幾人かの他のユーザにより"フリ
ーズ"・モードでロックされる場合、ユーザはオブジェ
クトが使用可能となるまで、試行を継続しなければなら
ない。
【0035】バージョン制御システムの協調アクセス・
モードが、図4乃至図6に示される。
【0036】ソフトウェア開発環境においては、複数の
人間が同一のソース・オブジェクト(但しそのソース・
オブジェクトの異なる部分)に対し作業する必要が有
り、これは特に大規模なソース・オブジェクトにおいて
その可能性が高い。協調アクセス・モードでは、ユーザ
は自身が関心のあるオブジェクトの1部だけをチェック
・アウトすなわちフリーズすることができる。ロック・
マネージャはユーザの作業が他のユーザと衝突しないこ
とを保証し、オブジェクトがチェック・インされる時
に、衝突しない作業を併合する。
【0037】図4を参照すると、処理はステップ150
で開始され、オブジェクトをチェック・アウトするユー
ザ要求を受信する。次にステップ152で、ロック・マ
ネージャはユーザ要求を許可するか否かを判断する。ユ
ーザ要求が以前に許可された要求と衝突する場合、ロッ
ク・マネージャは要求を拒否し、処理はステップ154
で終了する。
【0038】上述のように、協調アクセス・モードを支
援する場合、ロック・マネージャは部分オブジェクトま
たは全体オブジェクトをチェック・アウトしたユーザを
追跡するために、チェック・アウト・キューを維持す
る。要求が許可されると、ステップ156でロック・オ
ブジェクトがチェック・アウト・キューに追加される。
【0039】ロック・オブジェクトは次の情報を有す
る。 (1)ユーザID:ロックを要求するユーザの名前。 (2)From:開始レコード番号。LockParentコマンド内
に"from"パラメータが指定されない場合、"From"は0に
セットされる。 (3)To:終了レコード番号。LockParentコマンド内
に"to"パラメータが指定されない場合、"to"は最大値に
セットされる。 (4)TranObjectId:一時オブジェクト識別子。 (5)ロック・モード:上述した通りであり、以降で更
に詳述される。 (6)Timestamp:要求時のタイムスタンプ(日時)。 (7)優先順位:ロック要求の優先順位。
【0040】ロック・マネージャはステップ150で要
求を受信すると、最初にユーザが要求したレコード範囲
が、以前に許可された既存のLockParent要求のレコード
範囲と衝突するかどうかをチェックする。この処理は図
5に、より詳細に示される。
【0041】ユーザはオブジェクトの更新を終了後、ス
テップ158で、チェック・イン・コマンドにより部分
オブジェクトをチェック・インする。ステップ160
で、バージョン・マネージャはロック・マネージャにUn
LockParentコマンドを発行する。ステップ162で、ロ
ック・マネージャは部分オブジェクト識別子(PartialO
bjectId) を使用することにより、ロック・キューから
正しいロック・オブジェクトを識別する。次にステップ
164で、ロック・マネージャは部分オブジェクトの新
旧バージョン内のレコード数の差から、新たな部分オブ
ジェクトに対応するレコード数が変化したかどうかをチ
ェックする。ユーザがレコードを追加または消去してい
ない場合(すなわち差が0の場合)、ステップ166
で、ロック・マネージャはバージョン・マネージャ
に、"from"から"to"までのレコードを置換することによ
り、親オブジェクトの新たなバージョンを生成するよう
に依頼する。それ以外の場合、ロック・マネージャはス
テップ168で、ロック・キュー内の全てのロック・オ
ブジェクトのfrom及びto情報を更新する。これにより親
オブジェクトが更新される。
【0042】ロック・マネージャがオブジェクトのチェ
ック・アウト要求が許可されるべきかどうかを決定する
処理が図5に示される。ステップ180で、ロック・キ
ュー内の各ロック・オブジェクトに対応して、ロック・
キューがオブジェクトID(objectId)により検索され
る。ステップ182で、ロック・マネージャはLockPare
nt要求により指定されるレコード範囲が、ロック・キュ
ー内の各ロック・オブジェクトに対してテストされるこ
とを保証する。ステップ184でロック・キュー内にロ
ック・オブジェクトが存在しない場合、ロック要求が部
分オブジェクトに対して許可される。ステップ186乃
至ステップ192では、現LockParent要求のレコード範
囲が、現在テストされているロック・オブジェクトLの
レコード範囲内に存在するかどうかを判断するための、
一連のテストが実行される。ステップ186で、現要求
の開始レコードすなわち"from"が現ロック・オブジェク
トの範囲内に存在する場合、要求内の幾つかのレコード
がロック・オブジェクト内のレコードをオーバラップす
るため、要求がステップ194で拒否される。同様に、
終了レコード例えば現要求の"to"が、ロック・オブジェ
クトの範囲内すなわちL.from 乃至L.to の範囲内に存
在する場合、要求は拒否される。ステップ190及び1
92では、ロック・オブジェクトの開始及び終了のいず
れかが現要求の範囲内に存在するかどうかがテストされ
る。現要求内のレコードがロック・キュー内のロック・
オブジェクトにより以前にロックされていない場合、要
求がステップ184で許可される。
【0043】次にLockParent要求のコード・サンプルを
示す。 procedure LockParent(userid、objectId、from、to、mode) { ロック・キュー内の各ロック・オブジェクトLにおいて、idにobjectIdを 有するオブジェクトのロック・キューを獲得 { /*間隔[from、to]が間隔[L.from、L.to]に重なるかをチェック*/ if L.from < from < L.to thenロック要求を拒否 else if L.from < to < L.to thenロック要求を拒否 else if from < L.from < to thenロック要求を拒否 else if from < L.to < to thenロック要求を拒否 else ロック要求を許可し、ロック要求をロック・キュー内に配置する } }
【0044】図6は、変更された部分オブジェクトが親
オブジェクト及びロック・キューを更新するために使用
される様子を表し、この処理はロック・マネージャによ
り実行される。ステップ200で、部分オブジェクトに
対応するロック・オブジェクトが検索される。次にステ
ップ202で、部分オブジェクトのレコード数が検索さ
れる。ステップ204で、部分オブジェクトのオリジナ
ル・レコード数が検索される。ステップ206で、レコ
ードの現在数とオリジナル数との差が計算される。次に
ステップ208で、差が0に等しいかどうかがテストさ
れ、等しい場合、オリジナル部分オブジェクト内のレコ
ード数と同数のレコードが、更新される部分オブジェク
ト内に存在する。レコード数が変更されない場合、ステ
ップ210で親オブジェクトが更新され、ステップ22
0でロック・オブジェクトがロック・キューから消去さ
れ、処理は終了する。差が0に等しくない場合、レコー
ド数が変更されたことになる。従って、ステップ222
で、各ロック・オブジェクトがロック・キューから検索
され、更新される部分オブジェクトよりも大きなレコー
ド数を有するロック・オブジェクトについては、それら
の開始パレメータ及び終了パラメータが増減されたり、
更新される部分オブジェクトとオリジナル部分オブジェ
クトとの差に従い調整される。
【0045】次にUnlockParentコマンドのサンプル・コ
ード例を示す。 procedure UnlockParent(userid、objectId、partialObjectId) { partialObjectIdを有するロック・オブジェクト(L)を獲得 partialObjectのレコード数R1を獲得 partialObjectのオリジナル・レコード数R2を計算 ここでR2 =(L.to - L.from)+1 差D = R1 - R2を計算 if D = 0 then { 親オブジェクトを新たなデータで更新 ロック・キューからLを消去 } else { キュー内の各ロック・オブジェクトL1に対応して、idにobjectIdを有 するオブジェクトのロック・キューを獲得 { if(L1.from > L.from)or(L1.to > L.to) then { L1.from = L1.from + D L1.to = L1.to + D } } } }
【0046】図7及び図8は、LockParent及びUnlockPa
rent手順を介して、同時アクセスが提供されるソース・
オブジェクトを示す。この例のソース・オブジェクト名
は"Part.c"である。図7においてブロック300とし
て示される"Part.c" オブジェクトの1部をチェック・
アウトした2人のユーザが現在存在する。トム(Tom)
はライン100N乃至200Nまでのソース・コードを
チェック・アウトしている。マイク(Mike)はライン3
00N乃至350Nまでのソース・コードをチェック・
アウトしている。オブジェクト300のチェック・アウ
トされた部分コピー303、305が、ロック・キュー
310内のロック・オブジェクト306及び308によ
り反映されている。ピーター(Peter)がPart.cをライ
ン150N乃至250Nまでチェック・アウトしようと
すると、彼の要求は拒否される。なぜなら、150N乃
至200NまでがTom によりチェック・アウトされてい
るからである。Part.c をライン360N乃至400N
までチェック・アウトするPeter の要求は、バージョン
・マネージャにより許可される。なぜなら、これらのレ
コードに対しては、既存のロック・オブジェクトが存在
しないからである。
【0047】図8では、Tom は彼の作業を終え、彼の部
分オブジェクト303をチェック・インしようとする。
彼はチェック・アウトしたいくつかのソース・コードを
消去したため、彼の部分オブジェクトは61ラインだけ
を有する(元々は101ライン)。バージョン制御シス
テムはキュー上のロック要求を更新する。結果が図8に
示される。Mikeが彼の部分オブジェクト305をチェッ
ク・インする時、彼の開始ライン番号は300Nの代わ
りに260Nとなる。
【0048】通知ロック・モードは、チェック・アウト
したオブジェクトをどのように処置しようか定まってい
ないユーザのためのモードである。ロック・マネージャ
は、誰か別のユーザが同一の親オブジェクトに対する"
フリーズ"・ロックを要求するまで、ユーザが判断を延
期することを許可する。この手順が図9に示される。
【0049】ステップ330でロック・マネージャが通
知ロック・モードのLockParent要求を受信すると、これ
は最初にユーザが要求したレコードの範囲が、以前のLo
ckParent要求からの既存のロックと衝突するかどうかを
チェックする。衝突する場合、LockParent要求は拒否さ
れ、処理はステップ334で終了する。それ以外の場
合、LockParent要求が許可され、ステップ336でロッ
ク・オブジェクトがチェック・アウト・キューに追加さ
れる。ロック・オブジェクトのモード・フィールドがス
テップ338で通知ロック・モードにセットされる。
【0050】ステップ340でロック・マネージャが第
2のLockParent要求が既存のロックと衝突することを見
い出し、親オブジェクトが通知ロック・モードでチェッ
ク・アウトされた場合、次の処理が実行される。
【0051】ステップ342では、通知(note)がロッ
ク・ホルダのリーダに送信され、ロック・ホルダにロッ
ク・モードを変更するように依頼する。次にステップ3
44で、ロック・モードが1日以内で変更されない場
合、ロック・モードが"参照"に変更され、"フリーズ"・
ロックを要求したユーザが親オブジェクトをフリーズす
る。
【0052】通常、用心深いユーザは、変更を行うかど
うか不確かな場合、オブジェクトをチェック・アウトす
る傾向がある。従来技術では本発明の"フリーズ"・モー
ドに類似のロックを含むだけなので、他のユーザがオブ
ジェクトをアクセスすることを禁止した。用心深いユー
ザが長い期間オブジェクトをチェック・アウトすること
は不便なことである。"通知"モードは従来のユーザによ
る幾つかの不要なロック要求を低減し、同時オブジェク
ト使用を増加する。
【0053】予約ロック・モードの目的は、オブジェク
トが使用可能でない時、ユーザが繰返しオブジェクトの
チェック・アウトを試行することなく、ユーザがソース
・オブジェクトのアクセスの予約をできるようにする。
この処理を図10に示す。
【0054】ロック・マネージャは要求を受信した後、
最初にステップ352で、オブジェクトがチェック・ア
ウトされたかどうかをチェックする。オブジェクトがチ
ェック・アウトされていない場合、オブジェクトは排他
的アクセス・モードによりロックされ、許可オブジェク
トがユーザに返却される。フローはステップ156から
開始され、図4乃至図6に示されるように継続する。オ
ブジェクトがチェック・アウトされている場合、ロック
・マネージャはステップ356で要求オブジェクトを予
約キューに配置する。
【0055】ステップ358では、通知(note)がユー
ザに送信され、彼の要求が予約キューに配置されたこと
を通知する。同時にステップ360で、ロック・マネー
ジャはバージョン・マネージャに、現在オブジェクトを
保持しているユーザに助言を送信するように通知する。
ユーザがオブジェクトをチェック・インするまで、24
時間毎に通知が送信される。
【0056】ステップ362でオブジェクトがチェック
・インされると、ロック・マネージャはステップ364
で予約キューをチェックし、最も高い優先順位の要求オ
ブジェクトを取り出す。同一の優先順位の複数の要求オ
ブジェクトが存在する場合には、最小のタイムスタンプ
のオブジェクトが選択される。
【0057】ステップ366では、要求オブジェクト内
にユーザIDが存在するユーザに通知(note)が送信さ
れる。ユーザはステップ368で、24時間以内または
他の所定期間以内にオブジェクトをチェック・アウトす
る必要がある。もしそのようにすると、ステップ370
により、図4乃至図6に示される通常の処理が継続され
る。それ以外の場合、システムはステップ372で予約
キューから第2の要求オブジェクトを選択する。
【0058】ステップ374でオブジェクトをチェック
・アウトする人間が、ステップ376でそのオブジェク
トを消去するように決定することが可能である。この場
合、ステップ378で予約キュー内の全ての現ユーザ
に、オブジェクトが消去され、キュー内の全ての予約オ
ブジェクトが消去されることが通知される。
【0059】図11は予約処理を表す。予約キュー40
0内にオブジェクト410内のSample.c に対応する3
つの要求オブジェクトA、B、Cが存在する。システム
が"Checkin" コマンドを受信すると、要求オブジェクト
Aが選択される。なぜなら、これは最も高い優先順位及
び最小のタイムスタンプを有するからである。ユーザTo
m にモジュールをチェック・アウトするように依頼する
通知(note)が送信される。Tomは1日以内または他の
所定期間以内にSample.c400をチェック・アウトす
る必要がある。そうしない場合、システムは、要求オブ
ジェクトCと同一の優先順位ではあるが、より小さなタ
イムスタンプを有する要求オブジェクトBを保持するPe
terに通知(note)を送信する。
【0060】下記の表は要求モードの互換性マトリクス
を提供する。行は要求されるロック・モードに対応し、
列は別のトランザクションにより既に保持されているロ
ック・モード、すなわちロック・キュー内のエントリの
ロック・モードに対応する。可能なロック要求には、R
(referenced)、F(freeze)、N(notify)、C(co
rporate)、RE(reserve)がある。NLはどのトラン
ザクションも、親オブジェクトに対するロックを保持し
ていないことを意味する。エントリが"Yes" の場合、要
求されるロックが許可され、"No"の場合には許可されな
い。他のエントリには要求の不在を表す"NL"、ロック
を要求したユーザにロックの現状態が通知される"NfR
e"、現ロック・ホルダに他の人間が丁度このオブジェク
トへのアクセスを要求していることが通知される"NfOw
n" 、及びロック要求が予約キュー内に配置されること
を意味する"Rev"が含まれる。
【0061】
【表1】
【0062】以下の通りに発明を開示する。 (1)コンピュータ・システムのメモリ内の複数のサブ
セットから成るデータ・セットへの複数のユーザによる
同時アクセスを制御する方法であって、前記データ・セ
ットの第1のサブセットへの書込みロックを探索するス
テップと、第1のユーザによる前記第1のサブセットへ
の書込みアクセスのための第1の要求を許可するステッ
プと、他のユーザが前記第1のサブセットを変更するこ
とを禁止するために、前記データ・セットの前記第1の
サブセットに書込みロックを設定し、他のユーザによる
前記第1のサブセットへの読出しアクセスは許可するス
テップと、を含む方法。 (2)前記データ・セットの第2のサブセットへの書込
みロックを探索するステップと、第2のユーザによる前
記第2のサブセットへの書込みアクセスのための第2の
要求を許可するステップと、他のユーザが前記第2のサ
ブセットを変更することを禁止するために、前記データ
・セットの前記第2のサブセットに書込みロックを設定
し、他のユーザによる前記第2のサブセットへの読出し
アクセスは許可するステップと、を含む、(1)記載の
方法。 (3)前記第1のサブセット内の要素の第1のセット、
及び第1のサブセット外の要素の第2のセットを有す
る、前記データ・セットの第3のサブセットへのロック
を探索するステップと、第3のユーザによる前記第3の
サブセットの要素の前記第2のセットへの書込みアクセ
スのための第3の要求を許可するステップと、前記第3
のサブセットの要素の第2のセットへの書込みロックを
設定するステップと、を含む、(1)記載の方法。 (4)前記第1のユーザからのコマンドに応答して、前
記第1のサブセットを変更するステップと、前記第1の
サブセット内の変更を反映するために、前記データ・セ
ットを更新するステップと、前記第1のサブセットへの
書込みロックを解除するステップと、を含む、(1)記
載の方法。 (5)前記第1のサブセットへの書込みロックが通知モ
ードであり、前記第2のユーザによる前記第1のサブセ
ットへの書込みアクセスのための前記第2の要求に応答
して、前記第1のサブセットへの書込みロックを探索す
るステップと、前記第1のユーザに、前記第1のサブセ
ットに対する前記第2の要求が受信されたことを示すメ
ッセージを送信するステップと、所定期間内に前記第1
のユーザによる応答が受信されない場合、前記第1のサ
ブセットへの書込みロックを解除するステップと、を含
む、(1)記載の方法。 (6)前記第2のユーザによる前記第1のサブセットへ
のアクセスのための前記第2の要求に応答して、前記第
1のサブセットへの書込みロックを探索するステップ
と、前記第1のサブセットへの書込みロックを見い出し
たことに応答して、予約キュー内に要求オブジェクトを
配置するステップと、を含む、(1)記載の方法。 (7)前記第1のサブセットへの書込みロックが、前記
第1のサブセットを記述するロック・キュー内のロック
・オブジェクトである、(1)記載の方法。 (8)コンピュータ・システムのメモリ内の複数のサブ
セットから成るデータ・セットへの複数のユーザによる
同時アクセスを制御するシステムであって、データ・セ
ットの第1のサブセットへの書込みロックを探索する手
段と、第1のユーザによる前記第1のサブセットへの書
込みアクセスのための第1の要求を許可する手段と、他
のユーザが前記第1のサブセットを変更することを禁止
するために、前記データ・セットの前記第1のサブセッ
トに書込みロックを設定し、他のユーザによる前記第1
のサブセットへの読出しアクセスは許可する手段と、を
含むシステム。 (9)前記データ・セットの第2のサブセットへの書込
みロックを探索する手段と、第2のユーザによる前記第
2のサブセットへの書込みアクセスのための第2の要求
を許可する手段と、他のユーザが前記第2のサブセット
を変更することを禁止するために、前記データ・セット
の前記第2のサブセットに書込みロックを設定し、他の
ユーザによる前記第2のサブセットへの読出しアクセス
は許可する手段と、を含む、(8)記載のシステム。 (10)前記第1のサブセット内の要素の第1のセッ
ト、及び前記第1のサブセット外の要素の第2のセット
を有する、前記データ・セットの第3のサブセットへの
書込みロックを探索する手段と、第3のユーザによる前
記第3のサブセットの要素の前記第2のセットへの書込
みアクセスのための第3の要求を許可する手段と、前記
第3のサブセットの要素の前記第2のセットへの書込み
ロックを設定する手段と、を含む、(8)記載のシステ
ム。 (11)前記第1のユーザからのコマンドに応答して、
前記第1のサブセットを変更する手段と、前記第1のサ
ブセット内の変更を反映するために、前記データ・セッ
トを更新する手段と、前記第1のサブセットへの書込み
ロックを解除する手段と、を含む、(8)記載のシステ
ム。 (12)前記第1のサブセットへの書込みロックが通知
モードであり、前記第2のユーザによる前記第1のサブ
セットへの書込みアクセスのための前記第2の要求に応
答して、前記第1のサブセットへの書込みロックを探索
する手段と、前記第1のユーザに、前記第1のサブセッ
トに対する第2の要求が受信されたことを示すメッセー
ジを送信する手段と、所定期間内に前記第1のユーザに
よる応答が受信されない場合、前記第1のサブセットへ
の書込みロックを解除する手段と、を含む、(8)記載
のシステム。 (13)前記第2のユーザによる前記第1のサブセット
への書込みアクセスのための第2の要求に応答して、前
記第1のサブセットへの書込みロックを探索する手段
と、前記第1のサブセットへの書込みロックを見い出し
たことに応答して、予約キュー内に要求オブジェクトを
配置する手段と、を含む、(8)記載のシステム。 (14)前記第1のサブセットへの書込みロックが、前
記第1のサブセットを記述するロック・キュー内のロッ
ク・オブジェクトである、(8)記載のシステム。 (15)コンピュータ・システムのメモリ内のデータ・
セットへの複数のユーザによる同時アクセスを制御する
コンピュータ読出し可能媒体上のコンピュータ・プログ
ラム・プロダクトであって、データ・セットの第1のサ
ブセットへの書込みロックを探索する手段と、第1のユ
ーザによる第1のサブセットへの書込みアクセスのため
の第1の要求を許可する手段と、他のユーザが第1のサ
ブセットを変更することを禁止するために、データ・セ
ットの第1のサブセットに書込みロックを設定し、他の
ユーザによる第1のサブセットへの読出しアクセスは許
可する手段と、を含むプロダクト。 (16)データ・セットの第2のサブセットへの書込み
ロックを探索する手段と、第2のユーザによる第2のサ
ブセットへの書込みアクセスのための第2の要求を許可
する手段と、他のユーザが第2のサブセットを変更する
ことを禁止するために、データ・セットの第2のサブセ
ットに書込みロックを設定し、他のユーザによる第2の
サブセットへの読出しアクセスは許可する手段と、を含
む、(15)記載のプロダクト。 (17)第1のサブセット内の要素の第1のセット、及
び第1のサブセット外の要素の第2のセットを有する、
データ・セットの第3のサブセットへの書込みロックを
探索する手段と、第3のユーザによる第3のサブセット
の要素の第2のセットへの書込みアクセスのための第3
の要求を許可する手段と、第3のサブセットの要素の第
2のセットへの書込みロックを設定する手段と、を含
む、(15)記載のプロダクト。 (18)第1のユーザからのコマンドに応答して、第1
のサブセットを変更する手段と、第1のサブセット内の
変更を反映するために、データ・セットを更新する手段
と、第1のサブセットへの書込みロックを解除する手段
と、を含む、(15)記載のプロダクト。 (19)第1のサブセットへの書込みロックが通知モー
ドであり、第2のユーザによる第1のサブセットへの書
込みアクセスのための第2の要求に応答して、第1のサ
ブセットへの書込みロックを探索する手段と、第1のユ
ーザに、第1のサブセットに対する第2の要求が受信さ
れたことを示すメッセージを送信する手段と、所定期間
内に第1のユーザによる応答が受信されない場合、第1
のサブセットへの書込みロックを解除する手段と、を含
む、(15)記載のプロダクト。 (20)第2のユーザによる第1のサブセットへの書込
みアクセスのための第2の要求に応答して、第1のサブ
セットへの書込みロックを探索する手段と、第1のサブ
セットへの書込みロックを見い出したことに応答して、
予約キュー内に要求オブジェクトを配置する手段と、を
含む、(15)記載のプロダクト。 (21)第1のサブセットへの書込みロックが、第1の
サブセットを記述するロック・キュー内のロック・オブ
ジェクトである、(15)記載のプロダクト。
【0063】
【発明の効果】プログラマがオブジェクトの1部をチェ
ック・アウトすることを許可する利点は、より多くのユ
ーザが同一のオブジェクト上で作業することを可能とす
る。しかしながら、同一オブジェクトに対する複数のユ
ーザからの作業を一緒に併合することは、一般に困難な
作業と認識されている。最適な同時制御はユーザがオブ
ジェクトを自由にチェック・アウトすることを可能とす
る。しかしながら、同一オブジェクトを更新する複数の
ユーザが存在する場合、1人のユーザの更新だけが受諾
される。他の全ての更新は打ち切られる。
【0063】以上述べたように、本願はバージョン化オ
ブジェクトに対する改良されたロッキング機構を提案す
る。
【図面の簡単な説明】
【図1】システム・ユニット、表示装置、キーボード、
及びマウスを含む単一のコンピュータ・システムを表す
図である。
【図2】図1に表されるコンピュータの構成要素のブロ
ック図である。
【図3】図1のコンピュータのメモリ内のバージョン制
御システムの構成要素のブロック図である。
【図4】バージョン制御システムの協調アクセス処理動
作のブロック図である。
【図5】バージョン制御システムの協調アクセス処理動
作のブロック図である。
【図6】バージョン制御システムの協調アクセス処理動
作のブロック図である。
【図7】2人のユーザがあるオブジェクトの部分コピー
をチェック・アウトし、第3のユーザが別の部分コピー
のチェック・アウトを望む場合を示す図である。
【図8】あるユーザがオブジェクトの自身の部分コピー
をチェック・インした前後における、図7のオブジェク
トのロック・キューを示す図である。
【図9】通知ロック・モードの流れ図である。
【図10】予約ロック・モードの流れ図である。
【図11】予約ロックモードにおける3つの要求オブジ
ェクトを表す図である。
【符号の説明】
28 キーボード制御装置 29 マウス制御装置 30 ビデオ制御装置 40 入出力制御装置 100 バージョン・マネージャ 101 ロック・マネージャ 102 固有ファイル・システム 103 チェック・アウト・キュー 104 予約済みのチェック・アウト・キュー 303、305 部分オブジェクト 306、308 ロック・オブジェクト 310 ロック・キュー 400 予約キュー
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ピーター・チュン−ツィ・ウォン アメリカ合衆国78746、テキサス州オース ティン、キャノン・レン・ドライブ 6405

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】コンピュータ・システムのメモリ内の複数
    のサブセットから成るデータ・セットへの複数のユーザ
    による同時アクセスを制御する方法であって、 前記データ・セットの第1のサブセットへの書込みロッ
    クを探索するステップと、 第1のユーザによる前記第1のサブセットへの書込みア
    クセスのための第1の要求を許可するステップと、 他のユーザが前記第1のサブセットを変更することを禁
    止するために、前記データ・セットの前記第1のサブセ
    ットに書込みロックを設定し、他のユーザによる前記第
    1のサブセットへの読出しアクセスは許可するステップ
    と、 を含む方法。
  2. 【請求項2】前記データ・セットの第2のサブセットへ
    の書込みロックを探索するステップと、 第2のユーザによる前記第2のサブセットへの書込みア
    クセスのための第2の要求を許可するステップと、 他のユーザが前記第2のサブセットを変更することを禁
    止するために、前記データ・セットの前記第2のサブセ
    ットに書込みロックを設定し、他のユーザによる前記第
    2のサブセットへの読出しアクセスは許可するステップ
    と、 を含む、請求項1記載の方法。
  3. 【請求項3】前記第1のサブセット内の要素の第1のセ
    ット、及び第1のサブセット外の要素の第2のセットを
    有する、前記データ・セットの第3のサブセットへのロ
    ックを探索するステップと、 第3のユーザによる前記第3のサブセットの要素の前記
    第2のセットへの書込みアクセスのための第3の要求を
    許可するステップと、 前記第3のサブセットの要素の第2のセットへの書込み
    ロックを設定するステップと、 を含む、請求項1記載の方法。
  4. 【請求項4】前記第1のユーザからのコマンドに応答し
    て、前記第1のサブセットを変更するステップと、 前記第1のサブセット内の変更を反映するために、前記
    データ・セットを更新するステップと、 前記第1のサブセットへの書込みロックを解除するステ
    ップと、 を含む、請求項1記載の方法。
  5. 【請求項5】前記第1のサブセットへの書込みロックが
    通知モードであり、 前記第2のユーザによる前記第1のサブセットへの書込
    みアクセスのための前記第2の要求に応答して、前記第
    1のサブセットへの書込みロックを探索するステップ
    と、 前記第1のユーザに、前記第1のサブセットに対する前
    記第2の要求が受信されたことを示すメッセージを送信
    するステップと、 所定期間内に前記第1のユーザによる応答が受信されな
    い場合、前記第1のサブセットへの書込みロックを解除
    するステップと、 を含む、請求項1記載の方法。
  6. 【請求項6】前記第2のユーザによる前記第1のサブセ
    ットへのアクセスのための前記第2の要求に応答して、
    前記第1のサブセットへの書込みロックを探索するステ
    ップと、 前記第1のサブセットへの書込みロックを見い出したこ
    とに応答して、予約キュー内に要求オブジェクトを配置
    するステップと、 を含む、請求項1記載の方法。
  7. 【請求項7】前記第1のサブセットへの書込みロック
    が、前記第1のサブセットを記述するロック・キュー内
    のロック・オブジェクトである、請求項1記載の方法。
  8. 【請求項8】コンピュータ・システムのメモリ内の複数
    のサブセットから成るデータ・セットへの複数のユーザ
    による同時アクセスを制御するシステムであって、 データ・セットの第1のサブセットへの書込みロックを
    探索する手段と、 第1のユーザによる前記第1のサブセットへの書込みア
    クセスのための第1の要求を許可する手段と、 他のユーザが前記第1のサブセットを変更することを禁
    止するために、前記データ・セットの前記第1のサブセ
    ットに書込みロックを設定し、他のユーザによる前記第
    1のサブセットへの読出しアクセスは許可する手段と、 を含むシステム。
  9. 【請求項9】前記データ・セットの第2のサブセットへ
    の書込みロックを探索する手段と、 第2のユーザによる前記第2のサブセットへの書込みア
    クセスのための第2の要求を許可する手段と、 他のユーザが前記第2のサブセットを変更することを禁
    止するために、前記データ・セットの前記第2のサブセ
    ットに書込みロックを設定し、他のユーザによる前記第
    2のサブセットへの読出しアクセスは許可する手段と、 を含む、請求項8記載のシステム。
  10. 【請求項10】前記第1のサブセット内の要素の第1の
    セット、及び前記第1のサブセット外の要素の第2のセ
    ットを有する、前記データ・セットの第3のサブセット
    への書込みロックを探索する手段と、 第3のユーザによる前記第3のサブセットの要素の前記
    第2のセットへの書込みアクセスのための第3の要求を
    許可する手段と、 前記第3のサブセットの要素の前記第2のセットへの書
    込みロックを設定する手段と、 を含む、請求項8記載のシステム。
  11. 【請求項11】前記第1のユーザからのコマンドに応答
    して、前記第1のサブセットを変更する手段と、 前記第1のサブセット内の変更を反映するために、前記
    データ・セットを更新する手段と、 前記第1のサブセットへの書込みロックを解除する手段
    と、 を含む、請求項8記載のシステム。
  12. 【請求項12】前記第1のサブセットへの書込みロック
    が通知モードであり、 前記第2のユーザによる前記第1のサブセットへの書込
    みアクセスのための前記第2の要求に応答して、前記第
    1のサブセットへの書込みロックを探索する手段と、 前記第1のユーザに、前記第1のサブセットに対する第
    2の要求が受信されたことを示すメッセージを送信する
    手段と、 所定期間内に前記第1のユーザによる応答が受信されな
    い場合、前記第1のサブセットへの書込みロックを解除
    する手段と、 を含む、請求項8記載のシステム。
  13. 【請求項13】前記第2のユーザによる前記第1のサブ
    セットへの書込みアクセスのための第2の要求に応答し
    て、前記第1のサブセットへの書込みロックを探索する
    手段と、 前記第1のサブセットへの書込みロックを見い出したこ
    とに応答して、予約キュー内に要求オブジェクトを配置
    する手段と、 を含む、請求項8記載のシステム。
  14. 【請求項14】前記第1のサブセットへの書込みロック
    が、前記第1のサブセットを記述するロック・キュー内
    のロック・オブジェクトである、請求項8記載のシステ
    ム。
JP6039531A 1993-04-30 1994-03-10 バージョン化オブジェクトに対するロッキング機構 Expired - Fee Related JP2703498B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US5601393A 1993-04-30 1993-04-30
US056013 1993-04-30

Publications (2)

Publication Number Publication Date
JPH06314227A true JPH06314227A (ja) 1994-11-08
JP2703498B2 JP2703498B2 (ja) 1998-01-26

Family

ID=22001600

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6039531A Expired - Fee Related JP2703498B2 (ja) 1993-04-30 1994-03-10 バージョン化オブジェクトに対するロッキング機構

Country Status (2)

Country Link
US (1) US5623659A (ja)
JP (1) JP2703498B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000042510A1 (fr) * 1999-01-13 2000-07-20 Fujitsu Limited Procede et appareil de commande exclusive d'informations electroniques et supports d'enregistrement de programme de commande exclusive
US6185563B1 (en) 1997-09-11 2001-02-06 Kabushiki Kaisha Toshiba Document management method and apparatus for ensuring consistency of document contents

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751958A (en) * 1995-06-30 1998-05-12 Peoplesoft, Inc. Allowing inconsistency in a distributed client-server application
US5852747A (en) * 1995-09-08 1998-12-22 International Business Machines Corporation System for awarding token to client for accessing first data block specified in client request without interference due to contention from other client
JP3674117B2 (ja) * 1995-11-20 2005-07-20 株式会社日立製作所 排他制御方法およびそれを利用したデータ管理システム並びに記録媒体
US5870743A (en) * 1996-06-24 1999-02-09 Oracle Corporation Method and apparatus for parallelizing operations that create a table
US5752244A (en) * 1996-07-15 1998-05-12 Andersen Consulting Llp Computerized multimedia asset management system
US5895491A (en) * 1996-08-19 1999-04-20 International Business Machines Corporation Apparatus and method for writing an item to a line in a memory table shared by multiple processors
US5790851A (en) * 1997-04-15 1998-08-04 Oracle Corporation Method of sequencing lock call requests to an O/S to avoid spinlock contention within a multi-processor environment
US6105026A (en) * 1997-07-03 2000-08-15 Oracle Corporation Multi-phase locking for partition maintenance operations
US6108654A (en) * 1997-10-31 2000-08-22 Oracle Corporation Method and system for locking resources in a computer system
US5983225A (en) * 1998-01-26 1999-11-09 Telenor As Parameterized lock management system and method for conditional conflict serializability of transactions
US6694357B1 (en) * 1998-07-02 2004-02-17 Copernican Technologies, Inc. Accessing, viewing and manipulation of references to non-modifiable data objects
US7526481B1 (en) * 1999-04-19 2009-04-28 Oracle International Corporation Web servers with queryable dynamic caches
GB2351165B (en) * 1999-06-18 2003-11-05 Univ London Method and apparatus for monitoring and maintaining the consistency of distributed documents
US7937665B1 (en) * 2000-06-13 2011-05-03 National Instruments Corporation System and method for automatically generating a graphical program to implement a prototype
US6757893B1 (en) * 1999-12-17 2004-06-29 Canon Kabushiki Kaisha Version control system for software code
US7188344B1 (en) * 1999-12-21 2007-03-06 Unisys Corporation Architecture for a read/write thread lock
US6529905B1 (en) 2000-01-11 2003-03-04 Frontline Solutions, Inc. Method and system for allowing multiple users to edit a hierarchical data structure
US6681225B1 (en) 2000-05-31 2004-01-20 International Business Machines Corporation Method, system and program products for concurrent write access to a global data repository
US7487152B1 (en) 2000-05-31 2009-02-03 International Business Machines Corporation Method for efficiently locking resources of a global data repository
US8640027B2 (en) * 2000-06-13 2014-01-28 National Instruments Corporation System and method for configuring a hardware device to execute a prototype
US7146347B1 (en) 2000-08-03 2006-12-05 National Instruments Corporation System and method for automatically creating a prototype to perform a process
CA2424713C (en) * 2000-08-21 2007-12-04 Thoughtslinger Corporation Simultaneous multi-user document editing system
DE10047216A1 (de) * 2000-09-23 2002-04-11 Philips Corp Intellectual Pty Ein Verfahren zur Erkennung von Schreibkonflikten in replizierten Datenbanken ohne Speicheroverhead
GB2374951B (en) * 2001-04-24 2005-06-15 Discreet Logic Inc Asynchronous database updates
US7051317B2 (en) * 2001-06-29 2006-05-23 National Instruments Corporation System and method for specifying a computer-implemented process using different programming methodologies
US7079141B2 (en) * 2001-08-27 2006-07-18 National Instruments Corporation System and method for specifying a machine vision process using different programming methodologies
US7596777B2 (en) * 2002-06-25 2009-09-29 Siebel Systems, Inc. Method and apparatus to control translatable properties of metadata
WO2004027607A2 (en) * 2002-09-20 2004-04-01 Mks Inc. Version control system for software development
US7444634B2 (en) * 2002-10-31 2008-10-28 Sun Microsystems, Inc. Method and apparatus for providing dynamic locks for global resources
US7849401B2 (en) * 2003-05-16 2010-12-07 Justsystems Canada Inc. Method and system for enabling collaborative authoring of hierarchical documents with locking
US20040236744A1 (en) * 2003-05-22 2004-11-25 Desai Paramesh S. Method for ensuring referential integrity in highly concurrent datbase environments
US20040249940A1 (en) * 2003-06-04 2004-12-09 Sohn Matthias Eberhard System and method for asynchronous resource management
JP3966850B2 (ja) * 2003-11-20 2007-08-29 株式会社東芝 半導体装置およびその製造方法
US7272609B1 (en) * 2004-01-12 2007-09-18 Hyperion Solutions Corporation In a distributed hierarchical cache, using a dependency to determine if a version of the first member stored in a database matches the version of the first member returned
JP4069905B2 (ja) * 2004-06-28 2008-04-02 コニカミノルタビジネステクノロジーズ株式会社 共有ファイル管理システムおよびサーバー
JP2006134214A (ja) * 2004-11-09 2006-05-25 Hitachi Ltd ファイルのバージョン管理方法および計算機システム
US20070245032A1 (en) * 2006-02-24 2007-10-18 Parent Approval Llc System and method of a data blocker based on local monitoring of a soliciting website
US8677319B2 (en) * 2006-07-25 2014-03-18 International Business Machines Corporation Computer method and system for composite state management of software change requests
GB0624577D0 (en) * 2006-12-08 2007-01-17 Skype Ltd Communication Systems
US8930331B2 (en) 2007-02-21 2015-01-06 Palantir Technologies Providing unique views of data based on changes or rules
US20090006553A1 (en) * 2007-06-01 2009-01-01 Suman Grandhi Remote Collaboration Tool For Rich Media Environments
US8239760B2 (en) * 2007-06-26 2012-08-07 Sap Ag Multi-user document editing system and method
US8219971B2 (en) * 2007-08-20 2012-07-10 International Business Machines Corporation System and method for source code sectional locking for improved management
US7941399B2 (en) 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US8301588B2 (en) 2008-03-07 2012-10-30 Microsoft Corporation Data storage for file updates
US8352870B2 (en) 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US8429753B2 (en) * 2008-05-08 2013-04-23 Microsoft Corporation Controlling access to documents using file locks
US8825594B2 (en) * 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US8417666B2 (en) * 2008-06-25 2013-04-09 Microsoft Corporation Structured coauthoring
US10747952B2 (en) 2008-09-15 2020-08-18 Palantir Technologies, Inc. Automatic creation and server push of multiple distinct drafts
US20100131836A1 (en) * 2008-11-24 2010-05-27 Microsoft Corporation User-authored notes on shared documents
US20100262508A1 (en) * 2009-04-10 2010-10-14 Will Volnak Method and system for an online library marketplace
US8346768B2 (en) * 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
US9665413B2 (en) * 2009-05-01 2017-05-30 Microsoft Technology Licensing, Llc Shared job scheduling in electronic notebook
US8819056B2 (en) 2010-11-19 2014-08-26 International Business Machines Corporation Facilitation of search, list, and retrieval operations on persistent data set using distributed shared memory
US8407195B2 (en) * 2011-03-07 2013-03-26 Microsoft Corporation Efficient multi-version locking for main memory databases
US8799240B2 (en) 2011-06-23 2014-08-05 Palantir Technologies, Inc. System and method for investigating large amounts of data
US8688635B2 (en) 2011-07-01 2014-04-01 International Business Machines Corporation Data set connection manager having a plurality of data sets to represent one data set
US8954409B1 (en) * 2011-09-22 2015-02-10 Juniper Networks, Inc. Acquisition of multiple synchronization objects within a computing device
US11429442B2 (en) * 2015-06-29 2022-08-30 Vmware, Inc. Parallel and distributed computing using multiple virtual machines
US9542446B1 (en) 2015-12-17 2017-01-10 Palantir Technologies, Inc. Automatic generation of composite datasets based on hierarchical fields

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6113352A (ja) * 1984-06-28 1986-01-21 Fujitsu Ltd 共用フアイルの排他制御方法
JPS62177641A (ja) * 1986-01-31 1987-08-04 Hitachi Ltd 排他優先制御方式
JPS63307553A (ja) * 1987-06-08 1988-12-15 Nec Corp ファイル制御方式
JPH04188343A (ja) * 1990-11-22 1992-07-06 Nec Software Ltd データ解析系データベースにおけるデータ更新通知方式

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4503499A (en) * 1982-09-14 1985-03-05 Eaton Corporation Controlled work flow system
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
US5175851A (en) * 1989-05-15 1992-12-29 International Business Machines Corporation System and method for controlling client machine access to a portion of a file with a variable length
JPH06342396A (ja) * 1990-07-02 1994-12-13 Internatl Business Mach Corp <Ibm> 共有データのアクセスを直列化する方法及び装置
US5285528A (en) * 1991-02-22 1994-02-08 International Business Machines Corporation Data structures and algorithms for managing lock states of addressable element ranges
US5333319A (en) * 1992-03-02 1994-07-26 International Business Machines Corporation Virtual storage data processor with enhanced dispatching priority allocation of CPU resources
US5339427A (en) * 1992-03-30 1994-08-16 International Business Machines Corporation Method and apparatus for distributed locking of shared data, employing a central coupling facility
US5414839A (en) * 1992-06-19 1995-05-09 Digital Equipment Corporation Hybrid lock escalation and de-escalation protocols
US5388268A (en) * 1992-09-18 1995-02-07 Hewlett-Packard Company Methods of indicating states of software processes cooperating on a single task
US5418966A (en) * 1992-10-16 1995-05-23 International Business Machines Corporation Updating replicated objects in a plurality of memory partitions
EP0595453B1 (en) * 1992-10-24 1998-11-11 International Computers Limited Distributed data processing system
US5440746A (en) * 1992-11-06 1995-08-08 Seiko Epson Corporation System and method for synchronizing processors in a parallel processing environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6113352A (ja) * 1984-06-28 1986-01-21 Fujitsu Ltd 共用フアイルの排他制御方法
JPS62177641A (ja) * 1986-01-31 1987-08-04 Hitachi Ltd 排他優先制御方式
JPS63307553A (ja) * 1987-06-08 1988-12-15 Nec Corp ファイル制御方式
JPH04188343A (ja) * 1990-11-22 1992-07-06 Nec Software Ltd データ解析系データベースにおけるデータ更新通知方式

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185563B1 (en) 1997-09-11 2001-02-06 Kabushiki Kaisha Toshiba Document management method and apparatus for ensuring consistency of document contents
WO2000042510A1 (fr) * 1999-01-13 2000-07-20 Fujitsu Limited Procede et appareil de commande exclusive d'informations electroniques et supports d'enregistrement de programme de commande exclusive
US7117492B2 (en) 1999-01-13 2006-10-03 Fujitsu Limited Exclusive access controlling apparatus, exclusive access controlling method and recording medium recorded with exclusive access controlling program, for electronic information

Also Published As

Publication number Publication date
US5623659A (en) 1997-04-22
JP2703498B2 (ja) 1998-01-26

Similar Documents

Publication Publication Date Title
JP2703498B2 (ja) バージョン化オブジェクトに対するロッキング機構
US6598068B1 (en) Method and apparatus for automatically managing concurrent access to a shared resource in a multi-threaded programming environment
US7386586B1 (en) System for scheduling and monitoring computer processes
US5933825A (en) Arbitrating concurrent access to file system objects
US5761669A (en) Controlling access to objects on multiple operating systems
US5913227A (en) Agent-implemented locking mechanism
US5675782A (en) Controlling access to objects on multiple operating systems
US6275863B1 (en) System and method for programming and executing long running transactions
EP1206744B1 (en) Multipoint database synchronization protocol to avoid data corruption
US5627967A (en) Automated generation on file access control system commands in a data processing system with front end processing of a master list
KR101099297B1 (ko) 전자파일의 제1 버전과 제2 버전을 동기화하기 위한 방법 및 컴퓨터 판독가능 기록 매체
JPH07111688B2 (ja) コピー装置及び方法、並びにデータ処理装置
EP0081056A2 (en) A data processing network having a distributed data file access control
JPH01211140A (ja) データ資源アクセス方法
JPH05151049A (ja) 文書処理方法及び装置
CN101535950A (zh) 软件事务提交次序和冲突管理
US8782545B2 (en) System and method for manipulating multiple clip items of data
EP3824397B1 (en) Version-based table locking
JP3553991B2 (ja) プログラム制御方法
EP0917050B1 (en) State-based object transition control and nested locking
JPH04344955A (ja) アクセス権の一時的変更方法
RU2780575C1 (ru) Система и способ управления совместным редактированием цифровых объектов
WO2023121505A1 (ru) Система и способ управления совместным редактированием цифровых объектов
JPH05225028A (ja) ファイル管理システム
AU2004222721B2 (en) System for Scheduling and Monitoring Computer Processes

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees