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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1402—Saving, 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つの処理
は、他の処理が特定のリソースに対してロックを開放す
るのを待機しながら停止される。依存性がサイクリック
になると、サイクル中の全ての処理が互いに待機しなが
ら停止される。これは、デッドロックとよばれる。
ependencies)は処理の間に発生する。即ち、1つの処理
は、他の処理が特定のリソースに対してロックを開放す
るのを待機しながら停止される。依存性がサイクリック
になると、サイクル中の全ての処理が互いに待機しなが
ら停止される。これは、デッドロックとよばれる。
【0004】上記の問題を解消するためにデッドロック
検出機構が提案されている。デッドロックが検出される
と、サイクル中の処理の1つが犠牲者(victim)として選
択され、デッドロックを破るように中断される。
検出機構が提案されている。デッドロックが検出される
と、サイクル中の処理の1つが犠牲者(victim)として選
択され、デッドロックを破るように中断される。
【0005】
【発明が解決しょうとする課題】従って、本発明の目的
は,改良されたデッドロック検出及び分解機構を提供す
ることにある。
は,改良されたデッドロック検出及び分解機構を提供す
ることにある。
【0006】
【課題を解決するための手段】本発明によれば、複数の
処理ユニットで構成された分散データ処理システムであ
って、(a)複数のリソースと、(b)リソースに対するアク
セスを要求する処理を行ない、かつ前記処理のためリソ
ースに対するロックを要求しながら、ロックリクエスト
を生成する複数のユーザプロセスと、(c)前記ユーザプ
ロセスからのロックリクエストに応じて、直ちには許容
されないロックリクエストのキユーを維持すると共に、
対立するロックリクエストによりもたらされる処理間の
依存性を検出するリソースマネージャと、(d)処理を表
す複数のノードと、これらのノードを接続して前記処理
の間の依存性を表す複数のエッジであって、各々が依存
性をもたらしたロックリクエストの識別子(identities)
をラベルされたエッジとで構成された待ちグラフを格納
する手段と(e)前記待ちグラフにおいて依存性のサイク
リック鎖(cyclic chain)を検出すると共に、この依存性
のサイクリック鎖の検出に際して、デッドロックを分解
する削除に対する犠牲として特定のロックリクエストを
識別するリソースマネージャに対してデッドロックメッ
セージを送出する手段とからなる分散データ処理システ
ムが提供される。
処理ユニットで構成された分散データ処理システムであ
って、(a)複数のリソースと、(b)リソースに対するアク
セスを要求する処理を行ない、かつ前記処理のためリソ
ースに対するロックを要求しながら、ロックリクエスト
を生成する複数のユーザプロセスと、(c)前記ユーザプ
ロセスからのロックリクエストに応じて、直ちには許容
されないロックリクエストのキユーを維持すると共に、
対立するロックリクエストによりもたらされる処理間の
依存性を検出するリソースマネージャと、(d)処理を表
す複数のノードと、これらのノードを接続して前記処理
の間の依存性を表す複数のエッジであって、各々が依存
性をもたらしたロックリクエストの識別子(identities)
をラベルされたエッジとで構成された待ちグラフを格納
する手段と(e)前記待ちグラフにおいて依存性のサイク
リック鎖(cyclic chain)を検出すると共に、この依存性
のサイクリック鎖の検出に際して、デッドロックを分解
する削除に対する犠牲として特定のロックリクエストを
識別するリソースマネージャに対してデッドロックメッ
セージを送出する手段とからなる分散データ処理システ
ムが提供される。
【0007】本発明によれば、処理内の個別ロックに基
づいてデッドロックが検出され、分解される。その結
果、デッドロックは処理内でロックに拘束可能になり、
ユーザは全処理を中断する必要がなくなる。デッドロッ
クは、タイムアウトに基づくのではなくロック間の依存
性に関する情報を効果的に送出することにより検出され
る。
づいてデッドロックが検出され、分解される。その結
果、デッドロックは処理内でロックに拘束可能になり、
ユーザは全処理を中断する必要がなくなる。デッドロッ
クは、タイムアウトに基づくのではなくロック間の依存
性に関する情報を効果的に送出することにより検出され
る。
【0008】
【実施例】以下、本発明による分散データ処理システム
を、添付図面を参照しつつ例示により説明する。
を、添付図面を参照しつつ例示により説明する。
【0009】図1に示すように、当該分散データ処理シ
ステムは、処理ユニット間でのメッセージのやりとりを
与える通信ネットワーク11で接続された一連の処理ユ
ニット10により構成される。
ステムは、処理ユニット間でのメッセージのやりとりを
与える通信ネットワーク11で接続された一連の処理ユ
ニット10により構成される。
【0010】一連のクライアントプログラム(client pr
ogram)が処理ユニットの間に分配される。クライアント
プログラムは、例えばデータベースプログラムであって
もよく、他のユーザアプリケーションであってもよい。
クライアントは、例えばデータ項目(date items)であっ
てもよい一連のリソースにアクセスする。
ogram)が処理ユニットの間に分配される。クライアント
プログラムは、例えばデータベースプログラムであって
もよく、他のユーザアプリケーションであってもよい。
クライアントは、例えばデータ項目(date items)であっ
てもよい一連のリソースにアクセスする。
【0011】リソースに対するアクセスは、1組のエー
ジェント13と、処理ユニット間に分散されたサーバー
からなる分散ロックマネージャ(DLM)とにより制御
される。サーバーは、プロセスマネージャ(PM)14
と、セッションマネージャ(SM)15と、リソースマ
ネージャ(RM)16と処理マネージャ(TM)とを備
えている。
ジェント13と、処理ユニット間に分散されたサーバー
からなる分散ロックマネージャ(DLM)とにより制御
される。サーバーは、プロセスマネージャ(PM)14
と、セッションマネージャ(SM)15と、リソースマ
ネージャ(RM)16と処理マネージャ(TM)とを備
えている。
【0012】(エージェント)各々のエージェントは1
組のクライアントを代表し、即ちクライアントと分散ロ
ックマネージャの間のインターフェースとして作用す
る。各々のクライアントは高々1つのエージェントによ
り表される。例えば、UNIXシステムにおいては、エ
ージェントはUNIX核(UNIX kernel)であり、クライ
アントはUNIXプロセスであってもよい。
組のクライアントを代表し、即ちクライアントと分散ロ
ックマネージャの間のインターフェースとして作用す
る。各々のクライアントは高々1つのエージェントによ
り表される。例えば、UNIXシステムにおいては、エ
ージェントはUNIX核(UNIX kernel)であり、クライ
アントはUNIXプロセスであってもよい。
【0013】(プロセスマネージャ)分散ロックマネー
ジャはクライアントを1組のプロセスとみなす。1つ以
上のプロセスが各クライアントに関係する。各々のプロ
セスは特定のプロセスにより所有され、各々のプロセス
は、ロックマネージャ内で独自のプロセス識別子により
識別される。
ジャはクライアントを1組のプロセスとみなす。1つ以
上のプロセスが各クライアントに関係する。各々のプロ
セスは特定のプロセスにより所有され、各々のプロセス
は、ロックマネージャ内で独自のプロセス識別子により
識別される。
【0014】プロセスマネージャPMは、生成されてい
るプロセスのレコード及びそれらのオーナを維持する。
各プロセスマネージャは、処理のサブセットに関する情
報を維持する。
るプロセスのレコード及びそれらのオーナを維持する。
各プロセスマネージャは、処理のサブセットに関する情
報を維持する。
【0015】(セッションマネージャ)セッション(ses
sion)マネージャは、オープンされているセッションの
レコード及びそれらのオーナを維持する。
sion)マネージャは、オープンされているセッションの
レコード及びそれらのオーナを維持する。
【0016】セッションはロックが許容される処理のユ
ニットとして規定される。セッションは同じエージェン
トの1つ以上のプロセスにより所有される。プロセスは
セッションをオープンし、そしてクローズし、同じセッ
ションは異なるプロセスによりオープンされる。従っ
て、セッションにより所有されるロックは異なるプロセ
スによりアクセスされる。クライアントは、セッション
がオープンされたときクライアントにより供給されるセ
ッション名によりセッションを識別する。ロックマネー
ジャは、ロックマネージャ内で独自のセッション識別子
(identification)によりセッションを識別する。
ニットとして規定される。セッションは同じエージェン
トの1つ以上のプロセスにより所有される。プロセスは
セッションをオープンし、そしてクローズし、同じセッ
ションは異なるプロセスによりオープンされる。従っ
て、セッションにより所有されるロックは異なるプロセ
スによりアクセスされる。クライアントは、セッション
がオープンされたときクライアントにより供給されるセ
ッション名によりセッションを識別する。ロックマネー
ジャは、ロックマネージャ内で独自のセッション識別子
(identification)によりセッションを識別する。
【0017】(処理マネージャ)処理(transaction)
は、リソースに対するロックを要求するプロセスにおけ
るユニットとして規定される。処理は複数のセッション
にわたって分散されるが、必ずしも全てのセッションが
同じプロセスによって所有されるわけではない。各々の
処理はクライアントが与えた処理名を有している。
は、リソースに対するロックを要求するプロセスにおけ
るユニットとして規定される。処理は複数のセッション
にわたって分散されるが、必ずしも全てのセッションが
同じプロセスによって所有されるわけではない。各々の
処理はクライアントが与えた処理名を有している。
【0018】図2に示したように、処理マネージャTM
は、処理間の待機依存性を表す待ちグラフ(WFG)と
よぶ方向付けされた(directed)グラフ構造を集合的に維
持する。この待ちグラフ(WFG)は、エッジにより接
続された1組のノードからなる。待ちグラフWFGのノ
ードは処理を表し、エッジは処理間の依存性を表す。特
に、ノードT(i)は処理iを表し、また第1ノードT
(i)から第2ノードT(j)に向かうエッジは、第1
ノードにより表される処理が、第2ノードにより表され
特定のリソースに対するロックを解放する処理を待機し
ていることを示す。待機している処理はテイル処理とよ
ばれ、また待機される処理はヘッド処理とよばれる。
は、処理間の待機依存性を表す待ちグラフ(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はシステムの処理マネージャの全数であ
る。
々の処理マネージャ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に格納さ
れる。
に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つの処理の間で各
々のエッジを独自に識別する。
ジの値でラベルされる。エッジの値は、両処理の間に依
存性が存在するか否かを示すものである。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つを選択することに
より分解される。
リックな鎖は、一連の処理が互いに待機してロックを解
放しながら停止されるデッドロックの場合を示すことが
分かる。例えば、図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のときは、格納されたプローブは
ノードから除去され、アンチプローブが進められる。
と、アンチプローブメッセージが開始される。アンチプ
ローブはこのエッジが挿入されたとき開始されたプロー
ブと同じ経路を追随するが、プローブの作用を反転させ
るように作用する。あるノードで格納されたプローブに
対するカウント値が1より大きいとき、カウント値は1
だけ減分され、アンチプローブが更に進められることは
ない。カウント値が1のときは、格納されたプローブは
ノードから除去され、アンチプローブが進められる。
【0024】この優先順位スキームを用いてデッドロッ
クサイクルは、正確にサイクルのエッジから開始される
1つのプローブにより検出されることが分かる。
クサイクルは、正確にサイクルのエッジから開始される
1つのプローブにより検出されることが分かる。
【0025】(リソースマネージャ)リソースマネージ
ャRMは、リソースに対して許容されているロックのレ
コードを保持する。各々のロックは、リソースに対する
アクセスの要求されたレベルを示す一連のロックモード
の1つを有している。他のロックと共有可能なロックは
互換可能なロックモードを有するといわれる。
ャRMは、リソースに対して許容されているロックのレ
コードを保持する。各々のロックは、リソースに対する
アクセスの要求されたレベルを示す一連のロックモード
の1つを有している。他のロックと共有可能なロックは
互換可能なロックモードを有するといわれる。
【0026】クライアントは、リソースに対するロック
をオープン、クローズし、またオープンされたロックの
モードを異なるモードに変換する。ロックは、常に空(N
ull)モードでオープンされ、このモードは定義により他
の全てのロックと互換できるものである。しかし、空モ
ードでのロックは、そのモードが更に束縛のあるモード
に変換されないときは有効ではない。
をオープン、クローズし、またオープンされたロックの
モードを異なるモードに変換する。ロックは、常に空(N
ull)モードでオープンされ、このモードは定義により他
の全てのロックと互換できるものである。しかし、空モ
ードでのロックは、そのモードが更に束縛のあるモード
に変換されないときは有効ではない。
【0027】ロック変換が、他のオープンされたロック
と互換性のあるモードにロックを変化させるときには、
ロック変換は待機されなければならず、またこのロック
は待ちキュー上で待機される。ロック変換が許容又は相
殺されたとき、又はロックがクローズされたときは、待
ちキュー上で待機される他のロック変換を許容してもよ
い。次にリソースマネージャRMは、新たな待機依存性
が生成されているか否か又は現在の依存性が除去されて
いるか否かをチェックする。待ちキューと許容されたロ
ックか待ちキュー上で更にそのロックに先行する他のロ
ックのいずれかとの間には依存性が存在してもよい。依
存性が生成されている場合にはリソースマネージャRM
は適切な処理マネージャTMに新しいエッジを待ちグラ
フWFGに挿入するように指示する。逆に、依存性が除
去されているときは、リソースマネージャRMは適切な
処理マネージャにメッセージを送出し、このマネージャ
に待ちグラフWFGの対応するエッジを削除するように
指示する。
と互換性のあるモードにロックを変化させるときには、
ロック変換は待機されなければならず、またこのロック
は待ちキュー上で待機される。ロック変換が許容又は相
殺されたとき、又はロックがクローズされたときは、待
ちキュー上で待機される他のロック変換を許容してもよ
い。次にリソースマネージャRMは、新たな待機依存性
が生成されているか否か又は現在の依存性が除去されて
いるか否かをチェックする。待ちキューと許容されたロ
ックか待ちキュー上で更にそのロックに先行する他のロ
ックのいずれかとの間には依存性が存在してもよい。依
存性が生成されている場合にはリソースマネージャRM
は適切な処理マネージャTMに新しいエッジを待ちグラ
フWFGに挿入するように指示する。逆に、依存性が除
去されているときは、リソースマネージャRMは適切な
処理マネージャにメッセージを送出し、このマネージャ
に待ちグラフWFGの対応するエッジを削除するように
指示する。
【0028】各々のリソースは関連する値のブロックを
有している。リソースに対してロックがオープンされる
初めの時点で、ロックマネージャは値ブロックをリソー
スと関連づける。ロックマネージャは、リソース上の全
てのロックがクローズされてしまうまでリソース及びそ
の値ブロックを維持する。値ブロックは値ブロックステ
ータスと値ブロック値とを含んでいる。ステータスは有
効か無効かのいずれかである。値ブロック値は、値ブロ
ックステータスが有効のとき、あるクライアント供給値
を含んでいる。省略値により、リソース値ブロックステ
ータスは無効に初期化される。クライアントは、これら
のクライアントがリソースに対してオープンしているロ
ックのモードに従って、リソースの値ブロックを読み出
したり又は書き込んでもよい。
有している。リソースに対してロックがオープンされる
初めの時点で、ロックマネージャは値ブロックをリソー
スと関連づける。ロックマネージャは、リソース上の全
てのロックがクローズされてしまうまでリソース及びそ
の値ブロックを維持する。値ブロックは値ブロックステ
ータスと値ブロック値とを含んでいる。ステータスは有
効か無効かのいずれかである。値ブロック値は、値ブロ
ックステータスが有効のとき、あるクライアント供給値
を含んでいる。省略値により、リソース値ブロックステ
ータスは無効に初期化される。クライアントは、これら
のクライアントがリソースに対してオープンしているロ
ックのモードに従って、リソースの値ブロックを読み出
したり又は書き込んでもよい。
【0029】(クライアントとエージェントの間の連
絡)ここで図4に示したように、各々のクライアントは
関連する事象キュー40を有する。クライアントは、そ
れを代表するフアンクシヨンコールをエージェント13
に供給することにより分散ロックマネージャと連絡す
る。エージェントはこのファンクシヨンコールに応じ
て、同期してクライアントに情報を返送してもよい。一
方、エージェントはクライアントの事象キューに事象を
通知することにより非同期に応答してもよい。
絡)ここで図4に示したように、各々のクライアントは
関連する事象キュー40を有する。クライアントは、そ
れを代表するフアンクシヨンコールをエージェント13
に供給することにより分散ロックマネージャと連絡す
る。エージェントはこのファンクシヨンコールに応じ
て、同期してクライアントに情報を返送してもよい。一
方、エージェントはクライアントの事象キューに事象を
通知することにより非同期に応答してもよい。
【0030】(データ構造)分散ロックマネージャのエ
ージェント及びサーバは、ここでプールとよぶ一連のデ
ータ構造を維持する。各々のプールは、夫々が1組のデ
ータメンバからなる1組のレコードにより構成されてい
る。
ージェント及びサーバは、ここでプールとよぶ一連のデ
ータ構造を維持する。各々のプールは、夫々が1組のデ
ータメンバからなる1組のレコードにより構成されてい
る。
【0031】各々のプロセスマネージャPMは夫々が特
定のプロセスについての情報を収容する1組のプロセス
レコードからなるプロセスプール41を維持する。
定のプロセスについての情報を収容する1組のプロセス
レコードからなるプロセスプール41を維持する。
【0032】各々のセッションマネージャSMは、各々
が特定のセッションについての情報を収容する1組のセ
ッションレコードからなるセッションプール42を維持
している。
が特定のセッションについての情報を収容する1組のセ
ッションレコードからなるセッションプール42を維持
している。
【0033】各々のリソースマネージャRMは、リソー
スプール43、処理プール44及びロックプール45を
維持する。リソースプールは、各々が特定のリソースに
対してオープンされているロックについての情報を収容
する1組のリソースレコードにより構成されている。処
理プールは、各々のが特定の処理についての情報を保持
する1組の処理レコードにより構成されている。
スプール43、処理プール44及びロックプール45を
維持する。リソースプールは、各々が特定のリソースに
対してオープンされているロックについての情報を収容
する1組のリソースレコードにより構成されている。処
理プールは、各々のが特定の処理についての情報を保持
する1組の処理レコードにより構成されている。
【0034】また、各々の処理マネージャTMは、ノー
ドプール46、エッジプール47及びプローブプール4
8を維持している。ノードプールは、各々が特定の待ち
グラフWFGについての情報を保持する1組のノードレ
コードによって構成されている。エッジプールには、各
々が待ちグラフWFGの特定のエッジについての情報を
保持する1組のエッジレコードにより構成されている。
ローブプールは、各々が格納されたプローブについての
情報を収容する1組のプローブレコードにより構成され
ている。
ドプール46、エッジプール47及びプローブプール4
8を維持している。ノードプールは、各々が特定の待ち
グラフWFGについての情報を保持する1組のノードレ
コードによって構成されている。エッジプールには、各
々が待ちグラフWFGの特定のエッジについての情報を
保持する1組のエッジレコードにより構成されている。
ローブプールは、各々が格納されたプローブについての
情報を収容する1組のプローブレコードにより構成され
ている。
【0035】各々のエージェントは、エージェントプロ
セスプール49、エージェントセッションプール50、
エージェントロックプール51及びペンデイングキュー
52を維持する。エージェントプロセスプールは、各々
がエージェントにより所有されるプロセスについての情
報を収容する1組のプロセスレコードにより構成されて
いる。エージェントセッションプールは、各々がエージ
ェントにより所有されるセッションについての情報を収
容する1組のセッションレコードにより構成されてい
る。エージェントロックプールは、各々がエージェント
により所有されるロックについての情報を収容する1組
のロックレコードにより構成されている。ペンデイング
キューはこのエージェントからサーバへのペンデイング
リクエストを保持する。
セスプール49、エージェントセッションプール50、
エージェントロックプール51及びペンデイングキュー
52を維持する。エージェントプロセスプールは、各々
がエージェントにより所有されるプロセスについての情
報を収容する1組のプロセスレコードにより構成されて
いる。エージェントセッションプールは、各々がエージ
ェントにより所有されるセッションについての情報を収
容する1組のセッションレコードにより構成されてい
る。エージェントロックプールは、各々がエージェント
により所有されるロックについての情報を収容する1組
のロックレコードにより構成されている。ペンデイング
キューはこのエージェントからサーバへのペンデイング
リクエストを保持する。
【0036】(誤動作)エージェント又はサーバの誤動
作は接続の閉成を通して検出される。残るサーバ及びエ
ージェントは夫々、以下に説明するように、この誤動作
から復元するステップを取る。
作は接続の閉成を通して検出される。残るサーバ及びエ
ージェントは夫々、以下に説明するように、この誤動作
から復元するステップを取る。
【0037】(PM誤動作)プロセスマネージャPMの
1つが誤動作を起こすと、プロセスに関する情報は失わ
れる。これから復帰するために次のようなステップがと
られる。
1つが誤動作を起こすと、プロセスに関する情報は失わ
れる。これから復帰するために次のようなステップがと
られる。
【0038】まず、置換えプロセスマネージャPMkが
生成又は選択される。
生成又は選択される。
【0039】次に、各々のエージェントAiは所有者が
PMkであるプロセスレコードに対してそのペンデイン
グキューをサーチし、これらのレコードをPMkに送出
する。次に、各々のエージェントは、所有者がPMkで
あるペンデイングリクエストに対してそのペンデイング
キューをサーチし、それらのペンデイングリクエストを
PMkに再送する。リクエストは、それらがペンデイン
グキューに格納された順に送出される。
PMkであるプロセスレコードに対してそのペンデイン
グキューをサーチし、これらのレコードをPMkに送出
する。次に、各々のエージェントは、所有者がPMkで
あるペンデイングリクエストに対してそのペンデイング
キューをサーチし、それらのペンデイングリクエストを
PMkに再送する。リクエストは、それらがペンデイン
グキューに格納された順に送出される。
【0040】PMkは、Aiからプロセスレコードを受
けると、それらをそのプロセスプールに付加する。再送
されたリクエストの処理は、全てのエージェントがそれ
らのプロセスレコードを送出してしまうまで据え置かれ
る。
けると、それらをそのプロセスプールに付加する。再送
されたリクエストの処理は、全てのエージェントがそれ
らのプロセスレコードを送出してしまうまで据え置かれ
る。
【0041】(SM誤動作)セッションマネージャSM
kの1つが誤動作を起こすと、セッションに対する情報
は喪失される。これからの復元は以下のステップでなさ
れる。
kの1つが誤動作を起こすと、セッションに対する情報
は喪失される。これからの復元は以下のステップでなさ
れる。
【0042】まず、置換えセッションマネージャSMk
が生成又は選択される。
が生成又は選択される。
【0043】次に、各々のエージェントAiは、所有者
がSMkであるセッションレコードに対してそのエージ
ェントセッションレコードに対してそのエージェントセ
シヨンテーブルをサーチし、それらのレコードをセッシ
ョンマネージャSMkに送出する。更に、各々のエージ
ェントAiは所有者がSMkであるペンデイングリクエ
ストに対してそのペンデイングキューをサーチし、それ
らのリクエストをセッションマネージャSMkに再送す
る。これらのリクエストは、それらがペンデイングリク
エストに格納されている順に送出される。
がSMkであるセッションレコードに対してそのエージ
ェントセッションレコードに対してそのエージェントセ
シヨンテーブルをサーチし、それらのレコードをセッシ
ョンマネージャSMkに送出する。更に、各々のエージ
ェントAiは所有者がSMkであるペンデイングリクエ
ストに対してそのペンデイングキューをサーチし、それ
らのリクエストをセッションマネージャSMkに再送す
る。これらのリクエストは、それらがペンデイングリク
エストに格納されている順に送出される。
【0044】セッションマネージャSMkが各エージェ
ントAiからセッションレコードを受けると、セッショ
ンマネージャSMkは、それらのレコードをそのセッシ
ョンプールに付加する。また、再送リクエストの処理
は、全てのエージェントがそれらのセッションレコード
を送出するまで据え置かれる。
ントAiからセッションレコードを受けると、セッショ
ンマネージャSMkは、それらのレコードをそのセッシ
ョンプールに付加する。また、再送リクエストの処理
は、全てのエージェントがそれらのセッションレコード
を送出するまで据え置かれる。
【0045】(RM誤動作)リソースマネージャRMk
が誤動作を起こすと、その誤動作からの復元は以下の作
用によりなされる。
が誤動作を起こすと、その誤動作からの復元は以下の作
用によりなされる。
【0046】まず、置換えリソースマネージャRMkが
生成又は選択される。
生成又は選択される。
【0047】次に、各々の処理マネージャTMiはその
エッジプールをサーチすると共に、RMkが所有する全
てのエッジレコードを削除する。アンチプローブは、上
記のようにして送出される。これは、リソースマネージ
ャRMs及び処理マネージャTMsを相互に一致する状
態に戻す。
エッジプールをサーチすると共に、RMkが所有する全
てのエッジレコードを削除する。アンチプローブは、上
記のようにして送出される。これは、リソースマネージ
ャRMs及び処理マネージャTMsを相互に一致する状
態に戻す。
【0048】次に、各々のエージェントAiはリソース
マネージャRMkが所有するロックレコードに対してそ
のロックプールをサーチして、それらをリソースマネー
ジャRMkに送出する。換言すれば、エージェントは許
容されたロック状態をリソースマネージャRMkに再送
出する。リソースマネージャRMkがこれらのロックレ
コードを受けると、リソースマネージャRMkはそれら
のレコードをそのロックプールに付加する。次に、リソ
ースマネージャRMkは、リソースと、そのリソース内
の処理レコードと、処理プールをロックレコードから再
構成する。これはエージェントとリソースマネージャR
Msを相互に一致する状態にもたらす。
マネージャRMkが所有するロックレコードに対してそ
のロックプールをサーチして、それらをリソースマネー
ジャRMkに送出する。換言すれば、エージェントは許
容されたロック状態をリソースマネージャRMkに再送
出する。リソースマネージャRMkがこれらのロックレ
コードを受けると、リソースマネージャRMkはそれら
のレコードをそのロックプールに付加する。次に、リソ
ースマネージャRMkは、リソースと、そのリソース内
の処理レコードと、処理プールをロックレコードから再
構成する。これはエージェントとリソースマネージャR
Msを相互に一致する状態にもたらす。
【0049】次に、各々のエージェントAiは、予めリ
ソースマネージャRMkに送出されているロック変換相
殺リクエストのために、そのペンデイングキューをサー
チする。リクエストのいずれかが見出されると、それは
ペンデイングキューから除去され、更に「相殺」ステー
タスを有する「変換完了」事象がクライアントの事象キ
ューに通知される。
ソースマネージャRMkに送出されているロック変換相
殺リクエストのために、そのペンデイングキューをサー
チする。リクエストのいずれかが見出されると、それは
ペンデイングキューから除去され、更に「相殺」ステー
タスを有する「変換完了」事象がクライアントの事象キ
ューに通知される。
【0050】次に、各々のエージェントは、所有者がリ
ソースマネージャRMsであるペンデイングリクエスト
を求めてそのペンデイングキューをサーチして、それら
をリソースマネージャRMkに再送出する。これらのリ
クエスト処理は、全てのエージェントがそれらのロック
レコードを送出してしまうまで据え置かれる。
ソースマネージャRMsであるペンデイングリクエスト
を求めてそのペンデイングキューをサーチして、それら
をリソースマネージャRMkに再送出する。これらのリ
クエスト処理は、全てのエージェントがそれらのロック
レコードを送出してしまうまで据え置かれる。
【0051】これは、待ちキューにおけるロックを再現
する。処理ロックの間で検出される依存性はメッセージ
ガ処理マネージャTMsに送出されることをもたらし、
それらの処理マネージャTMsに待ちグラフWFGにエ
ッジを挿入するように指示する。
する。処理ロックの間で検出される依存性はメッセージ
ガ処理マネージャTMsに送出されることをもたらし、
それらの処理マネージャTMsに待ちグラフWFGにエ
ッジを挿入するように指示する。
【0052】(TM誤動作)処理マネージャTMkが誤
動作を起こすと、この動作から復元するために以下の作
用がとられる。
動作を起こすと、この動作から復元するために以下の作
用がとられる。
【0053】まず、置換え処理マネージャTMkが生成
されて選択される。次に、互いの処理マネージャTMi
が、予め置換え処理マネージャTMkに送出されたプロ
ーブに対してそのプローブプールをサーチし、これらの
プローブを置換え処理マネージャTMkに再送出する。
更に、互いの処理マネージャTMiは、置換え処理マネ
ージャTMkが所有するプローブに対してそのプローブ
プールをサーチし、アンチプローブを生成する。これ
は、処理マネージャTMsを再び相互に一致した状態に
もたらす。置換え処理マネージャTMkに達した任意の
プローブは、置換え処理マネージャTMkが上記プロー
ブが前進され得るエッジを未だ含まないので更に前進さ
れることはない。
されて選択される。次に、互いの処理マネージャTMi
が、予め置換え処理マネージャTMkに送出されたプロ
ーブに対してそのプローブプールをサーチし、これらの
プローブを置換え処理マネージャTMkに再送出する。
更に、互いの処理マネージャTMiは、置換え処理マネ
ージャTMkが所有するプローブに対してそのプローブ
プールをサーチし、アンチプローブを生成する。これ
は、処理マネージャTMsを再び相互に一致した状態に
もたらす。置換え処理マネージャTMkに達した任意の
プローブは、置換え処理マネージャTMkが上記プロー
ブが前進され得るエッジを未だ含まないので更に前進さ
れることはない。
【0054】一方、処理マネージャTMsの上記作用と
並行して、各々のリソースマネージャRMiはそのロッ
クプールのロックの間での依存性をチェックし、生じた
待ちグラフWFGエッジを置換え処理マネージャTMk
に再送出する。これらのエッジは他のプローブの生成を
もたらす。
並行して、各々のリソースマネージャRMiはそのロッ
クプールのロックの間での依存性をチェックし、生じた
待ちグラフWFGエッジを置換え処理マネージャTMk
に再送出する。これらのエッジは他のプローブの生成を
もたらす。
【0055】上記のステップは独立に、かつ並行して実
施されるので、リソースマネージャRMiは置換え処理
マネージャTMkに対するエッジの再送出を開始し、一
方他の処理マネージャTMsは喪失したエッジに対して
アンチプローブを生成し、又は置換え処理マネージャT
Mkに対してプローブを再送出している。処理マネージ
ャTMs及びリソースマネージャRMsは復元ステップ
のシーケンスを配置するグローバルなコーデイネータを
要求することはない。
施されるので、リソースマネージャRMiは置換え処理
マネージャTMkに対するエッジの再送出を開始し、一
方他の処理マネージャTMsは喪失したエッジに対して
アンチプローブを生成し、又は置換え処理マネージャT
Mkに対してプローブを再送出している。処理マネージ
ャTMs及びリソースマネージャRMsは復元ステップ
のシーケンスを配置するグローバルなコーデイネータを
要求することはない。
【0056】
【発明の効果】要約すると、サーバPM、SM及びRM
の誤動作に対する復元が、サーバを複写することによる
よりも、サーバとエージェントの間の情報を複写するこ
とにより与えられる。従って、サーバが誤動作しても、
そのサーバ内の情報はエージェントに保持された情報か
ら再構成することができる。同様に、サーバTMの誤動
作に対する復元はこれらのサーバとサーバRM(これは
サーバTMのユーザである)の間での情報を複製するこ
とにより与えられる。このようにして、通常動作におけ
るサーバとユーザの間でメッセージの数を増すことなく
復元させることができる。
の誤動作に対する復元が、サーバを複写することによる
よりも、サーバとエージェントの間の情報を複写するこ
とにより与えられる。従って、サーバが誤動作しても、
そのサーバ内の情報はエージェントに保持された情報か
ら再構成することができる。同様に、サーバTMの誤動
作に対する復元はこれらのサーバとサーバRM(これは
サーバTMのユーザである)の間での情報を複製するこ
とにより与えられる。このようにして、通常動作におけ
るサーバとユーザの間でメッセージの数を増すことなく
復元させることができる。
【図1】本発明による分散データ処理システムの全体に
わたるブロック図である。
わたるブロック図である。
【図2】デッドロック検出機構により用いられるグロー
バルな待ちグラフを示す概略図である。
バルな待ちグラフを示す概略図である。
【図3】個別の処理マネージャの間で待ちグラフが分散
される様子を示す概略図である。
される様子を示す概略図である。
【図4】当該システムの各種要素及びこれらの要素によ
って用いられるデータ構造を示すブロック図である。
って用いられるデータ構造を示すブロック図である。
10 処理ユニット 11 通信ネットワーク 12 クライアントプログラム 13 エージェント 14 プロセスマネージャPM 15 セッションマネージャPM 16 リソースマネージャRM 17 処理マネージャTM
Claims (2)
- 【請求項1】 複数の処理ユニットからなる分散データ
処理システムであって、前記処理ユニットが、(a)複数
のリソースと、(b)これらのリソースへのアクセスを要
求する処理を行うと共に、ロックリクエストを生成する
ために、リソースに対してロックを要求して前記処理に
供する複数のユーザプロセスと、(c)これらのユーザプ
ロセスからの前記ロックリクエストに応答して、直ちに
は与えられ得ないロックリクエストのキューを維持する
と共に対立するロックリクエストによりもたらされる処
理間の依存性を検出するリソースマネージャと、(d)処
理を表す複数のノードと、これらのノードを接続し、前
記処理の間の依存性を表す複数のエッジであって、各々
が依存性をもたらしたロックリクエストの識別子をラベ
ルされたエッジとで構成された待ちグラフを格納する手
段と、(e)前記待ちグラフにおける依存性のサイクリッ
ク鎖を検出し、かつ依存性のサイクリック鎖の検出に際
してデッドロックを分解する削除に対する犠牲として特
定のロックリクエストを識別するデッドロックメッセイ
ジをリソースマネージャに送出する手段とを含むことを
特徴とする分散データ処理システム。 - 【請求項2】 複数のエージェントと、これらのエージ
ェントによる共有リソースへのアクセスを制御する複数
のサーバとで構成され、各々のエージェントは、サーバ
がアクセス管理動作を要求してメッセージをサーバに送
出する手段と、前記メッセージのアクセス管理情報のレ
コードを格納する手段とで構成され、当該システムが更
に、障害のあるサーバを配置するように置換えサーバを
割り当てると共に各々のエージェントがそのアクセス管
理情報の格納されたレコードを置換えサーバに送出して
前記置換えサーバにアクセス管理情報を再生成する手段
とを備える請求項1記載の分散データ処理システム。
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)
| 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)
| 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)
| 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 |
-
1993
- 1993-08-23 DE DE69322057T patent/DE69322057T2/de not_active Expired - Lifetime
- 1993-08-23 EP EP93306677A patent/EP0595453B1/en not_active Expired - Lifetime
- 1993-08-26 US US08/112,776 patent/US5459871A/en not_active Expired - Fee Related
- 1993-10-22 AU AU49160/93A patent/AU662842B2/en not_active Ceased
- 1993-10-25 JP JP5266147A patent/JPH06214967A/ja not_active Abandoned
Cited By (4)
| 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 |