JP2009037369A - データベースサーバへのリソース割当て方法 - Google Patents
データベースサーバへのリソース割当て方法 Download PDFInfo
- Publication number
- JP2009037369A JP2009037369A JP2007200300A JP2007200300A JP2009037369A JP 2009037369 A JP2009037369 A JP 2009037369A JP 2007200300 A JP2007200300 A JP 2007200300A JP 2007200300 A JP2007200300 A JP 2007200300A JP 2009037369 A JP2009037369 A JP 2009037369A
- Authority
- JP
- Japan
- Prior art keywords
- database
- processing
- executed
- database server
- time
- 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
Links
Images
Abstract
【課題】
データ量の増加や複数バッチ処理の同時実行によりバッチ処理が予め設定した要求時間内に終了しない課題がある。
【解決手段】
バッチ処理実行中にて既に実行済みSQLの処理時間及びリソース使用量をもとに未実行バッチ処理手順の処理時間及びリソース使用量を算出した後、バッファヒット率等のデータベースサーバの状態を示す情報、I/O回数やCPU負荷などのOSの情報を用いて処理手順及びリソース使用量を再計算し、必要に応じてリソースの割当てを行う。
【選択図】 図1
データ量の増加や複数バッチ処理の同時実行によりバッチ処理が予め設定した要求時間内に終了しない課題がある。
【解決手段】
バッチ処理実行中にて既に実行済みSQLの処理時間及びリソース使用量をもとに未実行バッチ処理手順の処理時間及びリソース使用量を算出した後、バッファヒット率等のデータベースサーバの状態を示す情報、I/O回数やCPU負荷などのOSの情報を用いて処理手順及びリソース使用量を再計算し、必要に応じてリソースの割当てを行う。
【選択図】 図1
Description
本発明は、データベース管理システムに適した予め実行する内容が既知である一連のデータベース実行処理に好適なリソース割当て方法に関するものである。
DBMS(DataBase Management System:データベース管理システム)は、データベースのデータに対する問い合わせに答えるシステムである。
データベースシステムへはデータベース処理要求、例えばSQL(Structured Query Language)を用いてデータの取り出し、書き込みを行う。
ひとつのデータベースシステムに対して、バッチ処理と呼ばれる予め実行する内容が既知である一連のSQLでは、オンライン処理が停止もしくはアクセス量が少ない夜間等に行なわれる場合が多い。しかし、近年、ネットビジネスが拡大する中、24時間365日のサービスを提供するシステムが求められている。
オンライン処理とバッチ処理が同時に稼働する環境において、複数のバッチ処理が要求時間内に確実に終了することが重要となっている。要求時間内にバッチ処理が終了しない現象が発生すると、業務に多大な影響を与える。また、バッチ処理はその特性上、負荷が集中するサーバやリソースが変化する場合が多い。
データベースシステムへはデータベース処理要求、例えばSQL(Structured Query Language)を用いてデータの取り出し、書き込みを行う。
ひとつのデータベースシステムに対して、バッチ処理と呼ばれる予め実行する内容が既知である一連のSQLでは、オンライン処理が停止もしくはアクセス量が少ない夜間等に行なわれる場合が多い。しかし、近年、ネットビジネスが拡大する中、24時間365日のサービスを提供するシステムが求められている。
オンライン処理とバッチ処理が同時に稼働する環境において、複数のバッチ処理が要求時間内に確実に終了することが重要となっている。要求時間内にバッチ処理が終了しない現象が発生すると、業務に多大な影響を与える。また、バッチ処理はその特性上、負荷が集中するサーバやリソースが変化する場合が多い。
例えば、1ヶ月の注文表と商品表より1ヶ月の売上高表を作成するバッチ処理の場合、注文表及び商品表をデータベースよりアクセスする際、表がメモリ上に存在する場合は、該当データをメモリから取得する。メモリ上に存在しない場合は、該当データをディスクから取得する。該当データをディスクから取得する場合、I/Oが発生する。このため、該当データがメモリに存在しない場合が多いほど、ディスクI/Oが多く発生することになる。
また、注文表と商品表より売上高表を作成する際、一次表を作成するため、CPUの消費及びディスクI/Oが発生する。
このようなバッチ処理の場合、負荷が集中する箇所全てにCPUやメモリを十分な量を割当てておくことは資源の有効活用の観点から得策ではない。
負荷が集中している箇所へのリソースの割当てが効果的であるが、バッチ処理では、前記のとおり、負荷の集中する箇所が時間によって変化するため、システム管理者が負荷の集中する時間帯を予測するのは困難であり、予め多くのリソース割当てている場合が多い。
また、注文表と商品表より売上高表を作成する際、一次表を作成するため、CPUの消費及びディスクI/Oが発生する。
このようなバッチ処理の場合、負荷が集中する箇所全てにCPUやメモリを十分な量を割当てておくことは資源の有効活用の観点から得策ではない。
負荷が集中している箇所へのリソースの割当てが効果的であるが、バッチ処理では、前記のとおり、負荷の集中する箇所が時間によって変化するため、システム管理者が負荷の集中する時間帯を予測するのは困難であり、予め多くのリソース割当てている場合が多い。
バッチ処理を構成するSQLを解析することで、大まかな処理時間及び必要なリソース量を算出することは可能である。例えば、非特許文献1に記載された技術は、DBMSのディクショナリに保管された、処理対象となる問い合わせに関する各種統計情報を基にして、各処理フェーズを分配している。
Joel L. Wolf、John Turek、 Ming-Syan Chen and Philip S. Yu著、"A Hierarchical Approach to Parallel Multiquery Scheduling"、IEEE Transactionson Parallel and Distributed Systems、 6(6):578--590、 June 1995.
データ量の増加や複数バッチ処理の同時実行によりバッチ処理が予め設定した要求時間内に終了しない課題がある。
データ量の増加には、CPUやメモリの割当てを行う場合が多いが、バッチ処理の特性としてCPUやメモリに対しての負荷の集中は一時的であり、負荷が集中するCPUやメモリは変化するため、CPUやメモリを有効活用する必要がある。近年、サーバ仮想化技術によりCPUやメモリを瞬時に切り替えることが可能となっているが、バッチ制御にあわせてCPUやメモリを切り替えるには負荷が集中するリソースの予測が困難であるため、運用コスト削減の観点で問題であった。
複数バッチ処理の同時実行やオンライン処理との同時実行においても、バッチ処理の特性である負荷が集中するCPUやI/Oへの負荷集中は一時的であるため、バッチ処理同士の実行制御を設計する必要があり、運用コスト削減の観点で問題であった。
データ量の増加には、CPUやメモリの割当てを行う場合が多いが、バッチ処理の特性としてCPUやメモリに対しての負荷の集中は一時的であり、負荷が集中するCPUやメモリは変化するため、CPUやメモリを有効活用する必要がある。近年、サーバ仮想化技術によりCPUやメモリを瞬時に切り替えることが可能となっているが、バッチ制御にあわせてCPUやメモリを切り替えるには負荷が集中するリソースの予測が困難であるため、運用コスト削減の観点で問題であった。
複数バッチ処理の同時実行やオンライン処理との同時実行においても、バッチ処理の特性である負荷が集中するCPUやI/Oへの負荷集中は一時的であるため、バッチ処理同士の実行制御を設計する必要があり、運用コスト削減の観点で問題であった。
バッチ処理実行中にて既に実行済みSQLの処理時間及びリソース使用量をもとに未実行バッチ処理手順の処理時間及びリソース使用量を算出した後、バッファヒット率等のデータベースサーバの状態を示す情報、I/O回数やCPU負荷などのOSの情報を用いて処理手順及びリソース使用量を再計算し、必要に応じてリソースの割当てを行う。
本発明によれば、システムの負荷が変動する環境において、実行中のバッチ処理が続行可能かどうかを早期に判断し、システム運用管理者に連絡することにより、早期に対処を可能とする。
本発明を実施するための最良の形態について図1を用いて具体的に説明する。
予め実行する内容が既知である一連のSQLをバッチ処理と呼ぶ。
また、オンラインショッピングに代表されるようなインターネット等を介して多数のユーザが接続し、実行する内容や手順が既知でない処理のことをオンライン処理と呼ぶ。
バッチ処理はオンライン処理と異なり、予め実行する内容が既知であり、実行する順序も決まっている。バッチ処理実行前もしくはバッチ処理実行中に、未実行のSQLを事前に解析し、SQL文の実際に実行するステップ数(ダイナミックステップ数)と予め割当てられたCPU数及び想定のCPU利用率より該当バッチ処理のSQLの実行にかかる時間(処理時間)を算出する。
算出した処理時間によりバッチ処理の終了予想時刻が算出でき、バッチ処理の終了予想時刻が予め設定したバッチ処理終了要求時刻を越える場合は、管理者に通知し、バッチ処理の停止等の制御を行う。
具体的な例を用いて説明する。
アプリケーションプログラム1がバッチ処理を実行すると、データベース管理システムはSQLを解析、実行する。
バッチ処理実行中に図1のフローチャートを定期的に実行することで、バッチ終了要求時間内に、バッチ処理を終了させることが可能となることを示している。
予め実行する内容が既知である一連のSQLをバッチ処理と呼ぶ。
また、オンラインショッピングに代表されるようなインターネット等を介して多数のユーザが接続し、実行する内容や手順が既知でない処理のことをオンライン処理と呼ぶ。
バッチ処理はオンライン処理と異なり、予め実行する内容が既知であり、実行する順序も決まっている。バッチ処理実行前もしくはバッチ処理実行中に、未実行のSQLを事前に解析し、SQL文の実際に実行するステップ数(ダイナミックステップ数)と予め割当てられたCPU数及び想定のCPU利用率より該当バッチ処理のSQLの実行にかかる時間(処理時間)を算出する。
算出した処理時間によりバッチ処理の終了予想時刻が算出でき、バッチ処理の終了予想時刻が予め設定したバッチ処理終了要求時刻を越える場合は、管理者に通知し、バッチ処理の停止等の制御を行う。
具体的な例を用いて説明する。
アプリケーションプログラム1がバッチ処理を実行すると、データベース管理システムはSQLを解析、実行する。
バッチ処理実行中に図1のフローチャートを定期的に実行することで、バッチ終了要求時間内に、バッチ処理を終了させることが可能となることを示している。
ステップ4000より開始する。本実施例では、SQLが10%実行済みの状態で開始していることを示している。ステップ4000の実行間隔はユーザの設定により変更が可能である。実行間隔が短いほど必要なリソースをすばやく割当てることが可能となる。
ステップ4001にて、現在実行中バッチの実行時間、バッチ実行時のバッファヒット率、バッチが作成する一次表サイズを取得する。ここでバッファヒット率とは、要求されたデータがメモリ上に存在する確率を表している。バッファヒット率が高いほど、実行時間は短くなる。
図1の例では、ステップ4001にて10%実行時の情報2000を取得したとする。なお、バッチ実行前に予め図16に示す方法で実行予定のSQLを解析し、予想バッファヒット率、予想一次表サイズ、予想実行時間を算出済みとする。
ステップ4002にて、現在の実行時間は予定通りか判定する。実行時間が予定時間よりも短い場合は、問題なしとしてステップ4010に移る。実行時間が予定通りでない場合は、リソース追加を行う必要があるため、ステップ4003に移る。
ステップ4003にて、10%実行時のバッファヒット率が予想より高い場合は、問題なしとして、ステップ4006に移る。10%実行時のバッファヒット率が予想より低い場合は、バッファヒット率が低いために、実行時間が予定通り進んでないと判断し、ステップ4004に移る。ステップ4004ではメモリ割当て量を計算し、ステップ4005に移る。
ステップ4002にて、現在の実行時間は予定通りか判定する。実行時間が予定時間よりも短い場合は、問題なしとしてステップ4010に移る。実行時間が予定通りでない場合は、リソース追加を行う必要があるため、ステップ4003に移る。
ステップ4003にて、10%実行時のバッファヒット率が予想より高い場合は、問題なしとして、ステップ4006に移る。10%実行時のバッファヒット率が予想より低い場合は、バッファヒット率が低いために、実行時間が予定通り進んでないと判断し、ステップ4004に移る。ステップ4004ではメモリ割当て量を計算し、ステップ4005に移る。
ステッ4005において、ステップ4004で算出したメモリを割当て、ステップ4006に移る。
ステップ4006にて、10%実行時の一次表のサイズが予想より小さい場合は、問題なしとして、ステップ4009に移る。
10%実行時の一次表のサイズが予想より大きい場合は、一次表のサイズが大きいために実行時間が予定通り進んでいないと判断する。
このため、ステップ4007において、10%実行時の一次表のサイズでの必要なCPU量を算出し、ステップ4008において、ステップ4007で算出したCPU量を割当て、ステップ4009に移る。
ステップ4006にて、10%実行時の一次表のサイズが予想より小さい場合は、問題なしとして、ステップ4009に移る。
10%実行時の一次表のサイズが予想より大きい場合は、一次表のサイズが大きいために実行時間が予定通り進んでいないと判断する。
このため、ステップ4007において、10%実行時の一次表のサイズでの必要なCPU量を算出し、ステップ4008において、ステップ4007で算出したCPU量を割当て、ステップ4009に移る。
ステップ4009では、ステップ4005及びステップ4008で割当てたリソースでの実行時間の再計算を行い、予定時間内にバッチが終了するかどうか判定する。
終了する見込みの場合は、ステップ4010にて終了時刻を提示し、終了する。
予定時間内にバッチが終了しない見込みの場合は、ステップ4011にて管理者に通知し、終了する。
終了する見込みの場合は、ステップ4010にて終了時刻を提示し、終了する。
予定時間内にバッチが終了しない見込みの場合は、ステップ4011にて管理者に通知し、終了する。
図2は、本実施形態のデータベース管理システムの構成を示す一例である。
システム開発者が作成したアプリケーションプログラム1と問い合わせ処理やリソース管理などのデータベースシステム全体の管理を行うデータベース管理システム6がある。
上記のアプリケーションプログラム1は、ネットワークを通じて多数の要求を受け付けるオンライン処理または予め実行する内容が既知であるバッチ処理に分けられる。
バッチ処理では、実行する内容としてバッチ実行情報2100を有する。
システム開発者が作成したアプリケーションプログラム1と問い合わせ処理やリソース管理などのデータベースシステム全体の管理を行うデータベース管理システム6がある。
上記のアプリケーションプログラム1は、ネットワークを通じて多数の要求を受け付けるオンライン処理または予め実行する内容が既知であるバッチ処理に分けられる。
バッチ処理では、実行する内容としてバッチ実行情報2100を有する。
上記のデータベース管理システム6は、SQL解析部10、リソース管理部30、処理部20を具備する。
また、データベース管理システム6は、データベースアクセス対象となるデータを永続的にあるいは一時的に格納するデータベース3、そしてバッチ統計情報2200、SQL単価情報2300、DB解析情報2400、OS統計情報2500、CPU管理情報2600を有する。
上記データベース管理システム6は、ネットワークなどを介して他のシステムと接続されている。1つのデータベース管理システムは複数の処理部20を配置することにより負荷を分散させ、大規模なデータベースに対するデータ処理も高速に実現することができる。
また、データベース管理システム6は、データベースアクセス対象となるデータを永続的にあるいは一時的に格納するデータベース3、そしてバッチ統計情報2200、SQL単価情報2300、DB解析情報2400、OS統計情報2500、CPU管理情報2600を有する。
上記データベース管理システム6は、ネットワークなどを介して他のシステムと接続されている。1つのデータベース管理システムは複数の処理部20を配置することにより負荷を分散させ、大規模なデータベースに対するデータ処理も高速に実現することができる。
サーバ仮想化機構2は、CPU1005、I/O制御装置1006、通信制御装置1001−3を具備しており、サーバ仮想化機構2の機能によってDBサーバの処理をCPU1005、I/O制御装置、通信制御装置に割当てることができる。CPUは1つのCPUもしくは複数のCPUによって実現される。
上記データベース管理システム6は、サーバ仮想化機構2に対してCPU割当てを指示するリソース管理部30を具備する。
上記データベース管理システム6は、サーバ仮想化機構2に対してCPU割当てを指示するリソース管理部30を具備する。
図3は本実施形態におけるコンピュータシステムのハードウェア構成の一例を示す図である。
この例のコンピュータシステムは、情報処理装置1000、1100及び1200を含む。
情報処理装置1000は、通信制御装置1001−1、CPU1005−1、主記憶装置1002−1、I/O制御装置1006−1により構成される。主記憶装置1002−1上には、OS1003−1及びアプリケーションプログラム1004が置かれ、CPU1005−1を用いて稼働している。
アプリケーションプログラム1004がDBMS6の処理部20にユーザ問い合わせを行うと、情報処理装置1000の通信制御装置1001−1と情報処理装置1100の通信制御装置1001−3によって、ネットワーク1300を経由してDBMS6の処理部20に問い合わせ要求が送られる。
アプリケーションプログラム1004は管理者が実行するため、実行する時刻が決められている場合が多い。
この例のコンピュータシステムは、情報処理装置1000、1100及び1200を含む。
情報処理装置1000は、通信制御装置1001−1、CPU1005−1、主記憶装置1002−1、I/O制御装置1006−1により構成される。主記憶装置1002−1上には、OS1003−1及びアプリケーションプログラム1004が置かれ、CPU1005−1を用いて稼働している。
アプリケーションプログラム1004がDBMS6の処理部20にユーザ問い合わせを行うと、情報処理装置1000の通信制御装置1001−1と情報処理装置1100の通信制御装置1001−3によって、ネットワーク1300を経由してDBMS6の処理部20に問い合わせ要求が送られる。
アプリケーションプログラム1004は管理者が実行するため、実行する時刻が決められている場合が多い。
情報処理装置1100は、サーバ仮想化機構2が配置されている。
サーバ仮想化機構2上には、CPU1005−3、CPU1005−4、CPU1005−5、通信制御装置1001−3、主記憶装置1002−3、主記憶装置1002−4、I/O制御装置1006−3により構成されている。
主記憶装置1002上にはOS1003が配置されている。サーバ仮想化機構2では複数のOSを置くことが可能であり、独立して稼働することができる。
主記憶装置1002上には、それぞれのOS1003−3、OS1003−4上で稼働するデータベース処理部20を有するデータベース管理システム6が置かれ、サーバ仮想化機構2によって割当てられたCPU1005−3、CPU1005−4またはCPU1005−5、を用いて稼働している。これら複数のOS上で動作するDBMS1006は独立して稼働することができ、例えば一つのDBMSはバッチ処理用、もう一つのDBMSはオンライン用とすることが可能である。
サーバ仮想化機構2上には、CPU1005−3、CPU1005−4、CPU1005−5、通信制御装置1001−3、主記憶装置1002−3、主記憶装置1002−4、I/O制御装置1006−3により構成されている。
主記憶装置1002上にはOS1003が配置されている。サーバ仮想化機構2では複数のOSを置くことが可能であり、独立して稼働することができる。
主記憶装置1002上には、それぞれのOS1003−3、OS1003−4上で稼働するデータベース処理部20を有するデータベース管理システム6が置かれ、サーバ仮想化機構2によって割当てられたCPU1005−3、CPU1005−4またはCPU1005−5、を用いて稼働している。これら複数のOS上で動作するDBMS1006は独立して稼働することができ、例えば一つのDBMSはバッチ処理用、もう一つのDBMSはオンライン用とすることが可能である。
外部記憶装置4上には、データベース管理システム6が管理するデータベース3が格納される。
DBMS6はI/O制御装置1006−3によりI/Oパス1300を通じて外部記憶装置4からデータの読み出し、書き出しを行い、通信制御装置1001−3によりネットワークで接続された他の通信制御装置1001−1または1001−2とデータの送受信を行う。I/O制御装置1006−3においても、サーバ仮想化機構2によって割当てられたI/Oパス1300を使用して外部記憶装置4よりデータの読み出し、書き出しを行う。
通信制御装置1001−3についてもサーバ仮想化機構2によって使用するネットワーク1300が割当てられる。
DBMS6はI/O制御装置1006−3によりI/Oパス1300を通じて外部記憶装置4からデータの読み出し、書き出しを行い、通信制御装置1001−3によりネットワークで接続された他の通信制御装置1001−1または1001−2とデータの送受信を行う。I/O制御装置1006−3においても、サーバ仮想化機構2によって割当てられたI/Oパス1300を使用して外部記憶装置4よりデータの読み出し、書き出しを行う。
通信制御装置1001−3についてもサーバ仮想化機構2によって使用するネットワーク1300が割当てられる。
情報処理装置1200は、通信制御装置1001−2、CPU1005−2、主記憶装置1002−2、I/O制御装置1006−2により構成される。主記憶装置1002−2上には、OS1003−2及びクライアントサーバ1007が置かれ、CPU1005−2を用いて稼働している。
クライアントサーバ1007はユーザ端末1008よりネットワーク1300を経由して問い合わせを受け取ると、情報処理装置1100のDBMS6に対してネットワーク1300及び通信制御装置1001−3を経由して問い合わせ処理を行う。通常、ユーザからの問い合わせは不定期である。
クライアントサーバ1007はユーザ端末1008よりネットワーク1300を経由して問い合わせを受け取ると、情報処理装置1100のDBMS6に対してネットワーク1300及び通信制御装置1001−3を経由して問い合わせ処理を行う。通常、ユーザからの問い合わせは不定期である。
以下、具体例を用いて説明する。
図4は、顧客からの注文時に注文の内容を記録する注文表を示す。注文表には、注文時に採番される一意の注文No、一意の商品を表す商品No、一意の顧客を表す顧客ID、注文時の日時を表す注文日時がある。注文発生すると、注文表に一行追加される。
図5に商品表を示す。商品表には一意の商品を表す商品No、商品の名前を表す商品名、商品の値段を表す値段、商品の区分を表す商品区分がある。管理している全商品に商品Noが割当てられている。
図4は、顧客からの注文時に注文の内容を記録する注文表を示す。注文表には、注文時に採番される一意の注文No、一意の商品を表す商品No、一意の顧客を表す顧客ID、注文時の日時を表す注文日時がある。注文発生すると、注文表に一行追加される。
図5に商品表を示す。商品表には一意の商品を表す商品No、商品の名前を表す商品名、商品の値段を表す値段、商品の区分を表す商品区分がある。管理している全商品に商品Noが割当てられている。
図4の注文表及び図5の商品表より1ヶ月間の商品ごとの売上高を計算する。
売上高表を作成するために実行するSQL文の例を図6に示す。
図6の例では、注文表と商品表より注文表の注文日時が’06/04/01’以降の注文表に関して、注文表の商品Noと商品表の商品Noが一致した商品を抽出し、図7に示す売上高表を作成する。
売上高表を作成するために実行するSQL文の例を図6に示す。
図6の例では、注文表と商品表より注文表の注文日時が’06/04/01’以降の注文表に関して、注文表の商品Noと商品表の商品Noが一致した商品を抽出し、図7に示す売上高表を作成する。
図7に作成される売上高表を示す。
売上高表は一意の商品を表す商品No、商品の名前を表す商品名、商品ごとの一ヶ月間の注文の総数を表す総注文数、商品ごとの一ヶ月間の売上高を表す総売上高がある。
売上高表は商品コードで昇順にソートしている。注文表と商品表のマージ処理を行う際、作業表と呼ばれる一時的な表をデータベース領域に作成する。作業表はデータベース3に割当てられている。
売上高表は一意の商品を表す商品No、商品の名前を表す商品名、商品ごとの一ヶ月間の注文の総数を表す総注文数、商品ごとの一ヶ月間の売上高を表す総売上高がある。
売上高表は商品コードで昇順にソートしている。注文表と商品表のマージ処理を行う際、作業表と呼ばれる一時的な表をデータベース領域に作成する。作業表はデータベース3に割当てられている。
図8に予想処理時間算出に必要な情報を示す。
一件検索するステップ数とは、SQL実行時に1件を検索するときに実際に走行するステップ数を示す。本ステップ数より、1秒あたりCPUが何ステップ実行可能かの情報を元に実行時間を算出する。注文表サイズ及び商品表サイズより一次表のサイズが算出可能である。一次表のサイズより単位時間あたりのI/O回数が算出可能である。上記予想値より、バッチの実行時間が算出可能である。
図14のフローを用いて予想処理時間及び予想一次表サイズを計算する。
一件検索するステップ数とは、SQL実行時に1件を検索するときに実際に走行するステップ数を示す。本ステップ数より、1秒あたりCPUが何ステップ実行可能かの情報を元に実行時間を算出する。注文表サイズ及び商品表サイズより一次表のサイズが算出可能である。一次表のサイズより単位時間あたりのI/O回数が算出可能である。上記予想値より、バッチの実行時間が算出可能である。
図14のフローを用いて予想処理時間及び予想一次表サイズを計算する。
図9に予測値の一例を表す。
バッファヒット率とは、データベースアクセス時にディスクI/O時間の短縮のため、一部のデータベース情報をメモリ上に格納しており、そのヒット率である。ヒット率が高いほど、処理時間が長いI/O回数が減り、SQLの処理時間が早くなる。検索範囲が広範囲になるほど、バッファヒット率は低下する。
予想CPU利用率とは、SQL実行時のCPU利用率を表す。
バッファヒット率とは、データベースアクセス時にディスクI/O時間の短縮のため、一部のデータベース情報をメモリ上に格納しており、そのヒット率である。ヒット率が高いほど、処理時間が長いI/O回数が減り、SQLの処理時間が早くなる。検索範囲が広範囲になるほど、バッファヒット率は低下する。
予想CPU利用率とは、SQL実行時のCPU利用率を表す。
図10に、10%実行時のバッチ実行中の実測値の例1を示す。
図10の例では、10%実行時の実行時間が予想値100秒に対して120秒要している。このため、図1のステップ4002において、実行時間が予想値を越えているため、ステップ4003に移る。ステップ4003において、バッファヒット率が予想値70%に対して実測値が60%となっているため、ステップ4004に移る。ステップ4004にて、バッファヒット率とメモリ量の統計データより予想バッファヒット率以上となるようにメモリ量を算出し、ステップ4005において、メモリ割当て指示をリソース管理部30に対して行う。リソース管理部30では、サーバ仮想化機構2に対して要求量のメモリが割当て可能か問い合わせを行う。割当て可能な場合は、割当てを行う。
割り当てが不可能な場合は、割当て可能分のみ割当てを行う。
図10の例では、10%実行時の実行時間が予想値100秒に対して120秒要している。このため、図1のステップ4002において、実行時間が予想値を越えているため、ステップ4003に移る。ステップ4003において、バッファヒット率が予想値70%に対して実測値が60%となっているため、ステップ4004に移る。ステップ4004にて、バッファヒット率とメモリ量の統計データより予想バッファヒット率以上となるようにメモリ量を算出し、ステップ4005において、メモリ割当て指示をリソース管理部30に対して行う。リソース管理部30では、サーバ仮想化機構2に対して要求量のメモリが割当て可能か問い合わせを行う。割当て可能な場合は、割当てを行う。
割り当てが不可能な場合は、割当て可能分のみ割当てを行う。
図11にバッチ実行中の実測値の例2を示す。
図11の例では、実行時間が予想値100秒に対して120秒要している。このため、図1のステップ4002において、実行時間が予想値を越えているため、ステップ4003に移る。ステップ4003において、バッファヒット率は予想値と同じであるため、ステップ4006に移る。
ステップ4006において、一次表のサイズが予想よりも大きいため、ステップ4007に移る。ステップ4007において、10%実行時の一次表のサイズの処理を行うためにはどの程度のCPU数が必要か統計データより算出する。
ステップ4008において、ステップ4007で算出したCPU数をリソース管理部30に通知する。リソース管理部30では、サーバ仮想化機構2に対して必要なCPU数の割当て依頼を行い、割当てを行う。
図11の例では、実行時間が予想値100秒に対して120秒要している。このため、図1のステップ4002において、実行時間が予想値を越えているため、ステップ4003に移る。ステップ4003において、バッファヒット率は予想値と同じであるため、ステップ4006に移る。
ステップ4006において、一次表のサイズが予想よりも大きいため、ステップ4007に移る。ステップ4007において、10%実行時の一次表のサイズの処理を行うためにはどの程度のCPU数が必要か統計データより算出する。
ステップ4008において、ステップ4007で算出したCPU数をリソース管理部30に通知する。リソース管理部30では、サーバ仮想化機構2に対して必要なCPU数の割当て依頼を行い、割当てを行う。
ステップ4004では、必要数分のメモリ量をサーバ仮想化機構2より割当てることになるが、サーバ仮想化機構2が要求数の割当量を確保していない場合がある。この場合は、他のオンライン処理等で使用しているメモリを割当てるかどうか判定し、割当てる場合は、他のオンライン処理等で使用しているメモリをバッチ処理に割当てる。他のオンライン処理等で使用しているメモリを割当てるかどうかは予め管理者が定義しているものとする。詳細は図20に示す。
図12にメモリ量とバッファヒット率の統計データの表を示す。バッチ実行前に統計データとして表ごとにメモリ量とバッファヒット率の統計情報を取得する。実測したバッファヒット率を、予測したバッファヒット率にするために、バッファメモリを何バイトにするかを判断するため、図12のメモリ量とバッファヒット率を使用する。
図13に一次表作成時に一定時間内で終了させるのに必要なCPU数と一次表サイズの関係を表す表を示す。一次表作成時、一次表に対してソート処理等が行われるため、一次表サイズが大きくなるほど必要なCPU数が多くなる。バッチ処理を行う前に必要なCPU数と一次表サイズの関係を統計データとして取得する。
図14にステップ単価を表す図3000を示す。
図14では、1件selectを行うのに6000ステップ必要であることを示している。同様に1件insertを行うのに5000ステップ、1件updateを行うのに7000ステップ、1件deleteを行うのに4000ステップが必要であることを示している。
図14にステップ単価を表す図3000を示す。
図14では、1件selectを行うのに6000ステップ必要であることを示している。同様に1件insertを行うのに5000ステップ、1件updateを行うのに7000ステップ、1件deleteを行うのに4000ステップが必要であることを示している。
図15に、ダイナミックステップ数を算出する処理フローを示す。
ステップ40000より実行するトランザクションを解析する。
ステップ40010にて、トランザクションを構成するSQLの解析を実行する。ステップ40020からステップ40090において、該当処理に応じてステップ単価を求めていく。図14の例では、ステップ40020ではselect処理がある場合は、ステップ40030でselectのステップ単価を総量に加えることを示している。同様にステップ40040の場合はinsert処理がある場合は、ステップ40050でinsertのステップ単価を総量に加える。同様にステップ40060ではupdate処理がある場合はステップ40070でupdateのステップ単価を総量に加える。同様にステップ40080ではdelete処理がある場合はdelete処理のステップ単価を加える。
ステップ40100にて、全ての解析が完了したかどうかを判定し、解析が完了していない場合は、ステップ40120に移る。
ステップ40120では、未解析の次のSQLに移り、ステップ40010より解析を行う。
ステップ40100にて、全ての解析処理が終了した場合は、ステップ40110にてトランザクション解析処理を終了する。
例えば、図6のSQL文において1件あたりのselect単価が6000ステップの場合、100件検索するのに要するダイナミックステップ数は600000ステップとなる。
ステップ40000より実行するトランザクションを解析する。
ステップ40010にて、トランザクションを構成するSQLの解析を実行する。ステップ40020からステップ40090において、該当処理に応じてステップ単価を求めていく。図14の例では、ステップ40020ではselect処理がある場合は、ステップ40030でselectのステップ単価を総量に加えることを示している。同様にステップ40040の場合はinsert処理がある場合は、ステップ40050でinsertのステップ単価を総量に加える。同様にステップ40060ではupdate処理がある場合はステップ40070でupdateのステップ単価を総量に加える。同様にステップ40080ではdelete処理がある場合はdelete処理のステップ単価を加える。
ステップ40100にて、全ての解析が完了したかどうかを判定し、解析が完了していない場合は、ステップ40120に移る。
ステップ40120では、未解析の次のSQLに移り、ステップ40010より解析を行う。
ステップ40100にて、全ての解析処理が終了した場合は、ステップ40110にてトランザクション解析処理を終了する。
例えば、図6のSQL文において1件あたりのselect単価が6000ステップの場合、100件検索するのに要するダイナミックステップ数は600000ステップとなる。
図16に、予想処理時間及び予想一次表サイズの算出方法を示す、
ステップ5000にて、バッチ処理を構成するSQLを解析する。ステップ5001にて、解析により、インデクスの有無、参照または更新する表のサイズを取得する。ステップ5002にて、ステップ5000、ステップ5001の情報を元に、SQLのステップ単価を算出する。ここで、SQLのステップ単価とは、1SQLを実行するのに必要なステップ数である。
ステップ5003にて、ステップ5002で算出したSQLステップ単価及び割当てられているCPU数、想定するCPU利用率、予想バッファヒット率より統計データに基づいて予想処理時間を算出する。
ステップ5004にて、SQL解析より予想一次表サイズを計算する。
具体的に図6の2100で示すSQLと図7で示す商品表及び図8で示す予想処理時間算出に必要な情報より一時表のサイズを算出する。
ステップ5001にて、インデクス有無と参照または更新する表のサイズを判定し、インデクスなしで表のサイズは500Mbyteと取得する。
該当するSQLで1件検索するステップ単価を計算する。この計算式はSQLを実行するプログラムの走行するステップ数を求めるものであり、予め与えられている。これにより1件検索するステップ数は5000ステップを算出する。
ステップ5000にて、バッチ処理を構成するSQLを解析する。ステップ5001にて、解析により、インデクスの有無、参照または更新する表のサイズを取得する。ステップ5002にて、ステップ5000、ステップ5001の情報を元に、SQLのステップ単価を算出する。ここで、SQLのステップ単価とは、1SQLを実行するのに必要なステップ数である。
ステップ5003にて、ステップ5002で算出したSQLステップ単価及び割当てられているCPU数、想定するCPU利用率、予想バッファヒット率より統計データに基づいて予想処理時間を算出する。
ステップ5004にて、SQL解析より予想一次表サイズを計算する。
具体的に図6の2100で示すSQLと図7で示す商品表及び図8で示す予想処理時間算出に必要な情報より一時表のサイズを算出する。
ステップ5001にて、インデクス有無と参照または更新する表のサイズを判定し、インデクスなしで表のサイズは500Mbyteと取得する。
該当するSQLで1件検索するステップ単価を計算する。この計算式はSQLを実行するプログラムの走行するステップ数を求めるものであり、予め与えられている。これにより1件検索するステップ数は5000ステップを算出する。
図17にステップ4004のメモリ割当量計算の詳細フローを示す。
ステップ5100にて、DBMSより現在のバッファヒット率を取得する。
ステップ5101にて、予想バッファヒット率になるように、メモリ割当て統計データ2800よりメモリ割当量を計算する。
実測値が2800の例では、バッファヒット率が60%、一次表のサイズが100Mbyteである。事前の統計データよりもヒット率が低いため、バッファヒット率を70%にするようにメモリ割当量を計算する。
ステップ5100にて、DBMSより現在のバッファヒット率を取得する。
ステップ5101にて、予想バッファヒット率になるように、メモリ割当て統計データ2800よりメモリ割当量を計算する。
実測値が2800の例では、バッファヒット率が60%、一次表のサイズが100Mbyteである。事前の統計データよりもヒット率が低いため、バッファヒット率を70%にするようにメモリ割当量を計算する。
ステップ5102にて、サーバ仮想化機構2に対して、ステップ5101で算出したメモリ量を割当てるよう要求する。
図18にステップ4007のCPU量計算の詳細フローを示す。
ステップ5200にて、DBMSより現在の一次表のサイズを取得する。
ステップ5201より現在の一次表サイズより最終的な一次表サイズを計算する。
ステップ5202にて、最終的な一次表サイズをもとに、CPU割当て統計データ2900より必要なCPU数を算出する。
ステップ5203にてサーバ仮想化機構2に必要なCPU数を要求する。
ステップ5200にて、DBMSより現在の一次表のサイズを取得する。
ステップ5201より現在の一次表サイズより最終的な一次表サイズを計算する。
ステップ5202にて、最終的な一次表サイズをもとに、CPU割当て統計データ2900より必要なCPU数を算出する。
ステップ5203にてサーバ仮想化機構2に必要なCPU数を要求する。
図19にDBMSシステム毎の優先度の例を表す図3000を示す。
図3000では、情報処理装置1100上に3つのDBMSが稼働していることを表している。
DBMS1は情報処理装置1000から実行されるバッチ処理1を実行しており、優先度は一番高い。BDMS2は情報処理装置1000から実行されるバッチ処理2を実行しており、優先度はバッチ処理1の次に高い。DBMS3は情報処理装置1200から実行されるオンライン処理を実行しており、優先度は低い事を表している。
図3000では、情報処理装置1100上に3つのDBMSが稼働していることを表している。
DBMS1は情報処理装置1000から実行されるバッチ処理1を実行しており、優先度は一番高い。BDMS2は情報処理装置1000から実行されるバッチ処理2を実行しており、優先度はバッチ処理1の次に高い。DBMS3は情報処理装置1200から実行されるオンライン処理を実行しており、優先度は低い事を表している。
図20に図1のステップ4011の詳細フローを示す。
ステップ5300にてサーバ仮想化機構が保持しているリソースを移動しても予想時間内にバッチが終了しない見込みの場合は、ステップ5301にて、サーバ仮想化機構内で他のDBMSが動作しているか判定し、他のDBMSで動作している場合は、ステップ5302に移る。
ステップ5302では、優先順位表3000に従い他のDBMSで使用しているリソースを必要量だけ割当てるようサーバ仮想化機構に要求する。
ステップ5303にて、管理者に通知する。
具体的には、ステップ5200にて最終的な処理量の半分時点での一次表のサイズが200Mbyteの場合、ステップ5201で最終的な一次表のサイズは400Mbyteとなる。この時の必要なCPU数はCPU割当て統計データ2900より4つであるため、ステップ5203にてサーバ仮想化機構に4つのCPUの割当てを要求する。
ステップ5300にてサーバ仮想化機構が保持しているリソースを移動しても予想時間内にバッチが終了しない見込みの場合は、ステップ5301にて、サーバ仮想化機構内で他のDBMSが動作しているか判定し、他のDBMSで動作している場合は、ステップ5302に移る。
ステップ5302では、優先順位表3000に従い他のDBMSで使用しているリソースを必要量だけ割当てるようサーバ仮想化機構に要求する。
ステップ5303にて、管理者に通知する。
具体的には、ステップ5200にて最終的な処理量の半分時点での一次表のサイズが200Mbyteの場合、ステップ5201で最終的な一次表のサイズは400Mbyteとなる。この時の必要なCPU数はCPU割当て統計データ2900より4つであるため、ステップ5203にてサーバ仮想化機構に4つのCPUの割当てを要求する。
2000・・・SQL解析情報
2100・・・バッチ実行情報
2200・・・DBに格納する商品表の一例
2300・・・DBに格納する売上高表の一例
2100・・・バッチ実行情報
2200・・・DBに格納する商品表の一例
2300・・・DBに格納する売上高表の一例
Claims (8)
- アプリケーションプログラムを実行するサーバとデータベースサーバとサーバ仮想化機構を備えるシステムのデータベースサーバへのリソース割当て方法であって、
前記データベースサーバは一連の受付処理を行う処理部とは別に前記アプリケーションプログラムで実行される内容が既知である一連のデータベース処理要求を定期的に解析するSQL解析部において、
前記アプリケーションプログラムで実行される内容が既知である一連のデータベース処理要求が現在の実行時間、バッファヒット率、データベースが内部で作成する一次表サイズを取得するステップと、
現在の実行時間が予め設定した実行時間以下かどうか判定するステップと、
現在の実行時間が予め設定した実行時間を超える場合は、データベースサーバの状態を示す情報とバッファヒット率とメモリ量との統計データより予想バッファヒット率になるようにメモリ割当量を算出するステップと、
メモリ割当量に従いメモリを割当てる要求をするステップと、
データベースが内部で作成する一次表サイズが予め予測したサイズを超える場合は、データベースサーバの状態を示す情報と現在の一次表のサイズにおいて、追加すべきCPU数を統計データより算出するステップと、
算出した必要なCPU数を割当てる要求をするステップと、
予定時間内にバッチ処理が終了する見込みか判定するステップと、
予定時間内に終了する見込みの場合は、終了時刻を提示するステップと、
予定時間内にバッチ処理が終了する見込みでない場合は管理者に通知するステップを有する
ことを特徴とするデータベースサーバへのリソース割当て方法。 - 請求項1に記載のデータベースサーバへのリソース割当て方法において、
以前実行した前記アプリケーションプログラムで実行される内容が既知である一連のデータベース処理要求は、
以前実行したデータベース処理要求のアクセスするデータベースが保持するデータ件数、データベース処理要求の実行に要した時間、CPU利用率の情報を含むことを特徴とするデータベースサーバへのリソース割当て方法。 - 請求項1に記載のデータベースサーバへのリソース割当て方法において、
前記データベースサーバの状態を示す情報は、前記データベースサーバで使用されているアクセスするデータベースが保持するデータ件数、単位時間あたりのI/O回数のうちの少なくとも一つの情報を含むことを特徴とするデータベースサーバへのリソース割当て方法。 - 請求項1に記載の前記CPU使用量を算出した情報をもとに、サーバ仮想化機構に対してCPUの割当てを指示することリソース管理部を有することを特徴とするデータベースサーバへのリソース割当て方法。
- 請求項1に記載の前記アプリケーションプログラムは予め一連の要求元の指定によって一つないし複数を同時に実行することを特徴とするデータベースサーバへのリソース割当て方法。
- 請求項1に記載の一連の手順を予め一連の要求元の指定によって定期的に実行することを特徴とするデータベースサーバへのリソース割当て方法。
- 請求項1に記載の前記アプリケーションプログラムで実行される内容が既知である一連のデータベース処理要求が以前実行した前記アプリケーションプログラムで実行される内容が既知である一連のデータベース処理要求として、データベース格納領域に格納されるテーブル名、処理時間、リソース利用率の情報を含むことを特徴とするデータベースサーバへのリソース割当て方法。
- 請求項1のリソースとは、CPU、メモリの少なくとも一つを含むことを特徴とするデータベースサーバへのリソース割当て方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007200300A JP2009037369A (ja) | 2007-08-01 | 2007-08-01 | データベースサーバへのリソース割当て方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007200300A JP2009037369A (ja) | 2007-08-01 | 2007-08-01 | データベースサーバへのリソース割当て方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009037369A true JP2009037369A (ja) | 2009-02-19 |
Family
ID=40439218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007200300A Pending JP2009037369A (ja) | 2007-08-01 | 2007-08-01 | データベースサーバへのリソース割当て方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009037369A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015087935A (ja) * | 2013-10-30 | 2015-05-07 | 富士ゼロックス株式会社 | 情報処理装置、情報処理システムおよびプログラム |
US9298517B2 (en) | 2013-06-12 | 2016-03-29 | Fujitsu Limited | Exclusive control request allocation method and system |
US9495214B2 (en) | 2011-04-11 | 2016-11-15 | International Business Machines Corporation | Dynamic resource allocations method, systems, and program |
CN106550006A (zh) * | 2015-09-23 | 2017-03-29 | 北京奇虎科技有限公司 | 云服务器资源分配方法和装置 |
JP2018156146A (ja) * | 2017-03-15 | 2018-10-04 | 日本電気株式会社 | 情報処理装置 |
JP2020024482A (ja) * | 2018-08-06 | 2020-02-13 | 京セラドキュメントソリューションズ株式会社 | 処理実行システムおよび処理実行プログラム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05265775A (ja) * | 1992-03-19 | 1993-10-15 | Hitachi Ltd | ジョブ実行予測制御方法およびジョブ実行状況表示方法 |
JPH05334102A (ja) * | 1992-05-28 | 1993-12-17 | Nec Corp | ジョブ実行状況予測装置 |
JPH0628323A (ja) * | 1992-07-06 | 1994-02-04 | Nippon Telegr & Teleph Corp <Ntt> | プロセス実行制御方法 |
JP2005099973A (ja) * | 2003-09-24 | 2005-04-14 | Hitachi Ltd | 運用管理システム |
-
2007
- 2007-08-01 JP JP2007200300A patent/JP2009037369A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05265775A (ja) * | 1992-03-19 | 1993-10-15 | Hitachi Ltd | ジョブ実行予測制御方法およびジョブ実行状況表示方法 |
JPH05334102A (ja) * | 1992-05-28 | 1993-12-17 | Nec Corp | ジョブ実行状況予測装置 |
JPH0628323A (ja) * | 1992-07-06 | 1994-02-04 | Nippon Telegr & Teleph Corp <Ntt> | プロセス実行制御方法 |
JP2005099973A (ja) * | 2003-09-24 | 2005-04-14 | Hitachi Ltd | 運用管理システム |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9495214B2 (en) | 2011-04-11 | 2016-11-15 | International Business Machines Corporation | Dynamic resource allocations method, systems, and program |
US9298517B2 (en) | 2013-06-12 | 2016-03-29 | Fujitsu Limited | Exclusive control request allocation method and system |
JP2015087935A (ja) * | 2013-10-30 | 2015-05-07 | 富士ゼロックス株式会社 | 情報処理装置、情報処理システムおよびプログラム |
CN106550006A (zh) * | 2015-09-23 | 2017-03-29 | 北京奇虎科技有限公司 | 云服务器资源分配方法和装置 |
JP2018156146A (ja) * | 2017-03-15 | 2018-10-04 | 日本電気株式会社 | 情報処理装置 |
JP2020024482A (ja) * | 2018-08-06 | 2020-02-13 | 京セラドキュメントソリューションズ株式会社 | 処理実行システムおよび処理実行プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11656911B2 (en) | Systems, methods, and apparatuses for implementing a scheduler with preemptive termination of existing workloads to free resources for high priority items | |
US10514951B2 (en) | Systems, methods, and apparatuses for implementing a stateless, deterministic scheduler and work discovery system with interruption recovery | |
US11294726B2 (en) | Systems, methods, and apparatuses for implementing a scalable scheduler with heterogeneous resource allocation of large competing workloads types using QoS | |
KR101600129B1 (ko) | 애플리케이션 효율 엔진 | |
Tang et al. | A MapReduce task scheduling algorithm for deadline constraints | |
US8424059B2 (en) | Calculating multi-tenancy resource requirements and automated tenant dynamic placement in a multi-tenant shared environment | |
US8438282B2 (en) | Information processing system and load sharing method | |
Phan et al. | An empirical analysis of scheduling techniques for real-time cloud-based data processing | |
US20190303479A1 (en) | Distinct value estimation for query planning | |
US11475006B2 (en) | Query and change propagation scheduling for heterogeneous database systems | |
CN106959894B (zh) | 资源分配方法和装置 | |
US20150227586A1 (en) | Methods and Systems for Dynamically Allocating Resources and Tasks Among Database Work Agents in an SMP Environment | |
JP2005196602A (ja) | 無共有型データベース管理システムにおけるシステム構成変更方法 | |
US10860450B1 (en) | Automated query retry in a database environment | |
US10621000B2 (en) | Regulating enterprise database warehouse resource usage of dedicated and shared process by using OS kernels, tenants, and table storage engines | |
CN110362611B (zh) | 一种数据库查询方法、装置、电子设备及存储介质 | |
JP2009037369A (ja) | データベースサーバへのリソース割当て方法 | |
US10592507B2 (en) | Query processing engine recommendation method and system | |
CN109154933A (zh) | 分布式数据库系统以及分布和访问数据的方法 | |
CN114416849A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US9086927B2 (en) | Method and system for processing data for database modification | |
Abdul et al. | Database workload management through CBR and fuzzy based characterization | |
US20200401592A1 (en) | Dynamic Rebuilding of Query Execution Trees and Reselection of Query Execution Operators | |
Yankovitch et al. | Hypersonic: A hybrid parallelization approach for scalable complex event processing | |
US9111022B2 (en) | Simulation techniques for predicting in-memory database systems performance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090811 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100913 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101130 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110329 |