JP2007528557A - スケラブルなソフトウェアをベースにしたクォーラムアーキテクチャ - Google Patents

スケラブルなソフトウェアをベースにしたクォーラムアーキテクチャ Download PDF

Info

Publication number
JP2007528557A
JP2007528557A JP2007502894A JP2007502894A JP2007528557A JP 2007528557 A JP2007528557 A JP 2007528557A JP 2007502894 A JP2007502894 A JP 2007502894A JP 2007502894 A JP2007502894 A JP 2007502894A JP 2007528557 A JP2007528557 A JP 2007528557A
Authority
JP
Japan
Prior art keywords
quorum
cluster
host
manager
hosts
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
JP2007502894A
Other languages
English (en)
Other versions
JP4820814B2 (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 JP2007528557A publication Critical patent/JP2007528557A/ja
Application granted granted Critical
Publication of JP4820814B2 publication Critical patent/JP4820814B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • 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)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Hardware Redundancy (AREA)

Abstract

コンピュータのクラスタは、通常、1台以上のコンピュータまたはそれらの関連する構成要素の故障から回復しなければならないアプリケーションにおいて、共用データストア等の共用リソースへのアクセスを調整するために、クォーラム、つまり合意を確立するためのソフトウェア方法を確立する。単一のクォーラムをクラスタ全体に関連付ける従来の技術はクラスタのサイズを少数台のコンピュータに制限する固有のオーバヘッドを有する。本発明は、コンピュータのクラスタの動作を調整するためにクォーラム機構を実現するためのスケラブルなソフトウェアをベースにしたアーキテクチャを備える。従来の技術と対照的に、本発明は全体としてクラスタから分離され、クラスタのメンバーシップの指定された部分集合に及ぶ、クォーラムオブジェクトと呼ばれるソフトウェア構成物の中にクォーラムを有利にカプセル化する。クラスタのメンバーシップ全体で分散される複数のクォーラムオブジェクトを利用することによって、クラスタは区分化されたデータベース管理システム等の、スケラブルな処理作業付加を処理する多数のコンピュータに均一にスケールできる。本発明の一つの実施形態を実現するソフトウェア方法が詳細に説明される。

Description

(関連出願の相互参照)
本願は、2004年3月9日に出願された仮特許出願、出願番号第60/551425号の利点を受ける権利がある。
本発明は、ノードがクラスタのリソースについて責任を負うことができるようになる前にノードの十分なクォーラムを必要とすることに関連付けられる方法に関する。
データを記憶し、取り出すためのコンピュータシステムは、ともにデータベース管理システムつまりDBMSとして一般的に知られているものを形成する、図1に示されるようなデータマネージャと呼ばれる、物理データストア(記憶装置)とソフトウェアサービスからなる。DBMSがコンピュータの故障を切り抜け、そのクライアントにサービスを提供し続けることが望ましい。このようなDBMSは高可用性DBMSと呼ぶことができる。(なお、この高可用性という用語はコンピュータの文献の中ではさまざまな定義を有し、この定義は本書の目的のために使用される。)DBMSを高可用性にするための周知の方法は、クラスタと呼ばれる複数の協同するコンピュータを利用することである。データマネージャはあるコンピュータで実行し、故障が発生した場合は別のコンピュータで再起動される。データは(記憶領域ネットワーク上のディスクアレイ等の)単一の共用物理媒体を使用すること、1つ以上のコンピュータのローカルストアにデータの同一のコピーを保存し、コンピュータ間で必要に応じて変更を複製することのどちらかによってコンピュータによって共用される。これらの2つのクラスタアーキテクチャは図2と図3にそれぞれ示される。これらの図では、データマネージャはクラスタ内のホスト0で実行する。図4と図5はそれぞれ、ホスト0の故障後のこれらのクラスタを示す。クラスタが、故障の前にホスト0で実行していたデータマネージャに代わるためにホスト1で新しいデータマネージャを起動したことに留意する。図5では、ホスト1のストア(ローカルストア1)がホスト0のデータマネージャのためのレプリカストアとして働き、以後、ホスト0の故障後には一次ストアホスト1のデータマネージャとなる。ホスト2のストア(ローカルストア2)は、ホスト1のデータマネージャのためのレプリカストアである。
データストアの完全性を維持するために、(ホストとも呼ばれている)さまざまなコンピュータ上で実行しているデータマネージャは、単一のデータマネージャだけがデータストアを更新するように、それらのアクションを適切に調整することが肝要である。そうでなければ、データストアに対する更新は上書きされ、失われることがあるであろう。例えば、共用されるデータストアを使用するDBMSが、ネットワーク化されたクライアントコンピュータからU1、U2、U3及びU4とラベルが付けられる、4回の順次的な更新を処理する図6の例を考慮する。データマネージャは最初にホスト0で実行し、更新U1とU2を無事に完了する。ホスト0は更新U3を受信後、一時的にホスト1と通信せず、短期間で更新U3を完了しない処理遅延を被る。ホスト1はホスト0の故障としてこの遅延を監視し、更新の該処理を引き継ぐ新しいデータマネージャを起動することにより回復する。ホスト1のデータマネージャが(クライアントがリトライした後に)U3を、次にU4を完了する。この時点で、ホスト0は正常な動作を再開し、更新U3を完了する。更新U3は順序が狂って(つまりU4の後に)完了されるため、更新U4は失われ、データストアは破壊される。多くの場合スプリットブレインと呼ばれるこの望ましくない動作は、故障を検出し、故障から回復した際にホスト0とホスト1がそれらのアクションを適切に調整できないことから生じる。図7は、複製されたデータストアを使用するDBMSとの類似したシナリオを示し、データストアのレプリカが食い違うようになり、したがって破壊する。ホスト0は、正常な動作を再開した後で、そのローカルストアにU3を記憶し、U3をローカルストア1に複製する。これはローカルストア1の中の更新U4を上書きし、更新U4は失われる。
前記で分かるように、さまざまなクラスタホスト上で実行しているデータマネージャ間での不適切な調整は更新の損失につながることがある。この問題は、通常、更新要求を処理する厳密に1つのアクティブデータマネージャがあることを保証することによって解決される。この場合、データマネージャは、別のデータマネージャが実行している間予想外に動作を再開することはできない。データマネージャを実行する等のクラスタのアクションを調整するために単一のクラスタホストを指定するプロセスは最初に、クォーラムと呼ばれる実行中のクラスタホストの一意の部分集合を確立し、次にこの部分集合の中でクォーラムリーダーと呼ばれる単一のホストを選ぶことによって達成できる。クォーラムは、相互に通信できるクラスタ内のホストのグループを包含する。複数のこのようなグループが通信故障のために存在する場合があり、クォーラムを確立するための方法は、単一のクォーラムが形成されることを保証する。クォーラムの外部のクラスタホストは作業負荷の処理に参加しない。一意のクォーラムリーダーは、データマネージャを実行するためにクォーラムの中で特定のホストを指定するので、そのデータストアが破壊され、損失された更新になることはない。
単に高可用性DBMSを構築すること以上に、大きなかつ拡大する処理負荷を処理するために、DBMSの性能をスケール(拡大縮小)することがきわめて望ましい。DBMSをスケールするための周知の技法は、DBMSのデータストアを、それぞれがその関連するストアを処理する高可用性データマネージャを備える複数のより小さいストアに区分化する。(クォーラムリーダーによって選択されるような)クラスタ内のさまざまなホストで区分を実行することによって、DBMSの総合的な性能はクラスタメンバーシップのサイズに従って上昇する。非常に大きなDBMS処理負荷を処理するためには、大きなクラスタ(例えば64以上のホスト)が必要とされる可能性がある。したがって、大きなクラスタを収容するためにクォーラムスケールを確立するための方法が必要である。
なお、高可用性システムにおける複数のコンピュータによる共用リソースへのアクセスを調整するためには一般的にはクォーラムが有効である。DBMS内のデータストアに加えて、これらのリソースは共用メモリシステム、周辺装置、及び(船舶の操舵装置の舵用の油圧アクチュエータ等の)外部コントローラを含むことがある。
コンピュータのクラスタ全体でクォーラムを確立するために従来の技術で考案されてきた複数の方法がある。共用データストアを使用するとき、トークンがストア内(例えばディスク上)に保持され、厳密に1つのクラスタホストによって確保される。これは共用ストアクォーラムプロトコルと呼ばれる。他のホストは、トークンを保持していない間はデータマネージャを実行しない。複製されたデータストアを使用するときには、クラスタホストは、クォーラムリーダーを選択するための過半数ホストクォーラムプロトコルと呼ばれるプロトコルを使用できる。このプロトコルは、最初に通信ホストの集合がすべてのクラスタホストの過半数に相当することを証明し、次に、クォーラムリーダーの役割をし、データマネージャを実行するためのある特定のホスト(例えば最低のホスト識別子が設定されたホスト)を選択する。ホストの過半数が存在していることを確認することによって、クラスタホストの2つの通信していないサブグループは独立したクォーラムを同時に形成することはできない。非常に重要な場合である2つのホストがあるクラスタでは、これらの2つのホストが通信できないときにはクォーラムを形成することはできない。この状況では、他のホストが故障したのか、あるいは単に通信できないのかを判断することはできず、前述されたスプリットブレインの問題を回避するためにクォーラムは形成されない。
クラスタホストが前記方法でクォーラムを形成するためには、それらは最初にクラスタのメンバーシップ、つまりクラスタを形成するために協同するクラスタの集合を決定しなければならない。各ホストは、メンバーシップリストと呼ばれる、クラスタ集合と呼ばれるクラスタ内のホストのそのビューを列挙するリストを維持し、他のホストがグループに加わったまたはグループを離れたことを検出するとリストを修正する。ホストは自発的にグループを離れることができる、あるいはホストは故障を被り、他のホストと通信するのをやめた後に、不本意ながらも離れる。クラスタのメンバーシップのインプリメンテーションは、必要な場合にクォーラムを確立し直すことができるようにクラスタ集合の中の変化を迅速に検出する必要がある。過半数のホストクォーラムの場合、考えられる最大のクラスタメンバーシップについてすべてのホストが過去に一致したに違いなく、クラスタホストが新規に追加される、あるいは恒久的にクラスタから削除されるたびにこの一致が確立し直されなければならない。
高可用性DMBSの性能をスケールするために、周知の技法がDBMSのデータストアを、これらのサブストアの各部を処理するデータマネージャを備える複数のさらに小さいストアに区分化する。(クォーラムリーダーによって選択されるような)クラスタ内のさまざまなホストで区分を実行することにより、DBMSの総合的な性能はクラスタメンバーシップに応じて上昇する。
クォーラムを確立するための前述された方法は、多くのクラスタホストがある大きなクラスタには良くスケールしない。共用ストアプロトコルでは、トークンを保持するための共用データストアの使用は、クラスタ集合が大きくなるにつれてストアのトークンを争うための遅延が増加するのに伴いボトルネックとなる。過半数ホストプロトコルは、ホストの過半数が存在することを証明し、恒久的なメンバーシップの変化が発生した後に一致を確立し直すためにかなりの通信オーバヘッドを必要とする。このオーバヘッドは、クラスタ集合のサイズが拡大するにつれて急速に上昇する。また、過半数ホストクォーラム方法は、それが奇数のクラスタ集合サイズを必要とするために正常にスケールしない。これらの及び他の理由から、高可用性DBMSクラスタは、通常相対的に少ない数のクラスタホスト(例えば2つから8つのホスト)を有する。
該スケーリングの問題を解決するために、大きなDBMSクラスタは、通常、サブクラスタと呼ばれる複数の独立したクラスタを集めることによって構築される。例えば、図8は、2つのサブクラスタから構成される4つのホストのあるクラスタを示している。サブクラスタのクラスタはスーパークラスタと呼ばれる。クラスタのクォーラムをスケールする問題を回避する一方で、この手法はいくつかの点で全体的な設計を複雑にする。各クラスタホストは、サブクラスタ内のあるメンバーシップと、スーパークラスタ内のもう1つのメンバーシップという2つのメンバーシップに参加することが必要となる。スーパークラスタの高可用性を保つためには、各サブクラスタ内で高可用性を実現するための機構がスーパークラスタのために複製されなければならない。クラスタホストは厳密に1つのサブクラスタに参加しなければならず、それらのリソースを処理負荷をバランスするためにサブクラスタの間で共用することはできない。
本発明は、(データベースのパーティション等の)複数の共用リソースに対するアクセスを制御するために、コンピュータクラスタ内の(ホストと呼ばれる)複数のコンピュータのアクションを調整する。これは、それぞれがクォーラムオブジェクトと呼ばれる別個の論理構成物として実現される複数の独立したクォーラムアルゴリズムを利用することにより達成される。各クォーラムオブジェクトは、複数の共用リソースの内の1つへのアクセスを制御する。クラスタ内のホストの2つ以上が各クォーラムオブジェクトのメンバーとして割り当てられる。任意のホストは、クォーラムオブジェクトが重複するメンバーシップを有するように複数のクォーラムオブジェクトのメンバーであってよい。新しいクォーラムオブジェクトは共用リソースごとに必要に応じて作成されてよく、その後そのリソースを管理するために使用される、クラスタ内のホストの部分集合に割り当てられてよい。このようにして、コンピュータクラスタは(a)すべてのホストの単一クォーラムがすべての共用リソースを管理すること、または(b)新しいサブクラスタが追加されること(つまり、複数の新しいホストが排他的にそのクォーラムに割り当てられる新しいクォーラム)のどちらかを必要とすることによる代わりに、単一のホストを追加することによってスケールできる。
本発明は添付図面と関連してさらに説明される。
本項では最初に本発明と説明し、次にその論理的根拠及び利点を説明する。
クォーラムを実現するための従来の技術は、単一のクォーラムをクラスタ全体に関連付け、この方法はクラスタのサイズを少数のコンピュータに制限する固有のオーバヘッドを有する。このスケーリングの問題を解決するために複数の独立したサブクラスタを使用すると、全体的なアーキテクチャに新たな複雑さと不撓性が加わる。対照的に、本発明は、クラスタのメンバーシップの指定された部分集合で実行する、クォーラムオブジェクトと呼ばれる新しいソフトウェア構成物を定義する。クォーラムオブジェクトはクォーラムのインプリメンテーションを全体としてのクラスタへの適用から分離する。代わりに、クラスタはクォーラムオブジェクトのホストをつとめるためのコンピュータリソースの一様なプールとなり、クォーラムオブジェクトはクラスタのホストの部分集合に渡るクォーラムのインプリメンテーションをカプセル化する。クラスタのメンバーシップ全体で分散される複数のクォーラムオブジェクトを利用することにより、クラスタは区分化されたデータベース管理システム等の大きな処理作業負荷を処理する多数のコンピュータに均一にスケールできる。
各クォーラムオブジェクトはそれ自体のクォーラムを確立し、それが実行するコンピュータの中でクォーラムリーダーを指定する。一実施形態では、クォーラムオブジェクトは、それがマッピングされる先のクラスタホストのそれぞれで実行するQOローカルマネージャと呼ばれる分散ソフトウェアプログラムとして実現される。ソフトウェアプログラムの「インスタンス」は各ホストで実行し、これらのプログラムはメッセージを交換することによって通信する。例えば、図9は2つのクォーラムオブジェクトのある4ホストクラスタを示す。クォーラムオブジェクト0はホスト0、1、及び2にマッピングされ、クォーラムオブジェクト1はホスト1、2及び3にマッピングされる。各クォーラムオブジェクトは別々のホストで実行し、他のホストでそれらのコンパニオンマネージャと通信する3つのQOローカルマネージャを備える。
クォーラムオブジェクトは共用記憶クォーラムまたは過半数ホストクォーラムのどちらかを実現する。これらのクォーラムを実現するためのアルゴリズムは従来の技術である。共用記憶クォーラムの場合、各クォーラムオブジェクトは別の共用ストアにアクセスし、すべてのデータストアは、クラスタホストが接続される記憶領域ネットワークに接続される。例えば、図10は、2つのクォーラムオブジェクトと2つの共用ストアがある4ホストクラスタを示している。この例では、クォーラムオブジェクト0はデータストア0にマッピングされ、クォーラムオブジェクト1はデータストア1にマッピングできるであろう。図9に示されているように過半数ホストクォーラムの場合、クォーラムオブジェクトは、それがマッピングされる先のホスト上のローカルデータストアを使用し、クラスタホスト間の記憶領域ネットワークは必要とされない。なお、クォーラムオブジェクトを使用すると、過半数のホストクォーラムオブジェクト各々だけが奇数のホストを必要とするため、過半数ホストクォーラムの集合のためのクラスタメンバーシップが、図9に示されているように偶数のホストを有することができる。クォーラムオブジェクトは、優れた負荷バランスを達成するために必要に応じて重複するホストに単独でマッピングできる。
共用ストアまたは過半数ホストクォーラムのどちらかの場合、クォーラムオブジェクトは、それがマッピングされる各クラスタホストに、そのホストがクォーラムリーダーであるかどうかを知らせるソフトウェア方法を実現する。この方法は、クォーラムオブジェクト内の各QOローカルマネージャによって実現され、QOローカルマネージャはそのユーザに一貫性のある結果を配信するために協同する。一実施形態では、QOローカルマネージャは、ローカルホストがクォーラムオブジェクトの一意のクォーラムリーダーであるかどうかを示すブール値(つまり、TRUE(真)またはFALSE(偽))を戻すソフトウェア関数Is_quorum_leaderを実現できる。クォーラムオブジェクトがクォーラムを確立した場合、クォーラムオブジェクトのQOローカルマネージャの内の厳密に1つだけがTRUEを戻す。それ以外の場合、すべてのQOローカルマネージャはFALSEを戻す。図11は、クォーラムオブジェクト0のクォーラムリーダーの役割をするホスト1のある過半数ホストクォーラムのためのIs_quorum_leaderによって戻される値の例を示す。クォーラムリーダーの役割をするクラスタホストが故障すると、クォーラムオブジェクトはクォーラムを確立し直そうと試み、その後、この関数が呼び出されると別のホストのQOローカルマネージャがTRUEを戻すのを開始する。なお、QOローカルマネージャが、それがクォーラムリーダーになるか、あるいはクォーラムリーダーとしての役割をするのをやめるときに、非同期イベントを生成するようインプリメントされる。
クォーラムオブジェクトは、クォーラムを実現し、ホスト故障の場合に所望される高可用性を提供するのに十分であるホストのクラスタの数にマッピングされる。例えば、共用ストアクォーラムは(図10に示されているように)単一のホスト故障から回復するために2つのホストだけを必要とする。過半数ホストクォーラムは(図9に示されているように)単一のホスト故障から回復するために3つのホストを必要とし、その結果それは1つのホストが故障した後に2つのホストの過半数を保持できる。クォーラムオブジェクトは、ホスト故障に対するその許容値を高めるために必要に応じて追加のホストにマッピングできる。
本明細書では以後外部マッピング実施形態と呼ばれる一実施形態では、クラスタホストへのクォーラムオブジェクトのマッピングは、マッピングエージェントと呼ばれる外部ソフトウェア関数により達成される。このエージェントは、クォーラムオブジェクトをどのクラスタホストにマッピングするのかを判断するために根本的なクラスタメンバーシップを利用し、それらの選択されたホストでクォーラムオブジェクトのためのQOローカルマネージャを作成する。クォーラムオブジェクトがマッピングされるホストが故障すると、クラスタメンバーシップは、すべての生き残っていえるホスト上のマッピングエージェントとクォーラムオブジェクトのQOローカルマネージャの両方に知らせる。クォーラムオブジェクトはクォーラムがまだ存在するのかどうかを判断し、相応して各クラスタホストのQOローカルマネージャの中のIs_quorum_leaderの値を調整する。故障したホストが恒久的にクラスタから外されると、マッピングエージェントは、新しい代替ホストにクォーラムオブジェクトをマッピングし直すことができる。作業負荷のバランスを取り戻すために、再マッピング中にクォーラムを一時停止することがあるが、クォーラムオブジェクトにホストの新しい集合にマッピングし直すように命令することもできる。クォーラムオブジェクトは再マッピング後にクォーラムを確立し直すことの詳細をカプセル化する。
以後自己組織実施形態と呼ばれる別の実施形態は、各ホストが構造の中でその隣接するホストを決定できるように、すべてのクラスタホストがn次元アレイのような規則正しい構造に編成されるクラスタメンバーシップを構築するための根本的な方法の使用に依存する。この実施形態では、外部マッピングエージェントは、最初に、単一ホスト上で、QOローカルマネージャをこのホスト上に作成させるクォーラムオブジェクトを作成する。クォーラムを確立するために、この結果として生じるQOローカルマネージャは、次にそれらのホスト上にQOローカルマネージャを作成することによって、隣接するホストをクラスタメンバーシップからクォーラムオブジェクトに追加する。例えば、3つのホストに及ぶことになる過半数ホストクォーラムオブジェクトは、図12に示されているように2つの最も近い近傍系をオブジェクトに追加する。隣接するホストが恒久的に故障し、別のクラスタホストで置換される場合は、クォーラムオブジェクトは、図13に示されるように新しい近傍系にQOローカルマネージャを自動的に作成するであろう。なお、3ホストクォーラムオブジェクトを使用すると、1つのホストが故障した後も過半数ホストクォーラムが失われないことが保証される。同様に、マッピングエージェントは、クォーラムオブジェクトにその初期のQOローカルマネージャを別のホストに移動するように命令することによって作業負荷目的のために、クォーラムオブジェクトを別のクラスタホストに移動できる。この場合、QOローカルマネージャは必要に応じて隣接するホストにそのコンパニオンマネージャを移動させ、それからクォーラムを確立し直す。
(論理的根拠及び利点)
異なるホストまたは重複するホストにマッピングされる複数のクォーラムオブジェクトを使用することによって、処理負荷の管理(例えば、区分化されたDBMS内のデータ区分)がクラスタホストの大きなプール全体で均一に拡散できる(多くの負荷バランシング技法が周知であり、クラスタホストの集合全体でクォーラムオブジェクトを負荷分散するための特定の方法はここでは説明されていない)。クォーラムオブジェクトはデータストアの各区分を管理し、作業負荷はクォーラムオブジェクトがマッピングされるクラスタホスト全体で負荷調整される。クォーラムオブジェクトは、処理負荷のバランスを動的に取り戻すために必要に応じてクラスタホストの間で移動できる。クォーラムオブジェクトの使用は、それにより単一の一様なクラスタメンバーシップ全体で区分化されたデータストアのクォーラムをベースにした管理をスケールする問題を解決する。スーパークラスタの使用を回避することによって、それは、各ホストが、ホスト故障を検出するための冗長な機構を組み込む2つの別個のクラスタメンバーシップに参加する必要を排除する。クォーラムホストは任意のクラスタホストにマッピングできるため、それは負荷バランスに対するさらに細かな制御も可能にする。
(本発明の一実施形態のためのソフトウェア方法)
以下のソフトウェア方法は、本発明の一実施形態がどのように実現できるのかを示す。これらの方法は3つのクラスタホストに及ぶ過半数ホストのアルゴリズムを使用して自己組織クォーラムオブジェクトを実現する(3つのクラスタホストを使用することにより、利用されるクォーラムリーダーを決定するための単純なマスタ/スレーブアルゴリズムが可能になる)。前述されたように、この実施形態は、各ホストが線形アレイ内でその隣接するホストを決定できるように、すべてのクラスタホストが一次元アレイに編成される根本的なクラスタメンバーシップの使用に依存する。クラスタメンバーシップが、隣接するホストの追加、離脱、及び故障を検出し、報告するために、各クラスタホストの中で必要な機構を組み込むことが仮定される。例えば、クラスタメンバーシップアルゴリズムは、通常、ホスト故障を検出するために周期的な「心臓鼓動」メッセージ交換を利用する。ソフトウェア方法は、これらの方法の複数のインスタンスがメッセージを送信することによって通信できるように、クラスタホスト間の信頼できるメッセージパス機構も利用する。
(QOローカルマネージャをクォーラムオブジェクトに追加する方法)
外部マッピングエージェントは、当初、所望されるクラスタホスト上でそのQOローカルマネージャを起動することによりクォーラムオブジェクトを作成する。このインプリメンテーションでは、このクラスタホストは、いったんクォーラムが確立された後にクォーラムリーダーとしての役割をする。マスタマネージャと呼ばれる初期のQOローカルマネージャは、図14に示されるソフトウェア方法を実行する。それは、クラスタメンバーシップに隣接するホストが存在すると判断した後に、クォーラムオブジェクトのためにスレーブマネージャを作成する、隣接するホストの実行時システムにマネージャ作成メッセージを送信することによって、スレーブマネージャと呼ばれるQOローカルマネージャを隣接するホスト上で起動する。スレーブマネージャは、起動したことを示すために作成応答メッセージを送信する。このメッセージを受信すると、マスタマネージャはクォーラムリーダーになり、Is_quorum_leader関数に対する応答をTRUEに設定する。マスタマネージャが別の隣接するホストが存在すると判断すると(それは、ホストがただちに使用可能ではない場合にはクラスタメンバーシップからの通知を待機する必要がある場合がある)、それは他の隣接するホスト上で第2のスレーブマネージャを起動するためにこのプロセスを繰り返す。3つのQOローカルマネージャを使用することにより、1つのホストが予想外に故障した場合にもホストの過半数がいるクォーラムを維持できる。
(故障したQOローカルマネージャから回復するための方法)
図15は、そのスレーブマネージャを実行している1つ以上のクラスタホストの故障後にマスタマネージャによって実行されるアルゴリズムを示す。クラスタメンバーシップは、クラスタホストが故障するとマスタマネージャに通知する。マスタマネージャのホストを隔離する通信故障が、すべてのリモートホストの故障にみせかけられることに留意する。両方のスレーブマネージャが失敗すると、マスタマネージャは、クォーラムが失われたので、Is_quorum_leader関数に対する応答をFALSEに設定する。マスタマネージャが実際に通信故障によってだけ隔離される場合には、スレーブマネージャは2つのホストのクォーラムを別個に形成する。次に、マスタマネージャは、スレーブマネージャを実行しているホストが回復したことをクラスタマネージャが通知するまで待機する。マスタマネージャはそれぞれの回復したスレーブマネージャにマスタアサートメッセージを送信し、応答を待機する。このメッセージは、クォーラムが存在する場合、スレーブマネージャにそれらのクォーラムを放棄するように示唆する。第1のスレーブマネージャがマスタマネージャに応答した後、マスタマネージャは再びクォーラムリーダーになり、Is_quorum_leader関数に対する応答をTRUEに設定する。スレーブマネージャのホストが恒久的に故障した場合、マスタマネージャは代替ホスト上で新しいスレーブマネージャを作成できる(これを行うための方法は図15に説明されていない)。
図16は、マスタマネージャを実行するクラスタホストの故障の後にスレーブマネージャにより実行されるアルゴリズムを示す。マスタマネージャの場合と同様に、クラスタメンバーシップは、クラスタホストが故障するとスレーブマネージャに通知し、スレーブマネージャのホストを隔離する通信故障はすべてのリモートホストの故障にみせかけられることがある。スレーブマネージャは、別のスレーブマネージャが実行中である、マスタマネージャの他の隣接するクラスタホストにプローブ要求メッセージを送信することによってクォーラムを確立し直そうとする。スレーブマネージャは、クラスタメンバーシップからこれらの隣接するホストの識別子を決定する。スレーブマネージャが、他のスレーブマネージャがクラスタホストに初期にマッピングされるまたは再マッピングする間に故障が発生する可能性があるために他のスレーブマネージャの存在及び場所を認識していない可能性があることに留意する。このクォーラムオブジェクトのための別のスレーブマネージャがプローブ要求メッセージを受け取ると、自身を識別する応答を返す。両方のスレーブマネージャがこの要求/応答交換を実行した後に、相互のアイデンティティを決定し、例えば、ネットワークアドレスがより低いホストを選択することによって、所定のアルゴリズムを使用してクォーラムリーダーを選択できる。一方のスレーブマネージャがクォーラムリーダーになり、Is_quorum_leader関数に対する応答をTRUEに設定し、マスタマネージャの故障後にクォーラムを確立し直す。マスタマネージャが後に回復すると、クォーラムリーダーにその制御権を放棄させ、Is_quorum_leader関数に対する応答をFALSEにリセットさせるアサートマスタメッセージを両方のスレーブマネージャに送信する。スレーブマネージャはマスタマネージャに応答し、マスタマネージャは次にクォーラムリーダーを引き継ぐ。マスタマネージャのホストが恒久的に故障した場合、クォーラムリーダーとしての役割をするスレーブマネージャはマスタマネージャを引き継ぎ、代替ホスト上に新しいスレーブマネージャを作成することができる(これを行うための方法は図16に説明されていない)。
したがって、本発明はその特定の実施形態を述べると説明されているが、本発明はそれに制限されない。詳細の変更は本発明の精神及び範囲の中で加えられてよく、前記精神及び範囲は幅広く解釈されるべきであり、これに添付されるクレームの特徴によって以外制限されるべきではない。
データベース管理システムの従来の技術のモデルを示す。 共用データストアのある2ホストフェイルオーバクラスタの従来の技術の例を示す。 複製されたデータストアのあるクラスタの従来の技術の例を示す。 ホストの故障及びデータマネージャのフェイルオーバの後の共用データストアのあるクラスタの従来の技術の例を示す。 ホストの故障及びデータマネージャの故障の後の複製されたデータストアのあるクラスタの従来の技術の例を示す。 ホスト0が処理及び通信の遅延から回復し、更新U3を記憶した後の共用データストアのあるクラスタの従来の技術の例を示す。 ホスト0が処理及び通信の遅延から回復し、更新U3を記憶した後の複製されたデータストアのあるクラスタの従来の技術の例を示す。 4つのホストと2つのサブクラスタのある従来の技術の「スーパークラスタ」の例を示す。 4つのホストと2つのクォーラムオブジェクトのあるクラスタの例を示す。 4つのホスト、つまり2つの共用記憶クォーラムオブジェクトと記憶データネットワーク上の2つのデータストアのあるクラスタの例を示す。 クォーラムオブジェクトの中の「Is_Quorum_Leader」ソフトウェア方法の例を示す。 隣接するホストに渡る3ホストクォーラムオブジェクトの作成で講じられるステップを示す。 クラスタホストが恒久的に故障し、新しいホストにより置換された後のスリーホストクォーラムオブジェクトの回復で講じられるステップを示す。 クォーラムオブジェクトにQOローカルマネージャを追加するためのソフトウェア方法を示す。 故障したスレーブマネージャから回復するためのマスタマネージャのソフトウェア方法を示す。 故障したマスタマネージャから回復するためのスレーブマネージャのソフトウェア方法を示す。

Claims (4)

  1. 複数の共用リソースに対するクラスタのアクセスを制御するためにコンピュータクラスタ内で、ホストと呼ばれる複数のコンピュータのアクションを調整するための方法であって、
    a)それぞれが別個のクォーラムオブジェクトと呼ばれる論理構成物として実現される複数の独立したクォーラムアルゴリズムの使用を利用し、前記クォーラムオブジェクトが単一の共用リソースへのアクセスを制御することと、
    b)各クォーラムオブジェクトのメンバーとなり、それにより前記共用リソースに対するアクセスを制御すべく前記クォーラムオブジェクトを使用するために前記クラスタ内で2つ以上のホストを割り当てることと、
    c)前記クォーラムオブジェクトが重複するメンバーシップを有することができるように、任意のホストが複数のクォーラムオブジェクトのメンバーとなることをできるようにすることと、
    d)複数の追加のホストが新しいクォーラムオブジェクトの排他的なメンバーとしてクラスタに追加されることを必要とする代わりに、必要に応じて新しいクォーラムオブジェクトを作成して前記クラスタ内のホストの部分集合に割り当てることをできるようにすることと、
    e)単一のクォーラムメンバーシップのサイズを大きくすることまたはそのクォーラムに排他的に割り当てられる新しいクォーラム及び複数の新しいホストの追加を必要とすることの代わりに、単一のホストを追加することによって、それによってコンピュータクラスタのメンバーシップをスケールできるようにすることと、
    を備える方法。
  2. クォーラムオブジェクトにホストを追加することをさらに含み、他のQOローカルマネージャとメッセージを交換することにより前記クォーラムオブジェクトのアクションへの前記ホストの参加をインプリメントするために、クォーラムオブジェクトのローカルクォーラムマネージャとして前記ホストが指定され、
    a)クォーラムオブジェクトのマスタローカルマネージャの使用により前記クォーラムオブジェクトのローカルクォーラムマネージャを調整し、前記クォーラムオブジェクトのアクションを実行するために、前記クォーラムオブジェクトのマスタローカルマネージャが一方のメンバーホスト上で実行し、1つ以上のスレーブクォーラムオブジェクトのローカルマネージャが他方のメンバーホスト上で実行することと、
    b)ホストが前記クォーラムオブジェクトの前記メンバーシップに加わるときにクォーラムオブジェクトにQOローカルマネージャを追加することと、
    を備える請求項1に記載の方法。
  3. 特定のクォーラムでの1つ以上のホストの故障時に新しいクォーラムオブジェクトのマスタローカルマネージャを選択することをさらに含み、前記カレントマスタローカルマネージャの前記検出された故障時に新しいクォーラムオブジェクトのマスタローカルマネージャを選択するスレーブローカルマネージャを備える請求項2に記載の方法。
  4. 前記クォーラムオブジェクトのマスタローカルマネージャが、すべてのカレントスレーブローカルマネージャの前記検出された故障時にそのマスタステータスを放棄し、前記スレーブローカルマネージャの回復時にそのマスタシップをリアサートする請求項2に記載の方法。
JP2007502894A 2004-03-09 2005-03-07 スケラブルなソフトウェアをベースにしたクォーラムアーキテクチャ Expired - Fee Related JP4820814B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US55142504P 2004-03-09 2004-03-09
US60/551,425 2004-03-09
PCT/US2005/007320 WO2005086756A2 (en) 2004-03-09 2005-03-07 Scalable, software based quorum architecture

Publications (2)

Publication Number Publication Date
JP2007528557A true JP2007528557A (ja) 2007-10-11
JP4820814B2 JP4820814B2 (ja) 2011-11-24

Family

ID=34976131

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007502894A Expired - Fee Related JP4820814B2 (ja) 2004-03-09 2005-03-07 スケラブルなソフトウェアをベースにしたクォーラムアーキテクチャ

Country Status (4)

Country Link
US (1) US7320085B2 (ja)
EP (1) EP1751660A4 (ja)
JP (1) JP4820814B2 (ja)
WO (1) WO2005086756A2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010526362A (ja) * 2007-05-03 2010-07-29 テレフオンアクチーボラゲット エル エム エリクソン(パブル) クラスタ化されたソフトウェアエンティティのための動的cliマッピング
JP2011164719A (ja) * 2010-02-04 2011-08-25 Tritech Inc 分散コンピューティングシステム、分散コンピューティング方法及び分散コンピューティング用プログラム
JP2011253391A (ja) * 2010-06-02 2011-12-15 Trytech Co Ltd 分散コンピューティングシステム
WO2015104833A1 (ja) * 2014-01-10 2015-07-16 株式会社日立製作所 情報システム及びi/o処理方法
JP2016505977A (ja) * 2012-12-28 2016-02-25 ワンディスコ,インク. 分散型コンピューター環境におけるノードのグループへのノードの安全かつ認証された導入を可能にする方法、装置、及びシステム

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10143142A1 (de) * 2001-09-04 2003-01-30 Bosch Gmbh Robert Verfahren zum Betreiben einer Schaltungsanordnung, die einen Mikrocontroller und ein EEPROM enthält
JP5066080B2 (ja) * 2005-05-06 2012-11-07 マラソン テクノロジーズ コーポレイション 耐障害性コンピュータ・システム
US20070022314A1 (en) * 2005-07-22 2007-01-25 Pranoop Erasani Architecture and method for configuring a simplified cluster over a network with fencing and quorum
US7644305B2 (en) 2006-05-18 2010-01-05 Microsoft Corporation Quorum establishment based on a vote from a voting device
US7529976B2 (en) * 2006-05-20 2009-05-05 International Business Machines Corporation Multiple subsystem error reporting
JP4505763B2 (ja) * 2007-01-31 2010-07-21 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. ノードクラスタの管理
US7934117B2 (en) * 2008-01-25 2011-04-26 Microsoft Corporation Routing token transfer and recovery protocol in rendezvous federation
US7543046B1 (en) * 2008-05-30 2009-06-02 International Business Machines Corporation Method for managing cluster node-specific quorum roles
US7934118B2 (en) * 2008-10-24 2011-04-26 Microsoft Corporation Failure notification in rendezvous federation
US8127128B2 (en) * 2009-05-04 2012-02-28 International Business Machines Corporation Synchronization of swappable module in modular system
US8060773B1 (en) * 2009-12-16 2011-11-15 Symantec Corporation Systems and methods for managing sub-clusters within a multi-cluster computing system subsequent to a network-partition event
US8443367B1 (en) 2010-07-16 2013-05-14 Vmware, Inc. Federated management in a distributed environment
US9710344B1 (en) 2010-12-13 2017-07-18 Amazon Technologies, Inc. Locality based quorum eligibility
US8473775B1 (en) 2010-12-14 2013-06-25 Amazon Technologies, Inc. Locality based quorums
US8812631B2 (en) 2011-05-11 2014-08-19 International Business Machines Corporation Method and arrangement for operating a computer cluster
US9456053B2 (en) 2011-12-14 2016-09-27 Level 3 Communications, Llc Content delivery network
US10652087B2 (en) 2012-12-13 2020-05-12 Level 3 Communications, Llc Content delivery framework having fill services
US20140337472A1 (en) 2012-12-13 2014-11-13 Level 3 Communications, Llc Beacon Services in a Content Delivery Framework
US9654354B2 (en) 2012-12-13 2017-05-16 Level 3 Communications, Llc Framework supporting content delivery with delivery services network
US10701149B2 (en) 2012-12-13 2020-06-30 Level 3 Communications, Llc Content delivery framework having origin services
US10791050B2 (en) 2012-12-13 2020-09-29 Level 3 Communications, Llc Geographic location determination in a content delivery framework
US9634918B2 (en) 2012-12-13 2017-04-25 Level 3 Communications, Llc Invalidation sequencing in a content delivery framework
US10701148B2 (en) 2012-12-13 2020-06-30 Level 3 Communications, Llc Content delivery framework having storage services
US10838926B2 (en) * 2013-10-01 2020-11-17 Sap Se Transparent access to multi-temperature data
US9817703B1 (en) * 2013-12-04 2017-11-14 Amazon Technologies, Inc. Distributed lock management using conditional updates to a distributed key value data store
WO2016106682A1 (zh) 2014-12-31 2016-07-07 华为技术有限公司 一种集群脑裂后仲裁处理方法、仲裁存储装置以及系统
US10341252B2 (en) 2015-09-30 2019-07-02 Veritas Technologies Llc Partition arbitration optimization
US10397085B1 (en) * 2016-06-30 2019-08-27 Juniper Networks, Inc. Offloading heartbeat responses message processing to a kernel of a network device
US10387273B2 (en) * 2016-09-16 2019-08-20 Oracle International Corporation Hierarchical fault tolerance in system storage
US10346191B2 (en) * 2016-12-02 2019-07-09 Wmware, Inc. System and method for managing size of clusters in a computing environment
US10474532B1 (en) * 2017-07-28 2019-11-12 EMC IP Holding Company LLC Automatic fault tolerance in a computing system providing concurrent access to shared computing resource objects
US11956770B2 (en) * 2021-05-07 2024-04-09 Verizon Patent And Licensing Inc. Detection of group membership for coordinated connectivity
US11595321B2 (en) 2021-07-06 2023-02-28 Vmware, Inc. Cluster capacity management for hyper converged infrastructure updates

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314526B1 (en) * 1998-07-10 2001-11-06 International Business Machines Corporation Resource group quorum scheme for highly scalable and highly available cluster system management
US6487622B1 (en) * 1999-10-28 2002-11-26 Ncr Corporation Quorum arbitrator for a high availability system
US6662219B1 (en) * 1999-12-15 2003-12-09 Microsoft Corporation System for determining at subgroup of nodes relative weight to represent cluster by obtaining exclusive possession of quorum resource

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6615256B1 (en) * 1999-11-29 2003-09-02 Microsoft Corporation Quorum resource arbiter within a storage network
US6801937B1 (en) * 2000-05-31 2004-10-05 International Business Machines Corporation Method, system and program products for defining nodes to a cluster
US6847993B1 (en) * 2000-05-31 2005-01-25 International Business Machines Corporation Method, system and program products for managing cluster configurations
US7120681B2 (en) * 2001-01-30 2006-10-10 International Business Machines Corporation Cluster control in network systems
US7016946B2 (en) * 2001-07-05 2006-03-21 Sun Microsystems, Inc. Method and system for establishing a quorum for a geographically distributed cluster of computers
US6950855B2 (en) * 2002-01-18 2005-09-27 International Business Machines Corporation Master node selection in clustered node configurations
US20050273571A1 (en) * 2004-06-02 2005-12-08 Lyon Thomas L Distributed virtual multiprocessor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314526B1 (en) * 1998-07-10 2001-11-06 International Business Machines Corporation Resource group quorum scheme for highly scalable and highly available cluster system management
US6487622B1 (en) * 1999-10-28 2002-11-26 Ncr Corporation Quorum arbitrator for a high availability system
US6662219B1 (en) * 1999-12-15 2003-12-09 Microsoft Corporation System for determining at subgroup of nodes relative weight to represent cluster by obtaining exclusive possession of quorum resource

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010526362A (ja) * 2007-05-03 2010-07-29 テレフオンアクチーボラゲット エル エム エリクソン(パブル) クラスタ化されたソフトウェアエンティティのための動的cliマッピング
JP2011164719A (ja) * 2010-02-04 2011-08-25 Tritech Inc 分散コンピューティングシステム、分散コンピューティング方法及び分散コンピューティング用プログラム
JP2011253391A (ja) * 2010-06-02 2011-12-15 Trytech Co Ltd 分散コンピューティングシステム
JP2016505977A (ja) * 2012-12-28 2016-02-25 ワンディスコ,インク. 分散型コンピューター環境におけるノードのグループへのノードの安全かつ認証された導入を可能にする方法、装置、及びシステム
WO2015104833A1 (ja) * 2014-01-10 2015-07-16 株式会社日立製作所 情報システム及びi/o処理方法
US9395922B2 (en) 2014-01-10 2016-07-19 Hitachi, Ltd. Information system and I/O processing method

Also Published As

Publication number Publication date
US20050262382A1 (en) 2005-11-24
JP4820814B2 (ja) 2011-11-24
WO2005086756A3 (en) 2007-05-31
WO2005086756A2 (en) 2005-09-22
US7320085B2 (en) 2008-01-15
EP1751660A2 (en) 2007-02-14
EP1751660A4 (en) 2010-06-16

Similar Documents

Publication Publication Date Title
JP4820814B2 (ja) スケラブルなソフトウェアをベースにしたクォーラムアーキテクチャ
US11360854B2 (en) Storage cluster configuration change method, storage cluster, and computer system
JP6382454B2 (ja) 分散ストレージ及びレプリケーションシステム、並びに方法
US7231461B2 (en) Synchronization of group state data when rejoining a member to a primary-backup group in a clustered computer system
US10320702B2 (en) Input/output fencing optimization
CN1893370B (zh) 用于服务器群集恢复和维护的方法和系统
US8200746B2 (en) System and method for territory-based processing of information
KR101159322B1 (ko) 오동작 허용 분산 컴퓨팅 시스템에서의 레플리카 세트의효율적인 변경
CN106170782B (zh) 用于在网络中的机器的大规模并行处理集群中创建高度可扩展的高可用性集群的系统和方法
US20050283658A1 (en) Method, apparatus and program storage device for providing failover for high availability in an N-way shared-nothing cluster system
EP2434729A2 (en) Method for providing access to data items from a distributed storage system
US20060168192A1 (en) High availability for intelligent applications in storage networks
KR100423225B1 (ko) 클러스터링된 컴퓨터 시스템을 위한 통합 프로토콜
JP2017519258A (ja) ワイド・エリア・ネットワーク上で同等の名前空間レプリカを用いる地理的に分散したファイルシステム
US7565498B1 (en) System and method for maintaining write order fidelity in a distributed environment
US9880970B2 (en) Method for implementing highly available data parallel operations on a computational grid
Mishra et al. Self-organizing clusters for load balancing: a B+-tree based approach
JP2023036653A (ja) システム及びその制御方法並びにプログラム
JP2022115672A (ja) 多重系処理システム及び多重系処理システムの制御方法
Hasebe et al. Self-stabilizing passive replication for internet service platforms
Burns Fastpath Optimizations for Cluster Recovery in Shared-Disk Systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101109

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110209

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110428

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

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

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

Free format text: PAYMENT UNTIL: 20140909

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4820814

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees