JP2007102332A - 負荷分散システム及び負荷分散方法 - Google Patents

負荷分散システム及び負荷分散方法 Download PDF

Info

Publication number
JP2007102332A
JP2007102332A JP2005288340A JP2005288340A JP2007102332A JP 2007102332 A JP2007102332 A JP 2007102332A JP 2005288340 A JP2005288340 A JP 2005288340A JP 2005288340 A JP2005288340 A JP 2005288340A JP 2007102332 A JP2007102332 A JP 2007102332A
Authority
JP
Japan
Prior art keywords
node
association
resource
resource usage
usage status
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.)
Pending
Application number
JP2005288340A
Other languages
English (en)
Inventor
Shigeo Omichi
茂夫 大道
Masa Tanaka
雅 田中
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions 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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2005288340A priority Critical patent/JP2007102332A/ja
Publication of JP2007102332A publication Critical patent/JP2007102332A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

【課題】プログラムの実行単位間の関連度に応じて適切に負荷を分散し、負荷の均一化を実現することができる負荷分散システム及び負荷分散方法を提供する。
【解決手段】オペレーティングシステムに基づいてそれぞれ動作する複数のシステム資源に対し、プログラムを実行単位毎に割り当てる手段(ステップS1)と、実行単位毎のリソース利用状況を取得し、取得した実行単位毎のリソース利用状況に基づいて実行単位間の関連度を決定し、実行単位間の関連度を示す関連情報を取得する手段(ステップS2)と、取得した関連情報に基づいて、関連度が低い実行単位を他のシステム資源に移動させる手段(ステップS3)とを備える。
【選択図】図2

Description

本発明は、負荷分散システム及び負荷分散方法に関する。
複数のシステム資源を利用してプログラムを実行可能な計算機システムには、通常、各システム資源に負荷を分散する負荷分散システムが用いられる。この負荷分散システムを用いたクラスタシステムが開発されている。
クラスタシステムは、システム資源としての複数のノード(計算機)を1つの群としてまとめ、信頼性や処理性能の向上を実現するシステムである。このクラスタシステムは、複数のノードをネットワークにより相互に接続することによって構成されている。さらに、クラスタシステムには、スケジューラとしてプロセスマイグレーションマネージャ(以降、PMMとする)が設けられている。
PMMは、クラスタシステムにおいて、プログラムを構成する複数のプロセスのリソース使用状況を監視し、そのリソース使用状況に基づいてノード間でのプロセスの移動を制御する機構である。このPMMにより、システム全体での負荷が分散され、システムの効率的な運用が実現されている。また、PMMの機構としては、システム全体での負荷だけに着目した機構や各プロセスの関連性に着目した機構等が提案されている。さらに、ノード上に配置されたタスクの実行順序を制御し、実時間性を確保して所望の処理を行う分散処理方法も提案されている(例えば、特許文献1参照)。
特開平11−242658号公報
しかしながら、システム全体での負荷に着目したPMMの機構では、システムに存在する各プロセスの関連性を無視しているため、関連性が強いプロセス同士が異なるノードに移動してしまうことがある。このようにプロセス配置が不適切である場合には、リソース間の不要な送受信が発生してしまう。
また、各プロセスの関連性に着目したPMMの機構では、同じノードに関連性が強いプロセスを集約することにより、リソース間の不要な送受信を減少させることはできるが、そのノードに本来別のノードで動作した方が効率の良いプロセス、すなわちそのノードに存在するプロセスに対し関連性が低いプロセスが存在した場合には、そのノードの負荷が必要以上に大きくなってしまう。
本発明は、上記に鑑みてなされたものであり、その目的は、プログラムの実行単位間の関連度に応じて適切に負荷を分散し、負荷の均一化を実現することができる負荷分散システム及び負荷分散方法を提供することである。
本発明の実施の形態に係る第1の特徴は、負荷分散システムにおいて、オペレーティングシステムに基づいてそれぞれ動作する複数のシステム資源に対し、プログラムを実行単位毎に割り当てる手段と、実行単位毎のリソース利用状況を取得し、取得した実行単位毎のリソース利用状況に基づいて実行単位間の関連度を決定し、実行単位間の関連度を示す関連情報を取得する手段と、取得した関連情報に基づいて、関連度が低い実行単位を他のシステム資源に移動させる手段とを備えることである。
本発明の実施の形態に係る第2の特徴は、負荷分散方法において、オペレーティングシステムに基づいてそれぞれ動作する複数のシステム資源に対し、プログラムを実行単位毎に割り当てるステップと、実行単位毎のリソース利用状況を取得し、取得した実行単位毎のリソース利用状況に基づいて実行単位間の関連度を決定し、実行単位間の関連度を示す関連情報を取得するステップと、取得した関連情報に基づいて、関連度が低い実行単位を他のシステム資源に移動させるステップとを備えることである。
本発明によれば、プログラムの実行単位間の関連度に応じて適切に負荷を分散し、負荷の均一化を実現することができる負荷分散システム及び負荷分散方法を提供することができる。
(第1の実施の形態)
本発明の第1の実施の形態について図1ないし図3を参照して説明する。第1の実施の形態は、負荷分散システムをクラスタシステムに適応した一適応例である。
図1に示すように、第1の実施の形態に係るクラスタシステム1は、システム資源として複数のノード2及び共有のディスク3をネットワーク4により接続することによって構成されている。このネットワーク4には、クライアント端末(図示せず)が直接又は外部ネットワークを介して接続されている。
ノード2は、CPU(中央処理装置)やメモリ(記憶部)等を備える計算機である。このノード2は、例えば、各種のサービス(プログラム)を提供するサーバ装置として機能する。サービスは、プログラムの実行単位(処理単位)である複数のプロセスP1〜P3により構成されている。
なお、第1の実施の形態では、サービスが複数のノード2により同時並行して実行可能なタイプ、例えば並列実行型のプログラムであるため、各ノード2がそれぞれシステム資源となる。
ディスク3は、ファイル等の各種データを記憶する記憶装置である。このディスク3は、各ノード2に対して共有の記憶装置として機能する。ネットワーク4は、各ノード2間の通信及びノード2とクライアント端末との通信を可能にする。なお、ネットワーク4としては、例えばWAN(ワイドエリアネットワーク)やLAN(ローカルエリアネットワーク)、SAN(ストレージエリアネットワーク)等のネットワークを用いる。
各ノード2では、それぞれ対応するオペレーティングシステム(以降、OSとする)5が動作する。OS5は、それぞれ独立した複数のリソース、例えば、セマフォ、共有メモリ、パイプ及びメッセージ等を管理保有する。また、プロセスP1〜P3は、アプリケーションプログラムインターフェース(以降、APIとする)6を介してOS5内のリソースを確保し、そのリソースにアクセスする。API6は、各プロセスP1〜P3のリソース利用状況を監視する機構及びそれらのリソース利用状況を保持する機構を備えている。また、API6は、リソースのアクセス具合(共用度を含む)もリソース利用状況として取得する。
このようなクラスタシステム1では、プロセスマイグレーションマネージャ等のスケジューラ7が動作する。このスケジューラ7は、クラスタシステム1において、各API6から各プロセスP1〜P3のリソース利用状況を取得し、取得した各プロセスP1〜P3のリソース使用状況を集計し、そのリソース使用状況に基づいてノード2間でのプロセスP1〜P3の移動を制御する機構である。なお、スケジューラ7は、各ノード2が相互に通信を行いながら同期して一体となって動作することにより実現されるサービス(プロセス又はプロセス群)である。
詳しくは、スケジューラ7は、各API6から各プロセスP1〜P3のリソース利用状況を取得し、プロセスP1〜P3が存在するOS5、すなわちノード2を常に把握し、取得した各プロセスP1〜P3のリソース利用状況を集計し、プロセスP1〜P3毎のリソース利用状況を示すリソース利用状況情報としてリソース利用状況表H1を取得する。さらに、スケジューラ7は、そのリソース利用状況表H1に基づいてプロセスP1〜P3間の関連度(関連レベル)を決定し、そのプロセスP1〜P3間の関連度を示す関連情報として関連表H2を取得する。
なお、スケジューラ7は、それらのリソース利用状況表H1及びプロセスP1〜P3の関連表H2を格納する格納領域を有しており、格納領域にリソース利用状況表H1及びプロセスP1〜P3の関連表H2を保持する。
ここで、スケジューラ7は、リソース利用状況表H1に基づいて、プロセスP1〜P3間の関連度を高レベル(H)又は低レベル(L)と決定し、関連表H2を作成又は更新する。すなわち、スケジューラ7は、リソースに対するアクセス状態や待ち状態等に関するアクセス情報(例えば更新頻度)を収集し、そのアクセス情報に基づいてプロセスP1〜P3間の関連度を高レベル又は低レベルと決定する。
例えば、図1に示すように、プロセスP1及びプロセスP2は、共有メモリ(図1中のリソースX1)に対して高い共用状況でアクセスし、排他的に共有メモリを利用するため、高い依存関係を有している。したがって、プロセスP1及びプロセスP2間の関連度は高レベルと決定される。一方、プロセスP2及びプロセスP3は、ファイル(図1中のリソースX2)に対して低い共用状況でアクセスするため、低い依存関係を有している。したがって、プロセスP2及びプロセスP3間の関連度は低レベルと決定される。
プロセスP1〜P3間の関連度は、アクセス先のリソースに応じて、例えばセマフォ、共有メモリ、パイプ、メッセージ、ファイルの順序で低くなり、セマフォ>共有メモリ>パイプ>メッセージ>ファイルという関係式で表される。なお、第1の実施の形態では、セマフォ及び共有メモリを高レベルとし、パイプ、メッセージ及びファイルを低レベルとし、プロセスP1〜P3間の関連度を2つのレベルに分けている。このように第1の実施の形態では、プロセスP1〜P3間の関連度は、リソース毎に予め期待される共用度に応じて設定されている。
次に、このような構成のクラスタシステム1のサービス提供動作について説明する。
クライアント端末からのサービス(プログラム)の実行要求がネットワーク4を介してクラスタシステム1に送信される。クラスタシステム1内のノード2はクライアント端末からの実行要求により指定されたサービスを実行し、その実行結果に対応する応答をネットワーク4を介して要求元のクライアント端末に返す。
このとき、図2に示すように、まず、スケジューラ7が各ノード2にサービス(プログラム)を実行単位毎、すなわちプロセスP1〜P3毎に各ノード2に割り当てる(ステップS1)。これにより、各プロセスP1〜P3は各ノード2に振り分けられる。これに応じて、各ノード2がそれぞれ対応するOS5により各プロセスP1〜P3を実行する。
例えば、図1に示すように、各プロセスP1〜P3がノード2(図1中のノードA)に割り当てられる。これに応じて、ノード2(図1中のノードA)がOS5(図1中のOSA)により各プロセスP1〜P3を実行する。
次いで、図2に示すように、スケジューラ7は、各API6から各プロセスP1〜P3のリソース利用状況を取得し、リソース利用状況情報としてリソース利用状況表H1を得て、さらに、そのリソース利用状況表H1に基づいてプロセスP1〜P3間の関連度を決定し、そのプロセスP1〜P3間の関連度を示す関連情報として関連表H2を取得する(ステップS2)。
詳しくは、スケジューラ7は、各API6から各プロセスP1〜P3のリソース利用状況を取得し、プロセスP1〜P3が存在するノード2を常に把握し、取得した各プロセスP1〜P3のリソース利用状況を集計し、リソース利用状況表H1を作成又は更新する。さらに、スケジューラ7は、リソースに対するアクセス状態や待ち状態等に関するアクセス情報(例えば更新頻度)を収集し、そのアクセス情報に基づいてプロセスP1〜P3間の実行に関する依存関係を導出し、その依存関係に基づいてプロセスP1〜P3間の関連度を高レベル(H)又は低レベル(L)と決定し、関連表H2を作成又は更新する。
例えば、図1に示すように、スケジューラ7は、各API6から各プロセスP1〜P3のリソース利用状況を取得し、各プロセスP1〜P3がノード2(図1中のノードA)に存在することを把握し、さらに、プロセスP1及びプロセスP2が共有メモリ(図1中のリソースX1)にアクセスしていることと、プロセスP2及びプロセスP3がディスク3のファイル(図1中のリソースX2)にアクセスしていることを把握し、リソース利用状況表H1を作成又は更新する。さらに、スケジューラ7は、そのリソース利用状況表H1に基づいて、プロセスP1及びプロセスP2間の関連度を高レベル(H)と決定し、プロセスP2及びプロセスP3間の関連度を低レベル(L)と決定し、関連表H2を作成又は更新する。
ここで、図1に示すリソース利用状況表H1では、リソース利用状況がリソースX1、X2毎に示されている。X1:P1@A,P2@Aとは、リソースX1がノード2(図1中のノードA)上のプロセスP1と、同じくノード2(図1中のノードA)上のプロセスP2とによりアクセスされていることを示している。また、X2:P2@A,P3@Aとは、リソースX2がノード2(図1中のノードA)上のプロセスP2と、同じくノード2(図1中のノードA)上のプロセスP3によりアクセスされていることを示している。
また、図1に示す関連表H2では、プロセスP1〜P3間の関連度がプロセスP1〜P3間毎に示されている。(P1,P2)=(X1:H)とは、プロセスP1及びプロセスP2が共有メモリ(図1中のリソースX1)にアクセスしており、それらの関連度が高レベルであることを示している。一方、(P2,P3)=(X2:L)とは、プロセスP1及びプロセスP2がファイル(図1中のリソースX2)にアクセスしており、それらの関連度が低レベルであることを示している。
最後に、図2に示すように、スケジューラ7は、リソース利用状況表H1及びプロセスP1〜P3の関連表H2に基づいて、関連度が低レベルである(関連度が低い)プロセスP3を現在のノード2から他のノード2に移動させ、プロセスマイグレーション、すなわち負荷分散を行う(ステップS3)。このような処理が繰り返される。
詳しくは、スケジューラ7は、プロセスP1〜P3間の関連度が低レベルであると決定した場合、プロセスP1〜P3間に関連性が存在していても、関連度が低いプロセスP1〜P3を他のノード2に移動させるプロセスマイグレーションが可能であると判断し、関連度が低いプロセスP3を各OS5のリソース利用状況に基づいてリソース的な余裕があるOS5、すなわちノード2に移動させる。このようにして、プロセスマイグレーションが行われ、負荷分散が実現される。
例えば、関連表H2に基づいて、図3に示すように、関連度が低いプロセスP3がノード2(図3中のノードA)からの他のノード2(図3中のノードB)に移動する。これに応じて、ノード2(図3中のノードA)がOS5(図3中のOSA)によりプロセスP1、P2を実行し、ノード2(図3中のノードB)がOS5(図3中のOSB)によりプロセスP3を実行することになる。これにより、各ノード2に対する負荷が分散される。
なお、図1中のリソース利用状況表H1に示すX2:P2@A,P3@Aは、図3中のリソース利用状況表H1に示すように、X2:P2@A,P3@Bに更新される。ここで、X2:P2@A,P3@Bとは、リソースX2がノード2(図3中のノードA)上のプロセスP2と、ノード2(図3中のノードB)上のプロセスP3とによりアクセスされていることを示している。
以上説明したように、第1の実施の形態によれば、プロセスP1〜P3毎のリソース利用状況を取得し、取得したプロセスP1〜P3毎のリソース利用状況に基づいてプロセスP1〜P3間の関連度を決定し、その関連度を示す関連情報として関連表H2を取得し、取得した関連表H2に基づいて、関連度が低いプロセスP3を現在のノード2(図3中のノードA)から他のノード2(図3中のノードB)に移動させることによって、関連性が強いプロセスP1、P2同士が同じノード2(図3中のノードA)上に存在することになるので、リソース間の不要な送受信の発生が防止され、さらに、関連性が強いプロセスP1、P2同士が存在するノード2(図3中のノードA)上に関連性が弱いプロセスP3が存在しなくなるので、全てのノード2の負荷が均一に抑えられる。このようにして、プロセスP1〜P3間の関連度に応じて適切に負荷を分散し、負荷の均一化を実現することができる。
(第2の実施の形態)
本発明の第2の実施の形態について図2、図4及び図5を参照して説明する。
本発明の第2の実施の形態は、基本的に第1の実施の形態と同様である。第2の実施の形態では、第1の実施の形態との相違点について説明する。なお、第1の実施の形態で説明した部分と同一部分は同一符号で示し、その説明は省略する(後述する他の実施の形態でも同様である)。
第2の実施の形態では、サービス(プログラム)の実行単位がプロセスP1〜P3に代えてスレッドT1〜T3である。これにより、サービスは、スレッドT1〜T3毎に各ノード2に振り分けられる。例えば、図4に示すように、プロセスP1は、その実行単位である複数のスレッドT1〜T3を有している。このプロセスP1は、API6を介してOS5内のリソースを確保し、そのリソースにアクセスする。
API6は、プロセスP1の各スレッドT1〜T3のリソース利用状況を監視する機構及びそれらのリソース利用状況を保持する機構を備えている。また、API6は、リソースのアクセス具合(共用度を含む)もリソース利用状況として取得する。
スケジューラ7は、スレッドマイグレーションマネージャとして機能する。このスケジューラ7は、クラスタシステム1において、API6からプロセスP1の各スレッドT1〜T3のリソース利用状況を取得し、取得した各スレッドT1〜T3のリソース使用状況を集計し、そのリソース使用状況に基づいてノード2間でのスレッドT1〜T3の移動を制御する機構である。なお、スケジューラ7は、各ノード2が相互に通信を行いながら同期して一体となって動作することにより実現されるサービス(プロセス又はプロセス群)である。
詳しくは、スケジューラ7は、API6からプロセスP1の各スレッドT1〜T3のリソース利用状況を取得し、スレッドT1〜T3が存在するOS5、すなわちノード2を常に把握し、取得した各スレッドT1〜T3のリソース利用状況を集計し、スレッドT1〜T3毎のリソース利用状況を示すリソース利用状況情報としてリソース利用状況表H1を取得する。さらに、スケジューラ7は、そのリソース利用状況表H1に基づいてスレッドT1〜T3間の関連度(関連レベル)を決定し、そのスレッドT1〜T3間の関連度を示す関連情報として関連表H2を取得する。なお、スケジューラ7は、リソース利用状況表H1に基づいて、スレッドT1〜T3間の関連度を高レベル(H)又は低レベル(L)と決定し、関連表H2を作成又は更新する。
スレッドT1〜T3間の関連度は、アクセス先のリソースに応じて、例えばセマフォ、共有メモリ、パイプ、メッセージ、ファイルの順序で低くなり、セマフォ>共有メモリ>パイプ>メッセージ>ファイルという関係式で表される。なお、第2の実施の形態では、セマフォ及び共有メモリを高レベルとし、パイプ、メッセージ及びファイルを低レベルとし、スレッドT1〜T3間の関連度を2つのレベルに分けている。このように第2の実施の形態では、スレッドT1〜T3間の関連度は、リソース毎に予め期待される共用度に応じて設定されている。
次に、このような構成のクラスタシステム1のサービス提供動作について説明する。クラスタシステム1内のノード2はクライアント端末からの実行要求により指定されたサービスを実行する。
このとき、図2に示すように、まず、スケジューラ7が各ノード2にサービス(プログラム)を実行単位毎、すなわちスレッドT1〜T3毎に各ノード2に割り当てる(ステップS1)。これにより、各スレッドT1〜T3は各ノード2に振り分けられる。これに応じて、各ノード2がそれぞれ対応するOS5により各スレッドT1〜T3を実行する。
例えば、図4に示すように、スレッドT1〜T3がノード2(図4中のノードA)に割り当てられる。これに応じて、ノード2(図4中のノードA)がOS5(図4中のOSA)により各スレッドT1〜T3を実行する。
次いで、図2に示すように、スケジューラ7は、API6からプロセスP1の各スレッドT1〜T3のリソース利用状況を取得し、リソース利用状況情報としてリソース利用状況表H1を得て、さらに、そのリソース利用状況表H1に基づいてスレッドT1〜T3間の関連度を決定し、そのスレッドT1〜T3間の関連度を示す関連情報として関連表H2を取得する(ステップS2)。
詳しくは、スケジューラ7は、API6からプロセスP1の各スレッドT1〜T3のリソース利用状況を取得し、スレッドT1〜T3が存在するノード2を常に把握し、取得した各スレッドT1〜T3のリソース利用状況を集計し、リソース利用状況表H1を作成又は更新する。さらに、スケジューラ7は、リソースに対するアクセス状態や待ち状態等に関するアクセス情報(例えば更新頻度)を収集し、そのアクセス情報に基づいてスレッドT1〜T3間の実行に関する依存関係を導出し、その依存関係に基づいてスレッドT1〜T3間の関連度を高レベル(H)又は低レベル(L)と決定し、関連表H2を作成又は更新する。
例えば、図4に示すように、スケジューラ7は、API6からプロセスP1の各スレッドT1〜T3のリソース利用状況を取得し、各スレッドT1〜T3がノード2(図4中のノードA)に存在することを把握し、さらに、スレッドT1及びスレッドT2が共有メモリ(図4中のリソースX1)にアクセスしていることと、スレッドT2及びスレッドT3がディスク3のファイル(図4中のリソースX2)にアクセスしていることを把握し、リソース利用状況表H1を作成又は更新する。さらに、スケジューラ7は、リソース利用状況表H1に基づいて、スレッドT1及びスレッドT2間の関連度を高レベル(H)と決定し、スレッドT2及びスレッドT3間の関連度を低レベル(L)と決定し、関連表H2を作成又は更新する。
ここで、図4に示すリソース利用状況表H1では、リソース利用状況がリソースX1、X2毎に示されている。X1:P1−T1@A,P1−T2@Aとは、リソースX1がノード2(図4中のノードA)上のプロセスP1のスレッドT1と、同じくノード2(図4中のノードA)上のプロセスP1のスレッドT2とによりアクセスされていることを示している。また、X2:P1−T2@A,P1−T3@Aとは、リソースX2がノード2(図4中のノードA)上のプロセスP1のスレッドT2と、同じくノード2(図4中のノードA)上のスレッドT3によりアクセスされていることを示している。
また、図4に示す関連表H2では、スレッドT1〜T3間の関連度がスレッドT1〜T3間毎に示されている。(P1−T1,P1−T2)=(X1:H)とは、プロセスP1のスレッドT1及びスレッドT2が共有メモリ(図4中のリソースX1)にアクセスしており、それらの関連度が高レベルであることを示している。一方、(P1−T2,P1−T3)=(X2:L)とは、プロセスP1のスレッドT2及びスレッドT3がファイル(図4中のリソースX2)にアクセスしており、それらの関連度が低レベルであることを示している。
最後に、図2に示すように、スケジューラ7は、リソース利用状況表H1及びプロセスの関連表H2に基づいて、関連度が低レベルである(関連度が低い)スレッドT3を現在のノード2から他のノード2に移動させ、スレッドマイグレーション、すなわち負荷分散を行う(ステップS3)。このような処理が繰り返される。
詳しくは、スケジューラ7は、スレッドT1〜T3間の関連度が低レベルであると決定した場合、スレッドT1〜T3間に関連性が存在していても、関連度が低いスレッドT3を他のノード2に移動させるスレッドマイグレーションが可能であると判断し、関連度が低いスレッドT3を各OS5のリソース利用状況に基づいてリソース的な余裕があるOS5、すなわちノード2に移動させる。このようにして、スレッドマイグレーションが行われ、負荷分散が実現される。
例えば、関連表H2に基づいて、図5に示すように、関連度が低いスレッドT3がノード2(図5中のノードA)からの他のノード2(図5中のノードB)に移動する。これに応じて、ノード2(図5中のノードA)がOS5(図5中のOSA)によりプロセスP1のスレッドT1、T2を実行し、ノード2(図5中のノードB)がOS5(図5中のOSB)によりプロセスP1のスレッドT3を実行することになる。これにより、各ノード2に対する負荷が分散される。
なお、図4中のリソース利用状況表H1に示すX2:P1−T2@A,P1−T3@Aは、図5中のリソース利用状況表H1に示すように、X2:P1−T2@A,P1−T3@Bに更新される。ここで、X2:P1−T2@A,P1−T3@Bとは、リソースX2がノード2(図5中のノードA)上のプロセスP1のスレッドT2と、ノード2(図5中のノードB)上のプロセスP1のスレッドT3とによりアクセスされていることを示している。
以上説明したように、第2の実施の形態によれば、プロセスP1のスレッドT1〜T3毎のリソース利用状況を取得し、取得したスレッドT1〜T3毎のリソース利用状況に基づいてスレッドT1〜T3間の関連度を決定し、その関連度を示す関連情報として関連表H2を取得し、取得した関連表H2に基づいて、関連度が低いスレッドT3を現在のノード2(図5中のノードA)から他のノード2(図5中のノードB)に移動させることによって、関連性が強いスレッドT1、T2同士は同じノード2(図5中のノードA)上に存在することになるので、リソース間の不要な送受信の発生が防止され、さらに、関連性が強いスレッドT1、T2同士が存在するノード2(図5中のノードA)上に関連性が弱いスレッドT3が存在しなくなるので、全てのノード2の負荷が均一に抑えられる。このようにして、スレッドT1〜T3間の関連度に応じて適切に負荷を分散し、負荷の均一化を実現することができる。特に、同じプロセスP1内のスレッドT1〜T3を他のノード2に移動させることが可能になるので、より負荷の均一化を実現することができる。
(第3の実施の形態)
本発明の第3の実施の形態について図6及び図7を参照して説明する。
本発明の第3の実施の形態は、基本的に第2の実施の形態と同様である。第3の実施の形態では、第2の実施の形態との相違点について説明する。
第3の実施の形態では、複数のノード2が1つのOS5に基づいてそれぞれ動作する。すなわち、OS5は、シングルシステムイメージのオペレーティングシステムである。また、プロセスP1は複数のスレッドT1、T2を有しており、プロセスP2はスレッドT3を有しいている。
このような構成のクラスタシステム1のサービス提供動作は第2の実施の形態と同様である。例えば、図6に示すように、プロセスP1のスレッドT1、T2及びプロセスP2のスレッドT3がノード2(図6中のノードA)に割り当てられる。これに応じて、ノード2(図6中のノードA)がOS5により各スレッドT1〜T3を実行する。このとき、各API6から各スレッドT1〜T3のリソース利用状況が取得され、リソース利用状況表H1及び関連表H2が作成又は更新される。その後、関連表H2に基づいて、図7に示すように、関連度が低いスレッドT3がノード2(図7中のノードA)からの他のノード2(図7中のノードB)に移動する。これに応じて、ノード2(図7中のノードA)がOS5によりプロセスP1のスレッドT1、T2を実行し、ノード2(図7中のノードB)がOS5によりプロセスP2のスレッドT3を実行することになる。これにより、各ノード2に対する負荷が分散される。
なお、図6中のリソース利用状況表H1に示すX2:P1−T2@A,P2−T3@Aは、図7中のリソース利用状況表H1に示すように、X2:P1−T2@A,P2−T3@Bに更新される。ここで、X2:P1−T2@A,P2−T3@Bとは、リソースX2がノード2(図5中のノードA)上のプロセスP1のスレッドT2と、ノード2(図5中のノードB)上のプロセスP2のスレッドT3とによりアクセスされていることを示している。
以上説明したように、第3の実施の形態によれば、シングルシステムイメージのOS5においても、第2の実施の形態と同様の効果を得ることができる。
(第4の実施の形態)
本発明の第4の実施の形態について図8を参照して説明する。
本発明の第4の実施の形態は、基本的に第3の実施の形態と同様である。第4の実施の形態では、第3の実施の形態との相違点について説明する。
OS5では、図8に示すように、スケジューラ7の機能の一部を代行するOSスケジューラ8が動作する。OSスケジューラ8は、各ノード2に対するプロセスP1〜P2及びスレッドT1〜T3の割り当てを監視し、スレッドT1〜T3が存在するノード2を示す情報(図8中のT1@A、T2@A、T3@A)を含むリソース情報を保持する機構を有する。また、OSスケジューラ8は、スケジューラ7と通信を行う機能を有し、スケジューラ7から提供される情報、例えば関連情報(図8中の関連表H2)を利用してスケジューリングを行う。このOSスケジューラ8は、スケジューラ7から取得した関連情報(図8中の関連表H2)をリソース情報(図8中のT1@A、T2@A、T3@A)と合わせることによって、各ノード2に対するスレッドT1〜T3の配置を決定する。
このような構成のクラスタシステム1のサービス提供動作は第3の実施の形態と同様である。例えば、図8に示すように、プロセスP1のスレッドT1、T2及びプロセスP2のスレッドT3がノード2(図8中のノードA)に割り当てられる。これに応じて、ノード2(図8中のノードA)がOS5により各スレッドT1〜T3を実行する。このとき、各API6から各スレッドT1〜T3のリソース利用状況が取得され、リソース利用状況表H1及び関連表H2が作成又は更新される。その後、関連表H2に基づいて、関連度が低いスレッドT3がノード2(図8中のノードA)からの他のノード2(図8中のノードB)に移動する。これに応じて、ノード2(図8中のノードA)がOS5によりプロセスP1のスレッドT1、T2を実行し、ノード2(図8中のノードB)がOS5によりプロセスP2のスレッドT3を実行することになる。これにより、各ノード2に対する負荷が分散される。
以上説明したように、第4の実施の形態によれば、第3の実施の形態と同様の効果を得ることができ、さらに、OSスケジューラ8がスケジューラ7の一部の機能を代行することによって、スケジューラ7の負荷を軽減することができる。
(第5の実施の形態)
本発明の第5の実施の形態について図9を参照して説明する。
本発明の第5の実施の形態は、基本的に第3の実施の形態と同様である。第5の実施の形態では、第3の実施の形態との相違点について説明する。
第5の実施の形態は、マルチスレッドをサポートするコンピュータシステムに負荷分散システムを適応した一適応例である。第5の実施の形態では、図9に示すように、コンピュータシステム11は、複数のCPU(中央処理装置)12及びディスク13をネットワーク14により相互に接続することによって構成されている。
なお、第5の実施の形態では、サービスが複数のCPU12により同時並行して実行可能なタイプ、例えば並列実行型のプログラムであるため、各CPU12がそれぞれシステム資源となる。
CPU12はキャッシュメモリ(図示せず)を備えている。また、ディスク13は、ファイル等の各種データを記憶する記憶装置である。このディスク13は、各ディスク13に対して共有の記憶装置として機能する。ネットワーク14としては、バスライン等のネットワークを用いる。
このような構成のクラスタシステム1のサービス提供動作は第3の実施の形態と同様である。例えば、図9に示すように、プロセスP1のスレッドT1、T2及びプロセスP2のスレッドT3がCPU12(図9中のCPUA)に割り当てられる。これに応じて、CPU12(図9中のCPUA)がOS5により各スレッドT1〜T3を実行する。このとき、API6から各スレッドT1〜T3のリソース利用状況が取得され、リソース利用状況表H1及び関連表H2が作成又は更新される。その後、関連表H2に基づいて、関連度が低いスレッドT3がCPU12(図9中のCPUA)からの他のCPU12(図9中のCPUB)に移動する。これに応じて、CPU12(図9中のCPUA)がOS5によりプロセスP1のスレッドT1、T2を実行し、CPU12(図9中のCPUB)がOS5によりプロセスP2のスレッドT3を実行することになる。これにより、各CPU12に対する負荷が分散される。
以上説明したように、第5の実施の形態によれば、第3の実施の形態と同様の効果を得ることができ、さらに、CPU12に対するスケジュールが可能となり、CPU12のキャッシュメモリの利用効率の低下を防止することができる。
(第6の実施の形態)
本発明の第6の実施の形態について図10を参照して説明する。
本発明の第6の実施の形態は、基本的に第5の実施の形態と同様である。第6の実施の形態では、第5の実施の形態との相違点について説明する。
第6の実施の形態では、図10に示すように、マルチコアCPU15がCPU12に代えて設けられている。マルチコアCPU15は、2つのCPU12及びキャッシュメモリ(図示せず)を備えている。2つのCPU12はキャッシュメモリを共有している。
このような構成のクラスタシステム1のサービス提供動作は第5の実施の形態と同様である(図2参照)。例えば、図10に示すように、プロセスP1のスレッドT1、T2及びプロセスP2のスレッドT3がマルチコアCPU15のCPU12(図10中のCPUA)に割り当てられる。これに応じて、CPU12(図10中のCPUA)がOS5により各スレッドT1〜T3を実行する。このとき、各API6から各スレッドT1〜T3のリソース利用状況が取得され、リソース利用状況表H1及び関連表H2が作成又は更新される。
その後、関連表H2に基づいて、関連度が低いスレッドT3がマルチコアCPU15のCPU12(図10中のCPUA)からの他のマルチコアCPU15のCPU12(図10中のCPUC)に移動する。これに応じて、CPU12(図10中のCPUA)がOS5によりスレッドT1、T2を実行し、マルチコアCPU15(図10中のCPUC)がOS5によりスレッドT3を実行することになる。これにより、各CPU12に対する負荷が分散される。
以上説明したように、第6の実施の形態によれば、マルチコアCPU15を用いた場合でも、第5の実施の形態と同様の効果を得ることができる。
なお、関連表H2に基づいて、関連度が高いスレッドT2をマルチコアCPU15のCPU12(図10中のCPUA)から同一コア内の他のCPU12(図10中のCPUB)に移動させるようにしてもよい。これにより、マルチコアCPU15のCPU12(図10中のCPUA)の負荷が低減されるので、各CPU12に対する負荷をより分散することができる。
(第7の実施の形態)
本発明の第7の実施の形態について図11を参照して説明する。
本発明の第7の実施の形態は、基本的に第6の実施の形態と同様である。第7の実施の形態では、第6の実施の形態との相違点について説明する。
第7の実施の形態では、図11に示すように、マルチコアCPU15が、2つのCPU12及びキャッシュメモリ(図示せず)に加え、スケジューラユニット16を備えている。2つのCPU12はキャッシュメモリを共有している。
スケジューラユニット16は、スケジューラ7と通信することによりマルチコアCPU15内におけるスレッド割り当て及びキャッシュ割り当てを制御するユニットである。また、スケジューラユニット16は、スレッドT1〜T3の実行順序及びキャッシュの制御を行う。
このような構成のクラスタシステム1のサービス提供動作は第6の実施の形態と同様である。例えば、図11に示すように、プロセスP1のスレッドT1、T2及びプロセスP2のスレッドT3がマルチコアCPU15のCPU12(図11中のCPUA)に割り当てられる。これに応じて、CPU12(図11中のCPUA)がOS5により各スレッドT1〜T3を実行する。このとき、各API6から各スレッドT1〜T3のリソース利用状況が取得され、リソース利用状況表H1及び関連表H2が作成又は更新される。
その後、関連表H2に基づいて、関連度が低いスレッドT3がマルチコアCPU15のCPU12(図11中のCPUA)からの他のマルチコアCPU15のCPU12(図11中のCPUB)に移動する。これに応じて、CPU12(図11中のCPUA)がOS5によりスレッドT1、T2を実行し、CPU12(図11中のCPUC)がOS5によりスレッドT3を実行することになる。これにより、各CPU12に対する負荷が分散される。
また、スレッドT1及びスレッドT2間の関連度が高い場合には、スレッドT1がアクセスしているキャッシュメモリがエージアウトされると、スレッドT2がアクセスしているキャッシュメモリの優先順位が下げられ、キャッシュ効率の向上が図られる。
以上説明したように、第7の実施の形態によれば、スケジューラユニット16を備えるマルチコアCPU15を用いた場合でも、第6の実施の形態と同様の効果を得ることができる。
なお、関連表H2に基づいて、関連度が高いスレッドT2をマルチコアCPU15のCPU12(図11中のCPUA)から同一コア内の他のCPU12(図11中のCPUB)に移動させるようにしてもよい。これにより、マルチコアCPU15のCPU12(図11中のCPUA)の負荷が低減されるので、各CPU12に対する負荷をより分散することができる。
(第8の実施の形態)
本発明の第8の実施の形態について図12を参照して説明する。
本発明の第8の実施の形態は、基本的に第1の実施の形態と同様である。第8の実施の形態では、第1の実施の形態との相違点について説明する。
第8の実施の形態では、図12に示すように(図12中の関連表H2参照)、セマフォ及び共有メモリ1を高レベル(H)とし、パイプ及び共有メモリ2を中レベル(M)とし、メッセージ及びファイルを低レベル(L)とし、プロセスP1〜P3間の関連度を3つのレベルに分けている。なお、共有メモリが共有メモリ1及び共有メモリ2に分割されている。
このような構成のクラスタシステム1のサービス提供動作は第1の実施の形態と同様である。例えば、図12に示すように、プロセスP1〜P4がノード2(図12中のノードA)に割り当てられる。これに応じて、ノード2(図12中のノードA)がOS5(図12中のOSA)により各プロセスP1〜P4を実行する。このとき、各API6から各プロセスP1〜P4のリソース利用状況が取得され、リソース利用状況表H1及び関連表H2が作成又は更新される。
その後、関連表H2に基づいて、関連度が低いプロセスP4がノード2(図12中のノードA)からの他のノード2(図12中のノードB)に移動する。これに応じて、ノード2(図12中のノードA)がOS5(図12中のOSA)によりプロセスP1〜P3を実行し、ノード2(図12中のノードB)がOS5(図12中のOSB)によりプロセスP4を実行することになる。これにより、各ノード2に対する負荷が分散される。
以上説明したように、第8の実施の形態によれば、第1の実施の形態と同様の効果を得ることができ、特に、プロセスP1〜P4間の関連度を細かく分けることによって、全てのノード2の負荷をより均一に抑えることができる。
(他の実施の形態)
なお、本発明は、前述の実施の形態に限るものではなく、その要旨を逸脱しない範囲において種々変更可能である。
例えば、前述の実施の形態においては、セマフォ及び共有メモリを高レベル(H)とし、パイプ、メッセージ及びファイルを低レベル(L)とし、プロセスP1〜P3間の関連度又はスレッドT1〜T3の関連度を2つのレベルに分けたり、セマフォ及び共有メモリ1を高レベル(H)とし、パイプ及び共有メモリ2を中レベル(M)とし、メッセージ及びファイルを低レベル(L)とし、プロセスP1〜P3間の関連度又はスレッドT1〜T3の関連度を3つのレベルに分けたりしているが、これに限るものではなく、例えば4つ以上の複数のレベルに分けるようにしてもよい。
また、前述の実施の形態においては、プロセスP1〜P3間の関連度又はスレッドT1〜T3の関連度を予め設定しているが、これに限るものではなく、例えばAPI6によりリソースのアクセス具合(共用度を含む)を取得することが可能であるため、プロセスP1〜P3間の関連度又はスレッドT1〜T3の関連度をその都度見直すようにしてもよい。
また、前述の実施の形態においては、関連度が低い実行単位として低レベルのプロセスP1〜P3又は低レベルのスレッドT1〜T3を移動させているが、これに限るものではなく、例えば関連度が低い実行単位として低レベルのプロセスP1〜P3又は低レベルのスレッドT1〜T3に加え、中レベルのプロセスP1〜P3又は中レベルのスレッドT1〜T3も移動させるようにしてもよい。
また、前述の実施の形態においては、関連表H2をプロセスP1〜P3間単位やスレッドT1〜T3間単位等で作成しているが、これに限るものではなく、例えば、プロセス単位で作成するようにしてもよく、さらに、リソース単位に作成するようにしてもよい。
本発明の第1の実施の形態に係るクラスタシステムの概略構成を示す模式図である。 図1に示すクラスタシステムの負荷分散処理の流れを示すフローチャートである。 図1に示すクラスタシステムの負荷分散を説明するための模式図である。 本発明の第2の実施の形態に係るクラスタシステムの概略構成を示す模式図である。 図4に示すクラスタシステムの負荷分散を説明するための模式図である。 本発明の第3の実施の形態に係るクラスタシステムの概略構成を示す模式図である。 図6に示すクラスタシステムの負荷分散を説明するための模式図である。 本発明の第4の実施の形態に係るクラスタシステムの概略構成を示す模式図である。 本発明の第5の実施の形態に係るコンピュータシステムの概略構成を示す模式図である。 本発明の第6の実施の形態に係るコンピュータシステムの概略構成を示す模式図である。 本発明の第7の実施の形態に係るコンピュータシステムの概略構成を示す模式図である。 本発明の第8の実施の形態に係るクラスタシステムの概略構成を示す模式図である。
符号の説明
1,11…負荷分散システム(クラスタシステム又はコンピュータシステム)、2,12,15…システム資源(ノード又は中央処理装置)、5…オペレーティングシステム、P1〜P3,T1〜T3…実行単位(プロセス又はスレッド)

Claims (16)

  1. オペレーティングシステムに基づいてそれぞれ動作する複数のシステム資源に対し、プログラムを実行単位毎に割り当てる手段と、
    前記実行単位毎のリソース利用状況を取得し、取得した前記実行単位毎のリソース利用状況に基づいて前記実行単位間の関連度を決定し、前記実行単位間の関連度を示す関連情報を取得する手段と、
    取得した前記関連情報に基づいて、前記関連度が低い前記実行単位を他の前記システム資源に移動させる手段と、
    を備えることを特徴とする負荷分散システム。
  2. 複数の前記システム資源は、それぞれ対応する複数の前記オペレーティングシステムに基づいてそれぞれ動作することを特徴とする請求項1記載の負荷分散システム。
  3. 複数の前記システム資源は、1つのオペレーティングシステムに基づいてそれぞれ動作することを特徴とする請求項1記載の負荷分散システム。
  4. 前記実行単位はプロセスであることを特徴とする請求項1ないし3のいずれか一に記載の負荷分散システム。
  5. 前記実行単位はスレッドであることを特徴とする請求項1ないし3のいずれか一に記載の負荷分散システム。
  6. 前記システム資源はノードであることを特徴とする請求項1ないし5のいずれか一に記載の負荷分散システム。
  7. 前記システム資源は中央処理装置であることを特徴とする請求項1ないし5のいずれか一に記載の負荷分散システム。
  8. 前記中央処理装置はマルチコアの中央処理装置であることを特徴とする請求項7に記載の負荷分散システム。
  9. オペレーティングシステムに基づいてそれぞれ動作する複数のシステム資源に対し、プログラムを実行単位毎に割り当てるステップと、
    前記実行単位毎のリソース利用状況を取得し、取得した前記実行単位毎のリソース利用状況に基づいて前記実行単位間の関連度を決定し、前記実行単位間の関連度を示す関連情報を取得するステップと、
    取得した前記関連情報に基づいて、前記関連度が低い前記実行単位を他の前記システム資源に移動させるステップと、
    を備えることを特徴とする負荷分散方法。
  10. 複数の前記システム資源は、それぞれ対応する複数の前記オペレーティングシステムに基づいてそれぞれ動作することを特徴とする請求項9記載の負荷分散方法。
  11. 複数の前記システム資源は、1つのオペレーティングシステムに基づいてそれぞれ動作することを特徴とする請求項9記載の負荷分散方法。
  12. 前記実行単位はプロセスであることを特徴とする請求項9ないし11のいずれか一に記載の負荷分散方法。
  13. 前記実行単位はスレッドであることを特徴とする請求項9ないし11のいずれか一に記載の負荷分散方法。
  14. 前記システム資源はノードであることを特徴とする請求項9ないし13のいずれか一に記載の負荷分散方法。
  15. 前記システム資源は中央処理装置であることを特徴とする請求項9ないし13のいずれか一に記載の負荷分散方法。
  16. 前記中央処理装置はマルチコアの中央処理装置であることを特徴とする請求項15に記載の負荷分散方法。


JP2005288340A 2005-09-30 2005-09-30 負荷分散システム及び負荷分散方法 Pending JP2007102332A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005288340A JP2007102332A (ja) 2005-09-30 2005-09-30 負荷分散システム及び負荷分散方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005288340A JP2007102332A (ja) 2005-09-30 2005-09-30 負荷分散システム及び負荷分散方法

Publications (1)

Publication Number Publication Date
JP2007102332A true JP2007102332A (ja) 2007-04-19

Family

ID=38029242

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005288340A Pending JP2007102332A (ja) 2005-09-30 2005-09-30 負荷分散システム及び負荷分散方法

Country Status (1)

Country Link
JP (1) JP2007102332A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011155046A1 (ja) * 2010-06-10 2011-12-15 富士通株式会社 マルチコアプロセッサシステム、制御プログラム、および制御方法
WO2012017699A1 (ja) * 2010-08-06 2012-02-09 株式会社日立製作所 計算機システム、及び、データ管理方法
JP2015153330A (ja) * 2014-02-18 2015-08-24 日本電信電話株式会社 仮想マシン配置システム及び方法
JP2016099972A (ja) * 2014-11-26 2016-05-30 日本電信電話株式会社 プロセスマイグレーション方法及びクラスタシステム
CN115543609A (zh) * 2022-09-15 2022-12-30 中电信数智科技有限公司 一种基于聚类集成算法的云计算虚拟资源调度方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011155046A1 (ja) * 2010-06-10 2011-12-15 富士通株式会社 マルチコアプロセッサシステム、制御プログラム、および制御方法
WO2012017699A1 (ja) * 2010-08-06 2012-02-09 株式会社日立製作所 計算機システム、及び、データ管理方法
JP2012038053A (ja) * 2010-08-06 2012-02-23 Hitachi Ltd 計算機システム、及び、移動データ決定方法
JP2015153330A (ja) * 2014-02-18 2015-08-24 日本電信電話株式会社 仮想マシン配置システム及び方法
JP2016099972A (ja) * 2014-11-26 2016-05-30 日本電信電話株式会社 プロセスマイグレーション方法及びクラスタシステム
CN115543609A (zh) * 2022-09-15 2022-12-30 中电信数智科技有限公司 一种基于聚类集成算法的云计算虚拟资源调度方法
CN115543609B (zh) * 2022-09-15 2023-11-21 中电信数智科技有限公司 一种基于聚类集成算法的云计算虚拟资源调度方法

Similar Documents

Publication Publication Date Title
JP5022030B2 (ja) コンピュータシステム、これを構成するサーバ、そのジョブ実行制御方法及びプログラム
JP2007041720A (ja) ジョブステップ実行プログラムおよびジョブステップ実行方法
US8874811B2 (en) System and method for providing a flexible buffer management interface in a distributed data grid
US9075659B2 (en) Task allocation in a computer network
US9092266B2 (en) Scalable scheduling for distributed data processing
KR101781063B1 (ko) 동적 자원 관리를 위한 2단계 자원 관리 방법 및 장치
US20170031622A1 (en) Methods for allocating storage cluster hardware resources and devices thereof
US8468530B2 (en) Determining and describing available resources and capabilities to match jobs to endpoints
US20080115143A1 (en) Job Execution Method, Job Execution System, and Job Execution Program
US20120166630A1 (en) Dynamic load balancing system and method thereof
CN106462593B (zh) 大规模并行处理数据库的系统和方法
JP2010267025A (ja) ジョブスケジューリングプログラム、ジョブスケジューリング装置及びジョブスケジューリング方法
JPWO2005116832A1 (ja) 分散処理環境におけるジョブの実行を制御するためのコンピュータシステム、方法及びプログラム
JP2008226023A (ja) ジョブ割当装置、及びジョブ割当方法
JP2007102332A (ja) 負荷分散システム及び負荷分散方法
CN110914805A (zh) 用于分层任务调度的计算系统
WO2020108337A1 (zh) 一种cpu资源调度方法及电子设备
JP4862056B2 (ja) 仮想計算機管理機構及び仮想計算機システムにおけるcpu時間割り当て制御方法
JP2004046372A (ja) 分散処理システム、リソース割当方法およびプログラムならびにリソース割当プログラムが記録された記録媒体
JP2011175573A (ja) クラスタシステム、プロセス配置方法、及びプログラム
JP6191361B2 (ja) 情報処理システム、情報処理システムの制御方法及び制御プログラム
CN114489978A (zh) 资源调度方法、装置、设备及存储介质
KR102014246B1 (ko) 리소스 통합관리를 위한 메소스 처리 장치 및 방법
JP4773835B2 (ja) 処理制御装置およびその方法
Tsai et al. Distributed computing power service coordination based on peer-to-peer grids architecture

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070522

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080205