JP2004213628A - リソース・コンテンションを管理するための方法および装置 - Google Patents

リソース・コンテンションを管理するための方法および装置 Download PDF

Info

Publication number
JP2004213628A
JP2004213628A JP2003400703A JP2003400703A JP2004213628A JP 2004213628 A JP2004213628 A JP 2004213628A JP 2003400703 A JP2003400703 A JP 2003400703A JP 2003400703 A JP2003400703 A JP 2003400703A JP 2004213628 A JP2004213628 A JP 2004213628A
Authority
JP
Japan
Prior art keywords
resource
cluster
user
resources
need
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
JP2003400703A
Other languages
English (en)
Other versions
JP3910577B2 (ja
Inventor
John E Arwe
ジョン・イー・アーウィー
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 JP2004213628A publication Critical patent/JP2004213628A/ja
Application granted granted Critical
Publication of JP3910577B2 publication Critical patent/JP3910577B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • 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)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】 マルチシステム・クラスタ内の複数リソースへのアクセスに関するユーザ間のコンテンションを管理するための方法および装置を提供すること。
【解決手段】 その管理は、各ユーザがチェーン内でそれより前のユーザ(複数も可)によって保持されているリソースを待っているコンテンション・チェーンを識別し、その必要性が少なくともそのチェーン内の最も困窮しているウェイタの必要性である場合と同様にそのチェーンの先頭にあるユーザ(複数も可)にシステム・リソースを割り振ることによって実施される。システム間のデータ・フローが最小限であり、いかなるシステムもクロスシステム・コンテンションに関する完全なビューを持たない場合でも、最適リソース割振りに必要なコンテンション・データはシステム・クラスタ全域に効果的に分散される。
【選択図】 図1

Description

本発明は、情報処理システム内の直列化リソースへのアクセスに関するユーザ間のコンテンションを管理するための方法および装置に関する。
リソース・コンテンションは、情報処理システムにおいて周知の現象である。これは、あるユーザ(たとえば、プロセスまたは他の作業単位)が他のユーザによってすでに保持されているリソースにアクセスしようと試み、第2のユーザによって要求されたアクセスが第1のユーザのアクセスと矛盾するときに発生する。これは、たとえば、いずれか一方のユーザが当該リソースに対する排他的アクセスを要求している場合に発生することになる。リソース・マネージャは、それらが制御するリソースに対するアクセスをホルダとして1人または複数のユーザに認可し、そのリソースが使用可能になるまで残りのユーザをウェイタのプールに入れることにより、そのリソースに関する競合リクエスタ間のコンテンションを管理するソフトウェア・コンポーネントである。
複数のリソース・マネージャと複数の作業単位を備えたIBMのz/OS(商標)オペレーティング・システムなどのコンピュータ・オペレーティング・システムでは、リソース・コンテンション管理は複雑な問題である。コンテンション・チェーンが発生する可能性があり、言い換えれば、コンテンションは複数リソースにまたがる可能性がある。たとえば、ジョブAはリソースR1を待っているがR2を保持しており、ジョブBはR1を保持しているがR3を待っており、R3はジョブCによって保持されている。コンテンションは複数システムにまたがる可能性もある。上記の例では、各ジョブは別々のシステム上にある可能性がある。コンテンションは複数のリソース・マネージャにまたがる可能性もある。たとえば、R1はGRSエンキューである可能性があり、R2はDB2(商標)ラッチである可能性がある。z/OSのグローバル・リソースの逐次化(GRS)はエンキューを管理し、IMS(商標)のリソース・ロック・マネージャ(IRLM)はDB2のリソースを別々に管理する。
クロスリソース・コンテンションは通常、各リソースのホルダおよびウェイタのトポロジを追跡し、交点を見つけることによって、単一リソース・マネージャ(たとえば、GRS)内で解決される。クロスシステム・コンテンションは通常、クラスタ全体のデータについてリソース・マネージャに気付かせる(独立システムとしてではなく、1つのユニットとしてクラスタを管理する)ことによって解決される。クロスリソース・マネージャ・コンテンションは通常、報告製品にすべてのインタフェースに照会させ、それが仮想リソース・マネージャである場合と同様にそのデータを相関させることによって「解決」される。問題はコンテンション中のリソースの数のオーダO(2n)になるので、計算上も複雑なものになる。
z/OSの基本MVS(商標)コンポーネントは単純な効率の解決策(一般に「エンキュー・プロモーション」として知られている)を有しており、報告によるとコンテンション中のリソースを保持しているいずれかの作業のCPUおよびMPLアクセスを自動的(かつ一時的)にブーストし、その作業の困窮度に対してはまったく留意しない。これは、実際のトポロジにかかわらず、あるリソースについて「重要な」ウェイタ(複数も可)が存在する場合と同様にホルダを管理することと同等である。この動作を理解するために、以下の例を検討する。以下のように想定する。
1.ジョブAはリソースR1を保持している。
2.ジョブBはリソースR2を保持し、R1を待っている。
3.ジョブCはR2を待っている。
表記上、これはC→B→Aというチェーンとして表すことができ、大文字はジョブを表し、記号「→」(チェーン内の「リンク」)は記号の左側のジョブが記号の右側のジョブによって保持されているリソースを待っていることを示している。したがって、上記のチェーンは、ジョブCがジョブBによって保持されているリソースを待っており、ジョブBはジョブAによって保持されているリソースを待っていることを意味する。
IBMの資料「z/OS MVS Planning: Global Resource Serialization」SA22−7600−02(2002年3月) IBMの資料「z/OSMVS Planning: Workload Management」SA22−7602−04(2002年10月) IBMの資料「z/OSMVS Programming: Workload Management Services」SA22−7619−03(2002年10月) IBMの資料「z/OSMVS Initialization and Tuning Guide」SA22−7591−01(2002年3月)の特に第3章(3−1〜3−84ページ)
これらがGRSリソースであると想定すると、従来のMVSインプリメンテーションは、ジョブAとジョブBがコンテンション中のリソースを保持し、それぞれを限られた時間の間、均等にプロモートするので、これらのジョブを援助することになるだろう。しかし、Bは実際はAを待っているので、Bを援助しても何も役に立たないだろう。B自体がマルチタスク式である場合、この援助は、リソース・コンテンションに関することは何も行わずに、実際には競合作業を害する可能性がある。
本発明の一態様は、本出願の主題であり、情報処理システム内のリソースへのアクセスに関するユーザ間のコンテンションを管理するための方法および装置を具備し、そのシステムでは各ユーザは何らかの必要性が割り当てられており、それがアクセスしようと努めるリソースに関するホルダまたはウェイタのいずれかになる可能性がある。本発明のこの態様によれば、ユーザ・チェーン内の次のユーザを有する各ユーザが当該次のユーザが待っているリソースを保持しているユーザ・チェーンの先頭にあるウェイタではないユーザが識別される。チェーンの先頭にあるそのユーザは、その必要性が少なくともそのチェーン内の最も困窮しているウェイタの必要性である場合と同様に管理され、好ましくは、その必要性が少なくともこのような最も困窮しているウェイタの必要性である場合と同様にそのユーザにシステム・リソースを割り振ることにより管理される。
好ましくは、本発明のこの態様の独立した発明上の特徴として、クラスタ内の各リソースがそのクラスタ内の他のリソースを待っているユーザによって保持されているかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれているリソースのクラスタを識別し、そのクラスタ内のいずれかのリソースについて最も困窮しているウェイタの必要性を決定することにより、このようなコンテンション・チェーンが識別される。そのクラスタ内のあるリソースのホルダであるが、他のいずれのリソースも待っていないユーザが識別され、そのリソースのそのホルダは、その必要性が少なくともそのクラスタ内のいずれかのリソースについて最も困窮しているウェイタの必要性である場合と同様に管理され、この場合も好ましくは、その必要性が少なくともこのような最も困窮しているウェイタの必要性である場合と同様にそのユーザにシステム・リソースを割り振ることにより管理される。
クラスタを識別するステップは好ましくは、あるリソースのコンテンション状況の変化の通知を受信したことに応答して実行される。したがって、あるリソースがその時点であるクラスタ内の他のリソースを待っているユーザによって保持されているかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれている場合に、そのリソースがそのクラスタに新たに割り当てられる。これに対して、あるリソースがもはやあるクラスタ内の他のリソースを待っているユーザによって保持されていないかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれていない場合に、そのリソースがそのクラスタから除去される。
したがって、本発明のこの態様では、あるチェーンの先頭にあるジョブ(たとえば、困窮度係数が4である上記のジョブA)が、それがそのリソースをリリースするまで、そのチェーン上の他の場所にあるより困窮しているジョブ(たとえば、必要性が1である上記のジョブC)の困窮度係数を有している場合と同様に実行できるように、ベース・システム・リソース割振りメカニズムに「困窮度」係数を統合することを企図している。前の例に困窮度の概念を統合すると、それがどのように異なる挙動をするかをさらに理解することができる。以下のように想定する。
1.「必要性」が4であるジョブAはリソースR1を保持している。(本明細書では、より小さい数字はより高い必要性を意味し、したがって、それらは「援助の優先順位」と見なすことができる。)
2.必要性が5であるジョブBはリソースR2を保持し、R1を待っている。
3.必要性が1であるジョブCはR2を待っている。
表記上、これはC(1)→B(5)→A(4)というチェーンとして表すことができ、大文字はジョブを表し、括弧内の数字はこれらのジョブの「必要性」を表し、記号「→」(チェーン内の「リンク」)は記号の左側のジョブが記号の右側のジョブによって保持されているリソースを待っていることを示している。したがって、上記のチェーンは、必要性が1であるジョブCが、必要性が5であるジョブBによって保持されているリソースを待っており、ジョブBは必要性が4であるジョブAによって保持されているリソースを待っていることを意味する。
このように「困窮度」係数を使用すると、いくつかの利点が付与されるが、その利点は明白ではない可能性がある。第1に、Bが他のリソースも待っていることが分かっているので、上記のBのような作業を援助するのを回避し、その結果、良くても無益で、最悪の場合は無関係の競合作業に損害を与えるようなアクションを回避する。第2に、本来行われる以上に、しかも限られた時間の間ではなく無期限にAを援助できるようにするための知識をシステム・リソース・アロケータに与える。従来のインプリメンテーションではチェーンを無視し、ある程度の限られた期間の間、AとBの両方を「重要」なものとして扱うが、本発明では、Cが待っている限り、Aは実際には1または「最も重要」という必要性を有することが分かっている。第3に、それが希望する場合、たとえば、ネットワーク内で最も困窮している作業が現行ホルダである場合に、チェーンの先頭にあるホルダ(複数も可)を援助するのを控えることができるようにするための知識をシステム・リソース・アロケータに与える。
本発明のこの第1の態様は、単一システム上または複数のこのようなシステムを含むシステム・クラスタ内で実施することができる。リソース・クラスタを識別する本発明のこの変形は、後述するようにローカル・コンテンション・データのサブセットのみの交換を必要とするので、マルチシステム・インプリメンテーションでの使用に特に適している。
本発明の他の態様は、上記の同時提出出願の主題であり、コンテンション中のマルチシステム・リソースの数のオーダO(n)の非常にわずかなデータを次々に回しながら、複数システム間のリソース割振りを管理するためのプロトコルを企図している。
本発明の当該他の態様は、上記の単一システム発明の諸態様を組み込むものであり、複数のシステムを含むシステム・クラスタ内のリソースへのアクセスに関するユーザ間のコンテンションを管理するための方法および装置を企図し、各ユーザは何らかの必要性が割り当てられており、それがアクセスしようと努めるリソースに関するホルダまたはウェイタのいずれかになることができる。本発明のこの態様によれば、このような各システムはローカル・システムとして動作し、ローカル・システム上のコンテンションを基礎としてローカル・クラスタ単位のリソースのグループ化を示し、各ローカル・クラスタ内の1つまたは複数のリソースに関する必要性をローカル・クラスタごとに示すローカル・クラスタ・データを記憶する。また、各システムは、リモート・システムとして動作するシステム・クラスタ内の他のシステムから、リモート・システム上のコンテンションを基礎としてリモート・クラスタ単位のリソースのグループ化をこのようなリモート・システムごとに示し、各リモート・クラスタ内の1つまたは複数のリソースに関する必要性をリモート・クラスタごとに示すリモート・クラスタ・データを受信する。各ローカル・システムは、ローカル・クラスタ・データとリモート・クラスタ・データとを組み合わせて、システム間のコンテンションを基礎として複合クラスタ単位のリソースのグループ化を示し、各複合クラスタ内の1つまたは複数のリソースに関する必要性を複合クラスタごとに示す複合クラスタ・データを生成する。その後、各ローカル・システムはこの複合クラスタ・データを使用して、複合クラスタ内のリソースのローカル・システム上でのホルダを管理する。
好ましくは、ローカル、リモート、および複合クラスタ・データは当該クラスタ内のいずれかのリソースについて最も困窮しているウェイタの必要性を示し、複合クラスタ内のリソースのローカル・システム上でのホルダは、他のリソースを待っていないようなホルダを識別し、その必要性が少なくとも対応する複合クラスタ内のいずれかのリソースについて最も困窮しているウェイタの必要性である場合と同様にシステム・リソースをこのようなホルダに割り振ることによって管理される。
好ましくは、各ローカル・システムは、そのローカル・システム上のあるユーザが他のリソースを待ちながらリソースの1つを保持している場合に1対のリソースを共通ローカル・クラスタに割り当て、そのローカル・システム上のあるユーザに関してあるリソースのコンテンション状況の変化の通知を受信したことに応答してローカル・クラスタ・データを更新する。また、各ローカル・システムは更新を含むそのローカル・クラスタ・データをリモート・システムに送信し、リモート・システムは送信したクラスタ・データを受信側システムに対するリモート・クラスタ・データとして扱い、それに応じてその複合クラスタ・データを更新する。送信したローカル・クラスタ・データは、リソースと、そのローカル・システム上のコンテンションを基礎としてそのリソースが割り当てられるクラスタと、そのリソースに関するローカル・システム上での必要性とを示す。
クラスタ内の各参加リソース・マネージャ・インスタンスからの部分データ(完全リソース・トポロジではない)と、一定の「困窮度」を使用すると、各システムは、あるリソースについて最も困窮しているウェイタ(クロス「上記全部」リソースの推移閉包内のいずれかのウェイタを含む)がチェーンの先頭にあるそのリソースのホルダより困窮しているかどうかを個別に理解することが可能である。その場合、このシステムは、その一定の困窮度が最も困窮している作業ブロック片ほど困窮していない場合と同様に、このようなホルダ(複数も可)にリソースを割り振ることができる。
このプロトコルは、各システムからのホルダとウェイタの全リストの代わりに、リソース当たり1組の情報のみを次々に回すので、いずれのシステムもクラスタ間のコンテンションに関する完全なビューを持たない。データ自体は、クラスタ固有リソース名と、送信側システム上の最も困窮しているウェイタの困窮度値と、送信側システム固有トークンのみからなる。2つのリソースについて後者のトークンが一致する場合、それらの管理を統合しなければならない(トークンは、送信側システムのローカル・データのみに基づいて割り当てられる)。また、このプロトコルは、トポロジ内の作業片の一部がコンテンション中ではない他のリソースを保持している場合でも、コンテンション中のリソースに関するデータのみを送信する。送信側システム・クラスタ情報は様々な方法でエンコードすることができる。したがって、送信側システム上のローカル・コンテンションのみに基づくトークンを送信するのではなく、ローカル・システムは、好ましい実施形態のように、非トリビアル・クラスタ割当て(すなわち、複数のリソースを含むクラスタへの割当て)がローカルまたはリモート情報に基づくものであるかどうかの表示とともに、リモート・コンテンションにも基づくクラスタ名を送信することができる。
本発明は好ましくは、コンピュータ・オペレーティング・システムの一部として、またはこのようなオペレーティング・システムとともに機能する「ミドルウェア」ソフトウェアとして実現される。このようなソフトウェア・インプリメンテーションは、本発明の方法ステップを実行するためにハードウェア・マシンによって実行可能な複数命令のプログラムの形の論理を含む。この複数命令のプログラムは、半導体、磁気、光学、またはその他の記憶技術を使用して1つまたは複数のボリュームを具備するプログラム記憶装置上で実施することができる。
図1は、本発明を組み込んだコンピュータ・システム・クラスタ100を示している。クラスタ100は、任意の適当なタイプの相互接続部104によってひとまとめに結合された個別システム102(Sy1、Sy2、Sy3)を含む。例示的な3つのシステムが示されているが、本発明は特定の数のシステムに限定されない。クラスタ100は、様々なシステムからのリクエスタによって競合する1つまたは複数のグローバルまたはマルチシステム・リソース106を有する。
クラスタの各システム102は、単独の物理的マシンまたは1つまたは複数の物理的マシンの単独の論理区画を具備する可能性がある。各システムは、本発明の諸機能を実行することに加え、システム・サービスを提供し、システム・リソースの使用を管理するという通常の機能を実行するオペレーティング・システム(OS)108を含む。本発明は特定のハードウェアまたはソフトウェア・プラットフォームに限定されないが、好ましくは各システム102は、IBMのzSeries(商標)サーバまたはこのようなサーバの論理区画で動作するIBMのz/OSオペレーティング・システムのインスタンスを具備する。
各システム102は、マルチシステム・リソース106と、任意選択で同じシステム上のリクエスタのみに使用可能なローカル・リソース112へのアクセスについて相互間で競合する1つまたは複数のリクエスタ110を含む。リクエスタ110は、リソース106または112へのアクセスについて競合し、システム・リソースを割り振る目的で単一エンティティとして扱われる任意のエンティティを具備することができる。
(リクエスタ110に割り振られるシステム・リソースは、リクエスタ間のコンテンションの対象になるリソース106および112と区別しなければならない。システム・リソースは、スループットまたは応答時間などのパフォーマンス尺度を改善するために通常はリクエスタ自体にとって透過になるように、リクエスタ110に割り振られる。これに対して、リソース106および110は、その実行の一部としてリクエスタによって明示的に要求される。それらを区別することが必要である場合、後者のクラスのリソースは、「直列化リソース」などの用語を使用して言及されることがある。)
各オペレーティング・システム108は、1つまたは複数のリソース・マネージャ114およびワークロード・マネージャ(WLM)116を含む、本発明にとって関心のあるいくつかのコンポーネントを含む。
各リソース・マネージャ114は、それが制御するリソース106または112に対する1つまたは複数のリクエスタによるアクセスをホルダとして認可し、そのリソースが使用可能になるまで残りのリクエスタをウェイタのプールに入れることにより、そのリソースについて競合リクエスタ110間のコンテンションを管理する。本発明は特定のリソース・マネージャに限定されないが、このようなリソース・マネージャの1つ(マルチシステム・リソース106に使用)は、参照により本明細書に組み込まれるIBMの資料「z/OS MVS Planning: Global Resource Serialization」SA22−7600−02(2002年3月)などの解説書に記載されているz/OSオペレーティング・システムのグローバル・リソースの逐次化(GRS)コンポーネントにすることができる。さらに、リソース・マネージャ114はオペレーティング・システム108の一部として示されているが(GRSはz/OSの一部であるため)、他のリソース・マネージャ(IRLMなど)がオペレーティング・システムとは無関係に存在する可能性もある。
ワークロード・マネージャ(WLM)116は、作業単位(アドレス・スペース、エンクレーブなどである可能性がある)(またはそれが属すサービス・クラス)に割り当てられた「必要性」値を基礎としてその作業単位にシステム・リソースを割り振り、何らかの意味で処理中の他の作業単位に対するその作業単位の相対優先順位を反映する。本発明は特定のワークロード・マネージャに限定されないが、このようなワークロード・マネージャの1つは、ともに参照により本明細書に組み込まれるIBMの資料「z/OS MVS Planning: Workload Management」SA22−7602−04(2002年10月)および「z/OS MVS Programming: Workload Management Services」SA22−7619−03(2002年10月)などの解説書に記載されているIBMのz/OSオペレーティング・システムのワークロード管理コンポーネントである。このようなワークロード管理コンポーネントは、参照により本明細書に組み込まれるIBMの資料「z/OS MVS Initialization and Tuning Guide」SA22−7591−01(2002年3月)の特に第3章(3−1〜3−84ページ)などの解説書に記載されているIBMのz/OSオペレーティング・システムのシステム・リソース・マネージャ(SRM)コンポーネントとともに機能する。これらのコンポーネントが相互作用する特定の方法は本発明の一部ではないので、どちらのコンポーネントも図1に「WLM」と示されたボックス116で参照するものと想定する。
必要性値がユーザに割り当てられる特定の方法および割り当てられた必要性値を基礎としてシステム・リソースがユーザに割り振られる方法のいずれも本発明の一部ではない。どちらについても、当技術分野で周知のいくつかの技法のいずれでも使用することができる。好ましくは、必要性値は、システム・クラスタの全域で同様の意味を有するものでなければならない。図示の実施形態では、リソース・グループ限界と重要性をシステム全域で安全に比較できる単一数量に統合するのは、アクティブWLMポリシーに基づく計算動的値である。順序付けは任意であるが、この説明では、数字が小さい方が高い必要性または優先順位を表しており、したがって、必要性が1であるユーザは必要性が5であるユーザより「より困窮している」。
図2〜5は、システム・クラスタ100内のリソース106および112間で発生する可能性のある様々なコンテンション・チェーンを示している。これらのチェーンはより形式的には有向グラフとして知られているが、本明細書ではチェーンという用語を使用する。これらのチェーン内の各リンクは矢印で示され、あるユーザ(矢印の後部にあるノードによって表される)が他のユーザ(矢印の先頭にあるノードによって表される)によって保持されているリソースを待っている関係を表している。このような関係の「推移閉包」は、矢印をたどった場合にすべてのノードが結局、コンテンション中のリソースを待っておらず、したがって、チェーンの先頭に位置するホルダを指し示すように、チェーンのノードを伴うこのような関係をすべて含むことによって形成されるチェーンである。(1つのチェーンが複数の先頭を持ちうるかどうかは、図5の説明で後述する。)
図2は、上記の背景技術および発明の開示の部分で説明したコンテンション・シナリオを示しており、ユーザCはユーザBによって保持されているリソースR2を待っており、ユーザBはユーザAによって保持されているリソースR1を待っている。本明細書で開示するように、ホルダであるがウェイタではなく、したがって、チェーンの先頭にあるユーザAは、その必要性が少なくともウェイタBおよびCのうち最も困窮しているウェイタの必要性である場合と同様にシステム・リソースが割り振られる。というのは、どちらのウェイタもAをリソースR1で終わらせることによって利益を得るからである。ユーザBもホルダであるが、この優先割振りは与えられない。というのは、そのユーザはリソースを待っており、したがって、動作しておらず、その結果、(BがホルダとしてリソースR1を取得したときに後で意味があるかもしれないが)この時点ではより多くのリソースをBに割り振っても意味がないと思われるからである。
図2に示すコンテンション・シナリオは直線チェーンであり、各ユーザは単一ユーザによって保持されているリソースを保持しているかまたは待っているかあるいはその両方である。しかし、一般に、コンテンション・チェーンは分岐することができ、したがって、単一ユーザが複数のユーザによって待たれているリソースを保持しているかまたは複数のユーザによって保持されているリソースを待っている可能性がある。共用アクセスのためにいくつかのリソースを要求し、複数の同時ホルダを可能にすることもできる。
図3は、第1のタイプの分岐を伴うコンテンション・シナリオを示しており、追加ユーザDがユーザBによって保持されているリソースR3を待っている点で図2に示すシナリオとは異なっている。この場合、ユーザAは、その必要性が少なくともウェイタB、C、Dのうち最も困窮しているウェイタの必要性である場合と同様にシステム・リソースが割り振られる。というのは、これらのウェイタのいずれもAをリソースR1で終わらせることによって利益を得るからである。
図4は、両方のタイプの分岐を伴うコンテンション・シナリオを示しており、ユーザCがユーザDによって制御されている追加リソースR3を待っており、ユーザDがユーザAによって制御されているリソースR4を待っている点で図2に示すシナリオとは異なっている。この場合も、ユーザAは、その必要性が少なくともウェイタB、C、Dのうち最も困窮しているウェイタの必要性である場合と同様にシステム・リソースが割り振られる。というのは、これらのウェイタのいずれもAをリソースR1で終わらせることによって利益を得るからである。
最後に、図5は、第2のタイプの分岐を伴うコンテンション・シナリオを示しており、ユーザCがユーザDによって保持されているリソースR3も待っており、ユーザDがユーザEによって保持されているリソースR4を待っている点で図2に示すチェーンとは異なっている。理論的には、これは、それぞれが先頭を1つずつ有し、一方のチェーンがC→B→Aになり、もう一方のチェーンがC→D→Eになる2つの部分オーバラップ・チェーンとして分析することができる。第1のチェーンのユーザAは、その必要性が少なくともウェイタBおよびCのうち最も困窮しているウェイタの必要性である場合と同様にシステム・リソースが割り振られ、第2のチェーンのユーザEは、その必要性が少なくともウェイタCおよびDのうち最も困窮しているウェイタの必要性である場合と同様にシステム・リソースが割り振られる。
これを要約し、図6を参照すると、理想的なインプリメンテーションでは、まず、チェーン内の次のユーザを有する各ユーザが、当該次のユーザが待っているリソースを保持しているユーザ・チェーンの先頭にあるウェイタではないユーザを識別することになるだろう(ステップ302)。図5ではこれは、ユーザA〜CからなるチェーンのユーザAと、ユーザC〜EからなるチェーンのユーザEになるだろう。次に、その必要性が少なくともそのチェーン内の最も困窮しているウェイタの必要性である場合と同様に、チェーンの先頭にあるユーザにシステム・リソースを割り振ることになるだろう(ステップ304)。すなわち、チェーンの先頭にあるユーザの必要性より大きい必要性を備えたこのような最も困窮しているウェイタが存在する場合、その必要性がそのユーザの必要性より大きければ、このようなウェイタの必要性を基礎としてそのユーザにシステム・リソースが割り振られることになるだろう。
2つのチェーンとしてのこの取扱いでは、ユーザDの分岐(矢印の方向に移行する)がユーザAへの供給を行わないので、ユーザAのリソース割振りはユーザDの必要性に依存せず、したがって、ユーザDはユーザAを優先することによって利益を得そうもないだろう。また、同様の理由で、ユーザEのリソース割振りはユーザBの必要性に依存しない。したがって、好ましい実施形態では、これらのチェーン(またはむしろこれらのチェーン内のリンクを構成するリソース)は2つの単独リソース・クラスタとして分析され、第1のクラスタはリソースR1〜R2を含み、第2のクラスタはリソースR3〜R4を含む。第1のクラスタのユーザAは、その第1のクラスタ内のリソース(R1およびR2)のいずれかについて、その必要性が少なくともそのウェイタ(BおよびC)のうち最も困窮しているウェイタの必要性である場合と同様にシステム・リソースが割り振られる。同様に、第2のクラスタのユーザEは、その第2のクラスタ内のリソース(R3およびR4)のいずれかについて、その必要性が少なくともそのウェイタ(CおよびD)のうち最も困窮しているウェイタの必要性である場合と同様にシステム・リソースが割り振られる。
上記の例のいずれでも、コンテンション・チェーンは非周期性であり、その矢印の方向に沿ってリンクをたどっても閉鎖パスを形成することができないことを意味する。このような閉鎖パスが存在する場合、リソース・デッドロックが存在するものと思われ、そのデッドロックは、デッドロック内に含まれるユーザのうちの1人または複数を終了することによってのみ打破することができるだろう。
次にマルチシステム・インプリメンテーションの詳細に目を向けると、図7は、いくつかのシステム上のトランザクションおよびリソース間の典型的なコンテンション・シナリオを示している。同図では、システムSy1上のトランザクションTxA(必要性が1)がシステムSy2上のトランザクションTxB(必要性が2)とTxD(必要性が4)によって保持されているリソースRaを待っている。システムSy2上のトランザクションTxBは、システムSy3上のトランザクションTxE(必要性が5)のように、システムSy3上のトランザクションTxC(必要性が3)によって保持されているリソースRbを待っている。
この例では、システムSy1〜Sy3がどのようにコンテンションを管理するかを示すものとしてシステムSy2を見ることになる。本発明の一態様によれば、システムSy2は、クラスタ内のコンテンションを示す完全なグローバル・ピクチャを記憶または維持するわけではなく、むしろ以下の表に示すようなコンテンション情報のサブセットを記憶または維持する。
Figure 2004213628
上記の表に示すように、システムSy2は、ホルダまたはウェイタのいずれかとしてリソースについて競合しているそのローカル・トランザクションTxBおよびTxDに関する完全な1組のコンテンション・データ(「ローカル・システム情報」)を記憶する。ローカル・トランザクションがコンテンション中であるこのような各リソースごとに、Sy2は、その真性「必要性」値を含むローカル・ホルダおよびウェイタを追跡する。また、システムSy2は共通クラスタCabにリソースRaおよびRbを割り当てている。というのは、少なくとも1つのローカル・トランザクション(TxB)が、一方の要求リソース(Ra)のホルダのみならず、もう一方の要求リソース(Rb)のウェイタでもあるからである。
上記の表に示したデータまたは本来は(それをそのように記憶するかまたは必要に応じて他のデータからそれを導出することにより)WLMのローカル・インスタンスが追跡するデータは、ローカル・クラスタ・データと、リモート・クラスタ・データと、複合クラスタ・データとを含む。ローカル・クラスタ・データは、ローカル・システム上でのコンテンションを基礎としてローカル・クラスタ単位のリソースのグループ化と、このようなローカル・クラスタごとに、ローカル・クラスタ内のいずれかのリソースについて最も困窮しているウェイタの必要性とを示す。同様に、リモート・クラスタ・データは、特定のリモート・システムについて、リモート・システム上でのコンテンションを基礎としてリモート・クラスタ単位のリソースのグループ化と、このようなリモート・クラスタごとに、リモート・クラスタ内のいずれかのリソースについて最も困窮しているウェイタの必要性とを示す。最後に、複合クラスタ・データは、対応するローカル・データとリモート・データを組み合わせることによって生成され、システム間のコンテンションを基礎として複合クラスタ単位のリソースのグループ化と、このような複合クラスタごとに、複合クラスタ内のいずれかのリソースについて最も困窮しているウェイタの必要性とを示す。
上記の表では、「ローカル・システム情報」という見出しの下にある項目は、ローカル・ユーザがあるリソースを待っているかまたはコンテンション中のリソースを保持しているという意味でローカル・コンテンションのみに基づくので、ローカル・クラスタ・データを表している。あるリソースについて最も困窮しているローカル・ウェイタの必要性は、「ローカル・システム情報」の下にある「ウェイタ」の列を調べることによって確認することができる。したがって、リソースRaの場合、ローカル・ウェイタはまったくなく(このため、「最も困窮している」ローカル・ウェイタもまったくない)、リソースRbの場合、最も困窮しているウェイタ(TxB)は2という必要性を有する。ローカル・コンテンションを基礎とするクラスタ単位のリソースのグループ化はこの表には明示的に示されていないが、ローカル・ユーザが一方のリソースを保持し、もう一方を待っているというリソース項目対を探すことによって導出することができる。したがって、上記の表では、リソースRaのホルダおよびリソースRbのウェイタとしてユーザTxBをリストすると、ローカル・コンテンション・データを基礎としてリソースRaおよびRbが共通クラスタに割り当てられることを意味する。
同様に、「リモート・ウェイタ情報」という見出しの下にある項目は、特定のリモート・システム上のコンテンションのみに基づくので、リモート・クラスタ・データを表している。「システム名」の列内のリソースについてリストしたリモート・システムごとに、最も困窮しているウェイタの必要性が隣接する「NQO」の列に示されている。特定のリモート・システムからのコンテンション・データを基礎とするクラスタ単位のリソースのグループ化は上記の表には示されていないが、それをローカル・クラスタ割当て情報と組み合わせて複合クラスタ割当てを取得できるようにローカルWLMインスタンスによって追跡される。クラスタ同士の組合せは単純明快な方法で行われる。したがって、第1のシステムが(そのローカル・コンテンション・データを基礎として)共通クラスタにリソースAおよびBを割り当てる場合、第2のシステムは同様に共通クラスタにリソースBおよびCを割り当て、第3のシステムは共通クラスタにリソースCおよびDを割り当て、その結果得られる複合クラスタはリソースA、B、C、Dを含む。
これに対して、第1の列(「リソース・クラスタ」)は、クラスタへのリソースの割当てがローカル・クラスタ・データとリモート・クラスタ・データの両方に基づくので、複合クラスタ・データを表している。同様に、最後の列(「NQO」)は、リストした必要性がすべてのシステム間でそのリソースについて最も困窮しているウェイタの必要性(ローカル・システムに報告されるもの)なので、複合クラスタ・データを表している。
システムSy2は、上記に示す表形式でコンテンション・データを記憶することができるが、より一般的には、以下に詳述するように、このようなデータをいくつかのデータ構造に分散すると、操作しやすさを最適化することになるだろう。
図8は、ローカル・リソース・マネージャからのコンテンション通知に応答してWLMのローカル・インスタンスが従う一般的な手順500を示している。特定のステップ・シーケンスについて説明するが、このシーケンスは、各ステップを実行するときに必要な入力データが使用可能である限り、変更することができる。
手順500は、ローカル・ユーザに関連するので、WLMインスタンスがあるリソースのコンテンション状態の変化についてローカル・リソース・マネージャから通知を受信したときに始まる。このような変化は以下のいずれかを意味する可能性がある。
1.ローカル・ユーザは、他のユーザによって保持されているリソースのウェイタになっている。
2.ローカル・ユーザはもはやあるリソースのウェイタではない。これは、それがホルダとしてそのリソースを取得したためか、またはそれがもはやホルダまたはウェイタのいずれかとしてそのリソースに関心がないため(おそらく、以下の例で説明するように、それが終了しており、したがって、もはや存在しないため)である可能性がある。
3.ローカル・ユーザによって保持されているリソースはその時点でコンテンション中である。
4.ローカル・ユーザによって保持されているリソースはもはやコンテンション中ではない。
ローカル・リソース・マネージャからの通知は、リソースならびにローカル・ホルダおよびウェイタを識別することになるだろう。好ましい実施形態では、WLMは、単独で示されていないSRMコンポーネントからこれらのホルダおよびウェイタのそれぞれの「必要性」(それぞれの真性必要性であって、本発明により変更された必要性ではない)を入手するが、このデータの特定のソースは本発明の一部を形成しない。
リソース・マネージャ・インスタンスからこのような通知を受信したことに応答して、WLMのローカル・インスタンスはまず、当該リソースに関するローカル・コンテンション・データを更新する(ステップ504)。このような更新は、ローカル・システム上で新たにコンテンション中になっているリソースに関する新しい項目を作成すること、ローカル・システム上ですでにコンテンション中になっているリソースに関する既存の項目を修正すること、またはローカル・システム上でもはやコンテンション中になっていないリソースに関する既存の項目を削除することを含むことができる。このローカル・コンテンション・データは、そのリソースを保持しているかまたは待っているローカル・ユーザのIDとともにこのようなユーザの「必要性」を含む。
ローカル・コンテンション・データを更新した後、WLMのローカル・インスタンスは、必要であれば、そのリソースのクラスタ割当てを更新する(ステップ506)。デフォルトでは、メンバとしてそれ自体のみを含むトリビアル・クラスタにリソースが割り当てられる。ローカル・コンテンション・データまたはリモート・コンテンション・データのいずれかによって示されている場合は、少なくとも1つの他のリソースを含む非トリビアル・クラスタにリソースが割り当てられる。同じローカル・ユーザがリソースの一方を保持しながらもう一方のリソースを待っていること、すなわち、そのリソースが、もう一方のリソースを待っているユーザによって保持されているかまたはもう一方のリソースを保持しているユーザによって待たれていることをそのデータが示す場合は、ローカル・コンテンション・データを基礎として他のリソースを含むクラスタにリソースが割り当てられる。少なくとも1つのリモート・システムにとってローカルのコンテンション・データを基礎として、そのリモート・システムが共通クラスタに2つのリソースを割り当てたことをそのデータが示す場合は、リモート・コンテンション・データを基礎として他のリソースを含むクラスタにリソースが割り当てられる。したがって、このクラスタ割当てステップは、(1)そのリソースに関するクラスタ割当てを未変更のままにしておくこと、(2)変更したローカル・コンテンション・データと既存のリモート・コンテンション・データが示す場合に非トリビアル・クラスタにそのリソースを新たに割り当てること、または(3)変更したローカル・コンテンション・データと既存のリモート・コンテンション・データがもはやこのような割当てを示していない場合に既存のクラスタを分解することを伴う可能性がある。そのリソースのクラスタ割当てが変更された場合、その変更の影響を受ける他のリソースに関するクラスタ情報も同様にこの時点で修正される。
同時に、WLMのローカル・インスタンスは、そのリソースに関するローカル・コンテンション・データのみに基づく、そのリソースの帰属「必要性」値を更新する(ステップ508)。この帰属必要性は、そのリソースに関するローカル・コンテンション・データが示すように、そのリソースのローカル・ウェイタの必要性のうち最大のものである。このステップはクラスタ割当てステップに続くものとして示されているが、いずれのステップも他のステップの結果を使用しないので、諸ステップの順序は重要ではない。
そのリソースに関するクラスタ割当てと帰属必要性値を更新した後のある時点で、WLMのローカル・インスタンスはその複合クラスタ・データを更新するが、このデータは、(1)ローカルおよびリモート・コンテンション・データに基づくそのリソースに関する帰属必要性値(上記の表の「NQO」の列)と、(2)ローカルおよびリモート・コンテンション・データに基づく複合クラスタ単位のリソースのグループ化と、(3)そのリソース・クラスタ全体の帰属「必要性」値とを含む(ステップ510)。最後に指定したものは、単に複合クラスタを構成するリソースのいずれかの必要性のうち最大のものであり、この場合も、その必要性はそのクラスタを構成するリソースに関するリモートならびにローカル・コンテンション・データに基づくものである。
次に、WLMのローカル・インスタンスは、その更新済みローカル・コンテンション・データの要約をクラスタ内の他のシステムにブロードキャストする(ステップ512)。このデータ要約は以下のものを含む。
1.ローカル・システム名。
2.リソース名。そのリソースがマルチシステム・リソースである場合、リソース名は、クラスタ全域で認識されるリソースの実際の名前である。そのリソースがローカル・リソースである場合、リソース名は、以下の実施例2で説明するように、実際のローカル・リソース名の「プロキシ」として機能する汎用ローカル・リソース名である。
3.そのリソースが割り当てられるクラスタを識別するクラスタID。この値は厳密にローカルなものであり、受信側システムはこの値を比較して、2つのリソースが送信側システム上の同じクラスタに属すかどうかを確認するが、この値の構造または内容に関する想定は行わない。以下の例では、純粋に読者の理解を容易にするための記憶を助ける工夫として、クラスタ内のマルチシステム・リソースの連結としてクラスタ名が与えられる。しかし、好ましい実施形態では、「クラスタ名」は実際には、同じ送信側システム上で発生する他のクラスタIDと等しいかどうかについてのみ受信側システムがテストできる不透明「クラスタID」である。
4.単に送信側システムの「ローカル・システム情報」に基づくそのリソースの「必要性」、すなわち、そのリソースについて最も困窮しているローカル・ウェイタ。これは、そのデータのみを考慮した場合にその必要性が何になるべきかをこのシステムが思考する際の投票と見なすことができる。そのリソースのローカル・ウェイタがまったくない場合、以下の実施例1で説明するように、ローカルの必要性がまったくないことを示すダミー値を送信する。
5.送信側システム上のいずれかのトランザクションが強制的にそのリソースをクラスタに含めるかどうか、すなわち、ローカル・コンテンション・データに基づいてそのリソースを非トリビアル・クラスタに割り当てるかどうかの表示。これは、この説明でローカル/リモートの値が与えられるYES/NOではなく、ブール値である。ローカルとは、(1)送信側システムが、1つのリソースのウェイタであるだけでなく他のリソースのホルダでもある少なくとも1つのトランザクションを有することと、(2)同じトランザクションがこのリソースのウェイタまたはホルダのいずれかであること(したがって、送信側システムはグループとして管理すべきトランザクション(複数も可)と接続されたリソース・グループを必要とする)を意味する。リモートとは、送信側システムのローカル・データのいずれも、そのリソースが非トリビアル・クラスタの一部であることを必要としないことを意味する。トリビアル・クラスタは正確に1つのリソースを有し、クラスタ化コードをいくらか容易にするために「リモート」の値をすでに持っている。
クラスタ再割当てが行われた場合、WLMは、その再割当ての影響を受ける他の各リソースに関する同様の情報もブロードキャストする。
最後に、ローカルWLMインスタンスは、ローカル・ユーザの「必要性」値に対し、必要な調整を行う(ステップ514)。より具体的には、WLMは、少なくともそのリソースを含むクラスタ内で最も困窮しているウェイタの真性必要性と一致するように、同時に他のリソースのウェイタではない(したがって、コンテンション・チェーンの先頭にある)リソースのローカル・ホルダの「必要性」を調整する。調整した値は、システム・リソースをホルダに割り振るために実際に使用する帰属「必要性」値であって、そのユーザに割り当てられる(しかも他のユーザに値を帰属させるために使用される)真性必要性値ではない。したがって、特定の必要性値を帰属させるための理由が消滅した場合、あるユーザに帰属する必要性値は真性必要性値またはより小さい帰属必要性値に逆戻りする。
図9は、リモート・システム上のWLMインスタンスからリモート・コンテンション・データのブロードキャスト(ステップ602)を受信したことに応答してWLMのローカル・インスタンスが従う一般的な手順600を示している。このブロードキャストは、影響を受けるリソースごとに、ステップ512の説明でリストした情報を含む。
このような通知を受信したことに応答して、WLMのローカル・インスタンスはまず、当該リソースに関するリモート・コンテンション・データを更新する(ステップ604)。ステップ504に記載したローカル・コンテンション・データの更新の場合のように、このような更新は、ローカル・システム上で新たにコンテンション中になっているリソースに関する新しい項目を作成すること、ローカル・システム上ですでにコンテンション中になっているリソースに関する既存の項目を修正すること、またはローカル・システム上でもはやコンテンション中になっていないリソースに関する既存の項目を削除することを含むことができる。このリモート・コンテンション・データは、そのリソースのウェイタを有するリモート・システムのIDとともに、そのリソースについてリモート・システム上で最も困窮しているウェイタの必要性を含む。
そのリソースに関するリモート・コンテンション・データを更新した後、WLMのローカル・インスタンスは、ステップ510で行ったように、そのリソースに関する複合クラスタ・データを更新する。ステップ510のように、更新した複合クラスタは、(1)ローカルおよびリモート・コンテンション・データに基づくそのリソースに関する帰属必要性値と、(2)ローカルおよびリモート・コンテンション・データに基づく複合クラスタ単位のリソースのグループ化と、(3)ローカルおよびリモート・コンテンション・データに基づくそのリソース・クラスタ全体の帰属「必要性」値とを含む(ステップ606)。
最後に、ステップ514のように、ローカルWLMインスタンスは、少なくともそのリソースを含むクラスタ内で最も困窮しているウェイタの真性必要性と一致するように、同時に他のリソースのウェイタではない(したがて、コンテンション・チェーンの先頭にある)リソースのローカル・ホルダの「必要性」を調整することにより、ローカル・ユーザの「必要性」値に対し、必要な調整を行う(ステップ608)。
詳細な実施例およびシナリオは以下の通りである。
(「単純」推移閉包ケース)
この実施例はクロスシステム推移閉包ケースであり、複数のリソースが含まれ、1つのリソースを保持している困窮していないユーザは、他のリソース移動を待っている他の(困窮している)ユーザを獲得するために援助を受ける。トポロジは、同じリソースに関するホルダとウェイタがそれぞれ異なるシステム上にあるマルチシステムである。
これは、同じリソース・クラスタ内にマルチシステム・リソースのみが含まれるときに何が起こるかを示したものであり、したがって、「単純」推移閉包ケースである。
この実施例の表記法は以下の通りである。各ホルダおよびウェイタはトランザクション(Txn、たとえば、TxA、TxB)であり、NQO(eNQueue Order)値を有する。NQO値は、値がより小さい方がより困窮している(より援助に値する)ようになっている。各システムには番号が付けられ(Sy1、Sy2)、これらのシステムはいずれも同じ「システム・クラスタ」内にある。各リソースは小文字を有し(Ra、Rb)、範囲としてはマルチシステムである。各リソース・クラスタは、そのクラスタ内のリソースのリストを示す1つまたは複数の小文字を有する(Ca、Cab)。特に明記されていない限り、リソースを入手するための要求は排他制御のためのものである。
時間順のイベント・シーケンスは以下の通りである。
Figure 2004213628
t<6の場合、コンテンションは存在しないので、いずれのシステムにもWLMコンテンション・データがまったくない。
t=6では、コンテンションが発生する(Sy1: TxBはRbを要求するが、TxCがそれを保持しているので中断される)。その結果、Sy1は以下のように動作する。
1.リソースRbに関するコンテンションを追跡し始める。
2.Rbのみからなるリソース・クラスタを作成する。
3.Rbに関するローカル・ウェイタ・リストにTxBを追加する。
この時点でSy1上の状態は以下のようになる。
Figure 2004213628
次にSy1は、そのリソース・トポロジを再評価するときに、Cbに関するNQOを計算する。
1.Sy1が把握しているもの(実際は、この時点は1つだけである)であって、Rbに関するトポロジに含まれる最も困窮しているエンティティはTxBであるので、Rbに関するNQOとしてTxBのNQO(4)を使用する。
2.Cb内のすべてのリソースに関するNQOを計算してあるので、Cb内のすべてのリソースNQOのうち最も困窮しているものとしてCbに関するNQOを計算する。これは、4というNQOをRbからCbに伝えるものである。
3.Rbはマルチシステム・リソースであるので、Sy1はRbの情報をシステム・クラスタ内の他のすべてのシステムにブロードキャストする。上記の通り、Rbに関して送信された情報は、システム名と、リソース名と、クラスタIDと、送信側システムの「ローカル・システム情報」のみに基づくそのリソースのNQOと、「ローカル」に設定されたときに送信側システム上のトランザクションが強制的にそのリソースをクラスタに含めることを示すブール値(ローカル/リモート)とを含む。
4.上記の説明に基づいて、送信されたデータは、Sy1、Rb、Cb、4、リモートである。
この時点でSy1上の状態は以下のようになる。
Figure 2004213628
Sy2はこの情報を受信し、同時に、Sy2上で動作するリソース・マネージャ・インスタンスはRb上のコンテンションをSy2に通知する。動作の順序は無関係であるが、前述の順序でリストされる。コード内の唯一の「トリック」は、Sy2上のリソース・マネージャがレースに勝った場合、リモート・データが到着したときに、コードは、それがすでに同等のクラスタを構築しており、リモート情報をその既存のデータに追加することを認識しなければならないことである。
Sy1からリモート情報を受信した後、Sy2上の状態は以下のようになる。
Figure 2004213628
Sy2のローカル・リソース・マネージャがRb上のコンテンションをSy2に通知すると、Sy1およびSy2上の状態は以下のようになる。
Figure 2004213628
ただし、Rbに関するSy2上のローカルNQOは4であって、TxCのNQOである5ではないことに留意されたい。第1に、リソース・ホルダのNQO(複数も可)はリソースのNQOにまったく影響を及ぼさず、そのホルダは動作しているので、WLMのポリシー調整コードはすでにNQOを暗黙的に使用している。第2に、Sy2はその時点で、システム・クラスタ内のどこか他の箇所でNQOが4であるトランザクションが待っていることを把握しており、4は5よりより困窮しているものとして定義されているので、Rbに関するNQOは4程度の困窮度でなければならない。
t=7では、他のリソース上でコンテンションが発生する(Sy2: TxAはRaを要求するが、TxBがそれを保持しているので中断される)。図10はt=7後のトポロジを示している。
リソースRaもマルチシステムの範囲を有するので、この結果、Rbに関して発生したものと同様にわずかなハンドシェークが行われ、その結果得られる状態は以下の通りである。
Figure 2004213628
Sy1上のリソース・マネージャ・インスタンスがRa上のコンテンションをSy1に通知すると、Sy1は、CaとCbを(新しい)クラスタCabにリンクするという重大なステップを実行する。単にRa上のコンテンションの通知を受けた後、有効な(しかしこれまでは不完全な)状態は以下のようになるだろう(これらが2つの個別ステップであるか1つの統合ステップであるかにかかわらずコード・インプリメンテーション次第であり、それらは別々に示される)。
Figure 2004213628
次にSy1は、そのトポロジを再評価するときに、ローカル情報に基づいて、単一トランザクション(TxB)が2つの異なるリソース(RaおよびRb)に関連し、したがって、それらのリソースの管理を統合しなければならない(換言すれば、RaとRbは同じリソース・クラスタCab内になければならない)ことを把握する。そのクラスタのNQOは、そのメンバ・リソースのうち最も困窮しているNQO(このケースでは1)になる。
Figure 2004213628
RaとRbをまとめて管理しなければならないという「信号」は、コンテンション中の1つまたは複数のリソースを保持しているだけでなくコンテンション中の他の1つまたは複数のリソースを待っている少なくとも1つのトランザクションの存在である。
トポロジに対するそのビューを再評価した後、Sy1は(以前と同様)クラスタ内の他のシステムにそのビューをブロードキャストする。
1.Sy1、Ra、Cab、ダミーNQO値、ローカル
2.Sy1、Rb、Cab、4、ローカル
ダミーNQO値は、単にWLMがこれまでに生成できたものより困窮度が低いものにすぎない。Sy1は、ローカル・ウェイタをまったく持っていないので純粋にローカルのNQO値をまったく持っていないが、そのローカル・データに基づいてRaとRbを1つのユニットとして管理しなければならないという「仮想メッセージ」を送出する必要がある。
Sy2はデータを統合し(RaとRbを1つのユニットとして管理しなければならないという事実を含み、CaとCbをマージしなければならないことを意味する)、以下のものが得られる。
Figure 2004213628
どちらのシステムも完全なトポロジのコピーを持っていない場合でも、この時点で両方のシステムがその問題の重要性(すなわち、最も困窮しているウェイタのNQO値)について合意に達している。
t=10では、コンテンションはアンワインドし始める(Sy2: TxCはRbをリリースする)。この時点で、Rbに関するSy2のビューはリモート・データのみを含む。
Figure 2004213628
t=11では、Sy1上のリソース・マネージャ・インスタンスは、Rbが使用可能であることを発見し、その待ち行列上の最初のウェイタにそれを与える(Sy1: TxBは再開され、Rbを取得する)。リソース・マネージャの待機待ち行列はその時点で空になっているので、Rbのコンテンションがすでに終了したことを示すようWLMに通知する。各システム内では(2つのシステムがタイミング・ウィンドウのために異なるクラスタ内にある同じリソースを有する可能性があるが)どの単一リソースも単一クラスタにしか属すことができないので、Sy1はそのリソース・クラスタからRbを除去する。
Figure 2004213628
並行して、Sy2上のリソース・マネージャ・インスタンスには、もはやRbに関する競合が発生していないことが告げられ(リソース・マネージャ・インプリメンテーションに応じて、これはt=10程度の早期に発生した可能性がある)、これもそのリソース・トポロジからRbを除去する。
Figure 2004213628
t=12では、リリースされたリソースがもはやコンテンション中ではないので、いかなる変化も存在しない(Sy1: TxBはRbをリリースする)。
t=13では、コンテンションは完全にアンワインドする(Sy1: TxBはRaをリリースする)。Sy1上のリソース・マネージャ・インスタンスは、Raのコンテンションの終了を信号で知らせるようWLMに通知する。
Figure 2004213628
t=14では、Sy2もコンテンションの終了を認識する(Sy2: TxAは再開され、Raを取得する(コンテンションなし))。Sy2上のリソース・マネージャ・インスタンスは、Raのコンテンションの終了を信号で知らせるようWLMに通知する。
Figure 2004213628
(ローカル・リソースを備えた推移閉包ケース)
この実施例はもう1つのクロスシステム推移閉包ケースであり、複数のリソースが含まれ、1つのリソースを保持している困窮していないユーザは、他のリソース移動を待っている他の(困窮している)ユーザを獲得するために援助を受けなければならない。トポロジはこの場合も、同じリソースに関するホルダとウェイタがそれぞれ異なるシステム上にあるマルチシステムである。その上、実施例1とは対照的に、各システムは純粋にローカルの(非マルチシステム)リソース上の同じトランザクションを伴うコンテンションを有する。これは、同じリソース・クラスタ内にマルチシステム・リソースと単一システム・リソースの両方が含まれるときに何が起こるかを示したものである。
表記法は実施例1と同じであるが、マルチシステム・リソースは大文字Rを使用し(Ra、Rb)、ローカル・リソースは小文字rを使用する(rc、rd)。Rlocal(=RL)は、「リモート・システムにとって範囲がローカルである何らかの不明のリソース・セット」のプロキシ名である。実際の値は無関係であり、唯一の要件は、すべての参加者がその値に同意することと、任意の有効なリソース名と衝突できないようにすることである。
時間順のイベント・シーケンスは以下の通りである。
Figure 2004213628
t<8の場合、各システム上のコンテンション状態はまさに実施例1と同じであり、したがって、ここでは説明しない。
t=8では、コンテンションはローカル(非マルチシステム)リソースrl上で発生する(Sy1: TxSはrlを要求するが、TxBがそれを保持しているので中断される)。リソースrlは、Sy1上のリソース・クラスタのみに統合される。rlのNQOはTxSからの3であるが、クラスタCablはRaのために依然として1というNQOを有する。
Figure 2004213628
Sy1はクラスタに対するそのビューをブロードキャストするときに、直接rlをブロードキャストするわけではない。というのは、RaとRbは他のシステムにとって目に見える可能性のある、クラスタ内の唯一のリソースであるからである。むしろ、それは、Sy1のローカル・リソースのすべて(rlのみであると把握している)のプロキシ(Rlocal)をブロードキャストすることになる。
1.Sy1、Ra、Cabl、ダミーNQO値、ローカル
2.Sy1、Rb、Cabl、4、ローカル
3.Sy1、Rlocal、Cabl、3、ローカル
このデータを受信し、そのトポロジを更新した後、Sy2はこれが以下の状態になると確信する。
Figure 2004213628
t=9では、もう1つのローカル・リソースがもう一方のシステム上でのコンテンションを示す(Sy2: TxTはrjを要求するが、TxAがそれを保持しているので中断される)。図11は、t=9後のトポロジを示している。
Sy1上で行ったように同様の処理がSy2上で行われ、次にSy2はそのデータをSy1にブロードキャストする。Sy2は以下のものをブロードキャストする。
1.Sy2、Ra、CabL、1、ローカル
2.Sy2、Rb、CabL、ダミーNQO値、リモート
3.Sy2、Rlocal、CabL、2、ローカル
上記のブロードキャストでは、Sy2上のローカル・リソースのプロキシの名前は暗黙的にクラスタ名によって修飾される。というのは、以下に注記するように、システム・クラスタ全体用ではなく、各リソース・クラスタごとにプロキシが定義されているからである。また、RaおよびRlocalに関するブロードキャストのみがブール値「ローカル」を含むが、これは、この2つのリソースのみがローカル・データを基礎として共通クラスタに割当て可能であるからである。
Figure 2004213628
Sy2上のRlocalに関する「リモート・ウェイタ情報」に「Sy2、2」項目を追加するかまたはSy2上の「ローカル・システム情報のウェイタ」にダミー・トランザクションを追加することによりすべてのローカル・リソース・コンテンションを要約できない理由はまったくないが、上記の表はこの最適化を行わずに示されている。上記の方法の1つによりRlocalでローカル状態データを要約させると、おそらくブロードキャスト・コードがより単純なものになり、Rlocalはマルチシステムの範囲で生成可能であり、ブロードキャスト・コード内に特殊ケースはまったく不要になるだろう。明らかに特殊ケースにする必要があるようなケースが他に存在する。実際には、単にシステム当たり1つではなく、リソース・クラスタ当たり1つのRlocalを可能にしなければならない。
t=10では、コンテンションはアンワインドし始める(Sy2: TxCはRbをリリースする)。この時点で、Rbに関するSy2のビューはリモート・データのみを含む。
Figure 2004213628
t=11では、Sy1上のリソース・マネージャ・インスタンスは、Rbが使用可能であることを発見し、その待ち行列上の最初のウェイタにそれを与える(Sy1: TxBは再開され、Rbを取得する)。リソース・マネージャの待機待ち行列はその時点で空になっているので、Rbのコンテンションがすでに終了したことを示すようWLMに通知する。並行して、Sy2上のリソース・マネージャ・インスタンスには、もはやRbに関する競合が発生していないことが告げられる(リソース・マネージャ・インプリメンテーションに応じて、これはt=10程度の早期に発生した可能性がある)。各システム内ではどの単一リソースも単一クラスタにしか属すことができないので、どちらのシステムもそのリソース・クラスタからRbを除去しなければならない。2つのシステムが、タイミング・ウィンドウのために一時的にまたはリソース・トポロジのために永続的に同時に異なるクラスタ内にある同じリソースを有する可能性がある。非対称トポロジの例は、3つ以上のシステムが含まれるときに現れる。
Figure 2004213628
t=12では、リリースされたリソースがもはやコンテンション中ではないので、いかなる変化も存在しない(Sy1: TxBはRbをリリースする)。
t=13では、マルチシステム・コンテンションは完全にアンワインドする(Sy1: TxBはRaをリリースする)。Sy1上のリソース・マネージャ・インスタンスは、Raのコンテンションの終了を信号で知らせるようWLMに通知する。
この時点でSy1上のリソース・クラスタは、ローカル・リソースと、マルチシステム・コンテンションに含まれるリモート・ローカル・リソースのプロキシのみからなるので、このプロキシもクラスタから除去することができる。Sy2にはRaのコンテンションの終了がまだ通知されていないので、Sy2は依然としてそのプロキシ・リソースをクラスタの一部として維持する。
Figure 2004213628
t=14では、Sy2もコンテンションの終了を認識する(Sy2: TxAは再開され、Raを取得する)。Sy2上のリソース・マネージャ・インスタンスは、Raのコンテンションの終了を信号で知らせるようWLMに通知する。
Figure 2004213628
t=15では、1つのローカル・リソース上でのコンテンションが終了し(Sy1: TxBはrlをリリースする)、TxSが再開される。rl上でのコンテンションが終了したことをリソース・マネージャがSy1に通知すると、Sy1のトポロジはもう一度、空になる。
t=17では、最後のコンテンションが終了し(Sy2: TxAはrjをリリースする)、TxTが再開される。rl上でのコンテンションが終了したことをリソース・マネージャがSy2に通知すると、Sy2のトポロジはもう一度、空になる。
クラスタの分割(BreakClu1)
この実施例は、関連するいずれのリソースについてもコンテンションを終了せずに1つのリソース・クラスタを複数のより小さいクラスタに分割することを含む。RaとRbをリンクするトランザクションはキャンセルされるが、各リソースは他のウェイタを有しているので、どちらのリソースもその後、依然としてコンテンション中になる。表記法は実施例1と同様である。
時間順のイベント・シーケンスは以下の通りである。
Figure 2004213628
t<4の場合、コンテンションは存在しないので、いずれのシステムにもWLMコンテンション・データがまったくない。
t=4とt=7の間に発生するイベントはこれ以前の実施例にカバーされている。図12はt=7後のトポロジを示している。この時点での状態データは以下のようになる。
Figure 2004213628
トランザクションTxDが(理由の如何を問わず)t=8で終了すると、各システム上のリソース・マネージャ・インスタンスは、TxDが未解決で持っていたすべての待機要求(Ra)を除去し、それが保持していたすべてのリソース(Rb)をリリースする。このようなトポロジ変化がWLMに通知されると、Sy1は、リソース・クラスタCabを2つの片(CaおよびCb)に分割しなければならないことを把握する。そのシステムがこれを把握するのは、その2つがリンクされていることをSy1がローカルで決定した(これがローカルではもはや該当しないことを認識できる)からであり、いかなるリモート・システムのデータも、それらをリンクしなければならないことを示していない。しかし、どちらのリソースも依然としてコンテンション中である。次にSy1がそのトポロジ・データをブロードキャストすると、Sy2上の「Sy1: Ra、Rbリンク済み」というデータが除去され、Sy2はそのトポロジも更新する。リソース・マネージャ・インスタンスが所有権を再割当てする前にWLMがこれをすべて実施すると想定すると、結果として得られる状態は以下のようになる。
Figure 2004213628
したがって、これは、関連するリソースの1つに関するコンテンションの終了によるのではなく、RaとRbをまとめて管理しなければならないという「メモリ」を除去するためのメカニズムがいくつかあることを暗示している。いくつかの代替策は以下の通りである。
1.Sy1は、所与のリソース・クラスタが必要であることをもはや確信していないことを示すためのデータを明示的に送信する。たとえば、Ra、Ca、4、リモートを送信する。Sy2がRaに関するSy1の以前のデータを置き換えると、それはもはやSy1から得られるRaとRbをまとめて管理するためのいかなる要件も認識せず、Sy2がそのクラスタを続行するための他の「投票」をまったく持っていない場合、Sy2はそのクラスタをローカルで分割することができる。
2.Sy1のデータは古くなっている(したがって、「まもなく」置き換えられない場合でも削除される)。これはおそらく、「存続時間」(TTL)値を送信することによって実現されるだろうが、その後、データは受信側によって削除されるだろう。このメカニズムは、システム傷害、信号喪失、バグ、回復問題などにも安全策をもたらすことができるだろう。また、TTLは、通信待ち時間を透過的なものにし、送信側と受信側が共通間隔について合意に達する必要がないという利点を有する。
最も堅固な解決策は、おそらく3つすべてになるだろう。グローバルにコンテンションの終了を信号で知らせるリソース・マネージャにより、「Ra」ブロックをローカルで削除するケースを処理すると、「クラスタの分割」というメッセージを送信するのに十分長い間、それを保持する必要がない。あるリソースに関するコンテンションがリモートではなくローカルで終了し、そのローカル・システムが、その投票によって強制的に非トリビアル・クラスタを構築したシステムである場合、TTL値によってリモート・システム上のクラスタの破壊を引き起こす。クラスタを分割する必要があるがコンテンションが終了していない場合、依然として「Ra」ブロックが存在し、いずれにしても何かを送信した当然の結果としては「クラスタの分割」というメッセージが発生する。
クラスタの分割(BreakClu2)
この実施例では、共通ホルダ(複数も可)のみによって結合されたリソース・クラスタを「n」個のリソースからなる1つのリソース・クラスタとしてまたはそれぞれ1つのリソースからなる「n」個のクラスタとして扱うことができる。この結果は、ドキュメント化に十分値するほど驚くべきものになる。
表記法は実施例1と同様である。
時間順のイベント・シーケンスは以下の通りである。
Figure 2004213628
図13は、t=6後のトポロジを示している。
t=6までに発生するイベントはこれ以前の実施例にカバーされている。この場合に興味深いことは、定義方法に応じて、この状況を1つのリソース・クラスタまたは2つのリソース・クラスタとして扱うことができることである。1つのリソースに関するホルダとしてならびに異なるリソースに関するウェイタとして同じトランザクションを有する(その後、システム・クラスタ内のすべてのシステムについてこの知識を要約する)システムによってリソース・クラスタを識別できるというこれ以前の実施例による定義を使用する場合、明らかに上記の図は、予想されるように1つのリソース・クラスタではなく、2つのリソース・クラスタを示す。
リソース・クラスタCabを形成する際にまったく価値がなく、そのように実行する際に関連してオーバヘッドが発生する(より精密には、あるクラスタを分割しなければならないかどうかを決定するときに関連してオーバヘッドが発生する)ので、この定義は引き続き使用されることになる。したがって、上記の図に対応する状態データは以下のようになるだろう。
Figure 2004213628
この定義に固有の想定は、WLMがその作業を援助しようと試みるときに、それが各リソースを検査し、NQO値に基づいて必要に応じてホルダ(複数も可)を援助することになることである。このトポロジが単一リソース・クラスタとして扱われる場合、TxAはクラスタCabから1というNQOを継承するだろう。これを2つのクラスタとして扱うと、WLMは以下のように結論を下さなければならない。
1.NQOが3であるホルダはNQOが4であるリソース・クラスタより困窮しているので、Caは援助をまったく必要としない。
2.NQOが1であるクラスタはNQOが3であるTxAより困窮しているので、Cbは援助を必要とする。
このシナリオが1つのリソース・クラスタとして扱われるか2つのリソース・クラスタとして扱われるかにかかわらず、TxAは最後に1というNQOを継承するので、どちらを選択してもよい。複合クラスタの分解が必要な時期に関するテストのために、2つの「トリビアル」(単一リソース)クラスタを管理する方が単一複合クラスタより効率的なので、このケースは2つのトリビアル・リソース・クラスタとして扱われる。
単純3ウェイ・シナリオ(3wayEasy)
この実施例は単純3システム・シナリオである。これも推移閉包ケースであるが、その非対称トポロジによって強制的にシステムがリソース・マネージャから得られるローカル・ウェイタ/ホルダ情報を持っていないリソースを追跡する。表記法は実施例1と同様である。
時間順のイベント・シーケンスは以下の通りである。
Figure 2004213628
t=5までに発生するイベントはこれ以前の実施例にカバーされている。図14は、t=5後のトポロジを示している。この時点での状態データは以下のようになる。
Figure 2004213628
この場合に興味深いことは、Sy3がRaとまったく関連がないが、それはTxCのNQOが(Sy1上のTxAから継承した)1でなければならないことを決定するために、少なくともRaに関する何らかのデータを追跡することである。これは多くの困難を引き起こさないはずであるが、Sy1とSy2は他のどのシステムがRaと関連するかを把握しておらず、すべてのシステムがそれぞれの最新トポロジ・データ(当然のことながら、移動ターゲットである)をブロードキャストした後で「発見可能」であるにすぎない。したがって、Sy1とSy2はとにかくそれぞれのデータをブロードキャストしなければならない。追加の義務は、Sy3が対等システムから受信した要約データを記帳しなければならないことであるが、それがRaと無関係である限り、複雑なトランザクションベースの論理のいずれも呼び出されない。これはおそらく、そのクラスタのNQOと、そのNQOに至るシステムのIDとをブロードキャストすることによって解消できるだろうが、クラスタをもう一度より小さい片に分割する時期に達したときに表面化する問題がいくつかある。各リソースを追跡することは、正しいNQOに至ると認識できるものに見合うほど小さい代償のように思われる。
この状態からのアンワインドは、これ以前の実施例のように進行する。
クラスタの分割を伴う3ウェイ・シナリオ(3wayBreakClu)
この実施例は、我々を駆り立てるための「コンテンションの終了」イベントなしに大きいクラスタをより小さいクラスタに分割する、3システム推移閉包ケースである。この実施例も、あるリソースの複数共用ホルダを含むトポロジを示している。表記法は実施例1と同様である。
時間順のイベント・シーケンスは以下の通りである。
Figure 2004213628
t=7までに発生するイベントはこれ以前の実施例にカバーされている。前の実施例のように、Sy3はRaとまったく関連がないが、それは少なくともRaに関する何らかのデータを追跡する。
図15は、t=7後のトポロジを示している。この時点での状態データは以下のようになる。
Figure 2004213628
この状態からのアンワインドは、これ以前の実施例のように進行する。この場合、t=8およびt=9でのイベントは、リソース・クラスタCabがもはや不要であることを意味し、これ以前の実施例の通り、このケースではそのクラスタが分割されることになる。したがって、t=9後は、図16および以下の表に示す状態になる。
Figure 2004213628
関連するいずれのリソースについてもコンテンションをクリアせずにリソース・クラスタが分割される前のケースのように、コンテンション中のリソースを保持しているだけかまたは待っているだけである限り、単一トランザクション(この場合はTxB)が2つの個別リソース・クラスタに同時に関連することができることが分かるだろう。それがコンテンション中のいずれかのリソースを待つとすぐに、それが保持しているかまたは待っているコンテンション中のすべてのリソースを単一リソース・クラスタとして管理しなければならない。
データ構造
図17〜24は、本発明によりコンテンション・データを記憶するための1組の可能なデータ構造を示している。
図17を参照すると、リソース・コンテンション制御テーブル(RCCT)802を使用して、関心のある様々な項目のみ(または主に)単一WLMサブコンポーネントにアンカーする。これは以下のものを含む。
1.リソース・クラスタ・エレメント(RCLU)806(図18)用のアンカー804
2.リソース・エレメント(RSRC)810(図19)用のアンカー808
3.トランザクション・テーブル(TRXNT)814(図22)用のアンカー812
図18を参照すると、各リソース・クラスタ・エレメント(RCLU)806は、単一リソース・クラスタに関連するデータを含む。これは以下のものを含む。
1.クラスタID816
2.クラスタNQO818(クラスタ内のすべてのリソースの最小のもの)
3.クラスタ内のリソースのリソース・エレメント(RSRC)810(図19)用のアンカー820
図19を参照すると、各リソース・エレメント(RSRC)810は、コンテンション中のリソースを記述するものである。これは以下のものを含む。
1.リソース・フィンガプリント/名822
2.リソースNQO824(ブロードキャスト・パス上での効率のためにローカル/システム・クラスタ値を別々に保持する必要がある可能性があり、そうではない場合、これはシステム・クラスタNQOになる。)
3.クラスタ・エレメント(RCLU)806(図18)へのポインタ826
4.ローカル・ホルダに関するリソース・コンテンション待ち行列エレメント(RCQE)830(図24)用のアンカー828
5.ローカル・ウェイタに関するリソース・コンテンション待ち行列エレメント(RCQE)830用のアンカー832
6.このリソースに関するリモート・データ用のシステム・データ・アンカー(SDA)836(図20)用のアンカー834
図20を参照すると、各システム・データ・アンカー(SDA)836は、単一システムに関するリモート・システム情報用のアンカーとして機能する。これは以下のものを含む。
1.リモート・システムID838
2.このシステムからのリモート・システム・データ・エレメント(RSDE)842(図21)用のアンカー840
3.リモート・システムの最高の既知の送信シーケンス番号を表す値844。換言すれば、アウトバウンド・パス上で送信側システムは、トポロジ・データの各「バッチ」ごとに同じになる値(タイムスタンプなど)を含む。各受信側システムは着信メッセージ内の値とこの値を比較し、メッセージの方が小さい値(受信側システムがすでに同じ送信側からより最近のデータを受信したので、これが古くなっていることを暗示する)を有する場合、そのメッセージは無視される。
4.トポロジ・メッセージをリモート・システムから受信したときにローカル・クロックを使用して更新されるタイムスタンプ846
図21を参照すると、各リソース・システム・データ・エレメント(RSDE)842はリソースに関するリモート・システム情報を含む。これは以下のものを含む。
1.そのシステム用のシステム・データ・アンカー(SDA)(図20)へのポインタ848
2.そのリソース用のリソース・エレメント(RSRC)810(図19)へのポインタ850
3.同じリソースに関する他のRSDE842用の待ち行列リンク852
4.リモート・システム上のウェイタのみを考慮するリモート・システムのNQO854
5.デバッグのみのための送信タイムスタンプ856(送信したときのリモート・システム上のクロック値)
6.デバッグおよびTTL処理のためのタイムスタンプ858であって、受信したときのローカル・クロック値を表すもの
7.このリソース用のリモート・クラスタID860。リモート・システムが、ホルダでありかつウェイタでもあるトランザクションを有する場合、関連するすべてのリソースは、そこでは同じクラスタIDを有することになり、ここでは同じクラスタ内にある必要がある。異なるシステムからのリモート・データが、どのリソースが1つのクラスタに属すかに関して一致しない場合、クラスタはローカルで合併される。
8.リモート・システムがいくらか余分のものを加えたデータの送信を計画する頻度に対応して、リモート・システムによって供給される存続時間(TTL)期間862。ローカル時間が受信タイムスタンプにこの値を加えたものを超える場合、そのエレメントは削除の対象となる。
図22を参照すると、トランザクション・テーブル(TRXNT)814を使用して、関心のある様々な項目のみ(または主に)単一WLMサブコンポーネントにアンカーする。これは以下のものを含む。
1.トランザクション・テーブル814を構築したときのアドレス・スペースの数864
2.トランザクション・テーブル814を構築したときのエンクレーブの数866
3.トランザクション・テーブルの先頭から最初のテーブル項目868までのオフセット868
4.アドレス・スペースであるトランザクション用の項目(TRXNE)(数864以内)用の領域870
5.エンクレーブであるトランザクション用の項目(TRXNE)(数866以内)用の領域872
図23を参照すると、トランザクション・テーブル(TRXNT)814の領域870または872内の各項目(TRXNE)874は、そのコンテンションがWLMによって管理される少なくとも1つのリソースに関連する単一トランザクションに関する情報を含む。これは以下のものを含む。
1.タイプ876: アドレス・スペースまたはエンクレーブ
2.このトランザクション用のアドレス・スペースID(ASID)またはエンクレーブID878
3.このトランザクション用のアドレス・スペースまたはエンクレーブ・トークン880。ASIDおよびエンクレーブIDは再使用可能であり、IDを再使用する場合でもトークンによって単一イメージ内の固有性が得られる。
4.このトランザクションによって保持されているリソースに関するコンテンション・エレメント(RCQE)830(図24)の待ち行列884用のアンカー882
5.このトランザクションによって待たれているリソースに関するコンテンション・エレメント(RCQE)830の待ち行列888用のアンカー886
6.このトランザクションのNQO888
図24を参照すると、各リソース・コンテンション待ち行列エレメント(RCQE)830は、トランザクション(ホルダまたはウェイタ)をリソースに関連づけるものである。これは以下のものを含む。
1.TRXNT810内のトランザクション用のTRXNE874のオフセット892
2.このトランザクションに関する次/前のRCQE830用の待ち行列リンク894
3.このリソース用のリソース・エレメント(RSRC)810へのポインタ896
4.このリソースに関する次/前のRCQE830用の待ち行列リンク898
5.保持/待機ビット899(おそらく待ち行列検証のみのため)
図25は、図7に示し、図7に付随する表でSy2について要約したコンテンション・シナリオを図17〜24に示す様々なデータ構造がどのように取り込むかを示している。
特定の実施形態について図示し説明してきたが、様々な変更形態が当業者には明らかになるだろう。したがって、(ローカルまたはリモート・コンテンション・データを基礎として)共通クラスタの一部であると確信されるすべてのリソースについて共通クラスタIDを送出するのではなく、ローカル・システムはむしろ、ローカル・コンテンション・データを基礎として共通クラスタに属すことが分かっているリソースについてのみ共通クラスタIDを使用することができるだろう。さらに他の変形形態も当業者には明らかになるだろう。
まとめとして、本発明の構成に関して以下の事項を開示する。
(1)情報処理システム内の1つまたは複数のリソースへのアクセスに関するユーザ間のコンテンションを管理するための方法であって、前記ユーザのそれぞれは何らかの必要性が割り当てられており、それがアクセスしようと努めるリソースに関するホルダまたはウェイタのいずれかになる可能性があり、前記方法が、
ユーザ・チェーン内の次のユーザを有する各ユーザが、前記次のユーザが待っているリソースを保持している前記チェーンの先頭にあるウェイタではないユーザを識別するステップと、
その必要性が少なくとも前記チェーン内の最も困窮しているウェイタの必要性である場合と同様に、前記チェーンの先頭にある前記ユーザを管理するステップとを具備する方法。
(2)前記管理ステップが、
その必要性が少なくとも前記チェーン内の前記最も困窮しているウェイタの必要性である場合と同様に、前記チェーンの先頭にある前記ユーザにシステム・リソースを割り振るステップを具備する、上記(1)に記載の方法。
(3)前記識別ステップが、
クラスタ内の各リソースがそのクラスタ内の他のリソースを待っているユーザによって保持されているかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれている前記リソースのクラスタを定義するステップを具備する、上記(1)に記載の方法。
(4)前記管理ステップが、
前記クラスタ内のいずれかのリソースについて最も困窮しているウェイタの必要性を決定するステップを具備する、上記(3)に記載の方法。
(5)情報処理システム内の1つまたは複数のリソースへのアクセスに関するユーザ間のコンテンションを管理するための方法であって、前記ユーザのそれぞれは何らかの必要性が割り当てられており、それがアクセスしようと努めるリソースに関するホルダまたはウェイタのいずれかになる可能性があり、前記方法が、
クラスタ内の各リソースがそのクラスタ内の他のリソースを待っているユーザによって保持されているかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれている前記リソースのクラスタを識別するステップと、
前記クラスタ内のいずれかのリソースについて最も困窮しているウェイタの必要性を決定するステップと、
前記クラスタ内のあるリソースのホルダであって、他のいずれのリソースも待っていないホルダを識別するステップと、
その必要性が少なくとも前記クラスタ内のいずれかのリソースについて前記最も困窮しているウェイタの必要性である場合と同様に、前記リソースの前記ホルダを管理するステップとを具備する方法。
(6)前記管理ステップが、
その必要性が少なくとも前記クラスタ内のいずれかのリソースについて前記最も困窮しているウェイタの必要性である場合と同様に、前記リソースの前記ホルダにシステム・リソースを割り振るステップを具備する、上記(5)に記載の方法。
(7)クラスタを識別する前記ステップが、あるリソースのコンテンション状況の変化の通知を受信したことに応答して実行され、
そのリソースがその時点でそのクラスタ内の他のリソースを待っているユーザによって保持されているかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれている場合に、そのリソースをそのクラスタに新たに割り当てるステップを具備する、上記(5)に記載の方法。
(8)クラスタを識別する前記ステップが、あるリソースのコンテンション状況の変化の通知を受信したことに応答して実行され、
そのリソースがもはやそのクラスタ内の他のリソースを待っているユーザによって保持されていないかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれていない場合に、そのリソースをそのクラスタから除去するステップを具備する、上記(5)に記載の方法。
(9)情報処理システム内の1つまたは複数のリソースへのアクセスに関するユーザ間のコンテンションを管理するための装置であって、前記ユーザのそれぞれは何らかの必要性が割り当てられており、それがアクセスしようと努めるリソースに関するホルダまたはウェイタのいずれかになる可能性があり、前記装置が、
ユーザ・チェーン内の次のユーザを有する各ユーザが、前記次のユーザが待っているリソースを保持している前記チェーンの先頭にあるウェイタではないユーザを識別するための論理回路と、
その必要性が少なくとも前記チェーン内の最も困窮しているウェイタの必要性である場合と同様に、前記チェーンの先頭にある前記ユーザを管理するための論理回路とを具備する装置。
(10)前記管理論理回路が、その必要性が少なくとも前記チェーン内の前記最も困窮しているウェイタの必要性である場合と同様に、前記チェーンの先頭にある前記ユーザにシステム・リソースを割り振る、上記(9)に記載の装置。
(11)情報処理システム内の1つまたは複数のリソースへのアクセスに関するユーザ間のコンテンションを管理するための装置であって、前記ユーザのそれぞれは何らかの必要性が割り当てられており、それがアクセスしようと努めるリソースに関するホルダまたはウェイタのいずれかになる可能性があり、前記装置が、
クラスタ内の各リソースがそのクラスタ内の他のリソースを待っているユーザによって保持されているかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれている前記リソースのクラスタを識別するための論理回路と、
前記クラスタ内のいずれかのリソースについて最も困窮しているウェイタの必要性を決定するための論理回路と、
前記クラスタ内のあるリソースのホルダであって、他のいずれのリソースも待っていないホルダを識別するための論理回路と、
その必要性が少なくとも前記クラスタ内のいずれかのリソースについて前記最も困窮しているウェイタの必要性である場合と同様に、前記リソースの前記ホルダを管理するための論理回路とを具備する装置。
(12)前記管理論理回路が、その必要性が少なくとも前記クラスタ内のいずれかのリソースについて前記最も困窮しているウェイタの必要性である場合と同様に、前記リソースの前記ホルダにシステム・リソースを割り振る、上記(11)に記載の装置。
(13)クラスタを識別するための前記論理回路が、あるリソースのコンテンション状況の変化の通知を受信したことに応答して、そのリソースがその時点でそのクラスタ内の他のリソースを待っているユーザによって保持されているかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれている場合に、そのリソースをそのクラスタに新たに割り当てる、上記(11)に記載の装置。
(14)クラスタを識別するための前記論理回路が、あるリソースのコンテンション状況の変化の通知を受信したことに応答して、そのリソースがもはやそのクラスタ内の他のリソースを待っているユーザによって保持されていないかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれていない場合に、そのリソースをそのクラスタから除去する、上記(11)に記載の装置。
(15)情報処理システム内の1つまたは複数のリソースへのアクセスに関するユーザ間のコンテンションを管理するための方法ステップを実行するためにマシンによって実行可能な複数命令のプログラムを具体的に実施し、マシンによって読取り可能なプログラム記憶装置であって、前記ユーザのそれぞれは何らかの必要性が割り当てられており、それがアクセスしようと努めるリソースに関するホルダまたはウェイタのいずれかになる可能性があり、前記方法ステップが、
ユーザ・チェーン内の次のユーザを有する各ユーザが、前記次のユーザが待っているリソースを保持している前記チェーンの先頭にあるウェイタではないユーザを識別するステップと、
その必要性が少なくとも前記チェーン内の最も困窮しているウェイタの必要性である場合と同様に、前記チェーンの先頭にある前記ユーザを管理するステップとを具備する、プログラム記憶装置。
(16)前記管理ステップが、
その必要性が少なくとも前記チェーン内の前記最も困窮しているウェイタの必要性である場合と同様に、前記チェーンの先頭にある前記ユーザにシステム・リソースを割り振るステップを具備する、上記(15)に記載のプログラム記憶装置。
(17)情報処理システム内の1つまたは複数のリソースへのアクセスに関するユーザ間のコンテンションを管理するための方法ステップを実行するためにマシンによって実行可能な複数命令のプログラムを具体的に実施し、マシンによって読取り可能なプログラム記憶装置であって、前記ユーザのそれぞれは何らかの必要性が割り当てられており、それがアクセスしようと努めるリソースに関するホルダまたはウェイタのいずれかになる可能性があり、前記方法ステップが、
クラスタ内の各リソースがそのクラスタ内の他のリソースを待っているユーザによって保持されているかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれている前記リソースのクラスタを識別するステップと、
前記クラスタ内のいずれかのリソースについて最も困窮しているウェイタの必要性を決定するステップと、
前記クラスタ内のあるリソースのホルダであって、他のいずれのリソースも待っていないホルダを識別するステップと、
その必要性が少なくとも前記クラスタ内のいずれかのリソースについて前記最も困窮しているウェイタの必要性である場合と同様に、前記リソースの前記ホルダを管理するステップとを具備する、プログラム記憶装置。
(18)前記管理ステップが、
その必要性が少なくとも前記クラスタ内のいずれかのリソースについて前記最も困窮しているウェイタの必要性である場合と同様に、前記リソースの前記ホルダにシステム・リソースを割り振るステップを具備する、上記(17)に記載のプログラム記憶装置。
(19)クラスタを識別する前記ステップが、あるリソースのコンテンション状況の変化の通知を受信したことに応答して実行され、
そのリソースがその時点でそのクラスタ内の他のリソースを待っているユーザによって保持されているかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれている場合に、そのリソースをそのクラスタに新たに割り当てるステップを具備する、上記(17)に記載のプログラム記憶装置。
(20)クラスタを識別する前記ステップが、あるリソースのコンテンション状況の変化の通知を受信したことに応答して実行され、
そのリソースがもはやそのクラスタ内の他のリソースを待っているユーザによって保持されていないかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれていない場合に、そのリソースをそのクラスタから除去するステップを具備する、上記(17)に記載のプログラム記憶装置。
本発明を組み込んだコンピュータ・システム・クラスタを示す図である。 様々なタイプのコンテンション・チェーンを示す図である。 様々なタイプのコンテンション・チェーンを示す図である。 様々なタイプのコンテンション・チェーンを示す図である。 様々なタイプのコンテンション・チェーンを示す図である。 コンテンション・チェーンの先頭にあるユーザにリソースを割り振るための手順を示す図である。 いくつかのシステム上のトランザクションおよびリソース間の典型的なコンテンション・シナリオを示す図である。 ローカル・リソース・マネージャからの通知に応答して従う一般的な手順を示す図である。 リモート・システムからコンテンション・データのブロードキャストを受信したことに応答して従う一般的な手順を示す図である。 様々な動作例におけるマルチシステム・コンテンション状態を示す図である。 様々な動作例におけるマルチシステム・コンテンション状態を示す図である。 様々な動作例におけるマルチシステム・コンテンション状態を示す図である。 様々な動作例におけるマルチシステム・コンテンション状態を示す図である。 様々な動作例におけるマルチシステム・コンテンション状態を示す図である。 様々な動作例におけるマルチシステム・コンテンション状態を示す図である。 様々な動作例におけるマルチシステム・コンテンション状態を示す図である。 本発明の一実施形態においてコンテンション・データを記憶するための様々なデータ構造を示す図である。 本発明の一実施形態においてコンテンション・データを記憶するための様々なデータ構造を示す図である。 本発明の一実施形態においてコンテンション・データを記憶するための様々なデータ構造を示す図である。 本発明の一実施形態においてコンテンション・データを記憶するための様々なデータ構造を示す図である。 本発明の一実施形態においてコンテンション・データを記憶するための様々なデータ構造を示す図である。 本発明の一実施形態においてコンテンション・データを記憶するための様々なデータ構造を示す図である。 本発明の一実施形態においてコンテンション・データを記憶するための様々なデータ構造を示す図である。 本発明の一実施形態においてコンテンション・データを記憶するための様々なデータ構造を示す図である。 クラスタのシステムの1つが図7に示すコンテンション・シナリオをどのように取り込むかを示す図である。
符号の説明
100 クラスタ
102 システムSy1
102 システムSy2
102 システムSy3
106 マルチシステム・リソース
108 OS
110 リクエスタ
112 ローカル・リソース
114 リソース・マネージャ
116 WLM


Claims (20)

  1. 情報処理システム内の1つまたは複数のリソースへのアクセスに関するユーザ間のコンテンションを管理するための方法であって、前記ユーザのそれぞれは何らかの必要性が割り当てられており、それがアクセスしようと努めるリソースに関するホルダまたはウェイタのいずれかになる可能性があり、前記方法が、
    ユーザ・チェーン内の次のユーザを有する各ユーザが、前記次のユーザが待っているリソースを保持している前記チェーンの先頭にあるウェイタではないユーザを識別するステップと、
    その必要性が少なくとも前記チェーン内の最も困窮しているウェイタの必要性である場合と同様に、前記チェーンの先頭にある前記ユーザを管理するステップとを具備する方法。
  2. 前記管理ステップが、
    その必要性が少なくとも前記チェーン内の前記最も困窮しているウェイタの必要性である場合と同様に、前記チェーンの先頭にある前記ユーザにシステム・リソースを割り振るステップを具備する、請求項1に記載の方法。
  3. 前記識別ステップが、
    クラスタ内の各リソースがそのクラスタ内の他のリソースを待っているユーザによって保持されているかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれている前記リソースのクラスタを定義するステップを具備する、請求項1に記載の方法。
  4. 前記管理ステップが、
    前記クラスタ内のいずれかのリソースについて最も困窮しているウェイタの必要性を決定するステップを具備する、請求項3に記載の方法。
  5. 情報処理システム内の1つまたは複数のリソースへのアクセスに関するユーザ間のコンテンションを管理するための方法であって、前記ユーザのそれぞれは何らかの必要性が割り当てられており、それがアクセスしようと努めるリソースに関するホルダまたはウェイタのいずれかになる可能性があり、前記方法が、
    クラスタ内の各リソースがそのクラスタ内の他のリソースを待っているユーザによって保持されているかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれている前記リソースのクラスタを識別するステップと、
    前記クラスタ内のいずれかのリソースについて最も困窮しているウェイタの必要性を決定するステップと、
    前記クラスタ内のあるリソースのホルダであって、他のいずれのリソースも待っていないホルダを識別するステップと、
    その必要性が少なくとも前記クラスタ内のいずれかのリソースについて前記最も困窮しているウェイタの必要性である場合と同様に、前記リソースの前記ホルダを管理するステップとを具備する方法。
  6. 前記管理ステップが、
    その必要性が少なくとも前記クラスタ内のいずれかのリソースについて前記最も困窮しているウェイタの必要性である場合と同様に、前記リソースの前記ホルダにシステム・リソースを割り振るステップを具備する、請求項5に記載の方法。
  7. クラスタを識別する前記ステップが、あるリソースのコンテンション状況の変化の通知を受信したことに応答して実行され、
    そのリソースがその時点でそのクラスタ内の他のリソースを待っているユーザによって保持されているかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれている場合に、そのリソースをそのクラスタに新たに割り当てるステップを具備する、請求項5に記載の方法。
  8. クラスタを識別する前記ステップが、あるリソースのコンテンション状況の変化の通知を受信したことに応答して実行され、
    そのリソースがもはやそのクラスタ内の他のリソースを待っているユーザによって保持されていないかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれていない場合に、そのリソースをそのクラスタから除去するステップを具備する、請求項5に記載の方法。
  9. 情報処理システム内の1つまたは複数のリソースへのアクセスに関するユーザ間のコンテンションを管理するための装置であって、前記ユーザのそれぞれは何らかの必要性が割り当てられており、それがアクセスしようと努めるリソースに関するホルダまたはウェイタのいずれかになる可能性があり、前記装置が、
    ユーザ・チェーン内の次のユーザを有する各ユーザが、前記次のユーザが待っているリソースを保持している前記チェーンの先頭にあるウェイタではないユーザを識別するための論理回路と、
    その必要性が少なくとも前記チェーン内の最も困窮しているウェイタの必要性である場合と同様に、前記チェーンの先頭にある前記ユーザを管理するための論理回路とを具備する装置。
  10. 前記管理論理回路が、その必要性が少なくとも前記チェーン内の前記最も困窮しているウェイタの必要性である場合と同様に、前記チェーンの先頭にある前記ユーザにシステム・リソースを割り振る、請求項9に記載の装置。
  11. 情報処理システム内の1つまたは複数のリソースへのアクセスに関するユーザ間のコンテンションを管理するための装置であって、前記ユーザのそれぞれは何らかの必要性が割り当てられており、それがアクセスしようと努めるリソースに関するホルダまたはウェイタのいずれかになる可能性があり、前記装置が、
    クラスタ内の各リソースがそのクラスタ内の他のリソースを待っているユーザによって保持されているかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれている前記リソースのクラスタを識別するための論理回路と、
    前記クラスタ内のいずれかのリソースについて最も困窮しているウェイタの必要性を決定するための論理回路と、
    前記クラスタ内のあるリソースのホルダであって、他のいずれのリソースも待っていないホルダを識別するための論理回路と、
    その必要性が少なくとも前記クラスタ内のいずれかのリソースについて前記最も困窮しているウェイタの必要性である場合と同様に、前記リソースの前記ホルダを管理するための論理回路とを具備する装置。
  12. 前記管理論理回路が、その必要性が少なくとも前記クラスタ内のいずれかのリソースについて前記最も困窮しているウェイタの必要性である場合と同様に、前記リソースの前記ホルダにシステム・リソースを割り振る、請求項11に記載の装置。
  13. クラスタを識別するための前記論理回路が、あるリソースのコンテンション状況の変化の通知を受信したことに応答して、そのリソースがその時点でそのクラスタ内の他のリソースを待っているユーザによって保持されているかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれている場合に、そのリソースをそのクラスタに新たに割り当てる、請求項11に記載の装置。
  14. クラスタを識別するための前記論理回路が、あるリソースのコンテンション状況の変化の通知を受信したことに応答して、そのリソースがもはやそのクラスタ内の他のリソースを待っているユーザによって保持されていないかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれていない場合に、そのリソースをそのクラスタから除去する、請求項11に記載の装置。
  15. 情報処理システム内の1つまたは複数のリソースへのアクセスに関するユーザ間のコンテンションを管理するための方法ステップを実行するためにマシンによって実行可能な複数命令のプログラムを具体的に実施し、マシンによって読取り可能なプログラム記憶装置であって、前記ユーザのそれぞれは何らかの必要性が割り当てられており、それがアクセスしようと努めるリソースに関するホルダまたはウェイタのいずれかになる可能性があり、前記方法ステップが、
    ユーザ・チェーン内の次のユーザを有する各ユーザが、前記次のユーザが待っているリソースを保持している前記チェーンの先頭にあるウェイタではないユーザを識別するステップと、
    その必要性が少なくとも前記チェーン内の最も困窮しているウェイタの必要性である場合と同様に、前記チェーンの先頭にある前記ユーザを管理するステップとを具備する、プログラム記憶装置。
  16. 前記管理ステップが、
    その必要性が少なくとも前記チェーン内の前記最も困窮しているウェイタの必要性である場合と同様に、前記チェーンの先頭にある前記ユーザにシステム・リソースを割り振るステップを具備する、請求項15に記載のプログラム記憶装置。
  17. 情報処理システム内の1つまたは複数のリソースへのアクセスに関するユーザ間のコンテンションを管理するための方法ステップを実行するためにマシンによって実行可能な複数命令のプログラムを具体的に実施し、マシンによって読取り可能なプログラム記憶装置であって、前記ユーザのそれぞれは何らかの必要性が割り当てられており、それがアクセスしようと努めるリソースに関するホルダまたはウェイタのいずれかになる可能性があり、前記方法ステップが、
    クラスタ内の各リソースがそのクラスタ内の他のリソースを待っているユーザによって保持されているかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれている前記リソースのクラスタを識別するステップと、
    前記クラスタ内のいずれかのリソースについて最も困窮しているウェイタの必要性を決定するステップと、
    前記クラスタ内のあるリソースのホルダであって、他のいずれのリソースも待っていないホルダを識別するステップと、
    その必要性が少なくとも前記クラスタ内のいずれかのリソースについて前記最も困窮しているウェイタの必要性である場合と同様に、前記リソースの前記ホルダを管理するステップとを具備する、プログラム記憶装置。
  18. 前記管理ステップが、
    その必要性が少なくとも前記クラスタ内のいずれかのリソースについて前記最も困窮しているウェイタの必要性である場合と同様に、前記リソースの前記ホルダにシステム・リソースを割り振るステップを具備する、請求項17に記載のプログラム記憶装置。
  19. クラスタを識別する前記ステップが、あるリソースのコンテンション状況の変化の通知を受信したことに応答して実行され、
    そのリソースがその時点でそのクラスタ内の他のリソースを待っているユーザによって保持されているかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれている場合に、そのリソースをそのクラスタに新たに割り当てるステップを具備する、請求項17に記載のプログラム記憶装置。
  20. クラスタを識別する前記ステップが、あるリソースのコンテンション状況の変化の通知を受信したことに応答して実行され、
    そのリソースがもはやそのクラスタ内の他のリソースを待っているユーザによって保持されていないかまたはそのクラスタ内の他のリソースを保持しているユーザによって待たれていない場合に、そのリソースをそのクラスタから除去するステップを具備する、請求項17に記載のプログラム記憶装置。
JP2003400703A 2002-12-31 2003-11-28 リソース・コンテンションを管理するための方法および装置 Expired - Fee Related JP3910577B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/335,046 US20040139142A1 (en) 2002-12-31 2002-12-31 Method and apparatus for managing resource contention

Publications (2)

Publication Number Publication Date
JP2004213628A true JP2004213628A (ja) 2004-07-29
JP3910577B2 JP3910577B2 (ja) 2007-04-25

Family

ID=32710898

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003400703A Expired - Fee Related JP3910577B2 (ja) 2002-12-31 2003-11-28 リソース・コンテンションを管理するための方法および装置

Country Status (4)

Country Link
US (1) US20040139142A1 (ja)
JP (1) JP3910577B2 (ja)
KR (1) KR100586285B1 (ja)
CN (1) CN1256671C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011139050A2 (ko) * 2010-05-04 2011-11-10 (주)팬택 무선통신시스템에서의 자원할당 방법 및 그 장치

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005089236A2 (en) * 2004-03-13 2005-09-29 Cluster Resources, Inc. System and method for providing intelligent pre-staging of data in a compute environment
US20070061429A1 (en) * 2005-09-12 2007-03-15 Microsoft Corporation Optimizing utilization of application resources
US7870226B2 (en) * 2006-03-24 2011-01-11 International Business Machines Corporation Method and system for an update synchronization of a domain information file
US8042122B2 (en) * 2007-06-27 2011-10-18 Microsoft Corporation Hybrid resource manager
US8719300B2 (en) * 2008-10-15 2014-05-06 International Business Machines Corporation Catalog performance plus
CN102346744B (zh) 2010-07-30 2013-11-13 国际商业机器公司 用于在多租户应用系统中处理物化表的装置
US8510739B2 (en) 2010-09-16 2013-08-13 International Business Machines Corporation Shared request grouping in a computing system
US8918764B2 (en) * 2011-09-21 2014-12-23 International Business Machines Corporation Selective trace facility
US9032484B2 (en) 2011-10-31 2015-05-12 International Business Machines Corporation Access control in a hybrid environment
US9053141B2 (en) 2011-10-31 2015-06-09 International Business Machines Corporation Serialization of access to data in multi-mainframe computing environments
US9274837B2 (en) 2013-05-17 2016-03-01 International Business Machines Corporation Assigning levels of pools of resources to a super process having sub-processes
US9722908B2 (en) 2013-10-17 2017-08-01 International Business Machines Corporation Problem determination in a hybrid environment
CN105335237B (zh) * 2015-11-09 2018-09-21 浪潮电子信息产业股份有限公司 一种操作系统的死锁预防方法
US9965727B2 (en) 2016-01-14 2018-05-08 International Business Machines Corporation Method and apparatus for resolving contention in a computer system
US9858107B2 (en) 2016-01-14 2018-01-02 International Business Machines Corporation Method and apparatus for resolving contention at the hypervisor level
US10257053B2 (en) 2016-06-28 2019-04-09 International Business Machines Corporation Analyzing contention data and following resource blockers to find root causes of computer problems
US10698785B2 (en) 2017-05-30 2020-06-30 International Business Machines Corporation Task management based on an access workload

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4189771A (en) * 1977-10-11 1980-02-19 International Business Machines Corporation Method and means for the detection of deadlock among waiting tasks in a multiprocessing, multiprogramming CPU environment
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5202993A (en) * 1991-02-27 1993-04-13 Sun Microsystems, Inc. Method and apparatus for cost-based heuristic instruction scheduling
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
US5444693A (en) * 1992-04-27 1995-08-22 At&T Corp. System for restoration of communications networks
DE69322057T2 (de) * 1992-10-24 1999-06-10 Int Computers Ltd Verteiltes Datenverarbeitungssystem
US5719868A (en) * 1995-10-05 1998-02-17 Rockwell International Dynamic distributed, multi-channel time division multiple access slot assignment method for a network of nodes
US5805900A (en) * 1996-09-26 1998-09-08 International Business Machines Corporation Method and apparatus for serializing resource access requests in a multisystem complex
US6038651A (en) * 1998-03-23 2000-03-14 International Business Machines Corporation SMP clusters with remote resource managers for distributing work to other clusters while reducing bus traffic to a minimum
US6442564B1 (en) * 1999-06-14 2002-08-27 International Business Machines Corporation Facilitating workload management by using a location forwarding capability
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
CA2302959A1 (en) * 2000-03-23 2001-09-23 Ibm Canada Limited-Ibm Canada Limitee Priority resource allocation in programming environments
US20020083063A1 (en) * 2000-12-26 2002-06-27 Bull Hn Information Systems Inc. Software and data processing system with priority queue dispatching

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011139050A2 (ko) * 2010-05-04 2011-11-10 (주)팬택 무선통신시스템에서의 자원할당 방법 및 그 장치
WO2011139050A3 (ko) * 2010-05-04 2012-03-01 (주)팬택 무선통신시스템에서의 자원할당 방법 및 그 장치

Also Published As

Publication number Publication date
US20040139142A1 (en) 2004-07-15
KR100586285B1 (ko) 2006-06-07
CN1514366A (zh) 2004-07-21
KR20040062407A (ko) 2004-07-07
JP3910577B2 (ja) 2007-04-25
CN1256671C (zh) 2006-05-17

Similar Documents

Publication Publication Date Title
US7228351B2 (en) Method and apparatus for managing resource contention in a multisystem cluster
US20230273937A1 (en) Conditional master election in distributed databases
JP2004213628A (ja) リソース・コンテンションを管理するための方法および装置
US7376744B2 (en) Using local locks for global synchronization in multi-node systems
US6314114B1 (en) Distributed resource management
US5454108A (en) Distributed lock manager using a passive, state-full control-server
US8301779B2 (en) Mechanisms for obtaining access to shared resources using a single timestamp technique
US20040002974A1 (en) Thread based lock manager
US6697901B1 (en) Using secondary resource masters in conjunction with a primary resource master for managing resources that are accessible to a plurality of entities
US20100031269A1 (en) Lock Contention Reduction
US7209990B2 (en) Maintain fairness of resource allocation in a multi-node environment
US8666958B2 (en) Approaches to reducing lock communications in a shared disk database
JP2009525536A (ja) 適応型の領域ロック処理
US20130332435A1 (en) Partitioning optimistic concurrency control and logging
US11675622B2 (en) Leader election with lifetime term
US20210382636A1 (en) Customizable lock management for distributed resources
Singh et al. A non-database operations aware priority ceiling protocol for hard real-time database systems
JP2008544371A (ja) ロック関連の一貫性欠如を処理する方法
US6799172B2 (en) Method and system for removal of resource manager affinity during restart in a transaction processing system
JP4414447B2 (ja) 情報処理装置、情報処理システムおよび情報処理方法
US9489269B2 (en) Global backup lock manager
JP5580754B2 (ja) 排他制御装置および排他制御方法
JPH0417041A (ja) 分散データ管理システムにおける資源管理方式
Takkar Scheduling real-time transactions in parallel database systems.
JP2007265342A (ja) プロセス識別子の割当方法、コンピュータプログラム及びクラスタシステム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060328

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060622

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060627

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060830

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070116

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070124

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees