JPH06214967A - 分散データ処理システム - Google Patents

分散データ処理システム

Info

Publication number
JPH06214967A
JPH06214967A JP5266147A JP26614793A JPH06214967A JP H06214967 A JPH06214967 A JP H06214967A JP 5266147 A JP5266147 A JP 5266147A JP 26614793 A JP26614793 A JP 26614793A JP H06214967 A JPH06214967 A JP H06214967A
Authority
JP
Japan
Prior art keywords
lock
manager
agent
dependency
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.)
Abandoned
Application number
JP5266147A
Other languages
English (en)
Inventor
Den Berg Thomas W Van
ウィルヘルムス ヴァン デン バーグ トーマス
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.)
Fujitsu Services Ltd
Original Assignee
Fujitsu Services 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
Priority claimed from GB929222390A external-priority patent/GB9222390D0/en
Priority claimed from GB939308877A external-priority patent/GB9308877D0/en
Application filed by Fujitsu Services Ltd filed Critical Fujitsu Services Ltd
Publication of JPH06214967A publication Critical patent/JPH06214967A/ja
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F9/524Deadlock detection or avoidance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1402Saving, restoring, recovering or retrying

Landscapes

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

Abstract

(57)【要約】 【目的】 改良されたデッドロック検出、分解機構を提
供する。 【構成】 分散データ処理システムは、対立するロック
リクエストによりもたらされる処理間の依存性を検出す
る分散リソースマネージャを有する。分散処理マネージ
ャは、処理を表すノードと、処理間の依存性を表すエッ
ジとを有する待ちグラフを格納する。各々のエッジは前
記依存性をもたらしたロックリクエストのアイデンテイ
テイによりラベルされる。分散処理マネージャは待ちグ
ラフを通してプローブを伝搬し、デッドロック依存性を
示すサイクリック依存性を検出する。次に、デッドロッ
クメッセージは、デッドロックを分解する検出に対する
犠牲として特定のロックリクエストを識別するリソース
マネージャに送出される。誤動作に対する復元が、サー
バを複製することによるよりもエージェントとサーバで
の複製により実現される。その結果、通常動作における
エージェントとサーバの間でのメッセージの数は増加さ
れることはない。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は分散データ処理システム
に関する。
【0002】
【従来の技術】このような分散データ処理システムは、
一連のユーザプロセスによりアクセスされる一連のリソ
ースを有するのが一般的である。リソースに対するアク
セスはロック管理機構により制御される。ユーザプロセ
スがリソースへのアクセスを要求するときは、ユーザプ
ロセスはそのリソースに対するロックをリクエストす
る。ロックが直ちには許容されないときは待機される。
【0003】このようなシステムにおいては、依存性(d
ependencies)は処理の間に発生する。即ち、1つの処理
は、他の処理が特定のリソースに対してロックを開放す
るのを待機しながら停止される。依存性がサイクリック
になると、サイクル中の全ての処理が互いに待機しなが
ら停止される。これは、デッドロックとよばれる。
【0004】上記の問題を解消するためにデッドロック
検出機構が提案されている。デッドロックが検出される
と、サイクル中の処理の1つが犠牲者(victim)として選
択され、デッドロックを破るように中断される。
【0005】
【発明が解決しょうとする課題】従って、本発明の目的
は,改良されたデッドロック検出及び分解機構を提供す
ることにある。
【0006】
【課題を解決するための手段】本発明によれば、複数の
処理ユニットで構成された分散データ処理システムであ
って、(a)複数のリソースと、(b)リソースに対するアク
セスを要求する処理を行ない、かつ前記処理のためリソ
ースに対するロックを要求しながら、ロックリクエスト
を生成する複数のユーザプロセスと、(c)前記ユーザプ
ロセスからのロックリクエストに応じて、直ちには許容
されないロックリクエストのキユーを維持すると共に、
対立するロックリクエストによりもたらされる処理間の
依存性を検出するリソースマネージャと、(d)処理を表
す複数のノードと、これらのノードを接続して前記処理
の間の依存性を表す複数のエッジであって、各々が依存
性をもたらしたロックリクエストの識別子(identities)
をラベルされたエッジとで構成された待ちグラフを格納
する手段と(e)前記待ちグラフにおいて依存性のサイク
リック鎖(cyclic chain)を検出すると共に、この依存性
のサイクリック鎖の検出に際して、デッドロックを分解
する削除に対する犠牲として特定のロックリクエストを
識別するリソースマネージャに対してデッドロックメッ
セージを送出する手段とからなる分散データ処理システ
ムが提供される。
【0007】本発明によれば、処理内の個別ロックに基
づいてデッドロックが検出され、分解される。その結
果、デッドロックは処理内でロックに拘束可能になり、
ユーザは全処理を中断する必要がなくなる。デッドロッ
クは、タイムアウトに基づくのではなくロック間の依存
性に関する情報を効果的に送出することにより検出され
る。
【0008】
【実施例】以下、本発明による分散データ処理システム
を、添付図面を参照しつつ例示により説明する。
【0009】図1に示すように、当該分散データ処理シ
ステムは、処理ユニット間でのメッセージのやりとりを
与える通信ネットワーク11で接続された一連の処理ユ
ニット10により構成される。
【0010】一連のクライアントプログラム(client pr
ogram)が処理ユニットの間に分配される。クライアント
プログラムは、例えばデータベースプログラムであって
もよく、他のユーザアプリケーションであってもよい。
クライアントは、例えばデータ項目(date items)であっ
てもよい一連のリソースにアクセスする。
【0011】リソースに対するアクセスは、1組のエー
ジェント13と、処理ユニット間に分散されたサーバー
からなる分散ロックマネージャ(DLM)とにより制御
される。サーバーは、プロセスマネージャ(PM)14
と、セッションマネージャ(SM)15と、リソースマ
ネージャ(RM)16と処理マネージャ(TM)とを備
えている。
【0012】(エージェント)各々のエージェントは1
組のクライアントを代表し、即ちクライアントと分散ロ
ックマネージャの間のインターフェースとして作用す
る。各々のクライアントは高々1つのエージェントによ
り表される。例えば、UNIXシステムにおいては、エ
ージェントはUNIX核(UNIX kernel)であり、クライ
アントはUNIXプロセスであってもよい。
【0013】(プロセスマネージャ)分散ロックマネー
ジャはクライアントを1組のプロセスとみなす。1つ以
上のプロセスが各クライアントに関係する。各々のプロ
セスは特定のプロセスにより所有され、各々のプロセス
は、ロックマネージャ内で独自のプロセス識別子により
識別される。
【0014】プロセスマネージャPMは、生成されてい
るプロセスのレコード及びそれらのオーナを維持する。
各プロセスマネージャは、処理のサブセットに関する情
報を維持する。
【0015】(セッションマネージャ)セッション(ses
sion)マネージャは、オープンされているセッションの
レコード及びそれらのオーナを維持する。
【0016】セッションはロックが許容される処理のユ
ニットとして規定される。セッションは同じエージェン
トの1つ以上のプロセスにより所有される。プロセスは
セッションをオープンし、そしてクローズし、同じセッ
ションは異なるプロセスによりオープンされる。従っ
て、セッションにより所有されるロックは異なるプロセ
スによりアクセスされる。クライアントは、セッション
がオープンされたときクライアントにより供給されるセ
ッション名によりセッションを識別する。ロックマネー
ジャは、ロックマネージャ内で独自のセッション識別子
(identification)によりセッションを識別する。
【0017】(処理マネージャ)処理(transaction)
は、リソースに対するロックを要求するプロセスにおけ
るユニットとして規定される。処理は複数のセッション
にわたって分散されるが、必ずしも全てのセッションが
同じプロセスによって所有されるわけではない。各々の
処理はクライアントが与えた処理名を有している。
【0018】図2に示したように、処理マネージャTM
は、処理間の待機依存性を表す待ちグラフ(WFG)と
よぶ方向付けされた(directed)グラフ構造を集合的に維
持する。この待ちグラフ(WFG)は、エッジにより接
続された1組のノードからなる。待ちグラフWFGのノ
ードは処理を表し、エッジは処理間の依存性を表す。特
に、ノードT(i)は処理iを表し、また第1ノードT
(i)から第2ノードT(j)に向かうエッジは、第1
ノードにより表される処理が、第2ノードにより表され
特定のリソースに対するロックを解放する処理を待機し
ていることを示す。待機している処理はテイル処理とよ
ばれ、また待機される処理はヘッド処理とよばれる。
【0019】図3においては、待ちグラフWFGは、各
々の処理マネージャMが待ちグラフのサブグラフを格納
するように処理マネージャの間に分散される。待ちグラ
フWFGのノード及びエッジは、処理マネージャに対し
て処理識別をマップするある所定のマッピング関数に従
って処理マネージャTMsの間に分散される。この例に
おいては、ノードT(i)及びこのノードから向けられ
た全てのエッジは処理マネージャpに保持され、この処
理マネージャpにおいては、 p=i modulo n が成立し、nはシステムの処理マネージャの全数であ
る。
【0020】図2及び図3の例では、n=3であるよう
に3個の処理マネージャが存在すると仮定される。従っ
て、ノードT(0)、T(3)、T(6)等は処理マネ
ージャTM0に格納され、ノードT(1)、T(4)、
T(7)等はTM1に格納され、更にノードT(2)、
T(5)、T(8)等は処理マネージャTM2に格納さ
れる。
【0021】待ちグラフWFGの各々のエッジは、エッ
ジの値でラベルされる。エッジの値は、両処理の間に依
存性が存在するか否かを示すものである。1つの処理の
1つ以上のロックが他の処理の1つ以上のロックを待機
することができるので、同じ2つのノードの間には多数
のエッジが存在し得る。エッジ値は2つの処理の間で各
々のエッジを独自に識別する。
【0022】待ちグラフWFGにおけるエッジのサイク
リックな鎖は、一連の処理が互いに待機してロックを解
放しながら停止されるデッドロックの場合を示すことが
分かる。例えば、図2においては、処理17、3、6、
7、1、0及び5が互いに依存し、従って潜在的なデッ
ドロックが存在することが分かる。デッドロックサイク
ルは、待ちグラフWFGを通してプローブ(probe)とよ
ぶ特定のメッセージを伝えることにより処理マネージャ
TMsにより検出される。プローブは、待ちグラフWF
Gにエッジが挿入されると常に開始され、そして待ちグ
ラフを伝搬しながら(開始エッジとよぶ)このエッジの
値を支持する。各々のノードは、タイムスタンプ値によ
り決定されるそれに係る優先順位を有し、またプローブ
は、優先スキームに従って待ちグラフWFGを通して伝
搬され、プローブは、そのエッジのヘッド処理がプロー
ブ開始エッジのテイル処理より大きな優先順位を有する
ときにのみエッジに沿って進められる。これにより、要
求されるプローブメッセージの個数が低減される。プロ
ーブが待ちグラフを横行すると、そのコピーは、それが
通過する待ちグラフWFGの各々のノードに格納され
る。プローブがノードに達し得る経路が1つ以上存在す
るときは、このプローブは1度以上受容され得る。その
場合、プローブの初めに受容されたコピーのみがノード
に格納される。逐次受容されたコピーはプローブの格納
されたコピーのカウント値を1だけ増分するが、待ちグ
ラフWFGを通して更に伝搬されることはない。プロー
ブがその初期エッジに戻るとデッドロックが検出され
る。このデッドロックは、相殺されるべき「犠牲(victi
m)」としてサイクル内のロックの1つを選択することに
より分解される。
【0023】エッジが待ちグラフWFGから削除される
と、アンチプローブメッセージが開始される。アンチプ
ローブはこのエッジが挿入されたとき開始されたプロー
ブと同じ経路を追随するが、プローブの作用を反転させ
るように作用する。あるノードで格納されたプローブに
対するカウント値が1より大きいとき、カウント値は1
だけ減分され、アンチプローブが更に進められることは
ない。カウント値が1のときは、格納されたプローブは
ノードから除去され、アンチプローブが進められる。
【0024】この優先順位スキームを用いてデッドロッ
クサイクルは、正確にサイクルのエッジから開始される
1つのプローブにより検出されることが分かる。
【0025】(リソースマネージャ)リソースマネージ
ャRMは、リソースに対して許容されているロックのレ
コードを保持する。各々のロックは、リソースに対する
アクセスの要求されたレベルを示す一連のロックモード
の1つを有している。他のロックと共有可能なロックは
互換可能なロックモードを有するといわれる。
【0026】クライアントは、リソースに対するロック
をオープン、クローズし、またオープンされたロックの
モードを異なるモードに変換する。ロックは、常に空(N
ull)モードでオープンされ、このモードは定義により他
の全てのロックと互換できるものである。しかし、空モ
ードでのロックは、そのモードが更に束縛のあるモード
に変換されないときは有効ではない。
【0027】ロック変換が、他のオープンされたロック
と互換性のあるモードにロックを変化させるときには、
ロック変換は待機されなければならず、またこのロック
は待ちキュー上で待機される。ロック変換が許容又は相
殺されたとき、又はロックがクローズされたときは、待
ちキュー上で待機される他のロック変換を許容してもよ
い。次にリソースマネージャRMは、新たな待機依存性
が生成されているか否か又は現在の依存性が除去されて
いるか否かをチェックする。待ちキューと許容されたロ
ックか待ちキュー上で更にそのロックに先行する他のロ
ックのいずれかとの間には依存性が存在してもよい。依
存性が生成されている場合にはリソースマネージャRM
は適切な処理マネージャTMに新しいエッジを待ちグラ
フWFGに挿入するように指示する。逆に、依存性が除
去されているときは、リソースマネージャRMは適切な
処理マネージャにメッセージを送出し、このマネージャ
に待ちグラフWFGの対応するエッジを削除するように
指示する。
【0028】各々のリソースは関連する値のブロックを
有している。リソースに対してロックがオープンされる
初めの時点で、ロックマネージャは値ブロックをリソー
スと関連づける。ロックマネージャは、リソース上の全
てのロックがクローズされてしまうまでリソース及びそ
の値ブロックを維持する。値ブロックは値ブロックステ
ータスと値ブロック値とを含んでいる。ステータスは有
効か無効かのいずれかである。値ブロック値は、値ブロ
ックステータスが有効のとき、あるクライアント供給値
を含んでいる。省略値により、リソース値ブロックステ
ータスは無効に初期化される。クライアントは、これら
のクライアントがリソースに対してオープンしているロ
ックのモードに従って、リソースの値ブロックを読み出
したり又は書き込んでもよい。
【0029】(クライアントとエージェントの間の連
絡)ここで図4に示したように、各々のクライアントは
関連する事象キュー40を有する。クライアントは、そ
れを代表するフアンクシヨンコールをエージェント13
に供給することにより分散ロックマネージャと連絡す
る。エージェントはこのファンクシヨンコールに応じ
て、同期してクライアントに情報を返送してもよい。一
方、エージェントはクライアントの事象キューに事象を
通知することにより非同期に応答してもよい。
【0030】(データ構造)分散ロックマネージャのエ
ージェント及びサーバは、ここでプールとよぶ一連のデ
ータ構造を維持する。各々のプールは、夫々が1組のデ
ータメンバからなる1組のレコードにより構成されてい
る。
【0031】各々のプロセスマネージャPMは夫々が特
定のプロセスについての情報を収容する1組のプロセス
レコードからなるプロセスプール41を維持する。
【0032】各々のセッションマネージャSMは、各々
が特定のセッションについての情報を収容する1組のセ
ッションレコードからなるセッションプール42を維持
している。
【0033】各々のリソースマネージャRMは、リソー
スプール43、処理プール44及びロックプール45を
維持する。リソースプールは、各々が特定のリソースに
対してオープンされているロックについての情報を収容
する1組のリソースレコードにより構成されている。処
理プールは、各々のが特定の処理についての情報を保持
する1組の処理レコードにより構成されている。
【0034】また、各々の処理マネージャTMは、ノー
ドプール46、エッジプール47及びプローブプール4
8を維持している。ノードプールは、各々が特定の待ち
グラフWFGについての情報を保持する1組のノードレ
コードによって構成されている。エッジプールには、各
々が待ちグラフWFGの特定のエッジについての情報を
保持する1組のエッジレコードにより構成されている。
ローブプールは、各々が格納されたプローブについての
情報を収容する1組のプローブレコードにより構成され
ている。
【0035】各々のエージェントは、エージェントプロ
セスプール49、エージェントセッションプール50、
エージェントロックプール51及びペンデイングキュー
52を維持する。エージェントプロセスプールは、各々
がエージェントにより所有されるプロセスについての情
報を収容する1組のプロセスレコードにより構成されて
いる。エージェントセッションプールは、各々がエージ
ェントにより所有されるセッションについての情報を収
容する1組のセッションレコードにより構成されてい
る。エージェントロックプールは、各々がエージェント
により所有されるロックについての情報を収容する1組
のロックレコードにより構成されている。ペンデイング
キューはこのエージェントからサーバへのペンデイング
リクエストを保持する。
【0036】(誤動作)エージェント又はサーバの誤動
作は接続の閉成を通して検出される。残るサーバ及びエ
ージェントは夫々、以下に説明するように、この誤動作
から復元するステップを取る。
【0037】(PM誤動作)プロセスマネージャPMの
1つが誤動作を起こすと、プロセスに関する情報は失わ
れる。これから復帰するために次のようなステップがと
られる。
【0038】まず、置換えプロセスマネージャPMkが
生成又は選択される。
【0039】次に、各々のエージェントAiは所有者が
PMkであるプロセスレコードに対してそのペンデイン
グキューをサーチし、これらのレコードをPMkに送出
する。次に、各々のエージェントは、所有者がPMkで
あるペンデイングリクエストに対してそのペンデイング
キューをサーチし、それらのペンデイングリクエストを
PMkに再送する。リクエストは、それらがペンデイン
グキューに格納された順に送出される。
【0040】PMkは、Aiからプロセスレコードを受
けると、それらをそのプロセスプールに付加する。再送
されたリクエストの処理は、全てのエージェントがそれ
らのプロセスレコードを送出してしまうまで据え置かれ
る。
【0041】(SM誤動作)セッションマネージャSM
kの1つが誤動作を起こすと、セッションに対する情報
は喪失される。これからの復元は以下のステップでなさ
れる。
【0042】まず、置換えセッションマネージャSMk
が生成又は選択される。
【0043】次に、各々のエージェントAiは、所有者
がSMkであるセッションレコードに対してそのエージ
ェントセッションレコードに対してそのエージェントセ
シヨンテーブルをサーチし、それらのレコードをセッシ
ョンマネージャSMkに送出する。更に、各々のエージ
ェントAiは所有者がSMkであるペンデイングリクエ
ストに対してそのペンデイングキューをサーチし、それ
らのリクエストをセッションマネージャSMkに再送す
る。これらのリクエストは、それらがペンデイングリク
エストに格納されている順に送出される。
【0044】セッションマネージャSMkが各エージェ
ントAiからセッションレコードを受けると、セッショ
ンマネージャSMkは、それらのレコードをそのセッシ
ョンプールに付加する。また、再送リクエストの処理
は、全てのエージェントがそれらのセッションレコード
を送出するまで据え置かれる。
【0045】(RM誤動作)リソースマネージャRMk
が誤動作を起こすと、その誤動作からの復元は以下の作
用によりなされる。
【0046】まず、置換えリソースマネージャRMkが
生成又は選択される。
【0047】次に、各々の処理マネージャTMiはその
エッジプールをサーチすると共に、RMkが所有する全
てのエッジレコードを削除する。アンチプローブは、上
記のようにして送出される。これは、リソースマネージ
ャRMs及び処理マネージャTMsを相互に一致する状
態に戻す。
【0048】次に、各々のエージェントAiはリソース
マネージャRMkが所有するロックレコードに対してそ
のロックプールをサーチして、それらをリソースマネー
ジャRMkに送出する。換言すれば、エージェントは許
容されたロック状態をリソースマネージャRMkに再送
出する。リソースマネージャRMkがこれらのロックレ
コードを受けると、リソースマネージャRMkはそれら
のレコードをそのロックプールに付加する。次に、リソ
ースマネージャRMkは、リソースと、そのリソース内
の処理レコードと、処理プールをロックレコードから再
構成する。これはエージェントとリソースマネージャR
Msを相互に一致する状態にもたらす。
【0049】次に、各々のエージェントAiは、予めリ
ソースマネージャRMkに送出されているロック変換相
殺リクエストのために、そのペンデイングキューをサー
チする。リクエストのいずれかが見出されると、それは
ペンデイングキューから除去され、更に「相殺」ステー
タスを有する「変換完了」事象がクライアントの事象キ
ューに通知される。
【0050】次に、各々のエージェントは、所有者がリ
ソースマネージャRMsであるペンデイングリクエスト
を求めてそのペンデイングキューをサーチして、それら
をリソースマネージャRMkに再送出する。これらのリ
クエスト処理は、全てのエージェントがそれらのロック
レコードを送出してしまうまで据え置かれる。
【0051】これは、待ちキューにおけるロックを再現
する。処理ロックの間で検出される依存性はメッセージ
ガ処理マネージャTMsに送出されることをもたらし、
それらの処理マネージャTMsに待ちグラフWFGにエ
ッジを挿入するように指示する。
【0052】(TM誤動作)処理マネージャTMkが誤
動作を起こすと、この動作から復元するために以下の作
用がとられる。
【0053】まず、置換え処理マネージャTMkが生成
されて選択される。次に、互いの処理マネージャTMi
が、予め置換え処理マネージャTMkに送出されたプロ
ーブに対してそのプローブプールをサーチし、これらの
プローブを置換え処理マネージャTMkに再送出する。
更に、互いの処理マネージャTMiは、置換え処理マネ
ージャTMkが所有するプローブに対してそのプローブ
プールをサーチし、アンチプローブを生成する。これ
は、処理マネージャTMsを再び相互に一致した状態に
もたらす。置換え処理マネージャTMkに達した任意の
プローブは、置換え処理マネージャTMkが上記プロー
ブが前進され得るエッジを未だ含まないので更に前進さ
れることはない。
【0054】一方、処理マネージャTMsの上記作用と
並行して、各々のリソースマネージャRMiはそのロッ
クプールのロックの間での依存性をチェックし、生じた
待ちグラフWFGエッジを置換え処理マネージャTMk
に再送出する。これらのエッジは他のプローブの生成を
もたらす。
【0055】上記のステップは独立に、かつ並行して実
施されるので、リソースマネージャRMiは置換え処理
マネージャTMkに対するエッジの再送出を開始し、一
方他の処理マネージャTMsは喪失したエッジに対して
アンチプローブを生成し、又は置換え処理マネージャT
Mkに対してプローブを再送出している。処理マネージ
ャTMs及びリソースマネージャRMsは復元ステップ
のシーケンスを配置するグローバルなコーデイネータを
要求することはない。
【0056】
【発明の効果】要約すると、サーバPM、SM及びRM
の誤動作に対する復元が、サーバを複写することによる
よりも、サーバとエージェントの間の情報を複写するこ
とにより与えられる。従って、サーバが誤動作しても、
そのサーバ内の情報はエージェントに保持された情報か
ら再構成することができる。同様に、サーバTMの誤動
作に対する復元はこれらのサーバとサーバRM(これは
サーバTMのユーザである)の間での情報を複製するこ
とにより与えられる。このようにして、通常動作におけ
るサーバとユーザの間でメッセージの数を増すことなく
復元させることができる。
【図面の簡単な説明】
【図1】本発明による分散データ処理システムの全体に
わたるブロック図である。
【図2】デッドロック検出機構により用いられるグロー
バルな待ちグラフを示す概略図である。
【図3】個別の処理マネージャの間で待ちグラフが分散
される様子を示す概略図である。
【図4】当該システムの各種要素及びこれらの要素によ
って用いられるデータ構造を示すブロック図である。
【符号の説明】
10 処理ユニット 11 通信ネットワーク 12 クライアントプログラム 13 エージェント 14 プロセスマネージャPM 15 セッションマネージャPM 16 リソースマネージャRM 17 処理マネージャTM

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 複数の処理ユニットからなる分散データ
    処理システムであって、前記処理ユニットが、(a)複数
    のリソースと、(b)これらのリソースへのアクセスを要
    求する処理を行うと共に、ロックリクエストを生成する
    ために、リソースに対してロックを要求して前記処理に
    供する複数のユーザプロセスと、(c)これらのユーザプ
    ロセスからの前記ロックリクエストに応答して、直ちに
    は与えられ得ないロックリクエストのキューを維持する
    と共に対立するロックリクエストによりもたらされる処
    理間の依存性を検出するリソースマネージャと、(d)処
    理を表す複数のノードと、これらのノードを接続し、前
    記処理の間の依存性を表す複数のエッジであって、各々
    が依存性をもたらしたロックリクエストの識別子をラベ
    ルされたエッジとで構成された待ちグラフを格納する手
    段と、(e)前記待ちグラフにおける依存性のサイクリッ
    ク鎖を検出し、かつ依存性のサイクリック鎖の検出に際
    してデッドロックを分解する削除に対する犠牲として特
    定のロックリクエストを識別するデッドロックメッセイ
    ジをリソースマネージャに送出する手段とを含むことを
    特徴とする分散データ処理システム。
  2. 【請求項2】 複数のエージェントと、これらのエージ
    ェントによる共有リソースへのアクセスを制御する複数
    のサーバとで構成され、各々のエージェントは、サーバ
    がアクセス管理動作を要求してメッセージをサーバに送
    出する手段と、前記メッセージのアクセス管理情報のレ
    コードを格納する手段とで構成され、当該システムが更
    に、障害のあるサーバを配置するように置換えサーバを
    割り当てると共に各々のエージェントがそのアクセス管
    理情報の格納されたレコードを置換えサーバに送出して
    前記置換えサーバにアクセス管理情報を再生成する手段
    とを備える請求項1記載の分散データ処理システム。
JP5266147A 1992-10-24 1993-10-25 分散データ処理システム Abandoned JPH06214967A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB929222390A GB9222390D0 (en) 1992-10-24 1992-10-24 Distributed data processing system
GB939308877A GB9308877D0 (en) 1993-04-29 1993-04-29 Distributed data processing system
GB9222390.8 1993-04-29
GB9308877.1 1993-04-29

Publications (1)

Publication Number Publication Date
JPH06214967A true JPH06214967A (ja) 1994-08-05

Family

ID=26301859

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5266147A Abandoned JPH06214967A (ja) 1992-10-24 1993-10-25 分散データ処理システム

Country Status (5)

Country Link
US (1) US5459871A (ja)
EP (1) EP0595453B1 (ja)
JP (1) JPH06214967A (ja)
AU (1) AU662842B2 (ja)
DE (1) DE69322057T2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006287417A (ja) * 2005-03-31 2006-10-19 Oki Electric Ind Co Ltd 通信システム、通信方法、および通信プログラム
JP2015194886A (ja) * 2014-03-31 2015-11-05 富士通株式会社 分散データ処理装置、分散データ処理方法および分散データ処理プログラム
JP2023527195A (ja) * 2020-11-04 2023-06-27 北京字節跳動網絡技術有限公司 ベースライン監視方法、装置、読み取り可能な媒体、及び電子機器

Families Citing this family (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5583992A (en) * 1990-09-14 1996-12-10 Kabushiki Kaisha Toshiba Computer network system for detecting global deadlock
JP2703498B2 (ja) * 1993-04-30 1998-01-26 インターナショナル・ビジネス・マシーンズ・コーポレイション バージョン化オブジェクトに対するロッキング機構
US5526524A (en) * 1993-12-23 1996-06-11 International Business Machines Corporation Method and system for management of locked objects in a computer supported cooperative work environment
FR2718868B1 (fr) * 1994-04-18 1996-05-31 Bull Sa Procédé de détection d'interblocages dans les systèmes multiprocesseurs à mémoire partagée.
US5752026A (en) * 1994-04-28 1998-05-12 The United States Of America As Represented By The Secretary Of The Navy Early commit locking computer database protocol
FR2727222B1 (fr) * 1994-11-21 1996-12-27 Cit Alcatel Protocole transactionnel, et systeme pour la mise en oeuvre de ce protocole
GB9424699D0 (en) * 1994-12-07 1995-02-01 Int Computers Ltd Deadlock detection mechanism
JP2792452B2 (ja) * 1995-02-06 1998-09-03 日本電気株式会社 マルチメディア通信システム
US5687372A (en) * 1995-06-07 1997-11-11 Tandem Computers, Inc. Customer information control system and method in a loosely coupled parallel processing environment
US6539435B2 (en) * 1995-06-21 2003-03-25 International Business Machines Corporation System and method for establishing direct communication between parallel programs
US5819019A (en) * 1995-12-01 1998-10-06 Silicon Graphics, Inc. System/method for recovering network resources in a distributed environment, via registered callbacks
US6728895B1 (en) * 1995-12-01 2004-04-27 Silicon Graphics, Inc. System and method for resource recovery in a distributed system
US5828889A (en) * 1996-05-31 1998-10-27 Sun Microsystems, Inc. Quorum mechanism in a two-node distributed computer system
US6574654B1 (en) * 1996-06-24 2003-06-03 Oracle Corporation Method and apparatus for lock caching
US5864665A (en) * 1996-08-20 1999-01-26 International Business Machines Corporation Auditing login activity in a distributed computing environment
US6009269A (en) * 1997-03-10 1999-12-28 Digital Equipment Corporation Detecting concurrency errors in multi-threaded programs
US6910211B1 (en) * 1997-03-14 2005-06-21 International Business Machines Corporation System and method for queue-less enforcement of queue-like behavior on multiple threads accessing a scarce source
US6446125B1 (en) * 1997-03-28 2002-09-03 Honeywell International Inc. Ripple scheduling for end-to-end global resource management
US6654933B1 (en) 1999-09-21 2003-11-25 Kasenna, Inc. System and method for media stream indexing
GB2327134B (en) * 1997-07-08 2002-04-03 Ibm Apparatus,method and computer program for providing arbitrary locking requesters for controlling concurrent access to server resources
US5999931A (en) * 1997-10-17 1999-12-07 Lucent Technologies Inc. Concurrency control protocols for management of replicated data items in a distributed database system
US6292488B1 (en) * 1998-05-22 2001-09-18 Compaq Computer Corporation Method and apparatus for resolving deadlocks in a distributed computer system
US6338089B1 (en) 1998-10-06 2002-01-08 Bull Hn Information Systems Inc. Method and system for providing session pools for high performance web browser and server communications
US6625601B1 (en) * 1999-01-07 2003-09-23 Compaq Information Technologies Group, L.P. Escrow-locking multithreaded process-pair resource manager dictionary
US6718382B1 (en) * 1999-02-11 2004-04-06 Yunzhou Li Technique for detecting leaky points within a network protocol domain
US6304938B1 (en) * 1999-02-23 2001-10-16 Oracle Corporation Detecting a state change in a lock structure to validate a potential deadlock
US6941360B1 (en) * 1999-02-25 2005-09-06 Oracle International Corporation Determining and registering participants in a distributed transaction in response to commencing participation in said distributed transaction
US6721775B1 (en) * 1999-08-12 2004-04-13 International Business Machines Corporation Resource contention analysis employing time-ordered entries in a blocking queue and waiting queue
US6681241B1 (en) * 1999-08-12 2004-01-20 International Business Machines Corporation Resource contention monitoring employing time-ordered entries in a blocking queue and waiting queue
GB2374700A (en) * 2000-02-11 2002-10-23 Ericsson Telefon Ab L M Active cooperation deadlock detection system/method in a distributed database network
US7277956B2 (en) 2000-07-28 2007-10-02 Kasenna, Inc. System and method for improved utilization of bandwidth in a computer system serving multiple users
DE10038878C1 (de) * 2000-08-09 2002-01-10 Siemens Ag Verfahren zum Aufbau einer Verbindung mit vorgegebener Dienstgüte zwischen Kommunikationsnetzen mit Resourcenmanagern
US6704767B1 (en) * 2000-09-26 2004-03-09 Oracle International Corporation Using distributed information about lock conversion requests to efficiently manage lock state transitions
CA2322604C (en) * 2000-10-06 2005-06-28 Ibm Canada Limited - Ibm Canada Limitee Deadlock management in database systems with demultiplexed connections
US6697901B1 (en) * 2000-10-24 2004-02-24 Oracle International Corporation Using secondary resource masters in conjunction with a primary resource master for managing resources that are accessible to a plurality of entities
WO2002071191A2 (en) 2001-03-02 2002-09-12 Kasenna, Inc. Metadata enabled push-pull model for efficient low-latency video-content distribution over a network
US6990180B2 (en) * 2001-04-05 2006-01-24 Nokia Mobile Phones Limited Short voice message (SVM) service method, apparatus and system
US7146524B2 (en) 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
US7685126B2 (en) 2001-08-03 2010-03-23 Isilon Systems, Inc. System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system
US7185339B2 (en) * 2001-08-03 2007-02-27 Oracle International Corporation Victim selection for deadlock detection
US6799172B2 (en) 2001-08-28 2004-09-28 International Business Machines Corporation Method and system for removal of resource manager affinity during restart in a transaction processing system
US8495131B2 (en) * 2002-10-08 2013-07-23 International Business Machines Corporation Method, system, and program for managing locks enabling access to a shared resource
AU2003291014A1 (en) 2002-11-14 2004-06-15 Isilon Systems, Inc. Systems and methods for restriping files in a distributed file system
US20040139142A1 (en) * 2002-12-31 2004-07-15 International Business Machines Corporation Method and apparatus for managing resource contention
US7337290B2 (en) * 2003-04-03 2008-02-26 Oracle International Corporation Deadlock resolution through lock requeing
US7289992B2 (en) * 2003-05-01 2007-10-30 International Business Machines Corporation Method, system, and program for lock and transaction management
US7496574B2 (en) * 2003-05-01 2009-02-24 International Business Machines Corporation Managing locks and transactions
US20050289143A1 (en) * 2004-06-23 2005-12-29 Exanet Ltd. Method for managing lock resources in a distributed storage system
US20050286415A1 (en) * 2004-06-28 2005-12-29 Microsoft Corporation System and method for lightweight deadlock detection
US8238350B2 (en) 2004-10-29 2012-08-07 Emc Corporation Message batching with checkpoints systems and methods
US8055711B2 (en) 2004-10-29 2011-11-08 Emc Corporation Non-blocking commit protocol systems and methods
US8051425B2 (en) * 2004-10-29 2011-11-01 Emc Corporation Distributed system with asynchronous execution systems and methods
US7403945B2 (en) * 2004-11-01 2008-07-22 Sybase, Inc. Distributed database system providing data and space management methodology
US7979870B1 (en) 2004-12-08 2011-07-12 Cadence Design Systems, Inc. Method and system for locating objects in a distributed computing environment
US8244854B1 (en) 2004-12-08 2012-08-14 Cadence Design Systems, Inc. Method and system for gathering and propagating statistical information in a distributed computing environment
US8806490B1 (en) 2004-12-08 2014-08-12 Cadence Design Systems, Inc. Method and apparatus for managing workflow failures by retrying child and parent elements
US8108878B1 (en) * 2004-12-08 2012-01-31 Cadence Design Systems, Inc. Method and apparatus for detecting indeterminate dependencies in a distributed computing environment
US7917474B2 (en) 2005-10-21 2011-03-29 Isilon Systems, Inc. Systems and methods for accessing and updating distributed data
US7788303B2 (en) 2005-10-21 2010-08-31 Isilon Systems, Inc. Systems and methods for distributed system scanning
US7551572B2 (en) 2005-10-21 2009-06-23 Isilon Systems, Inc. Systems and methods for providing variable protection
US7797283B2 (en) 2005-10-21 2010-09-14 Isilon Systems, Inc. Systems and methods for maintaining distributed data
US20070101338A1 (en) * 2005-10-31 2007-05-03 Microsoft Corporation Detection, diagnosis and resolution of deadlocks and hangs
US7958512B2 (en) * 2005-10-31 2011-06-07 Microsoft Corporation Instrumentation to find the thread or process responsible for an application failure
US7793329B2 (en) 2006-02-06 2010-09-07 Kasenna, Inc. Method and system for reducing switching delays between digital video feeds using multicast slotted transmission technique
US7848261B2 (en) 2006-02-17 2010-12-07 Isilon Systems, Inc. Systems and methods for providing a quiescing protocol
US7756898B2 (en) 2006-03-31 2010-07-13 Isilon Systems, Inc. Systems and methods for notifying listeners of events
US7822932B2 (en) 2006-08-18 2010-10-26 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US7953704B2 (en) 2006-08-18 2011-05-31 Emc Corporation Systems and methods for a snapshot of data
US7899800B2 (en) 2006-08-18 2011-03-01 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US7590652B2 (en) 2006-08-18 2009-09-15 Isilon Systems, Inc. Systems and methods of reverse lookup
US7882071B2 (en) 2006-08-18 2011-02-01 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7680842B2 (en) 2006-08-18 2010-03-16 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7680836B2 (en) 2006-08-18 2010-03-16 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7679443B2 (en) 2006-08-31 2010-03-16 Texas Instruments Incorporated System and method for common mode translation
US7783805B2 (en) * 2006-11-29 2010-08-24 Cisco Technology, Inc. Interlocking input/outputs on a virtual logic unit number
US8286029B2 (en) 2006-12-21 2012-10-09 Emc Corporation Systems and methods for managing unavailable storage devices
US7593938B2 (en) 2006-12-22 2009-09-22 Isilon Systems, Inc. Systems and methods of directory entry encodings
US7509448B2 (en) 2007-01-05 2009-03-24 Isilon Systems, Inc. Systems and methods for managing semantic locks
US7900015B2 (en) 2007-04-13 2011-03-01 Isilon Systems, Inc. Systems and methods of quota accounting
US8966080B2 (en) 2007-04-13 2015-02-24 Emc Corporation Systems and methods of managing resource utilization on a threaded computer system
US7779048B2 (en) 2007-04-13 2010-08-17 Isilon Systems, Inc. Systems and methods of providing possible value ranges
US20080282244A1 (en) * 2007-05-07 2008-11-13 Microsoft Corporation Distributed transactional deadlock detection
US7949692B2 (en) 2007-08-21 2011-05-24 Emc Corporation Systems and methods for portals into snapshot data
US7882068B2 (en) 2007-08-21 2011-02-01 Isilon Systems, Inc. Systems and methods for adaptive copy on write
US7966289B2 (en) 2007-08-21 2011-06-21 Emc Corporation Systems and methods for reading objects in a file system
US9501513B2 (en) * 2007-08-30 2016-11-22 Sap Se Advanced concurrency management in enterprise service oriented architecture based integrated business processing of distributed application components
US7949636B2 (en) 2008-03-27 2011-05-24 Emc Corporation Systems and methods for a read only mode for a portion of a storage system
US7984324B2 (en) 2008-03-27 2011-07-19 Emc Corporation Systems and methods for managing stalled storage devices
US7870345B2 (en) 2008-03-27 2011-01-11 Isilon Systems, Inc. Systems and methods for managing stalled storage devices
US7953709B2 (en) 2008-03-27 2011-05-31 Emc Corporation Systems and methods for a read only mode for a portion of a storage system
US9026993B2 (en) * 2008-06-27 2015-05-05 Microsoft Technology Licensing, Llc Immutable types in imperitive language
US9104989B2 (en) * 2008-11-17 2015-08-11 Microsoft Technology Licensing, Llc Priority and cost based deadlock victim selection via static wait-for graph
US9569282B2 (en) 2009-04-24 2017-02-14 Microsoft Technology Licensing, Llc Concurrent mutation of isolated object graphs
CN101937365B (zh) * 2009-06-30 2013-05-15 国际商业机器公司 并行程序的死锁检测方法和系统
US8695003B2 (en) 2009-12-29 2014-04-08 Microsoft Corporation Method for managing data accessibility by scheduling three types of executable agents associated with pre-defined access rights within a domain
US8316369B2 (en) 2009-12-29 2012-11-20 Microsoft Corporation Dataflow component scheduling using reader/writer semantics
US8566544B2 (en) * 2009-12-29 2013-10-22 Microsoft Corporation Compiler-enforced agent access restriction
US9052967B2 (en) * 2010-07-30 2015-06-09 Vmware, Inc. Detecting resource deadlocks in multi-threaded programs by controlling scheduling in replay
US8977730B2 (en) * 2010-11-18 2015-03-10 International Business Machines Corporation Method and system for reducing message passing for contention detection in distributed SIP server environments
US8997084B2 (en) * 2011-04-20 2015-03-31 Hewlett-Packard Development Company, L.P. Method and apparatus for determining compatible versions of dependent entities in a computer system
US8607238B2 (en) * 2011-07-08 2013-12-10 International Business Machines Corporation Lock wait time reduction in a distributed processing environment
JP6306215B2 (ja) 2015-12-14 2018-04-04 華為技術有限公司Huawei Technologies Co.,Ltd. クラスタ内のロック管理方法、ロックサーバ及びクライアント
CN107391265B (zh) * 2016-03-25 2020-12-04 阿里巴巴集团控股有限公司 用于进程中检测死锁的方法和设备
CN119292800B (zh) * 2024-12-12 2025-05-20 北京奥星贝斯科技有限公司 死锁检测方法及装置、电子设备及存储介质
CN120011428B (zh) * 2025-04-14 2025-08-26 天翼云科技有限公司 信息展示方法、装置、计算机设备、可读存储介质和程序产品

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5251318A (en) * 1988-09-02 1993-10-05 Hitachi, Ltd. Multiprocessing system comparing information copied from extended storage before and after processing for serializing access to shared resource
US5095421A (en) * 1989-08-17 1992-03-10 International Business Machines Corporation Transaction processing facility within an operating system environment
US5280619A (en) * 1990-05-17 1994-01-18 Texas Instruments Incorporated System for accessing shared data using a serialization graph constructed from a history file showing completed locking dependencies between transactions
GB9123264D0 (en) * 1991-11-01 1991-12-18 Int Computers Ltd Semaphone arrangement for a data processing system
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
FR2692093A1 (fr) * 1992-06-05 1993-12-10 France Telecom Serveur à haut débit.
FI91456C (fi) * 1992-07-29 1994-06-27 Nokia Telecommunications Oy Menetelmä tietokoneessa varattujen resurssien hallitsemiseksi

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006287417A (ja) * 2005-03-31 2006-10-19 Oki Electric Ind Co Ltd 通信システム、通信方法、および通信プログラム
JP2015194886A (ja) * 2014-03-31 2015-11-05 富士通株式会社 分散データ処理装置、分散データ処理方法および分散データ処理プログラム
US9590908B2 (en) 2014-03-31 2017-03-07 Fujitsu Limited Distributed data processing device and distributed data processing method
JP2023527195A (ja) * 2020-11-04 2023-06-27 北京字節跳動網絡技術有限公司 ベースライン監視方法、装置、読み取り可能な媒体、及び電子機器

Also Published As

Publication number Publication date
EP0595453A1 (en) 1994-05-04
US5459871A (en) 1995-10-17
AU662842B2 (en) 1995-09-14
DE69322057D1 (de) 1998-12-17
EP0595453B1 (en) 1998-11-11
DE69322057T2 (de) 1999-06-10
AU4916093A (en) 1994-05-05

Similar Documents

Publication Publication Date Title
JPH06214967A (ja) 分散データ処理システム
US5802062A (en) Preventing conflicts in distributed systems
Liskov et al. Implementation of argus
US10481956B2 (en) Method for managing proposals in a distributed computing system
Kazar Synchronization and caching issues in the Andrew file system
Mullender et al. The design of a capability-based distributed operating system
US6574749B1 (en) Reliable distributed shared memory
US6966001B2 (en) Computing system and data decryption method and computer system with remote copy facility
JP4684546B2 (ja) ピアツーピア型コラボレーション・コンピュータ・システム内の複数のエンドポイント間で共有空間の一貫性を維持するための方法及び装置
US5452430A (en) System and method for storing persistent and non-persistent queued data and for recovering the persistent data responsive to a system restart
CN102037463B (zh) 使用全局确认的提交进行分布式事务的基于日志的复制
JP3504763B2 (ja) 分散システムに使用されるクライアント,サーバ及び記憶装置並びに分散システムにおける資源管理用サーバの復旧方法
US20090177914A1 (en) Clustering Infrastructure System and Method
EP0575067A2 (en) Shared, distributed lock manager for loosely coupled processing systems
US20040167932A1 (en) Fault-tolerant queue with autonomous client operation
US20030084160A1 (en) Arbitration of state changes
JP2002503846A (ja) あるノードのキャッシュから別のノードのキャッシュへデータを転送するための方法および装置
JPH0287259A (ja) 分散型ディジタルデータ処理システム
Watson et al. An architecture for support of network operating system services
Nichols Multiprocessing in a Network of Workstations
Burger et al. Performance of multiversion and distributed two-phase locking concurrency control mechanisms in distributed database
Holler Chapter 13. Multiple copy update
Birman et al. ISIS documentation: release 1
Tanenbaum et al. Reliability issues in distributed operating systems
Zhou et al. A system for managing remote procedure call transactions

Legal Events

Date Code Title Description
A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20040519