JP5011006B2 - リソース割当方法、リソース割当プログラム、および、リソース割当装置 - Google Patents

リソース割当方法、リソース割当プログラム、および、リソース割当装置 Download PDF

Info

Publication number
JP5011006B2
JP5011006B2 JP2007175604A JP2007175604A JP5011006B2 JP 5011006 B2 JP5011006 B2 JP 5011006B2 JP 2007175604 A JP2007175604 A JP 2007175604A JP 2007175604 A JP2007175604 A JP 2007175604A JP 5011006 B2 JP5011006 B2 JP 5011006B2
Authority
JP
Japan
Prior art keywords
sql
bes
resource
processing
cost
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.)
Expired - Fee Related
Application number
JP2007175604A
Other languages
English (en)
Other versions
JP2009015534A (ja
Inventor
一仁 小林
正亮 成田
徹 伊藤
三星 大島
憲宏 原
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007175604A priority Critical patent/JP5011006B2/ja
Priority to US12/022,547 priority patent/US8209697B2/en
Publication of JP2009015534A publication Critical patent/JP2009015534A/ja
Application granted granted Critical
Publication of JP5011006B2 publication Critical patent/JP5011006B2/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24532Query optimisation of parallel queries

Description

本発明は、リレーショナルデータベース管理システムに適したリソース割当方法、リソース割当プログラム、および、リソース割当を管理する管理サーバに関する技術である。
DBMS(DataBase Management System:データベース管理システム)は、データベースのデータに対する問合せに応えるシステムである。特に、データベースが表形式であるRDBMS(Relational DataBase Management System:リレーショナルデータベース管理システム)が一般的である。データに対する問合せを記述した言語としては、SQL(Structured Query Language)がよく使用される。
多くの問合せに対応するために、問合せの処理時間を短縮化することが求められている。そこで従来は、問合せの処理を複数のSQL処理に分け、各SQL処理を複数の計算機に分配して、パイプライン処理など並列に処理を行っていた。
なお、SQL処理をどの計算機に分配するかを決定する分配アルゴリズムが重要である。例えば、非特許文献1に記載された技術は、DBMSのディクショナリに保管された処理対象となる問合せに関する各種統計情報を基にして、各SQL処理を分配していた。
また、非特許文献2には、データベースの処理負荷を複数の計算機に分散させ並列に実行するアーキテクチャが開示されている。非特許文献2に記載のShared everything, Shared disk(共用型)アーキテクチャでは、DB(データベース)処理を実行する全ての計算機が全てのデータをアクセスすることが可能である。
Shared nothing(非共用型)アーキテクチャでは、自計算機に接続されたディスクに格納されたデータのみアクセス可能である。非共用型アーキテクチャは、共用型アーキテクチャにくらべ、DB処理を実行する構成単位の間での共有リソースが少なく、スケーラビリティの点で非常に優れている。しかし、各計算機のデータに偏りがある場合、負荷が特定の計算機に偏ってしまい、偏りがなく効率的に並列実行できた時と比べて、処理のオーバヘッドが生じる。
そこで、特許文献1は、同一の計算機内に存在する複数の仮想的な計算機を構築し、計算機のCPUリソースの情報から、計算機の資源の割り当てを行うことで負荷の平準化を行った。
特開2005−56391号公報 Joel L. Wolf、 John Turek、 Ming-Syan Chen and Philip S. Yu 著、"A Hierarchical Approach to Parallel Multiquery Scheduling"、IEEE Transactions on Parallel and Distributed Systems、6(6):578--590、June 1995. David DeWitt and Jim Gray著,"Parallel Database Systems:The Future of High Performance Database Systems",COMMUNICATIONS OF THE ACM, Vol.35, No.6,June 1992,P.85-P.98
分配アルゴリズムにより、ディスクにアクセスするDBアクセスサーバ(以下、BES:Back End Serverと表記する)のリソース(CPUおよびメモリ)の利用効率に大きく影響する。例えば、処理分配がうまくいかず、特定のBESに処理が集中してしまうと、他のBESは処理待ちとなってしまう。
つまり、リソースのアンバランスが発生してしまい、BESのリソースを有効利用できない。特に、非共用型アーキテクチャは、処理待ちとなるBESが、アクセス対象のディスクを占有するため、リソースのアンバランスにより、処理のオーバヘッドが大きくなる。
そこで本発明では、前記した問題を解決し、各BESへの各SQL処理の実行時における負荷のアンバランスを改善することでSQL実行の高速化を行うことを主な目的とする。
前記課題を解決するために、本発明は、物理計算機上で稼動する仮想計算機で実行されるBES(Back End Server)がアクセス可能である記憶装置に格納しているデータベースに基づいて、入力されたSQLを処理するときに使用する物理計算機のリソース割当方法であって、
前記SQL処理の対象となる前記データベースへのアクセス権は、それぞれの前記BESが、接続する前記データベースに対してアクセスできる共用型アーキテクチャであり、
入力されたSQLを構文解析して、前記SQLから1つ以上のSQL処理を抽出し、
前記抽出したSQL処理のうちの実行先の前記BESが決定している前記SQL処理を前記BESで処理するのに必要な前記データベースのリソースコストをSQL処理に含まれる処理種別毎に計算し、
前記各BESが前記SQL処理を実行するために必要とする前記BES毎のリソースコストの比率に応じて、前記物理計算機のリソースを前記仮想計算機へ割り当てる割当率を決定し、
前記抽出したSQL処理のうちの実行先の前記BESが決定していない前記SQL処理の実行先として、前記実行先の前記BESが決定している前記SQL処理に対して前記決定した割当率が最も高い前記BESを選択し、
リソースが割り当てられた前記仮想計算機で前記各BESを実行し、前記SQL処理を処理するように要求することを特徴とする。
その他の手段は、後記する。
本発明によれば、各BESの各SQL処理の実行時における負荷のアンバランスを改善し、その結果SQLの実行処理を高速化することができる。
以下、本発明の一実施形態であるDBMSについて、図面を参照しながら説明する。
図1は、DBMSにおける、SQL処理の実行例を示す説明図である。図1の(a)のSQLは、SQL処理に分割され、図1の(b)または図1の(c)に示すように各BESに分配され、実行される。
図1(a)のSQLは、以下に示すSQL処理分割される。なお、DBMSは、このSQL処理を以下に示す順番で実行する。
・T1、T2のスキャン:「SELECT T1.C1 FROM T1,T2」から(T1,T2に存在するデータを取り出す)
・T1の条件評価:「T1.C1>1」から(取り出したデータが条件に該当するか否かを判定し、条件に該当する行だけに絞り込む)
・T2の条件評価:「T2.C1>2」から(取り出したデータが条件に該当するか否かを判定し、条件に該当する行だけに絞り込む)
・T1、T2の結合:「T1.C2=T2.C2」から(絞り込んだT1とT2のデータに対して、T1.C2=T2.C2に該当する行に対して結合処理を行う)
なお、T1の条件評価は、T1のスキャンの後に実行される。T2の条件評価は、T2のスキャンの後に実行される。T1、T2の結合は、T1の条件評価、および、T2の条件評価の後に、実行される。よって、T1の条件評価だけが完了し、T2の条件評価が完了していないときには、T2の条件評価が完了するまでの期間、同期のためのアイドル時間が発生する。
まず、図1(b)は、本実施形態によるCPU割り当て、および、SQL実行プランを示す説明図である。SQL実行プランは、分割された各SQL処理について、どのBESに、どのアルゴリズムで実行させるかを規定する。
BES「1」、BES「2」はそれぞれ異なるBESである。各BESには、時系列に3つのSQL処理(スキャン→条件評価→結合)が割り当てられている。なお、「T1のスキャン(33%)」は、「T1のスキャン」というSQL処理を実行するためのCPU割当率が、割り当て可能な全CPU資源のうちの33%であることを示す。このCPU割当率は、図4で詳細に説明するように、決定されている。
SQL実行を行う前にBES「1」に33%、BES「2」に67%のCPUリソースを割り当てる。この割り当てたリソースを用いて(1)スキャン、および、(2)条件評価を行うと、BES「1」、BES「2」ともに、ほぼ同時に(1)スキャン、および、(2)条件評価の処理を終了する。これは、各BESの計算が同時に終了するように、高精度の見積もり計算により計算されたCPU割当率により、バランスの取れたCPUリソースが割り当てられているためである。
その後、図4で詳細に説明するように、BES「1」に67%、BES「2」に33%のCPUリソースを割り当て直した上で、(3)結合を行う。高精度なCPU割当率により、並列実行した処理がほぼ同時に終わる。これにより、T1、T2の各データのデータ量に大きなばらつきがある場合でも、SQLの処理を効率よく並列実行でき、トータルの処理時間を短縮することができる。
一方、図1(c)は、比較例によるCPU割り当て、および、SQL実行プランを示す説明図である。各BESには、互いに同じ量のCPUリソースが割当てられており、その割当率は、時間が経過しても変更されず、50%ずつである。
SQL処理(1)スキャンを実行する際、各BESのCPUリソースは均等であり、「スキャン」というSQL処理の種別も同じである。しかし、SQL処理の対象データであるT1,T2という各データのデータ量にばらつきがあり、T2のデータ量がT1のデータ量よりも多い。よって、各BESがスキャンを終了する時刻にもばらつきが生じる。
T1のデータ量が少ないために、BES「1」は、(1)スキャンおよび(2)条件評価を早く完了してしまう。一方、T2のデータ量が多いために、BES「2」は、(1)スキャンおよび(2)条件評価を遅く完了してしまう。そして、BES「1」は、BES「1」の(2)条件評価を完了した時刻から、BES「2」の(2)条件評価が完了するまでの時刻の間、SQL処理を実行しない空き時間(図中ではアイドル)が発生する。よって、この空き時間のために、BES「1」のリソースの使用率が悪い。
さらに、SQL処理(3)を実行する際、BES「1」およびBES「2」の間で分散して処理を行う。ここでも、各BESで処理を行うデータ量にばらつきがあった場合、各BESが結合を終了する時刻にもばらつきが生じる。その結果、先に(3)結合が終了したBES「2」は、BES「1」の(3)結合の終了を待たなければいけないため、SQL処理を実行しない空き時間(図中ではアイドル)が発生する。よって、この空き時間のために、BES「2」のリソースの使用率が悪い。
なお、非特許文献1によると、SQL実行の高速化のためには、並列実行した処理が同時に終わることがよいとされている。しかしながら、図1(c)の方式では、負荷のアンバランスの改善が十分ではなく、SQL問合せ処理の高速化ができていない。
図2は、DBMS全体を示す構成図である。DBMSは、データベースを使用するための指示情報であるSQL要求を入力し、データベースの内容を表示するための端末装置41、端末装置41からSQL要求を受け付ける要求受付サーバ40(リソース割当装置)、および、要求受付サーバ40からの指示に従いSQL処理を実行する要求実行サーバ42とを含めて構成される。端末装置41は、通信制御装置43によってネットワークを介して、DBMS(FES)70にSQL要求を送信する。
要求受付サーバ40は、処理を実行するためのCPU44、ネットワークを介して通信するための通信制御装置43、および、各処理部を実現するためのプログラムを格納するメモリ45を備える。メモリ45には、OS46、および、OS46上で稼動するDBMS(FES:Front End Server)70が搭載され、CPU44を用いて稼動している。
ここで、FES(Front End Server)は、DBMS(FES)70の一部分で、入力されたSQL要求を解釈し、SQL実行プラン13(図4参照)を作成し、BES56(図3参照)に対してSQL実行プラン13の実行要求を行う機能を担当する。DBMS(FES)70は、端末装置41から入力されたSQL要求を受け付けるSQL受付部47、および、SQL受付部47が受け付けたSQL要求の処理対象となるデータの統計情報16を集計する統計情報集計部80を備える。
SQL受付部47は、SQL構文解析部48、統計情報取得部49、コスト見積り部50、リソース見積り部51、リソース割当要求部65、SQL実行プラン作成部52、および、SQL実行要求部64を備える。また、メモリには、リソース割当テーブル15、統計情報16のテーブル、処理コスト管理テーブル17、リソース割当管理テーブル18、および、コスト管理マスタテーブル21が記憶されている。各処理部および各テーブルの詳細は、図4から図6において明らかにする。
図3は、図2の要求実行サーバ42の詳細を示す構成図である。要求実行サーバ42は、通信制御装置43、CPU44、メモリ45、および、メモリ53を備える。メモリ53には、リソース割当処理部55を有するサーバ仮想化部54、および、複数台(図では2台を例示)の仮想化サーバ66(仮想計算機)を備える。
サーバ仮想化部54は、同一の計算機内に存在する複数の仮想的な計算機を仮想化サーバ66として構築し、リソースプールに確保されている計算機の資源であるCPU44およびメモリ45を、各仮想化サーバ66に割り当てることで、各仮想化サーバ66の負荷を平準化する。これにより、各仮想化サーバ66はサーバ仮想化部54によって割当てられたリソースを用いて稼動する。なお、メモリ45、および、メモリ53は例えばフラッシュメモリ、シリコンメモリなどにより実現される。
仮想化サーバ66は、1つの物理的な計算機を分割することで、複数の論理的な計算機に見せかけるLPER(Logical Pertition)技術により実現される。LPERを実現するソフトウェアとして、例えばVMware社のVMware Serverがあげられる。また、仮想化サーバ66は、物理的な計算機のCPU44、および、メモリ45を各仮想化サーバ66で共有する。特許文献1で示されたように、これらのCPU44、および、メモリ45は、サーバ仮想化部54のリソース割合処理によって各仮想化サーバ66に任意の割合で割当てられる。
各仮想化サーバ66は、OS46と、BES56を備え、磁気記憶装置などにより構成される外部記憶装置60と接続されている。外部記憶装置60は、DB格納領域62,63を管理している。BES56「1」はDB格納領域62と直接接続されており、BES56「2」はDB格納領域63と直接接続されている。そして、直接接続の関係を有するBES56のみが、接続先の各DB格納領域62,63へのアクセス権を有する非共用型アーキテクチャとしてもよいし、各DB格納領域62,63へのアクセス権が、複数のBESで共用される共用型アーキテクチャとしてもよい。
一方、すべてのBES56が、DB格納領域62,63へのアクセス権を有する共用型アーキテクチャとしてもよい。各BES56は、統計情報取得部57とSQL実行部58を備えている。
なお、図2のDBMS(FES)70を、BES56と別の計算機である要求受付サーバ40に配置した。しかし、DBMS(FES)70とBES56とを同一の計算機である要求実行サーバ42に配置してもよい。さらに、DBMS(FES)70を要求実行サーバ42の仮想化サーバ66に配置してもよい。
図4は、要求受付サーバ40が実行するSQL要求の受け付け処理の概要を示す説明図である。図2を適宜参照して、説明する。なお、説明を簡潔にするためリソースの一例としてCPUに着目して説明を行う。よって、各テーブル(統計情報16、処理コスト管理テーブル17、および、リソース割当管理テーブル18)のメモリなどに関する列は、一部省略しているが、図5および図6において、その省略された列を説明することとする。
SQL文11は、構文解析されると、構文解析情報(SQL処理)およびSQL処理が処理対象とする表の列情報が、それぞれ抽出される。統計情報格納領域61は、表の列情報などの統計情報16を格納する。
処理コスト管理テーブル17は、統計情報16から取得した件数などの統計情報、および、SQL文11から抽出された構文解析情報(SQL処理)をもとに計算された、各BESの処理件数を格納する。さらに、処理コスト管理テーブル17は、各BESの処理件数から計算された各BESのCPUコストを格納する。
リソース割当管理テーブル18は、処理コスト管理テーブル17に格納された各BESのCPUコストと、そのCPUコストの比率に基づいて設定されるCPU割当率を、対応づけて格納する。リソース割当テーブル15は、リソース割当管理テーブル18のCPU割当率を、SQL文11から抽出されたSQL処理ごとに格納する。
リソース割当テーブル15のCPU割当率をもとにCPU割り当て処理が、要求実行サーバ42に対して行われた後、リソース割当テーブル15のSQL処理をもとにSQL実行プランが、SQL処理の実行要求として要求実行サーバ42に対して送信される。
SQL受付部47は、SQL文11を受け付け、BES56に対して実行要求を行い、最終的に端末装置41に結果を返却する。
SQL構文解析部48は、受け付けたSQL文11をSQLの字句解析などの構文解析する。SQL構文解析部48は、SQLの処理を複数計算機で並列に処理するために、複数のSQL処理に分ける。SQL構文解析部48は、例えば、図1(a)のSQL要求を、(1)スキャン、(2)条件評価、および、(3)結合という3つのSQL処理に分ける。さらに、SQL構文解析部48は、SQLの構文を解析するだけではなくSQL文11を処理するために必要な列の情報も分析する。
統計情報取得部49は、図3の外部記憶装置60に記憶されている統計情報格納領域61から、SQL文11を処理するために必要な列情報を基にして、SQL文11を処理するために必要な列の統計情報16を取得する。図4に示す統計情報16は、BES毎に、表名、列名、件数、および、Indexを対応づけて管理する。例えば、「#1」のレコードは、表名「T1」には「200000」件のレコードが存在し、表名「T1」の列名「C1」には、高速にアクセスするためのインデクス(Index)が付されていないことを示している。
コスト見積り部50は、SQL構文解析部48により分けられた各SQL処理に対して、統計情報取得部49で取得した統計情報16を元に、各BES56の処理件数を見積もる。ここでの処理件数とは、各SQL処理において、アクセスされるデータの件数の予測値をいう。
そして、コスト見積り部50は、各BES56の処理件数から、CPUコストを見積もる。ここでコストと呼んでいるものは、DBMSが処理を行うために必要となるCPUおよびメモリなどを数値化したものを表したものである。コストが高い数値になるほどより多くのCPU44、メモリリソースが必要になる。
ここで、一部の結合、一部のソートなどの処理はある決められたBESで行う必要がない。そのため、コスト見積り部50は、このある決められたBESで行う必要がないSQL処理に対して、この時点では実行を行うBESを未決定にしておく。これらの処理により、コスト見積り部50は、処理コスト管理テーブル17を作成する。
リソース見積り部51は、処理コスト管理テーブル17に記述された各SQL処理のCPUコストを参照して、CPU割当率を決定する。CPU割当率決定後、リソース見積り部51は、コスト見積り部50で、実行を行うBES56を未決定にしておいたSQL処理に対して、CPU割当率、CPUコストから実行を行うBES56を決定する。その結果、リソース見積り部51はリソース割当管理テーブル18を作成する。
リソース割当要求部65は、リソース割当管理テーブル18を参照して、BES56毎のCPU割当率を抽出することにより、リソース割当テーブル15を作成する。リソース割当要求部65は、リソース割当テーブル15をリソース割当処理部55に送信し、リソース割当要求を行う。
SQL実行プラン作成部52は、リソース割当テーブル15を参照して、SQL実行プラン13を作成する。SQL実行要求部64は、SQL実行プラン13を各BES56のSQL実行部58に対して送信することでSQL実行要求を行う。リソース割当処理部55は、リソース割当テーブル15を参照して、CPUリソースの割当を行う。
要求実行サーバ42のSQL実行部58は、リソース割当処理部55により割当てられたリソースを使用して、SQL実行プラン13に基づいてDB格納領域62,63にアクセスして実行し、その結果を端末装置41に返却する。
図5(a)は、統計情報16の一例を示す。統計情報16は、各BESについて、図4で既に説明した列に加え、表名で示される表の容量が対応づけられている。インデクス(Index)が「あり」のときは、実際に格納している値に直接アクセスする代わりに、そのインデクスを辿ることにより、実際に格納している値の詳細な分布状況がわかる。この分布情報から、条件評価したあとの件数がどの程度になるかの見積り精度を上げることができる。
インデクスを有する表へのスキャンの見積件数は、表に格納されたデータの件数に対して100%の件数よりも減じることができる。これは、インデクスを手がかりにして、スキャンに必要な表のデータの格納位置がわかるため、表のデータを全てアクセスする方式(100%)を用いなくても済むためである。しかし、インデクスは、特定の場合(ワイルドカード検索、後方一致検索など)には適用できないので、汎用性が下がる。
図5(b)は、処理コスト管理テーブル17の一例を示す。処理コスト管理テーブル17は、SQL処理ごとに、各BES56のCPUコスト、メモリコスト、処理件数、および、処理量を管理する。例えば、BES「1」は、(1)スキャンという種別のSQL処理が200000件分割り当てられることで、この割り当てられた20GB分の処理量を消化するために、20のCPUコストと、40のメモリコストを必要とする。また、実行するサーバが未決定のSQL処理の情報も同時に格納する。
図6(a)は、リソース割当管理テーブル18の一例を示す。リソース割当管理テーブル18は、SQL処理ごとに、各BES56のCPUコスト、CPU割当率、メモリコスト、メモリ割当率を管理する。各CPUコストおよびメモリコストは、処理コスト管理テーブル17から取り出されたデータである。
図6(b)は、コスト管理マスタテーブル21の一例を示す。SQL処理ごとに、CPUコストとメモリコストを算出するための情報を格納する。CPUコストを算出するための情報には、キーになる値と、その単位と、単位あたりの値(所定の係数)を格納する。メモリコストを産出するための情報にも同様に、キーになる値と、その単位と、単位あたりの値(所定の係数)を格納する。例えば、(1)スキャンというSQL処理を消化するのに必要なCPUコストは、キーとなる値である処理件数の1件という単位あたり、0.0001である。
図7は、SQL受付部47の処理手順を示すフローチャートである。
SQL構文解析部48は、SQLの処理要求を端末装置41から受け取ると、処理要求として入力されたSQL文11を構文解析し(S101)、問合せの処理を複数のBES56で並列に処理するために、複数のSQL処理に分ける。また、SQL文11を処理するために必要となる列の情報を作成する。
統計情報取得部49は、S101で作成したSQL文11を処理するために必要となる列の情報を元に、統計情報格納領域61から、SQL文11を処理するために必要となる列の統計情報16を取得する(S102)。
コスト見積り部50は、SQL文11を処理するために必要となる列の統計情報16を参照して、各BES56における、各SQL処理の処理コストを見積り(S103)、処理コスト管理テーブル17を作成する。リソース見積り部51は、処理コスト管理テーブル17を参照して、各BES56における、各SQL処理のリソースを見積り(S104)、リソース割当管理テーブル18を作成する。
リソース割当要求部65は、処理コスト管理テーブル17を参照して、各BES66のリソース割当率を決定するリソース割当テーブル15を作成して、サーバ仮想化部54のリソース割当処理55に送信して、リソース割当を要求する(S105)。
SQL実行プラン作成部52は、リソース割当テーブル15を参照して、SQL実行プラン13(図4参照)を作成する(S106)。SQL実行要求部64は、S106で作成したSQL実行プラン13をBES56に送信する(S107)。
図8は、コスト見積り部50が実行するコスト見積り処理(S103)の処理手順を示すフローチャートである。
まず、処理コスト管理テーブル17の選択していないBESを順に一つずつ選択するループ(S201〜S206)を実行する。次に、S201で選択したBESが実行するSQL処理のうち、選択していないSQL処理を順に一つずつ選択するループ(S202〜S205)を実行する。
そして、統計情報16の件数を参照して、各SQL処理の処理件数を算出し、処理コスト管理テーブル17の処理件数に設定する(S203)。さらに、統計情報16の容量を参照して、各SQL処理の処理量を算出し、処理コスト管理テーブル17の処理量に設定する(S204)。
まず、選択していないBESを順に一つずつ選択するループ(S207〜S212)を実行する。次に、S207で選択したBESが実行するSQL処理のうち、選択していないSQL処理を順に一つずつ選択するループ(S208〜S211)を実行する。
そして、処理コスト管理テーブル17の処理件数を参照して、CPUコストを算出し、処理コスト管理テーブル17のCPUコストに設定する(S209)。さらに、処理コスト管理テーブル17の処理量を参照して、メモリコストを産出し、処理コスト管理テーブル17のメモリコストに設定する(S210)。
図9は、リソース見積り部51が実行するリソース見積り処理の処理手順を示すフローチャートである。
まず、リソース割当管理テーブル18の選択していないBESを順に一つずつ選択するループ(S301〜S308)を実行する。次に、S301で選択したBESが実行するSQL処理のうち、選択していないSQL処理を順に一つずつ選択するループ(S302〜S307)を実行する。
そして、処理コスト管理テーブル17に設定したCPUコストを参照して、以下の式によりCPU割当率を算出し(S303)、その算出結果によりCPU割当率を決定して、処理コスト管理テーブル17に設定する(S304)。
・CPU割当率=CPUコスト÷(全てのBESにおけるCPUコストの合計)
さらに、処理コスト管理テーブル17に設定したメモリコストを参照して、以下の式によりメモリ割当率を算出し(S305)、その算出結果によりメモリ割当率を決定して、処理コスト管理テーブル17に設定する(S306)。
・メモリ割当率=メモリコスト÷(全てのBESにおけるメモリコストの合計)。
2つのループの完了後、S304で設定したCPU割当率、および、S306で設定したメモリ割当率から、未決定のSQL処理の処理を実行するBES56を決定する(S309)。
図10は、処理コスト管理テーブルの処理件数および処理量を設定する処理手順を示すフローチャートである。
図10(a)は、S203でSQL処理の処理件数を設定するフローチャートである。SQL処理の種別に応じて、スキャン、条件評価、または、結合に分岐する(S401)。この3種類ではないときには、処理を終了する。
まず、SQL処理がスキャンの場合(S401,スキャン)、統計情報テーブル16から該当する列の件数を取得する(S411)。
次に、SQL処理が条件評価の場合(S401,条件評価)、統計情報テーブル16から該当する列の件数を取得し(S421)、条件評価の述語(図1(a)のSQL文では「>」)に対応するヒット率「0.2」を取得する(S422)。そして、S421で取得した件数とS422で取得したヒット率とを乗算して、処理件数を算出する(S423)。
なお、条件評価の述語とそのヒット率との対応情報は、あらかじめ与えられた設定情報から取得する。この設定情報を作成するときには、条件評価の条件が厳しいものほど、ヒット率が小さくなるようにすることが、望ましい。例えば、所定値と同じ値だけがヒットする述語「=(等しい)」は、所定値より大きいものがヒットする述語「>(大なり)」よりも、条件が厳しいため、ヒット率を小さく(例えば、0.1)設定する。
そして、SQL処理が結合の場合(S401,結合)、各BES56における条件評価の処理件数を統計情報テーブル16から取得し(S431)、取得した各BES56における条件評価の処理件数を、各BES56の結合の処理件数に決定する(S432)。
さらに、S411、S423、または、S432で決定した処理件数をコスト管理テーブルの該当する処理件数に設定し(S441)、処理を終了する。
図10(b)は、S204でSQL処理の処理量を設定するフローチャートである。SQL処理の種別に応じて、スキャン、条件評価、または、結合に分岐する(S501)。この3種類ではないときには、処理を終了する。
まず、SQL処理がスキャンの場合(S501,スキャン)、統計情報テーブル16から該当する容量を取得する(S511)。
次に、SQL処理が条件評価の場合(S501,条件評価)、統計情報テーブル16から該当する容量を取得し(S521)、S422と同様にして条件評価の述語(図1(a)のSQL文では「>」)に対応するヒット率「0.2」を取得する(S522)。そして、S521で取得した容量とS522で取得したヒット率とを乗算して、処理量を算出する(S523)。
そして、SQL処理が結合の場合(S501,結合)、各BES56における条件評価の処理量を統計情報テーブル16から取得し(S531)、取得した各BES56における条件評価の処理量を、各BES56の結合の処理量に決定する(S532)。
さらに、S511、S523、または、S532で決定した処理量をコスト管理テーブルの該当する処理量に設定し(S541)、処理を終了する。
なお、S432,S532の処理コスト(CPUコスト、メモリコスト)の見積もり処理について、統計情報16(図4参照)に記載されているデータをもとに計算する代わりに、DB格納領域62,63(図3参照)に格納されている各表のデータ内容をもとに計算してもよい。
例えば、複数の表のデータをN台のBESに分散させて結合を行う場合、i台目(i=1〜N)に割り当てられるレコードは、複数の表の全てのデータのうち、複数の表で共通する列の値を、Nで除算した余りがi−1であるレコードとする。そして、i台目に割り当てられるレコード数を集計することにより、処理件数および処理量を決定する。このように、表の概要を示す統計情報だけで見積もりを行う方式に比べ、表のデータ内容に踏み込んで見積もりを行う方式は、計算量が増える反面、高い精度の見積もりが可能となる。
図11は、処理コスト管理テーブルのCPUコストおよびメモリコストを設定する処理手順を示すフローチャートである。
図11(a)は、S209でCPUコストを設定するフローチャートである。まず、処理コスト管理テーブル17から該当するSQL処理の処理件数を取得する(S601)。次に、コスト管理マスタテーブル21から該当するSQL処理におけるCPUコストの単位あたりの値を取得する(S602)。
そして、S601で取得した処理件数と、S602で取得したCPUコストの単位あたりの値とを乗算することにより、CPUコストを算出する(S603)。S603で算出した値を処理コスト管理テーブル17の該当するBES56のSQL処理のCPUコストに設定する(S604)。
図11(b)は、S210でメモリコストを設定するフローチャートである。まず、処理コスト管理テーブル17から該当するSQL処理の処理量を取得する(S701)。次に、コスト管理マスタテーブル21から該当するSQL処理におけるメモリコストの単位あたりの値を取得する(S702)。
そして、S701で取得した処理量と、S702で取得したメモリコストの単位あたりの値とを乗算することにより、メモリコストを算出する(S703)。S703で算出した値を処理コスト管理テーブル17の該当するBES56のSQL処理のメモリコストに設定する(S704)。
図12は、実行サーバ未決定の処理のサーバを決定する処理手順を示すフローチャートである。
まず、リソース割当管理テーブル18の選択していない(つまり、実行サーバが未決定か否かを判定していない)SQL処理を順に一つずつ選択するループ(S801〜S806)を実行する。
次に、S801で現在選択しているSQL処理が未決定か否かを判定する(S802)。未決定でない場合は(S802,No)、S801で現在選択しているSQL処理についてのループを完了し(S806)、次のSQL処理を選択するため、S801に戻る。
S802でYesなら、リソース割当管理テーブル18を参照し、CPU割当率が最も高いBES56を取得する(S803)。そして、S803で取得したBES56を実行するサーバに決定する(S804)。
さらに、S804で決定したBES56を未決定の処理を実行するサーバであることを示すために、リソース割当管理テーブル18の該当するSQL処理の処理コストをS804で決定したBES56に設定する(S805)。ここで、現在選択しているSQL処理についてのループを完了し(S806)、次のSQL処理を選択するため、S801に戻る。
以上説明した本実施形態によれば、SQLの実行を行う前にリソース割当率を変更することで、各BES56においてSQLの各処理実行時における負荷のアンバランスを改善することができる。これにより、リソース利用効率が上がることで、処理が早期に完了する。従って、SQL処理を高速化することができる。
本発明の一実施形態に関するDBMSにおけるSQL処理の実行例を示す説明図である。 本発明の一実施形態に関するSQL要求の受け付け処理の概要を示す構成図である。 本発明の一実施形態に関するDBMS全体を示す構成図である。 本発明の一実施形態に関するDBMS全体のうちの要求実行サーバを示す構成図である。 本発明の一実施形態に関する統計情報、および、処理コスト管理テーブルを示す構成図である。 本発明の一実施形態に関するリソース割当管理テーブル、および、コスト管理マスタテーブルを示す構成図である。 本発明の一実施形態に関するSQL受付部の処理手順を示すフローチャートである。 本発明の一実施形態に関するコスト見積もり処理の処理手順を示すフローチャートである。 本発明の一実施形態に関するリソース見積り処理の処理手順を示すフローチャートである。 本発明の一実施形態に関する処理コスト管理テーブルの処理件数および処理量を設定する処理手順を示すフローチャートである。 本発明の一実施形態に関する処理コスト管理テーブルのCPUコストおよびメモリコストを設定する処理手順を示すフローチャートである。 本発明の一実施形態に関する実行サーバ未決定の処理のサーバを決定する処理手順を示すフローチャートである。
符号の説明
11 SQL文
13 SQL実行プラン
15 リソース割当テーブル
16 統計情報
17 処理コスト管理テーブル
18 リソース割当管理テーブル
21 コスト管理マスタテーブル
40 要求受付サーバ
41 端末装置
42 要求実行サーバ
43 通信制御装置
44 CPU
46 OS
47 SQL受付部
48 SQL構文解析部
49 統計情報取得部
50 コスト見積り部
51 リソース見積り部
52 SQL実行プラン作成部
54 サーバ仮想化部
55 リソース割当処理部
56 BES
58 SQL実行部
60 外部記憶装置
61 統計情報格納領域
64 SQL実行要求部
65 リソース割当要求部
66 仮想化サーバ
70 DBMS(FES)
80 統計情報集計部

Claims (10)

  1. 物理計算機上で稼動する仮想計算機で実行されるBES(Back End Server)がアクセス可能である記憶装置に格納しているデータベースに基づいて、入力されたSQLを処理するときに使用する物理計算機のリソース割当方法であって、
    前記SQL処理の対象となる前記データベースへのアクセス権は、それぞれの前記BESが、接続する前記データベースに対してアクセスできる共用型アーキテクチャであり、
    入力されたSQLを構文解析し、前記SQLから1つ以上のSQL処理を抽出し、
    前記抽出したSQL処理のうちの実行先の前記BESが決定している前記SQL処理を前記BESで処理するのに必要な前記データベースのリソースコストをSQL処理に含まれる処理種別毎に計算し、
    前記各BESが前記SQL処理を実行するために必要とする前記BES毎のリソースコストの比率に応じて、前記物理計算機のリソースを前記仮想計算機へ割り当てる割当率を決定し、
    前記抽出したSQL処理のうちの実行先の前記BESが決定していない前記SQL処理の実行先として、前記実行先の前記BESが決定している前記SQL処理に対して前記決定した割当率が最も高い前記BESを選択し、
    リソースが割り当てられた前記仮想計算機で前記各BESを実行し、前記SQL処理を処理するように要求することを特徴とする
    リソース割当方法。
  2. 前記データベースのリソースコストを計算する工程の後、さらに、前記データベースのリソースコストをもとに、前記データベースに接続される前記BESを実行する前記仮想計算機毎のリソースコストを計算することを特徴とする
    請求項1に記載のリソース割当方法。
  3. 前記データベースのリソースコストを計算する工程は、前記SQL処理の種別が「スキャン」のときには、前記SQL処理の対象となる前記データベースの件数と、所定の係数とを乗算することにより、前記リソースコストを計算することを特徴とする
    請求項1または請求項2に記載のリソース割当方法。
  4. 前記データベースのリソースコストを計算する工程は、前記SQL処理の種別が「条件判断」のときには、前記SQL処理の対象となる前記データベースの件数と、SQL命令に含まれる述語の種別に対応するヒット率と、所定の係数とを乗算することにより、前記リソースコストを計算することを特徴とする
    請求項1または請求項2に記載のリソース割当方法。
  5. 前記データベースのリソースコストを計算する工程は、前記SQL処理の種別が「結合」のときには、結合した結果前記各BESに割り当てられる前記SQL処理の対象となる前記データベースの件数と、所定の係数とを乗算することにより、前記リソースコストを計算することを特徴とする
    請求項1または請求項2に記載のリソース割当方法。
  6. 前記仮想計算機に割り当てられる前記物理計算機のリソースは、前記物理計算機のCPUであることを特徴とする請求項1または請求項2に記載のリソース割当方法。
  7. 前記仮想計算機に割り当てられる前記物理計算機のリソースは、前記物理計算機のメモリであることを特徴とする請求項1または請求項2に記載のリソース割当方法。
  8. 請求項1ないし請求項7のいずれか1項に記載のリソース割当方法を、計算機に実行させるためのリソース割当プログラム。
  9. 物理計算機上で稼動する仮想計算機で実行されるBES(Back End Server)がアクセス可能である記憶装置に格納しているデータベースに基づいて、入力されたSQLを処理するときに使用する物理計算機のリソースを割当てるリソース割当装置であって、
    前記SQL処理の対象となる前記データベースへのアクセス権は、それぞれの前記BESが、接続する前記データベースに対してアクセスできる共用型アーキテクチャであり、
    入力されたSQLを構文解析し、前記SQLから1つ以上のSQL処理を抽出するSQL構文解析部と、
    前記抽出したSQL処理のうちの実行先の前記BESが決定している前記SQL処理を前記BESで処理するのに必要なデータベースのリソースコストをSQL処理に含まれる処理種別毎に計算するコスト見積り部と、
    前記各BESが前記SQL処理を実行するために必要とする前記BES毎のリソースコストの比率に応じて、前記物理計算機のリソースを前記仮想計算機へ割り当てる割当率を決定するリソース見積り部と、
    前記抽出したSQL処理のうちの実行先の前記BESが決定していない前記SQL処理の実行先として、前記実行先の前記BESが決定している前記SQL処理に対して前記決定した割当率が最も高い前記BESを選択し、
    リソースが割り当てられた前記仮想計算機で前記各BESを実行し、前記SQL処理を処理するように要求するSQL実行要求部と、を有することを特徴とする
    リソース割当装置。
  10. 前記コスト見積り部は、前記データベースのリソースコストを計算する工程の後、さらに、前記データベースのリソースコストをもとに、前記データベースに接続される前記BESを実行する前記仮想計算機毎のリソースコストを計算することを特徴とする
    請求項9に記載のリソース割当装置。
JP2007175604A 2007-07-03 2007-07-03 リソース割当方法、リソース割当プログラム、および、リソース割当装置 Expired - Fee Related JP5011006B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007175604A JP5011006B2 (ja) 2007-07-03 2007-07-03 リソース割当方法、リソース割当プログラム、および、リソース割当装置
US12/022,547 US8209697B2 (en) 2007-07-03 2008-01-30 Resource allocation method for a physical computer used by a back end server including calculating database resource cost based on SQL process type

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007175604A JP5011006B2 (ja) 2007-07-03 2007-07-03 リソース割当方法、リソース割当プログラム、および、リソース割当装置

Publications (2)

Publication Number Publication Date
JP2009015534A JP2009015534A (ja) 2009-01-22
JP5011006B2 true JP5011006B2 (ja) 2012-08-29

Family

ID=40222419

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007175604A Expired - Fee Related JP5011006B2 (ja) 2007-07-03 2007-07-03 リソース割当方法、リソース割当プログラム、および、リソース割当装置

Country Status (2)

Country Link
US (1) US8209697B2 (ja)
JP (1) JP5011006B2 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8336049B2 (en) * 2009-02-05 2012-12-18 Vmware, Inc. Virtual machine utility computing method and system
US20120066554A1 (en) * 2010-09-09 2012-03-15 Microsoft Corporation Application query control with cost prediction
US9027022B2 (en) 2011-06-16 2015-05-05 Argyle Data, Inc. Software virtual machine for acceleration of transactional data processing
JP5800720B2 (ja) * 2012-01-24 2015-10-28 三菱電機株式会社 情報処理装置及び情報処理方法及びプログラム
US9239727B1 (en) * 2012-10-17 2016-01-19 Amazon Technologies, Inc. Configurable virtual machines
US20140136295A1 (en) 2012-11-13 2014-05-15 Apptio, Inc. Dynamic recommendations taken over time for reservations of information technology resources
US9753980B1 (en) 2013-02-25 2017-09-05 EMC IP Holding Company LLC M X N dispatching in large scale distributed system
US10963426B1 (en) 2013-02-25 2021-03-30 EMC IP Holding Company LLC Method of providing access controls and permissions over relational data stored in a hadoop file system
CN104077530A (zh) 2013-03-27 2014-10-01 国际商业机器公司 用于评估数据访问语句的安全性的方法和装置
EP3011448A1 (en) * 2013-06-21 2016-04-27 Nokia Solutions and Networks Oy Selection of virtual machines or virtualized network entities
US10417591B2 (en) 2013-07-03 2019-09-17 Apptio, Inc. Recursive processing of object allocation rules
US10325232B2 (en) 2013-09-20 2019-06-18 Apptio, Inc. Allocating heritage information in data models
US9875279B2 (en) * 2013-12-17 2018-01-23 Huawei Technologies Co., Ltd. Data scanning method and apparatus
US11244364B2 (en) 2014-02-13 2022-02-08 Apptio, Inc. Unified modeling of technology towers
US9665633B2 (en) 2014-02-19 2017-05-30 Snowflake Computing, Inc. Data management systems and methods
US10545917B2 (en) 2014-02-19 2020-01-28 Snowflake Inc. Multi-range and runtime pruning
JP2015210665A (ja) * 2014-04-25 2015-11-24 株式会社野村総合研究所 データ管理システム
JPWO2016092604A1 (ja) * 2014-12-08 2017-06-01 株式会社日立製作所 データ処理システムおよびデータアクセス方法
US11151493B2 (en) 2015-06-30 2021-10-19 Apptio, Inc. Infrastructure benchmarking based on dynamic cost modeling
US10268979B2 (en) 2015-09-28 2019-04-23 Apptio, Inc. Intermediate resource allocation tracking in data models
US10387815B2 (en) 2015-09-29 2019-08-20 Apptio, Inc. Continuously variable resolution of resource allocation
US10726367B2 (en) 2015-12-28 2020-07-28 Apptio, Inc. Resource allocation forecasting
US10474974B2 (en) 2016-09-08 2019-11-12 Apptio, Inc. Reciprocal models for resource allocation
US10936978B2 (en) 2016-09-20 2021-03-02 Apptio, Inc. Models for visualizing resource allocation
US10482407B2 (en) 2016-11-14 2019-11-19 Apptio, Inc. Identifying resource allocation discrepancies
CN106453637B (zh) * 2016-11-24 2018-01-26 深圳市小满科技有限公司 云平台高效复用服务器资源的方法、装置以及云平台
US10157356B2 (en) 2016-12-14 2018-12-18 Apptio, Inc. Activity based resource allocation modeling
JP6957910B2 (ja) * 2017-03-15 2021-11-02 日本電気株式会社 情報処理装置
JP6707797B2 (ja) * 2017-03-29 2020-06-10 株式会社日立製作所 データベース管理システム及びデータベース管理方法
US11775552B2 (en) 2017-12-29 2023-10-03 Apptio, Inc. Binding annotations to data objects
US10324951B1 (en) 2017-12-29 2019-06-18 Apptio, Inc. Tracking and viewing model changes based on time
US10268980B1 (en) 2017-12-29 2019-04-23 Apptio, Inc. Report generation based on user responsibility
CN110362404B (zh) * 2019-06-28 2022-08-23 北京淇瑀信息科技有限公司 一种基于sql的资源分配方法、装置和电子设备
CN112540843B (zh) * 2019-09-20 2024-05-07 杭州海康威视数字技术股份有限公司 资源的分配方法、装置、存储设备及存储介质
CN113177060B (zh) * 2021-05-25 2024-02-27 中国工商银行股份有限公司 一种管理sql语句的方法、装置及设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3266351B2 (ja) * 1993-01-20 2002-03-18 株式会社日立製作所 データベース管理システムおよび問合せの処理方法
JP3023441B2 (ja) * 1993-11-16 2000-03-21 株式会社日立製作所 データベース分割管理方法および並列データベースシステム
US6101495A (en) * 1994-11-16 2000-08-08 Hitachi, Ltd. Method of executing partition operations in a parallel database system
JPH1139340A (ja) * 1997-07-24 1999-02-12 N T T Data:Kk データベース検索システム、マルチプロセッサシステム及びデータベース検索方法
JP2001331463A (ja) * 2000-05-23 2001-11-30 Nec Corp データベース構築方法及びそのプログラムを記録した記録媒体
US7185000B1 (en) * 2000-06-30 2007-02-27 Ncr Corp. Method and apparatus for presenting query plans
US20050034130A1 (en) 2003-08-05 2005-02-10 International Business Machines Corporation Balancing workload of a grid computing environment
US20050192937A1 (en) * 2004-02-26 2005-09-01 International Business Machines Corporation Dynamic query optimization
US7574424B2 (en) * 2004-10-13 2009-08-11 Sybase, Inc. Database system with methodology for parallel schedule generation in a query optimizer
JP4519098B2 (ja) * 2006-03-30 2010-08-04 株式会社日立製作所 計算機の管理方法、計算機システム、及び管理プログラム

Also Published As

Publication number Publication date
US20090013325A1 (en) 2009-01-08
US8209697B2 (en) 2012-06-26
JP2009015534A (ja) 2009-01-22

Similar Documents

Publication Publication Date Title
JP5011006B2 (ja) リソース割当方法、リソース割当プログラム、および、リソース割当装置
JP3266351B2 (ja) データベース管理システムおよび問合せの処理方法
JP4571609B2 (ja) リソース割当方法、リソース割当プログラム、および、管理コンピュータ
US20160188669A1 (en) Partitioning and repartitioning for data parallel operations
US8799267B2 (en) Optimizing storage allocation
US9684600B2 (en) Dynamic process/object scoped memory affinity adjuster
CN111581234B (zh) Rac多节点数据库查询方法、装置及系统
JP5858307B2 (ja) データベース管理システム、計算機、データベース管理方法
US10860579B2 (en) Query planning and execution with reusable memory stack
JPH06309284A (ja) 問合せ処理負荷分散方法
JP6108418B2 (ja) データベース管理システム、計算機、データベース管理方法
CN112818010B (zh) 数据库查询方法及装置
JP2015052977A (ja) 負荷分散装置、負荷分散方法および負荷分散プログラム
Zhang et al. Eunomia: Scaling concurrent index structures under contention using HTM
JP3538322B2 (ja) データベース管理システムおよび問合せの処理方法
JP4422697B2 (ja) データベース管理システムおよび問合せの処理方法
JP3668243B2 (ja) データベース管理システム
JP3732655B2 (ja) データベース管理システム、データベース管理装置および問い合わせ処理方法
JP3819694B2 (ja) データベース管理システムおよび問合せの処理方法
JP3819695B2 (ja) データベース管理システムおよび問合せの処理方法
JP3667997B2 (ja) データベース管理装置
US20240037101A1 (en) Heuristic database querying with dynamic partitioning
Jiang et al. DKWS: A Distributed System for Keyword Search on Massive Graphs (Complete Version)
JP2001147847A (ja) データベース管理システムおよび問合せの処理方法
JP2000148557A (ja) デ―タベ―ス管理システムおよび問合せの処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110329

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110412

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120131

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120329

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150608

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees