JP4607999B2 - ロック関連の一貫性欠如を処理する方法 - Google Patents

ロック関連の一貫性欠如を処理する方法 Download PDF

Info

Publication number
JP4607999B2
JP4607999B2 JP2008516952A JP2008516952A JP4607999B2 JP 4607999 B2 JP4607999 B2 JP 4607999B2 JP 2008516952 A JP2008516952 A JP 2008516952A JP 2008516952 A JP2008516952 A JP 2008516952A JP 4607999 B2 JP4607999 B2 JP 4607999B2
Authority
JP
Japan
Prior art keywords
lock
node
resource
nodes
lock information
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.)
Active
Application number
JP2008516952A
Other languages
English (en)
Other versions
JP2008544371A (ja
Inventor
ワイ シュン チャン,ウィルソン
プルスチーノ,アンジェロ
レーシュ,シュテファン
ツォル,ミヒャエル
ユレク,トルガ
ホー,ユージン
Original Assignee
オラクル・インターナショナル・コーポレイション
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 オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2008544371A publication Critical patent/JP2008544371A/ja
Application granted granted Critical
Publication of JP4607999B2 publication Critical patent/JP4607999B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/52Indexing scheme relating to G06F9/52
    • G06F2209/522Manager
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database

Description

この発明はロックの管理に関し、より詳しくいうと、この発明は複数ノードシステムにおいてロックに関連した一貫性欠如を処理する方法に関する。
コンピュータはコンピュータプログラムを実行している期間中にメモリ、モデムおよびプリンタなどのリソースを用いる。それらリソースの多くは、特定のコンピュータプログラムが間欠的に用いるに留まるものである。例えば、ワードプロセッシングアプリケーションがプリンタに文書の印刷を要求する時間の長さは、そのワードプロセッシングアプリケーションを文書の作成に使う時間に比べて通常は短い。プリンタへのアクセスを有する唯一のプロセスが単一のワードプロセッシングアプリケーションである場合は、そのプリンタは時間全体の大部分にわたって遊休状態に留まる。
リソースを最大限に利用するために、多数のコンピュータデバイスで実行中の複数のプロセスまたは複数の「ノード」でそれらリソースを共有できるコンピュータネットワークが開発されてきた。したがって、ユーザはコンピュータごとに一つのプリンタを購入する必要はなく、多数のコンピュータを含むネットワークに接続できる単一のプリンタを購入すれば足りるようになった。そのネットワークのそれらコンピュータの各々におけるプロセスは、そのプロセスがプリンタを要求するときだけプリンタにアクセスするのである。
リソースが上述のとおり共有になっても、大部分のリソースは任意の時点で二つ以上のプロセスに使用可能なリソースではない。例えば、プリンタは多くの場合二つ以上の文書を同時に印刷することはできない。蓄積媒体のデータブロックや蓄積媒体に蓄積したテーブルなど複数のプロセスによってある方法で(例えば、読出し)同時並行的にアクセスできる上記以外のリソースもあるが、それ以外の方法では(例えば、書込み)アクセスはプロセス一つずつに可能である。したがって、リソースへのアクセスを制御する機構が開発されてきた。
それらの機構の一つをロックと呼ぶ。ロックは、そのリソースについて特定のプロセスにある権利を与えることを表すデータ構造である。ロックには多様な種類がある。多数のプロセスが共有する種類のロックもあり、同じリソースへの他のロックの許容を阻止する種類のロックもある。
一つのプロセスは、一つのリソースで動作を行う前に、そのリソースで所望の動作を行う権利をそのプロセスに許与するロックを得る必要がある。ロックを得るために、プロセスはロックマネジャーにロック要求を送信する。ロックマネジャーは一つ以上のリソースについてのロックの許与、待ち行列および追跡記録を担当するプロセスである。ネットワークシステムの中のリソースの利用を管理するために、そのネットワークの中の一つ以上のノードでロックマネジャーを実行する。特定のリソースへのアクセスを管理するロックマネジャーを実行しているノードをそのリソースの「マスターノード」または単に「マスター」と呼ぶ。
一つの従来技術の実装によると、ロックマネジャーは二つの種類のオブジェクト、すなわちリソースオブジェクトとロックとを実動化する。リソースオブジェクトは実際のリソースに対応するデータ構造である。ロックマネジャーを用いるアプリケーションは実際のリソースとリソースオブジェクトとの間のマッピングを画定する。リソースオブジェクトの各々は二つの待ち行列、すなわち許与ずみ待ち行列およびコンバート待ち行列を有する。許与ずみ待ち行列は順序を特定していない許与ずみロックのリストである。コンバート待ち行列は要求ずみであってまだ許与されていないロックの一部順序特定ずみのリストである。ロック要求は実際にはコンバート要求、すなわちロックを保持中のプロセスがその保持中のロックのモードを一つのモードから別のモードにコンバートすることを要求するコンバート要求であるのが普通である。
ロックはプロセスおよびそのロックのモードを特定するデータ構造である。ロックマネジャーはリソースオブジェクトの許与ずみの待ち行列にロックを添付して、そのロックの中で特定されたプロセスが、そのロックの添付先のリソースオブジェクトに対応するリソースについてのロックに表示された種類のロックを許与されたことを表示する。
図1は通常のロックマネジャー106のブロック図である。ロックマネジャー106はメモリ108に蓄積されたリソースオブジェクト100を管理するように構成されたプロセスである。リソースオブジェクトは許与ずみの待ち行列102およびコンバート待ち行列104を含む。ロックマネジャー106が許与ずみの待ち行列102に三つのロック110,112および114を添付し、コンバート待ち行列104に一つのコンバート要求130を添付した状態を示している。
ロックおよびコンバート要求はすべてプロセスID部とロックモード部とを備えている。ロック110のプロセスID部116は、プロセスPROC_1がロック110を所有していることを表し、ロック110のロックモード部118はロック110が排他的ロックであることを表す。ロック112のプロセスID部120はロック112がプロセスPROC_2の所有するロックであることを表し、ロック112のロックモード部122はロック112がNULLモードロックであることを表す。ロック114のプロセスID部124はロック114がプロセスPROC_3の所有するロックであることを表し、ロック114のロックモード部126はロック114がNULLモードロックであることを表す。コンバート要求130のプロセスID部132はコンバート要求130がプロセスPROC_4と関連づけられるものであることを表し、コンバート要求130のロックモード部136はPROC_4がそのリソースについて現在NULLモードロックを保持していることを表す。コンバート要求130は、ロックモード部136に加えて、PROC_4が排他的モードロックを要求していることを表す要求ずみモード部134を備える。
ロックマネジャー106は許与ずみの待ち行列102にロック110,112および114を添付して、リソースオブジェクト100対応のリソースの排他的所有権をその時点でPROC_1が有することを表す。ロックマネジャー106はコンバート待ち行列104にコンバート要求130を添付して、リソースオブジェクト100に関連するリソースへの排他的モードロックをPROC_4が要求したがまだ許与されていないことを表す。
リソースオブジェクトのコンバート待ち行列は、未決の(未許与の)ロック要求のすべてを保持する部分的に順序特定ずみのリストである。未決ロック要求のいずれかが未許与状態にあると、それら未許与ロック要求の一つがコンバート待ち行列の「先頭」になる。現時点で許与ずみのロックがロックマネジャーに対して特定のロック要求に許与を発しないように阻止しなくても、そのロック要求はコンバート待ち行列が空きでなければそのコンバート待ち行列に収容される。この手法により、システムの中で一つのプロセスが他のプロセスに達成できている進捗を達成できない「ライブロック」を防止する。
ネットワーク構成のコンピュータシステムでは、特定のリソースについてロックを保持し要求しているプロセスのいくつかまたは全部がそのリソースのマスターノード以外のノードにあり得る。一つのリソースについてのロックを要求するプロセスを実行中のノードがそのリソースのマスターノードでない場合は、ロック要求をノード相互間で伝送しなければならない。その種のノード相互間メッセージ授受を容易にするために費やされるコンピュータの処理能力はノード内通信に必要な処理能力に比べて著しく大きい。また、ノード相互間通信は一般にノード内通信よりも低速である。さらに、そのノード相互間信号授受は、それ以外の種類のノード間信号授受に利用できるスループットを低下させ、そのスループット低下はそのノード間信号授受がネットワーク上のワークステーション相互間の信号授受である場合は著しく大きくなる。
ロック動作に関連したノード相互間信号授受を減らす一つの手法は、リソースオブジェクトのシャドウを多数のノードに伝播させて、リソースオブジェクトを実効的に分散型オブジェクトに変換する過程を含む。この手法の実動化は、例えば、2003年6月3日発行の米国特許第6,574,654号に記載してあり、その特許明細書の内容をここに参照してこの明細書に組み入れる。
リソースオブジェクトのシャドウを多数のノードに伝播させることによって、マルチプロセシングシステムの処理能力を活用できる。すなわち、シャドウリソースオブジェクトを有するノードの各々がそのリソースに関係したロック動作を行うのに使われるからである。また、リソースに対するロック管理負荷が分散されるので、そのリソースについてのロック管理の実行に必要となる処理負荷がノードを過負荷状態にする可能性は、一つのリソースについてのロック動作をすべて単一のノードで処理する形のロック管理システムに比べて低くなる。
上述のシャドウリソースオブジェクト手法を用いて、一つのリソースに対するマスターリソースオブジェクトは、そのリソースへのアクセスを求めるプロセスのあるノードにあるシャドウリソースオブジェクトにロックを許与する。一方、シャドウリソースオブジェクトの各々は、そのシャドウリソースオブジェクトと同じノードにあるプロセスにリソースについてのロックを許与する。上記マスターリソースオブジェクトは、そのマスターリソースオブジェクトの所有するリソースへのアクセスを必要とするマスターノードで実行中の複数のプロセスに対するシャドウリソースオブジェクトとしても作用し得る。
各シャドウリソースオブジェクトの所有するロックが、そのシャドウリソースオブジェクトの複数のプロセスに許与できるロックの種類を定める。一つのシャドウリソースオブジェクトの所有するロックがそのシャドウリソースオブジェクトにそのシャドウリソースオブジェクトと同じノードにあるプロセスの要求したロックを許与する権利を与えない場合は、そのシャドウリソースオブジェクトはマスターリソースオブジェクトからのロックアップグレードを要求し得る。
一つのリソースを用いる複数のプロセスはマスターリソースオブジェクトと直接に信号授受する必要はないので、上述の分散型ロック管理システムの必要とするノード間信号授受の量は、各リソースについて単一の集中リソースオブジェクトを用いるロック管理システムが必要とする信号授受の量よりも少ない。より詳細に述べると、シャドウリソースオブジェクトが、要求されたロック動作をマスターリソースオブジェクトとの間の信号授受なしに行うことをそのシャドウリソースオブジェクトに許容するロックを有するときは、ノード間信号授受は回避されるのである。
シャドウロックオブジェクトを用いる場合は単一のリソースに関係するロック情報は複数ノードに反映される。例えば、同じロック要求をローカルシャドウリソースオブジェクトおよびマスターリソースオブジェクトの両方に反映させ得る。その場合は、マスターノードはその要求について「グローバル知識」を有する。すなわち、そのマスターノードは、どのノードがロック要求をしたか、どのロックモードを要求したかを認識している。これと対照的に、ローカルシャドウリソースオブジェクトはその要求についての「ローカル知識」を有する。より詳しくいうと、ローカルリソースオブジェクトは、どのローカルプロセスがロックを要求したか、およびそのローカルプロセスがどのロックモードを要求したかを特定し得る。
いずれのリソースにとっても、そのリソースについて保持され要求されたロックに関する情報は、そのリソースにアクセスするノード群全体にわたって、複数メッセージが複数のノード相互間を移動しているごく短い時間を除き、一貫性を保たなければならない。しかし、多様な理由(欠けたメッセージ、バグなど)でシャドウノードとマスターノードとの間の待ち行列ロック情報に一貫性欠如が生じ得る。それらの一貫性欠如をこの明細書では「ロック関連の一貫性欠如」と呼ぶ。
ロック関連の一貫性欠如の一つの例は、マスターリソースオブジェクトがノードAに排他的ロックが許与されたと表示している一方で、ノードAのシャドウロックリソースがノードAはロック許与をまだ待っていると表示している場合である。もう一つの例は、ノードBがリソースについて排他モード(「EXモード」)を要求中であるのにマスターノードがその要求について何ら認識していない場合である。これらの一貫性欠如はハングアップ状態を引き起こす。
より深刻な場合は、二つのノードの両方が同じリソースへの排他モードを許与されたと「考える」場合である。この種のロック関連一貫性欠如はリソース内の不正動作を惹起する。
ロック関連の一貫性欠如が検出されたときは、その一貫性欠如を解消する方策を講じなければならない。データベースサーバー群という背景の下では、ロック関連の一貫性欠如の解消は、通常、何らかの形のリソース構造改変動作を行うことを伴う。そのような構造改変動作は、例えば、データベースサーバー群の中の一つ以上のノードでサーバーを再起動させることを含む。しかし、データベースサーバーを再起動させるプロセスは、残念ながら、システムの性能に重大な悪影響を及ぼし得る。
ここに述べた手法は追求可能な手法ではあるが、これまでに着想され追求された手法ではない。したがって、特に明示しない限り、これら手法のいずれかが上の説明で言及したというだけの理由で従来技術として扱われるものと想定すべきではない。
USP 5 339 427 EP 0 665 495
したがって、この発明の目的はシステムの性能を損なうことなくロック関連の一貫性欠如を解消する方策を提供することである。
以下に述べる説明においては、この発明の理解を深めるために多数の特定の詳細事項を挙げてある。しかし、この発明がこれら特定の詳細事項なしに実施できることは明らかであろう。一方、この発明の説明を不明確にしないように、周知の構成およびデバイスはブロック図の形で示してある。
[概略]
ロック関連の一貫性欠如を処理する手法がこの明細書には説明してある。上述のとおり、この種の一貫性欠如は、同一のリソースに関係するロック情報の二つ以上の組が、そのリソースについて要求されたロックや許与されたロックに関する一貫性の欠けた情報を伝達する際に起こる。概括的にいうと、この手法は、一つのリソースについてローカルに蓄積されたロック情報がそのリソースのマスターノードに送られるようにする過程を伴う。そのリソースのマスターノードは上記過程を経て受けたロック情報とそのマスターノードに保持してあったロック情報とを比較する。この比較に基づき、そのマスターノードはそのロック関連の一貫性欠如の解消のしかたを定め、上記リソースについてのそれぞれのローカルロック情報を変化させる必要のある複数のノードにメッセージを送る。ロック情報がすべて一貫性を備えるに至ると、そのリソースがアクセスを受け付けるようにする。ロック関連の一貫性欠如はノードを再起動させることなく解消するので、リソースの利用可能性は改善される。
マルチノードコンピュータシステムにおけるリソースの稼働率改善に寄与できる。
[ロック関連の一貫性欠如]
ロック関連の一貫性欠如は多様な状況に起因して生ずる。例えば、ロックに関係するメッセージが所在不明になると一貫性欠如が起こる。その状況では、ロック関連のメッセージを送った側はそのメッセージの発送に基づき自分のロック情報の更新を通常は済ませているが、そのメッセージを受け取る側に保持してあるロック情報はそのメッセージを反映していない。
例えば、ロック要求メッセージが要求側のノードからマスターノードへの送信中に所在不明になると、その要求側のノードについてのローカルロック情報はロック要求ずみを反映するが、マスターノードについてのグローバルロック情報はその要求についての証拠を含まない。逆に、ロックを許与する旨のメッセージがマスターノードから要求側のノードへの伝送されている途中で所在不明になると、マスターノード側のグローバルロック情報はロック許与ずみを反映するが、要求側のノードについてのローカルロック情報はそのロック許与を反映しない。
ロックに関係するメッセージの上述の所在不明はロック関連の一貫性欠如を惹起する状況の一つの例にすぎない。ロック関連の一貫性欠如の原因となる上記以外の状況としては、メモリコラプション、不適切なリソースクリーンアップ動作などがある。ここに述べるロック関連の一貫性欠如の処理手法の適用はそれら一貫性欠如の特定の原因または一連の原因に限定されない。
[ロック関連の一貫性欠如の検出]
ロック関連の一貫性欠如があることは多様な方法により検出できる。例えば、一つの実施例によると、複数のノードの相互間で交換されるメッセージは、それらノードが要求したロックや許与したロックだけでなく、「現在のロック状態」情報をも表す。ノードから送られる現在のロック状態情報は、そのノードが保持しているロックの現在の状態を表す。例えば、リソースR1に関するノードN1でのシャドウロックオブジェクトが、そのリソースR1について排他的ロックがノードN1に許与されたことを表す場合は、ノードN1からリソースR1に送られるメッセージは、R1についての排他的ロックを自分が保持しているとN1が認識していることを表す。
一つのリソースについてのロックの現在状態の情報を含むメッセージを一つのノードがもう一つのノードから受けた場合は、受け側のノードはそのロック状態情報をそのリソースについての自分自身のロック情報と比較する。例えば、リソースR1のマスターノードN2がノードN1からそのノードN1がリソースR1についての排他的ロックを保持していると認識していることを表すメッセージを受ける場合を仮定しよう。その場合、マスターノードN2はリソースR1についてのマスターリソースオブジェクトを検査することができる。リソースR1についてのそのマスターリソースオブジェクトがノードN1にリソースR1についての排他的ロックが保持されていることを表さない場合は、ロック関連の一貫性欠如が存在することになる。
一つのリソースのマスターノードは上記一貫性欠如を最初に検出したノードではないかもしれない。例えば、ノードN1がマスターノードN2からリソースR1についての排他的ロックをN1が保持しているとN2が認識していることを表すメッセージを受ける場合を仮定しよう。その場合、ノードN1はリソースR1についてのシャドウリソースオブジェクトを検査できる。リソースR1についてのそのシャドウリソースオブジェクトがリソースR1についての排他的ロックがノードN1に保持されていることを表さない場合は、ロック関連の一貫性欠如が存在することになる。
ロック関連の一貫性欠如を自動的に検出するもう一つの方法は、要求側のノードの各々にロック要求送出のあとその要求への応答の受信なく経過した時間を追跡記録させるやり方である。応答受信なく経過した時間が閾値以上である場合は、要求を送出したノードはハング解消動作を起動させる。ハング解消動作の一部として、ロック管理システムが要求対象のリソースについてのロック関連一貫性欠如の有無をチェックすることもできる。
上述の例はロック関連一貫性欠如を自動的に検出する方法のごく一部の例にすぎない。一つの実施例によると、このロック管理システムは、ロック関連の一貫性欠如のあり得ることを表す状態を自動的に見極めて、それらの一貫性欠如をノードのシャットダウンなしに処理する動作を起動させる機構を含む。次に、ロック関連の一貫性欠如を処理する手法をさらに詳細に説明する。
[一貫性欠如の処理]
図2を参照すると、この発明の一つの実施例によるロック関連一貫性欠如の処理の流れ図が示してある。説明のために、リソースR1についてノードN1が保持しているローカルロック情報とリソースR1についてマスターノードN2が保持している情報との間に一貫性欠如があるものと仮定する。
ステップ200において、ロック関連の一貫性欠如を検出する。上述のとおり、ロック関連の一貫性欠如の検出には多様な機構を用いることができ、ここに説明するそれら一貫性欠如の処理手法は特定の検出機構に限定されない。一貫性欠如の検出のために用いた機構に応じて、その一貫性欠如を検出するノードをマスターノードN2にすることができ、またそれ以外のノードとすることもできる。一つの実施例によると、ロック関連の一貫性欠如を検出するノードがマスターノードN2でない場合は、そのロック関連の一貫性欠如を検出するノードがマスターノードN2にそのロック関連一貫性欠如を知らせる。
ステップ202ではマスターノードN2がシステム内の全ノードに「凍結」メッセージを一斉通報する。この凍結メッセージは、ノードに対して、そのリソースについてのロック関連のアクティビティが補正動作の実施を待って中断された旨を伝える。
一つの実施例によると、全ノードがマスターノードに対して上記凍結メッセージを受信したことを表す受信確認メッセージを送る。また、リソースR1に関するローカルロック情報を有するノード(「連座ノード」)はマスターノードN2に対してローカルロック状態メッセージを送る(ステップ204)。検討対象のノードの各々が送出するローカルロック状態メッセージはリソースR1についてそのノードが保持しているローカルロック情報を反映する。このようにして、ノードN1はノードN2に対して、リソースN1がリソースR1について有するローカルロック情報を表すローカルロック状態メッセージを送る。
上記ローカルロック状態メッセージは受信確認メッセージと別に送ることができ、また、凍結メッセージの受信確認をするとともに、リソースR1について保持してあったローカルロック情報を伝達する複合メッセージの形で送ることもできる。
受信確認メッセージを全ノードから受けるとともにローカルロック情報をすべての連座ノードから受けると、マスターノードN2は一貫性欠如の解消のために何を変化させる必要があるかを認識する。この事例では、マスターノードN2がノードN1に対してリソースR1への排他的ロックを許与ずみである一方、ノードN1が自分はリソースR1について共有ロックを保持するに過ぎないと認識しているものと仮定する。この例では、マスターノードN2は、ノードN1が自分のローカルロック情報をリソースR1についての排他的ロックをノードN1が有する形に変化させることによって上記一貫性欠如を補正できると判断するかもしれない。
ステップ208において、マスターノードN2がマスターノードN2での補正を要する任意のロック情報を補正し、ローカルロック情報を変えるべき全ノード(「要補正ノード」)に補正要求を送る。この例では、マスターリソースオブジェクトについての情報に変更を加える必要はない。しかし、ノードN1についてのローカルロック情報は補正を要する。したがって、マスターノードN2は、ノードN1に対して、そのN1が自分のローカルロック情報をリソースR1への排他的ロックを有する形に変更する補正要求を送る。
ステップ210では補正を要するノードが補正要求を受けて、それら補正を行う。それら補正を加えたあと、補正を要するノードはマスターノードに対して補正実施ずみのメッセージを送る。この例では、ノードN1が自分のローカルロック情報を更新して、リソースR1への排他的ロックを保持していることを表すようにし、マスターノードN2に補正実施ずみ情報を送ってノードN1がローカルロック情報を補正した旨を表すようにする。
ステップ212において、マスターノードが要補正ノード全部から補正実施ずみメッセージを受けると、そのマスターノードは全ノードに「解凍」メッセージを一斉通報する。それらノードがこの解凍メッセージを受けると、リソースR1についてロック関連動作が再開され得ると認識する。
[個別コーディネータ実施例]
上述の例では、加えるべき補正の決定および補正実施の調整はマスターノードの担当である。しかし、その例においてマスターノードが実行するタスクは一つ以上のそれ以外のノードが代わりに行い得る。すなわち、一つのリソースのマスターノードは、そのリソースについてのロック関連の一貫性欠如を解消する動作の「調整ノード」である必要はない。
例えば、ロック関連の一貫性欠如を検出するノードはその一貫性欠如解消動作のコーディネータと呼ぶこともできる。その実施例では、ロック関連の一貫性欠如を検出するノードは、凍結メッセージを一斉通報し、ローカルロック情報を受け、一貫性欠如の解消のしかたを決めたりするノードであろう。すなわち、そのノードがロック関連の一貫性欠如を検出し、マスターノードからグローバルリソースオブジェクトの状態に関する情報を受けるのである。このコーディネータノードが、上記連座ノードから受けたローカルロック情報とマスターノードから受けたグローバルロック情報との両方に基づき、一貫性欠如の解消のしかたを決めるのである。
上記以外の実施例では、マスターノードの行うタスクをいくつかのノードに分担させる。例えば、ロック関連の一貫性欠如を検出するノードが凍結情報の一斉通報を担当し、マスターノードがロック情報の受信および一貫性欠如の解消のしかたの決定を引き続き担当する。すなわち、この明細書で説明する手法は、特定のタスクの実行を特定のノードが担当する形に限定されない。
[ロック関連の一貫性欠如の解消のマニュアル始動]
上に述べた実施例では、ロック関連一貫性欠如の解消を、ロック関連一貫性欠如の存在の可能性を表す状態を検出するプロセスに応答して自動的に行っている。しかし、それら一貫性欠如が自動的に検出される前に、データベースのユーザはロック関連の一貫性欠如がありそうだと認識させるシステムの振舞に気づき得る。
したがって、一つの実施例では、ロック管理システムを、ユーザがロック関連一貫性欠如解消動作を手動で始動させる機構を含むように構成してある。その機構は、例えば、ユーザが補正動作対象の一つのリソースまたはひと組のリソースを特定できるようにする制御を含む。それらの制御には、例えば、グラフィカルユーザインタフェース(GUI)制御、コマンドラインインタープリターなどが含まれる。この発明には上記一貫性欠如解消動作の始動のためのユーザ入力を受ける特定の機構に限定されない。
[ハードウェア概要]
図3はこの発明の実施例を実動化するコンピュータシステム300のブロック図である。このコンピュータシステム300は、バス302またはそれ以外の情報伝達機構と情報処理のためにバス302に接続したプロセッサ304とを含む。また、コンピュータシステム300はランダムアクセスメモリ(RAM)またはそれ以外のダイナミック情報蓄積デバイスなどバス302に接続されて情報とプロセッサ304の実行する命令とを蓄積する主記憶装置306を含む。主記憶装置306はプロセッサ304が命令を実行するあいだ一時的変数またはそれ以外の中間情報の蓄積にも用いられる。コンピュータシステム300はさらに読出し専用メモリ(ROM)またはそれ以外のスタティック蓄積デバイスなどバス302に接続されてスタティック情報およびプロセッサ304への命令を蓄積するデバイスを含む。磁気ディスクまたは光ディスクなどの蓄積デバイス310はバス302に接続されて情報および命令を蓄積する。
コンピュータシステム300はユーザへの情報の表示のためにバス302経由で陰極線管(CRT)などの表示装置312に接続する。英数字キーその他のキーを含む入力デバイスをプロセッサ304への情報およびコマンド選択の伝達のためにバス302に接続する。もう一つの種類のユーザ入力デバイスとして、マウス、トラックボール、またはプロセッサ304への方向情報および命令選択並びに表示装置312上のカーソルの動きの制御のためのカーソル方向キーなどがある。この入力デバイスは二つの軸、すなわち第1の軸(例えばx軸)および第2の軸(例えばy軸)の方向に自由度を有し、一つの平面内で位置を特定できる。
この発明はコンピュータシステム300を上述の手法の実動化に用いることに関する。この発明の一つの実施例によれば、上述の手法は主記憶装置306に蓄積されている一つ以上の命令の一つ以上の系列を実行するプロセッサ304に応答して実施される。それらの命令を蓄積装置310など機械可読媒体から読み出して主記憶装置306に蓄積する。主記憶装置306に蓄積されている命令の系列を実行することにより、プロセッサ304にそれら命令の系列に記述されたプロセスステップを実行させる。代替の実施例では、この発明の実動化にハードワイヤード回路をソフトウェア命令の代わりまたはソフトウェア命令との組合せで用いる。したがって、この発明の実施例はハードウェア回路とソフトウェアとの特定の組合せには限定されない。
ここに用いた用語「機械可読媒体」は、機械を特定の態様で動作させるデータの発生に使われる諸媒体を意味する。コンピュータシステム300を用いて実動化した一つの実施例では、例えばプロセッサ304に実行させる命令の発生に多様な機械可読媒体が関係している。この種の媒体は非揮発性媒体、揮発性媒体、伝送媒体などの形をとるが、これら媒体だけに限られない。非揮発性媒体としては、例えば、蓄積デバイス310を構成する光ディスク、磁気ディスクなどがある。揮発性媒体には主記憶装置306に使われるダイナミックメモリなどがある。伝送媒体には、バス302を構成するワイヤのほか、同軸ケーブル、導線、光ファイバなどがある。また、伝送媒体は、無線周波数データ通信、赤外線データ通信の際に発生する電磁波や音波や光波などの形もとり得る。
機械可読媒体としては、例えば、フロッピーディスク、可撓性ディスク、ハードディスク、磁気テープその他の磁気媒体、CD−ROMその他の光記録媒体、パンチカード、紙テープなど鑽孔パターン付きの物理媒体、RAM、PROM、EPROM、フラッシュEPROMその他のメモリーチップもしくはカートリッジ、またはコンピュータに読出し可能な上記以外の任意の媒体が挙げられる。
多様な形式の機械可読媒体が、一つ以上の命令の一つ以上の系列を実行に備えてプロセッサ304に送るのに係わり得る。例えば、それら命令は当初は遠隔コンピュータの磁気ディスクに蓄積されていた命令であり得る。その遠隔コンピュータはそれら命令を同コンピュータ内のダイナミックメモリにロードし、モデムを用いて電話回線経由でそれら命令を送ることができる。コンピュータシステム300付属のモデムで電話回線からデータを受け、そのデータを赤外線信号に変換するように赤外線信号送信機を用いることもできる。その赤外線信号を赤外線検出器で受けて、その検出器からの出力データをバス302に供給することができる。バス302はそのデータを主記憶装置306に送り、その主記憶装置306からプロセッサ304が上記命令を読み出して実行する。主記憶装置306の受けた上記命令は、オプションとして、プロセッサ304による実行の前か後で蓄積装置310に蓄積することができる。
コンピュータシステム300はバス302に接続した通信インタフェース318を併せ備えている。通信インタフェース318はローカルネットワーク322に接続したネットワークリンク320への双方向データ通信路を構成する。例えば、通信インタフェース318は、対応する種類の電話回線へのデータ通信路を形成する統合サービスディジタル網(ISDN)カードまたはモデムで構成できる。もう一つの例として、通信インタフェース318を互換性あるLANへのデータ通信路を構成するLANカードで構成することもできる。無線リンクを用いることもできる。それら具体化例のいずれにおいても、通信インタフェース318は、多様な種類の情報を表すディジタルデータストリームを搬送する電気信号、電磁波信号または光信号を送受信する。
ネットワークリンク320は通常一つ以上のネットワーク経由で他のデータデバイスにデータ通信を提供する。例えば、ネットワークリンク320はローカルネットワーク322経由でホストコンピュータ324への接続を、またはインターネットサービスプロバイダー(ISP)326で稼働中のデータ装置への接続を構成し得る。ISP326は広く「インターネット」328と呼ばれている全世界パケットデータ通信ネットワーク経由でデータ通信サービスを提供する。ローカルネットワーク322およびインターネット328はともにディジタルデータストリームの搬送に電気信号、電磁波信号または光信号を用いている。コンピュータシステム300へ/からの入/出力ディジタルデータを搬送する諸ネットワーク経由の信号およびネットワークリンク320上の信号は、情報を伝送する搬送波の形式の例である。
コンピュータシステム300は、ネットワーク、ネットワークリンク320および通信インタフェース318経由でプログラムコードなどのメッセージを送信し、データを受信することができる。インターネットの例では、インターネット328,ISP326,ローカルネットワーク322および通信インタフェース318経由で、アプリケーションプログラム用の要求コードをサーバー330から送信し得る。
受信したコードは、プロセッサ304が受信と並行して実行したり、後刻の実行に備えて蓄積装置310またはそれ以外の非揮発性メモリに蓄積したりすることができる。このようにして、コンピュータシステム300は搬送波の形でアプリケーションコードを得ることができる。
この発明の実施例を多様な詳細点を参照しながら上に述べてきたが、これらの詳細点は実動化の例ごとに異なる。したがって、この発明が何であるか、および出願人が何を発明として意図しているかを表す唯一で排他的な指標は、この出願の特許請求の範囲の記載である。請求の範囲に含まれる用語についてこの明細書に述べた定義はそれら用語の意味を特定する。したがって、請求の範囲に明示的に示していない限定、素子、特性、利点、または属性によってそれら請求の範囲に限定を加えてはならない。すなわち、この出願の明細書および図面は例示のみを意図するものであって限定を意図するものではない。
マルチノードコンピュータシステムの設置および運用の費用効率を著しく改善でき、この種のコンピュータシステムのいっそうの普及に寄与できる。
リソース関連の要求を追跡記録するのに用い得るリソースオブジェクトのブロック図。 この発明の一つの実施例によるロック関連一貫性欠如の処理の流れ図。 この明細書で説明した手法を実動化できるコンピュータシステムのブロック図。
符号の説明
100 リソースオブジェクト
102 権利許与された待ち行列
104 隠れた待ち行列
106 ロックマネジャー
110,112,114 ロック
PROC プロセス
118,122,126 ロックモード部
130 コンバート要求
200 ロック関連の一貫性欠如を検出する
202 マスターノードが凍結メッセージを一斉通報する
204 すべてのノードが凍結メッセージを受信確認し、連座ノードがマスターノードにローカルロック情報を送る
206 一貫性欠如の補正のしかたを決める
208 マスターノードがロック情報を補正して要補正ノードに補正要求を送る
210 要補正ノードが補正を行い補正実施ずみメッセージをマスターノードに送る
212 マスターノードが補正実施ずみメッセージを受けて解凍メッセージを一斉通報する
300 コンピュータシステム
302 バス
304 プロセッサ
306 主記憶装置
308 ROM
310 データ蓄積デバイス
312 表示装置
314 入力デバイス
316 カーソル制御
318 通信インタフェース
320 ネットワークリンク
322 ローカルネットワーク
324 ホストコンピュータ
326 インターネットサービスプロバイダー(ISP)
328 インターネット
330 サーバー

Claims (12)

  1. リソースに関するロック情報を複数のノードが個別にそれぞれ維持しているシステムにおいて前記リソースに関わるロック関連の一貫性欠如を処理する方法であって、
    記複数のノードの各々から特定のノードに前記リソースに関するロック情報を送らせる過程を含み、前記ロック情報は、要求されたロック、または、当該リソースについて許与されたロックに関する情報を示しており、
    前記ロック関連の一貫性欠如を以下の(a)〜(c)に基づいて検出する工程を含み、
    (a)第1のノードによって維持されているロック情報であって、前記第1のノードは、現在、前記リソースについてのロックが前記第1のノードに許与されるのを待っていることを示すロック情報、ならびに、第2のノードによって維持されているロック情報であって、前記第1のノードは、既に前記リソースについてのロックが許与されてことを示すロック情報、
    (b)第1のノードによって維持されているロック情報であって、前記第1のノードは、現在、前記リソースについてのロックが前記第1のノードに許与されるのを待っていることを示すロック情報、ならびに、第2のノードによって維持されているロック情報であって、前記第1のノードは、現在、前記リソースについてのロックが許与されるのを待っていないことを示すロック情報、
    (c)第1のノードによって維持されているロック情報であって、前記第1のノードは、前記リソースについてのロックを有していることを示すロック情報、ならびに、第2のノードによって維持されているロック情報であって、前記第2のノードは、前記リソースについてのロックを有していることを示すロック情報、
    前記ロック関連の一貫性欠如の検出に応答して、前記特定のノードが一つ以上の要補正ノードからなる組にそれら要補正ノードが前記リソースについて維持するロック情報を、それら要補正ノードが補正するための補正要求を送る過程と、
    前記補正要求に応答して、前記要補正ノードが前記リソースについて維持する前記ロック情報を、前記要補正ノードが補正する過程とを含み、
    前記ロック関連の一貫性欠如前記要補正ノードの再起動を要することなく解消される、方法。
  2. 前記特定のノードは、前記リソースについてマスターリソースオブジェクトを維持するマスターノードである請求項1記載の方法。
  3. 前記ロック関連の一貫性欠如をいかに補正するかについての決定に基づいて、前記マスターノードが、前記リソースについて前記マスターノードに維持しているグローバルロック情報を変更する過程をさらに含む請求項2記載の方法。
  4. 前記複数のノードは、前記リソースについてマスターリソースオブジェクトを維持するマスターノードを含み、
    前記特定のノードは、前記マスターノード以外のノードである、請求項1〜3のいずれか1項に記載の方法。
  5. 前記複数のノードは、前記リソースに関するロック情報を有しない一つ以上のノードを含むシステムに属し、
    前記ロック関連の一貫性欠如をす状態の検出に応答して、前記システムの中のすべてのノードに対して、前記リソースに関連付けられたロック関連のアクティビティを停止する凍結メッセージを一斉通報する過程と、
    前記ロック関連の一貫性欠如の解消のあと、前記システムの中のすべてのノードに対して、前記リソースに関連付けられたロック関連のアクティビティを再開する解凍メッセージを一斉通報する過程とをさらに含む請求項1〜4のいずれか1項に記載の方法。
  6. 前記複数のノードの各々から特定のノードに前記リソースに関するロック情報を送らせる前記過程、前記複数のノードに対して、前記リソースに関するロック情報を含む受信確認メッセージを送ることにより前記凍結メッセージに応答させる工程を含む請求項5に記載の方法。
  7. 前記特定のノード、前記システムの中のすべてのノードが前記解凍メッセージの受信確認を終了するまで、前記ロック関連の一貫性欠如をいかに補正するかについての決定を行わない請求項5に記載の方法。
  8. 前記特定のノード、前記システムの中のすべてのノードから前記リソースについてのロック情報を維持する旨のロック情報の受信を終了するまで、前記ロック関連の一貫性欠如をいかに補正するかについての決定を行わない請求項5に記載の方法。
  9. 前記複数のノードの各々から特定のノードに前記リソースに関するロック情報を送らせる前記過程、複数ノードデータベースシステムの中で前記リソースについてのシャドウロックオブジェクトを現在しているすべてのノードに、それぞれのノードのシャドウロックオブジェクトの現在状態に関するメッセージを、前記リソースについての前記マスターノードに送らせる過程を含む請求項1〜8のいずれか1項に記載の方法。
  10. 前記ロック関連の一貫性欠如をす状態を自動的に検出する過程をさらに含み、前記複数のノードロック情報を送らせる過程は、当該状態の検出に応答して実行される、請求項1〜9のいずれか1項に記載の方法。
  11. つ以上の命令シーケンスを記録したコンピュータ読取可能な記録媒体であって、一つ以上のプロセッサで実行された場合に、当該プロセッサに請求項1〜10のいずれか1項に記載の方法を実行させる、コンピュータ読取可能な記録媒体
  12. 請求項1〜10のいずれか1項に記載の方法を実行するように構成された、プロセッサを含む装置。
JP2008516952A 2005-06-16 2006-06-09 ロック関連の一貫性欠如を処理する方法 Active JP4607999B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/156,318 US7315910B2 (en) 2005-06-16 2005-06-16 Techniques for handling lock-related inconsistencies
PCT/US2006/022501 WO2006138168A2 (en) 2005-06-16 2006-06-09 Techniques for handling lock-related inconsistencies

Publications (2)

Publication Number Publication Date
JP2008544371A JP2008544371A (ja) 2008-12-04
JP4607999B2 true JP4607999B2 (ja) 2011-01-05

Family

ID=37499647

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008516952A Active JP4607999B2 (ja) 2005-06-16 2006-06-09 ロック関連の一貫性欠如を処理する方法

Country Status (9)

Country Link
US (1) US7315910B2 (ja)
EP (1) EP1891525B1 (ja)
JP (1) JP4607999B2 (ja)
CN (1) CN101189581B (ja)
AU (1) AU2006259651B2 (ja)
CA (1) CA2606457C (ja)
DE (1) DE602006010858D1 (ja)
HK (1) HK1109939A1 (ja)
WO (1) WO2006138168A2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725660B2 (en) * 2007-07-26 2010-05-25 International Business Machines Corporation Directory for multi-node coherent bus
US8429657B2 (en) * 2008-04-28 2013-04-23 Oracle International Corporation Global avoidance of hang states via priority inheritance in multi-node computing system
CN101464884B (zh) * 2008-12-31 2011-09-28 阿里巴巴集团控股有限公司 一种分布式任务系统及应用该系统的数据处理方法
US8868748B2 (en) * 2010-10-11 2014-10-21 International Business Machines Corporation Two-level management of locks on shared resources
CN102298539A (zh) * 2011-06-07 2011-12-28 华东师范大学 一种用于分布式并行处理的共享资源调度方法及系统
CN103248667B (zh) * 2012-02-14 2016-03-30 阿里巴巴集团控股有限公司 一种分布式系统的资源访问方法和系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4949239A (en) * 1987-05-01 1990-08-14 Digital Equipment Corporation System for implementing multiple lock indicators on synchronous pended bus in multiprocessor computer 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
US5454108A (en) 1994-01-26 1995-09-26 International Business Machines Corporation Distributed lock manager using a passive, state-full control-server
US6574654B1 (en) 1996-06-24 2003-06-03 Oracle Corporation Method and apparatus for lock caching
US6931430B1 (en) * 1998-05-13 2005-08-16 Thomas W. Lynch Maintaining coherency in a symbiotic computing system and method of operation thereof
US6480918B1 (en) * 1998-12-22 2002-11-12 International Business Machines Corporation Lingering locks with fairness control for multi-node computer systems
US6301676B1 (en) * 1999-01-22 2001-10-09 Sun Microsystems, Inc. Robust and recoverable interprocess locks
US6529906B1 (en) 2000-01-28 2003-03-04 Oracle Corporation Techniques for DLM optimization with re-mastering events
US6920454B1 (en) 2000-01-28 2005-07-19 Oracle International Corporation Techniques for DLM optimization with transferring lock information
US6751616B1 (en) 2000-01-28 2004-06-15 Oracle International Corp. Techniques for DLM optimization with re-mapping responsibility for lock management
US6961865B1 (en) * 2001-05-24 2005-11-01 Oracle International Corporation Techniques for resuming a transaction after an error
US6970872B1 (en) * 2002-07-23 2005-11-29 Oracle International Corporation Techniques for reducing latency in a multi-node system when obtaining a resource that does not reside in cache
US7216346B2 (en) * 2002-12-31 2007-05-08 International Business Machines Corporation Method and apparatus for managing thread execution in a multithread application

Also Published As

Publication number Publication date
HK1109939A1 (en) 2008-06-27
WO2006138168A3 (en) 2007-03-08
US7315910B2 (en) 2008-01-01
AU2006259651B2 (en) 2010-01-07
DE602006010858D1 (de) 2010-01-14
CN101189581A (zh) 2008-05-28
JP2008544371A (ja) 2008-12-04
CA2606457C (en) 2011-07-26
CN101189581B (zh) 2010-08-18
US20060288144A1 (en) 2006-12-21
AU2006259651A1 (en) 2006-12-28
EP1891525A2 (en) 2008-02-27
EP1891525B1 (en) 2009-12-02
CA2606457A1 (en) 2006-12-28
WO2006138168A2 (en) 2006-12-28

Similar Documents

Publication Publication Date Title
JP5121732B2 (ja) 適応型の領域ロック処理
US6965893B1 (en) Techniques for granting shared locks more efficiently
US6412034B1 (en) Transaction-based locking approach
US7392335B2 (en) Anticipatory changes to resources managed by locks
US6539446B1 (en) Resource locking approach
US20040002974A1 (en) Thread based lock manager
US8166480B2 (en) Reducing lock contention by adding a time slice to an active thread holding a lock
US9189303B2 (en) Shadow queues for recovery of messages
US20080071997A1 (en) Techniques for improved read-write concurrency
US20120110190A1 (en) Mechanisms For Obtaining Access to Shared Resources Using a Single Timestamp Technique
JP4607999B2 (ja) ロック関連の一貫性欠如を処理する方法
JPH086840A (ja) サーバ回復のためのディレクトリ操作の完了を判定する機構
JP4098233B2 (ja) マルチノードシステム内でのデータおよびロック転送中の呼出し時間およびメッセージトラフィックの減少
US7089564B2 (en) High-performance memory queue
JP2006190265A (ja) サーバー待ち行列システムおよび方法
JP2001147901A (ja) ローカル・ジョブ制御システムを有する分散処理システム内での外部ジョブ・スケジューリング方法及びシステム
JP2002073576A (ja) バッチジョブ制御システム
CN113282395A (zh) 基于Redis的作业请求调度方法、装置、设备及介质
US20030158939A1 (en) Control device for file resources in a network
US6973511B2 (en) System and method for dual stage persistent reservation preemption protocol
JP2933005B2 (ja) 管理情報格納装置
US20030149850A1 (en) Control device for file resources in a network
JP2781060B2 (ja) 資源使用権の発行処理方式
JP2006259874A (ja) コンピュータとコンピュータシステム

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20091105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20091105

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20091109

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100113

A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A073

Effective date: 20100223

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100817

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: 20100907

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101007

R150 Certificate of patent or registration of utility model

Ref document number: 4607999

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131015

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250