JP4571609B2 - リソース割当方法、リソース割当プログラム、および、管理コンピュータ - Google Patents

リソース割当方法、リソース割当プログラム、および、管理コンピュータ Download PDF

Info

Publication number
JP4571609B2
JP4571609B2 JP2006303057A JP2006303057A JP4571609B2 JP 4571609 B2 JP4571609 B2 JP 4571609B2 JP 2006303057 A JP2006303057 A JP 2006303057A JP 2006303057 A JP2006303057 A JP 2006303057A JP 4571609 B2 JP4571609 B2 JP 4571609B2
Authority
JP
Japan
Prior art keywords
computer
resource
logical
server
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
JP2006303057A
Other languages
English (en)
Other versions
JP2008123040A (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 JP2006303057A priority Critical patent/JP4571609B2/ja
Priority to US11/847,651 priority patent/US8051422B2/en
Publication of JP2008123040A publication Critical patent/JP2008123040A/ja
Application granted granted Critical
Publication of JP4571609B2 publication Critical patent/JP4571609B2/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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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
    • 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
    • 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/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/506Constraint

Description

本発明は、リレーショナルデータベース管理システムに適したリソース割当方法、リソース割当プログラム、および、管理コンピュータに関する技術である。
DBMS(DataBase Management System:データベース管理システム)は、データベースのデータに対する問い合わせに応えるシステムである。特に、データベースが表形式であるRDBMS(Relational DataBase Management System)が一般的である。データに対する問い合わせを記述した言語としては、SQL(Structured Query Language)がよく使用される。
多くの問い合わせに対応するために、問い合わせの処理時間を短縮化することが求められている。そこで、従来は、問い合わせの処理を複数のフェーズに分け、各処理フェーズを複数のノード(計算機資源)に分配して、パイプライン処理など並列的な処理を行っていた。
なお、処理フェーズをどのノードに分配するかを決定する分配アルゴリズムが重要である。例えば、非特許文献1に記載された技術は、DBMSのディクショナリに保管された、処理対象となる問い合わせに関する各種統計情報を基にして、各処理フェーズを分配していた。
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.
複数のサーバで構成するDBMSとしては、シェアードディスク方式とシェアードナッシング方式がある。シェアードディスク方式は、問い合わせを行う全てのサーバから全てのディスクにアクセスが可能である。一方、シェアードナッシング方式は、各サーバに独立して属するディスクにのみアクセスが可能である。
分配アルゴリズムの精度は、ディスクにアクセスするDBサーバのリソース(CPUおよびメモリ)の利用効率に大きく影響する。例えば、処理分配がうまくいかず、特定のDBサーバに処理が集中してしまうと、他のDBサーバは処理待ちとなってしまう。つまり、リソースのアンバランスが発生してしまい、DBサーバのリソースを有効利用できない。特に、シェアードナッシング方式は、処理待ちとなるDBサーバが、アクセス対象のディスクを占有するため、リソースのアンバランスが多く発生する。
図12は、SQLの処理フェーズの実行例を示す説明図である。図12(a)のSQL例は、処理フェーズに分割され、図12(b)に示すように各DBサーバに分配され、実行される。
図12(a)のSQL例は、以下に示す6つの処理フェーズに分割される。なお、この処理フェーズの順序は、実行する順序を示す。
・T1〜T4のスキャン:「T1,T2,T3,T4」から
・T1の条件評価:「T1.C1=’DB’」から
・T3の条件評価:「T3.C1<>’AP’」から
・T1,T2の結合:「T1.C1=T2.C1」から
・T3,T4の結合:「T3.C1=T4.C1」から
・T1,T2とT3,T4の結合:「T1,T2,T3,T4」から
DBサーバ「1」、DBサーバ「2」、DBサーバ「3」、および、DBサーバ「4」はそれぞれ異なる筐体のDBサーバである。各DBサーバには、互いに同じ量のリソース(CPUおよびメモリ)が割り当てられており、その割り当て量は、時間が経過しても変更されない。
SQL処理フェーズ(1)を実行する際、各DBサーバのCPUの能力は均等であり、「スキャン」という処理フェーズの種別も同じである。しかし、処理フェーズの対象データであるT1,T2,T3,T4という各データのデータ量にばらつきがある。よって、各DBサーバがスキャンを終了する時刻にもばらつきが生じる。
よって、処理を早期に完了してしまったDBサーバ「2」およびDBサーバ「4」には、まだ処理を続けているDBサーバ「1」およびDBサーバ「3」の処理時間(図では実線矢印表示)と同期するため、SQL処理を実行しない空き時間(図では破線表示)が発生する。よって、この空き時間のために、DBサーバ「2」およびDBサーバ「4」のリソースの利用効率が悪いものとなる。
SQL処理フェーズ(2)を実行する際にも同様に、SQL処理フェーズ(2)を実行しないDBサーバ「2」、および、DBサーバ「4」のCPUは使用しないため、各DBサーバの稼働時間の総和に対するSQLを実行する時間の比率は50%であり、効率が悪い。
SQL処理フェーズ(3)を実行する際、「T1とT2の結合」、および、「T3とT4の結合」は最初に割り当てたCPUのみで実行し、SQL処理フェーズ(3)を実行しないDBサーバ「2」、および、DBサーバ「4」のCPUは使用しないため、CPUの使用効率は50%である。そして、「T3とT4の結合」を完了した後では、DBサーバ「2」のCPUも使用しないため、CPUの使用効率は25%であり、効率が悪い。
SQL処理フェーズ(4)を実行する際、「T1、T2とT3、T4の結合」はDBサーバ「2」でのみ実行され、他のDBサーバ「1」、DBサーバ「3」、および、DBサーバ「4」のCPUは使用されない。よって、CPUの使用効率は25%であり、効率が悪い。
そこで、本発明は、前記した問題を解決し、各データベースサーバ(論理的なコンピュータ)へのSQLの各処理フェーズ実行時の負荷のアンバランスを改善することを主な目的とする。
前記課題を解決するために、本発明は、物理的なコンピュータ上でプログラムとして実行されることにより構成される複数の論理的なコンピュータが、ストレージに格納されるデータベースに対する問い合わせ要求を実行するときに使用する前記物理的なコンピュータのリソースを割り当てる管理コンピュータによるリソース割当方法であって、入力された問い合わせ要求を、並列に実行することができる単位である処理フェーズに分け、前記処理フェーズのフェーズ種別ごとに、前記論理的なコンピュータの処理内容、および、その処理内容を実行するのに要するリソースコストを示すコストマスタ情報を格納する記憶手段を参照して、前記入力された問い合わせ要求の前記処理フェーズを実行するために要するリソースコストを計算し、前記論理的なコンピュータの前記データベースへのアクセス権をもとに、各前記論理的なコンピュータに割り当てられた前記処理フェーズのリソースコストを各前記論理的なコンピュータから受信して記憶手段に格納し、前記記憶手段に格納されたリソースコストを参照し、各前記論理的なコンピュータに割り当てられた前記処理フェーズのリソースコストを、全ての前記論理的なコンピュータに割り当てられた前記処理フェーズのリソースコストの総和で除算することで、各前記論理的なコンピュータのリソース割当率を計算し、前記各論理的なコンピュータに割り当てられている前記物理的なコンピュータのリソースを、前記計算されたリソース割当率に応じて変更することを特徴とする。その他の手段は、後記する。
本発明によれば、SQLの処理フェーズ単位でリソース割当率を変更することによって、各データベースサーバ(論理的なコンピュータ)へのSQLの各処理フェーズ実行時の負荷のアンバランスを改善することができる。
以下、本発明の一実施形態であるDBMSについて、図面を参照しながら説明する。
図1は、DBMS全体を示す構成図である。DBMSは、データベースを使用する為の指示情報であるSQL要求(問い合わせ要求)を入力し、データベースの内容を表示する為の端末装置41、端末装置41のSQL要求部41aからSQL要求を受け付けるコンピュータ42、コンピュータ42からの指示に従いデータベース格納領域60を制御するコンピュータ51を含めて構成される。データベース格納領域60は、磁気記憶装置などにより構成される。
コンピュータ42(管理コンピュータ)は、CPU43a、通信制御装置44a、および、メモリ45を備える。メモリ45には、OS46が搭載されている。メモリ45上には、OS46上で稼動する管理サーバ70が搭載され、CPU43aを用いて稼動している。管理サーバ70は、リソースコスト集計部48、サーバリソース管理部49(コンピュータリソース管理部)、および、SQL解析部50を備える。端末装置41は、通信制御装置44aによってネットワークを介して、管理サーバ70にSQL要求を送信する。
管理サーバ70は、前記したリソースコスト集計部48、サーバリソース管理部49、SQL解析部50、の他に、サーバリソース管理テーブル710、処理フェーズ管理テーブル720、および、コストマスタテーブル730(コストマスタ情報を格納する記憶手段)を備える。なお、管理サーバ70は、コンピュータ51の各DBサーバのいずれかが代行してもよい。
コンピュータ51(物理的なコンピュータ)は、CPU43、通信制御装置44、および、メモリ53を備える。メモリ53にはOS46が置かれている。各DBサーバ(DBサーバ「1」54、DBサーバ「2」57、DBサーバ「3」58、および、DBサーバ「4」59)は、物理的な筐体ではなく、仮想サーバ(論理的なコンピュータ)である。コンピュータ51のサーバ仮想化部52は、各DBサーバに対して、リソースであるCPU43およびメモリ53を割り当てる。これにより、各DBサーバは、サーバ仮想化部52によって割り当てられたリソースを用いて稼動する。なお、メモリ45およびメモリ53は、例えば、フラッシュメモリ、シリコンメモリなどにより実現される。
なお、仮想サーバは、1つの物理的なコンピュータを分割する事で、複数の論理的なコンピュータに見せかけるLPAR(Logical Partition)技術により、実現される。物理的なコンピュータは、プログラムを実行することで、複数の論理的なコンピュータを構成する。論理的なコンピュータは、処理を実行するために物理的なコンピュータのリソース(CPUおよびメモリ)を利用する。なお、LPARを実現するソフトウェアは、例えば、VMware社のVMware Serverが挙げられる。
また、各DBサーバは、データベース格納領域60と直接接続されており、直接接続の関係を有するDBサーバのみが、接続先のデータベース格納領域60へのアクセス権を有するシェアードナッシング方式である。一方、全てのDBサーバが、データベース格納領域60へのアクセス権を有するシェアードディスク方式としてもよい。各DBサーバは、それぞれリソースコスト計算部55、および、SQL実行部56を備えている。
図2は、DBMSのSQL処理に関する構成要素を示す構成図である。図1を適宜参照して、この構成図を説明する。
リソースコスト集計部48は、各DBサーバから送信されたCPUコスト、および、メモリコストを集計する。そして、リソースコスト集計部48は、サーバリソース管理テーブル710に、システム全体の全CPUコスト、全メモリコスト、各DBサーバのCPUコスト、メモリコスト、全CPUコストに占めるCPUコストの割合、全メモリコストに占めるメモリコストの割合を設定する。
サーバリソース管理部49は、メモリ上のサーバリソース管理テーブル710を参照して、各DBサーバの全CPUコストに占めるCPUコストの割合、全メモリコストに占めるメモリコストの割合を元に、各DBサーバのCPU43およびメモリ53の割り当てをサーバ仮想化部52に指示する。サーバ仮想化部52は、指示に従って、DBサーバごとにCPU43およびメモリ53を割り当てる。
SQL要求部41aは、ユーザにSQL要求を入力させる。SQL要求部41aは、SQL解析部50に対して、入力されたSQL要求を通知する。
SQL解析部50は、SQL要求部41aから発行されたSQL要求を構文解析する。構文解析とは、例えば、SQLの字句解析である。そして、SQL解析部50は、SQL要求の処理を複数ノードで並列に処理するために、複数の処理フェーズに分ける。以下、SQL解析部50の処理について、式1の例を元に詳細に説明する。式1は、処理フェーズに分けられる前のSQL要求の一例である。
SELECT T2.C1 FROM T2 ORDER BY T2.C2…(式1)
SQL解析部50は、式1のSQL要求を、2つの処理フェーズに分ける。1つめの処理フェーズは、「SELECT T2.C1 FROM T2」に対応するデータ取り出しフェーズ(データベース格納領域60に存在するデータを取り出すフェーズ)である。2つめの処理フェーズは、「ORDER BY T2.C2」に対応するデータマージフェーズ(列T2.C2に関するソート処理を行う)である。
なお、分割された処理フェーズは、データ取り出しフェーズおよびデータマージフェーズに限定されることはない。SQL解析部50は、さまざまな種別の処理フェーズを扱ってもよい。例えば、非特許文献1は、様々なSQL要求について、処理フェーズに分割される一例を示している。また、SQL解析部50は、SQL要求を高速に処理することができる公知の技術(非特許文献1などを参照)を用いてSQL要求を処理フェーズに分割してもよい。
リソースコスト計算部55は、SQL解析部50により分けられた処理フェーズのうち、自DBサーバで実行する処理フェーズのコストを計算し、管理サーバ70に送信する。例えば、リソースコスト計算部55は、データ取り出しフェーズを、データベース格納領域60へのアクセスのために利用されるメモリ53のメモリコストが高い処理フェーズであると解析する。また、リソースコスト計算部55は、データマージフェーズを、ソート処理を実行するCPU43のCPUコストが高い処理フェーズであると解析する。
リソースコスト計算部55は、SQL解析部50により分けられた処理フェーズのうち、自DBサーバで実行する処理フェーズのコストを計算し、管理サーバ70に送信する。
サーバリソース管理部49は、SQL解析部50で分けた各処理フェーズを、各DBサーバに分配する。なお、処理フェーズの分配は、例えば、SQL要求を実行するプログラムコードを分配先のDBサーバに出力することにより、実現される。
SQL実行部56は、サーバリソース管理部49の指示によりサーバ仮想化部52が割り当てたCPU43およびメモリ53を使用して、データベース格納領域60からデータを取り出し、分配された各処理フェーズにより指定された演算を行い、演算終了をサーバリソース管理部49に通知する。
図3は、処理フェーズ管理テーブルを示す構成図である。
図3(a)は、各DBサーバで実行するSQLの各処理フェーズについて、各処理フェーズに割り当てられたCPU割当率を併記した図である。図3(b)は、図3(a)に対応する処理フェーズ管理テーブル720のデータを示す。CPU割当率は、各処理フェーズに対応するCPUコストの割合に応じて決定されている。なお、リソースの割当率とは、割り当て可能なリソース量を分母とし、割り当てるリソース量を分子とする分数によって計算される。つまり、割当率と割り当て可能なリソース量との乗算によって、実際に割り当てられるリソース量が決定される。
SQL処理フェーズ(1)を実行する際、「T1のスキャン」、「T2のスキャン」、「T3のスキャン」、および、「T4のスキャン」を実行するために、図3(b)に示したCPUコストの割当率に応じて、CPUをDBサーバ「1」に29%、DBサーバ「2」に21%、DBサーバ「3」に29%、および、DBサーバ「4」に21%割り当てる。
SQL処理フェーズ(2)を実行する際、「T1の条件評価」を行うDBサーバ「1」、および、「T3の条件評価」を行うDBサーバ「3」にのみCPUを割り当てる。SQL処理フェーズ(1)と同様に、図3(b)に示したCPUコストの割当率に応じて、CPUをDBサーバ「1」に33%、および、DBサーバ「3」に67%割り当てる。
SQL処理フェーズ(3)を実行する際、「T1とT2の結合」を行うDBサーバ「1」、および、「T3とT4の結合」を行うDBサーバ「3」に対してのみCPUを割り当てる。SQL処理フェーズ(1)と同様に、図3(b)に示したCPUコストの割当率に応じて、CPUをDBサーバ「1」に40%、および、DBサーバ「3」に60%割り当てる。
SQL処理フェーズ(4)を実行する際、「T1、T2とT3、T4の結合」を行うDBサーバ「2」に対してのみCPUを割り当てる。SQL処理フェーズ(1)と同様に、図3(b)に示したCPUコストの割当率に応じて、CPUをDBサーバ「2」に100%割り当てる。
以上説明したCPU割当率によるCPUの割当により、各DBサーバは、それぞれ割り当てられた処理フェーズをほぼ同時に処理を終了する。よって、各DBサーバのCPUの使用効率は100%となるため、効率がよい。
なお、処理フェーズを早期に完了したDBサーバのリソースを他のサーバに再割当することとしてもよい。例えば、SQL処理フェーズ(3)において、「T1とT2の結合」で処理するデータが、「T3とT4の結合」で処理するデータよりも多い場合、「T3とT4の結合」の処理が早期に完了することがある。この場合、「T3とT4の結合」の完了後に、CPUコストの割当率を再計算し、再計算した割当率に基づいて各DBサーバへのCPU割り当てを行う。
その結果、「T1とT2の結合」を実行中のDBサーバ「1」の割当率が、「T3とT4の結合」を早期に完了したDBサーバ「3」の割当率である60%と、既に割り当てられている40%との和である100%へと変更される。この結果、CPUは常に使用効率100%となり、効率がよい。
図4は、サーバリソース管理テーブルを示す構成図である。
サーバリソース管理テーブル710は、サーバ名711をキーとし、サーバ名711に対応するDBサーバに関するCPU割当率712、メモリ割当率713、CPUコスト714、および、メモリコスト715を対応づけて格納する。さらに、サーバリソース管理テーブル710は、全サーバのCPU割当率712、メモリ割当率713、CPUコスト714、および、メモリコスト715の総和の情報を保持している。
CPU割当率712は、割り当てられるCPUのシステム全体の割り当て可能なCPUに占める割合を示す。メモリ割当率713は、割り当てられるメモリのシステム全体の割り当て可能なメモリに占める割合を示す。CPUコスト714は、実行する処理フェーズに必要なCPUのコストを示す。メモリコスト715は、実行する処理フェーズに必要なメモリのコストを示す。例えば、DBサーバ「1」ではCPU割当率が「45%」、メモリ割当率が「25%」、CPUコストが「1000」、メモリコストが「500」である。
図5は、端末装置を示す構成図である。
端末装置41は、CPU(Central Processing Unit)41d、メモリ41b、HDD(Hard Disk Drive)41e、および、NIF(Network interface)41fを備えたコンピュータである。CPU41dは、メモリ41bに読み込まれたプログラム41cを実行する。
以下の表1は、コストマスタテーブル730の一例を示す。コストマスタテーブル730は、処理フェーズごとに、フェーズ種別、処理内容、CPUコスト、および、メモリコストに対応づけられる。例えば、フェーズ種別「結合」は、計算機の処理内容として「1回のソート、1回のマージ」により実現され、その処理内容を実現するために、CPUコスト「100」およびメモリコスト「50」というリソースを要する。
Figure 0004571609
図6は、SQL実行処理の処理手順を示すフローチャートである。
SQL解析部50の処理(S601)を説明する。SQL解析部50は、SQLの処理要求を端末装置41から受け取ると、処理要求として入力されたSQL文を構文解析し、問い合わせの処理を複数のDBサーバで並列に処理するために、複数の処理フェーズに分ける。
リソースコスト集計部48の処理(S602)を説明する。リソースコスト集計部48は、コストマスタテーブル730を参照して、前記処理フェーズのCPUコスト、および、メモリコストを集計し、DBサーバごとにシステム全体に占めるリソースの割合を取得する。
サーバリソース管理部49の処理(S603)を説明する。サーバリソース管理部49は、前記DBサーバごとシステム全体に占めるリソースの割合に基づいて、各DBサーバのリソースの割り当て指示をOS46に行う。
SQL実行部56の処理(S604)を説明する。SQL実行部56は、DBサーバごとに割り当てられたリソースを使用して前記処理フェーズを実行する。
なお、サーバリソース管理部49は、処理フェーズを早期に完了したDBサーバのリソースを他のサーバに再割当することとしてもよい(S605)。なお、リソースの再割当処理は、図3のSQL処理フェーズ(3)で説明したとおりである。
そして、実行しているSQLの全処理フェーズの実行が終了した否かの判定を行う(S606)。SQLの全処理フェーズが終了していない場合には(S606,No)、終了していない処理フェーズに対して、S602以下の処理を行う。一方で、SQLの全処理フェーズが終了した場合には(S606,Yes)、SQL処理を終了する。
図7は、リソースコスト集計の処理手順を示すフローチャートである。
管理サーバ70内のリソースコスト集計部48は、各DBサーバのCPUコスト、および、メモリコストに関わる情報をサーバリソース管理テーブル710に設定する。
リソースコスト計算部55の処理(S4801)を説明する。SQLの処理フェーズの情報を取得すると、S4801でリソースコスト計算部55は、該DBサーバで実行する処理フェーズのCPUコスト、および、メモリコストを計算する。
S4802でリソースコスト集計部48は、各DBサーバから該DBサーバで実行するCPUコストを受信する。S4803でリソースコスト集計部48は、各DBサーバから該DBサーバで実行するメモリコストを受信する。
S4804でリソースコスト集計部48は、受信した各DBサーバのCPUコストをサーバリソース管理テーブル710に設定する。S4805でリソースコスト集計部48は、受信した各DBサーバのメモリコストをサーバリソース管理テーブル710に設定する。
S4806でリソースコスト集計部48は、受信したCPUコストの総和(総CPUコスト)を計算し、サーバリソース管理テーブル710に設定する。S4807でリソースコスト集計部48は、受信したメモリコストの総和(総メモリコスト)を計算し、サーバリソース管理テーブル710に設定する。
S4808でリソースコスト集計部48は、総CPUコストに対する、DBサーバのCPUコストの割合を計算し、サーバリソース管理テーブル710に設定する。S4809でリソースコスト集計部48は、総メモリコストに対する、DBサーバのメモリコストの割合を計算し、サーバリソース管理テーブル710に設定する。
S4810では、S4808およびS4809の設定について、全DBサーバ分の設定が終了したか否かの判定を行う。全DBサーバ分の設定が終了したら(S4810,Yes)リソースコスト集計部48の処理を終了し、全DBサーバ分の設定が終了していない(S4810,No)なら、設定が終了していないDBサーバに対して、S4808およびS4809の処理を行う。
図8は、リソースコスト計算の処理手順を示すフローチャートである。
S5501でリソースコスト計算部55は、属するDBサーバで実行する該当処理フェーズのCPUコストを計算する。S5502でリソースコスト計算部55は、属するDBサーバで実行する該当処理フェーズのメモリコストを計算する。
S5503でリソースコスト計算部55は、S5501で取得したCPUコスト、および、S5502で取得したメモリコストの情報をリソースコスト集計部48に送信して、処理を終了する。
図9は、サーバリソース管理の処理手順を示すフローチャートである。
S4901でサーバリソース管理部49は、図4のサーバリソース管理テーブル710を参照し、全DBサーバのCPU割当率712を取得する。S4902でサーバリソース管理部49は、S4901で取得した全DBサーバのCPU割当率712に基づいたCPUの割当指示をサーバ仮想化部52に行う。
S4903でサーバリソース管理部49は、図4のサーバリソース管理テーブル710を参照し、全DBサーバのメモリ割当率713を取得する。S4904でサーバリソース管理部49は、S4903で取得した全DBサーバのメモリ割当率713に基づいたメモリの割当指示をサーバ仮想化部52に行い、サーバリソース管理部49の処理を終了する。
図10は、CPU割り当ての一例を示す説明図である。図12(a)に示すSQL要求を処理する場合を説明する。図10(a)は、CPUが各DBサーバに固定的に割り当てられている(CPU固定)割当状況を示す。図10(b)は、CPUが各DBサーバに図6に示すフローチャートを実行することで変動的に割り当てられている(CPU変動)割当状況を示す。
図10(c)は、図10(b)に対応する処理フェーズ管理テーブル720を示す。図10(b)は、図10(a)と比べて、CPUの利用効率が改善されている。なお、図10(b)の処理フェーズ(3)の時刻(A)において、リソースの再割当が実施されている(図6のS605参照)。
図11は、メモリ割り当ての一例を示す説明図である。以下の式2に示すSQL要求を処理する場合を説明する。式2の結合方法は、マージジョインであるものとする。なお、式2の「from T1,T2」を実行するために、処理フェーズ「T1,T2のスキャン」および処理フェーズ「T1,T2のソート」が抽出される。式2の「where T1.C1=T2.C1」を実行するために、処理フェーズ「T1,T2の結合」が抽出される。
select T1.C1 from T1,T2 where T1.C1=T2.C1…(式2)
図11(a)は、メモリが各DBサーバに固定的に割り当てられている(メモリ固定)割当状況を示す。図11(b)は、メモリが各DBサーバに図6に示すフローチャートを実行することで変動的に割り当てられている(メモリ変動)割当状況を示す。図11(c)は、図11(b)に対応する処理フェーズ管理テーブル720を示す。図11(b)は、図11(a)と比べて、メモリの利用効率が改善されている。なお、図11(b)の処理フェーズ(2)の時刻(A)において、リソースの再割当が実施されている(図6のS605参照)。
以上説明した本実施形態によれば、SQLの処理フェーズ単位でリソース割当率を変更することによって、各データベースサーバへのSQLの各処理フェーズ実行時の負荷のアンバランスを改善することができる。これにより、リソースの利用効率が上がることで、処理フェーズが早期に完了する。よって、処理可能な処理フェーズの数が増えることにより、処理フェーズのスループットを向上させることができる。
本発明の一実施形態に関するDBMS全体を示す構成図である。 本発明の一実施形態に関するDBMSのSQL処理に関する構成要素を示す構成図である。 本発明の一実施形態に関する処理フェーズ管理テーブルを示す構成図である。 本発明の一実施形態に関するサーバリソース管理テーブルを示す構成図である。 本発明の一実施形態に関する端末装置を示す構成図である。 本発明の一実施形態に関するSQL実行処理の処理手順を示すフローチャートである。 本発明の一実施形態に関するリソースコスト集計の処理手順を示すフローチャートである。 本発明の一実施形態に関するリソースコスト計算の処理手順を示すフローチャートである。 本発明の一実施形態に関するサーバリソース管理の処理手順を示すフローチャートである。 本発明の一実施形態に関するCPU割り当ての一例を示す説明図である。 本発明の一実施形態に関するメモリ割り当ての一例を示す説明図である。 SQLの処理フェーズの実行例を示す説明図である。
符号の説明
48 リソースコスト集計部
49 サーバリソース管理部
50 SQL解析部
52 サーバ仮想化部
55 リソースコスト計算部
56 SQL実行部
60 データベース格納領域
70 管理サーバ
710 サーバリソース管理テーブル
720 処理フェーズ管理テーブル
730 コストマスタテーブル

Claims (8)

  1. 物理的なコンピュータ上でプログラムとして実行されることにより構成される複数の論理的なコンピュータが、ストレージに格納されるデータベースに対する問い合わせ要求を実行するときに使用する前記物理的なコンピュータのリソースを割り当てる管理コンピュータによるリソース割当方法であって、
    入力された問い合わせ要求を、並列に実行することができる単位である処理フェーズに分け、
    前記処理フェーズのフェーズ種別ごとに、前記論理的なコンピュータの処理内容、および、その処理内容を実行するのに要するリソースコストを示すコストマスタ情報を格納する記憶手段を参照して、前記入力された問い合わせ要求の前記処理フェーズを実行するために要するリソースコストを計算し、
    前記論理的なコンピュータの前記データベースへのアクセス権をもとに、各前記論理的なコンピュータに割り当てられた前記処理フェーズのリソースコストを各前記論理的なコンピュータから受信して記憶手段に格納し、
    前記記憶手段に格納されたリソースコストを参照し、各前記論理的なコンピュータに割り当てられた前記処理フェーズのリソースコストを、全ての前記論理的なコンピュータに割り当てられた前記処理フェーズのリソースコストの総和で除算することで、各前記論理的なコンピュータのリソース割当率を計算し、
    前記各論理的なコンピュータに割り当てられている前記物理的なコンピュータのリソースを、前記計算されたリソース割当率に応じて変更すること
    を特徴とするリソース割当方法。
  2. 前記管理コンピュータは、前記各論理的なコンピュータに割り当てられている前記物理的なコンピュータのCPUを、前記計算されたリソース割当率に応じて変更することを特徴とする請求項1に記載のリソース割当方法。
  3. 前記管理コンピュータは、前記各論理的なコンピュータに割り当てられている前記物理的なコンピュータのメモリを、前記計算されたリソース割当率に応じて変更することを特徴とする請求項1に記載のリソース割当方法。
  4. 前記管理コンピュータは、1つの前記論理的なコンピュータが、1つの前記データベースに対して占有的にアクセスできるシェアードナッシング方式の前記データベースへのアクセス権に応じて、各前記論理的なコンピュータに前記処理フェーズを割り当てることを特徴とする請求項1ないし請求項3のいずれか1項に記載のリソース割当方法。
  5. 前記管理コンピュータは、1つの前記論理的なコンピュータが、全ての前記データベースに対して共用的にアクセスできるシェアードディスク方式の前記データベースへのアクセス権に応じて、各前記論理的なコンピュータに前記処理フェーズを割り当てることを特徴とする請求項1ないし請求項3のいずれか1項に記載のリソース割当方法。
  6. 前記管理コンピュータは、前記処理フェーズを早期に完了した前記論理的なコンピュータのリソース割当率を0に減少し、減少分のリソース割当率を他の前記論理的なコンピュータに再割当することで、前記各論理的なコンピュータに割り当てられている前記物理的なコンピュータのリソースを、前記再割当されたリソース割当率に応じて変更することを特徴とする請求項1ないし請求項5のいずれか1項に記載のリソース割当方法。
  7. 請求項1ないし請求項6のいずれか1項に記載のリソース割当方法を、コンピュータに実行させるためのリソース割当プログラム。
  8. 物理的なコンピュータ上でプログラムとして実行されることにより構成される複数の論理的なコンピュータが、ストレージに格納されるデータベースに対する問い合わせ要求を実行するときに使用する前記物理的なコンピュータのリソースを割り当てる管理コンピュータであって、
    入力された問い合わせ要求を、並列に実行することができる単位である処理フェーズに分ける問い合わせ要求解析部と、
    前記処理フェーズのフェーズ種別ごとに、前記論理的なコンピュータの処理内容、および、その処理内容を実行するのに要するリソースコストを示すコストマスタ情報を格納する記憶手段を参照して、前記入力された問い合わせ要求の前記処理フェーズを実行するために要するリソースコストを計算するリソースコスト計算部と、
    前記論理的なコンピュータの前記データベースへのアクセス権をもとに、各前記論理的なコンピュータに割り当てられた前記処理フェーズのリソースコストを各前記論理的なコンピュータから受信して記憶手段に格納するリソースコスト集計部と、
    前記記憶手段に格納されたリソースコストを参照し、各前記論理的なコンピュータに割り当てられた前記処理フェーズのリソースコストを、全ての前記論理的なコンピュータに割り当てられた前記処理フェーズのリソースコストの総和で除算することで、各前記論理的なコンピュータのリソース割当率を計算し、
    前記各論理的なコンピュータに割り当てられている前記物理的なコンピュータのリソースを、前記計算されたリソース割当率に応じて変更するコンピュータリソース管理部と、
    を有することを特徴とする管理コンピュータ。

JP2006303057A 2006-11-08 2006-11-08 リソース割当方法、リソース割当プログラム、および、管理コンピュータ Expired - Fee Related JP4571609B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006303057A JP4571609B2 (ja) 2006-11-08 2006-11-08 リソース割当方法、リソース割当プログラム、および、管理コンピュータ
US11/847,651 US8051422B2 (en) 2006-11-08 2007-08-30 Resource assignment method for query partioning based on processing cost of each partition

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006303057A JP4571609B2 (ja) 2006-11-08 2006-11-08 リソース割当方法、リソース割当プログラム、および、管理コンピュータ

Publications (2)

Publication Number Publication Date
JP2008123040A JP2008123040A (ja) 2008-05-29
JP4571609B2 true JP4571609B2 (ja) 2010-10-27

Family

ID=39361139

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006303057A Expired - Fee Related JP4571609B2 (ja) 2006-11-08 2006-11-08 リソース割当方法、リソース割当プログラム、および、管理コンピュータ

Country Status (2)

Country Link
US (1) US8051422B2 (ja)
JP (1) JP4571609B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9772798B2 (en) * 2008-09-19 2017-09-26 Oracle International Corporation Method and system for implementing workload management by monitoring disk utilizations
US8407238B2 (en) * 2009-10-28 2013-03-26 Yahoo! Inc. System and methods for enabling arbitrary developer code consumption of web-based data
US8700752B2 (en) * 2009-11-03 2014-04-15 International Business Machines Corporation Optimized efficient LPAR capacity consolidation
KR101608495B1 (ko) * 2009-12-11 2016-04-01 삼성전자주식회사 데이터 스트림 처리 장치 및 방법
JP5800720B2 (ja) * 2012-01-24 2015-10-28 三菱電機株式会社 情報処理装置及び情報処理方法及びプログラム
US9213735B1 (en) * 2012-01-25 2015-12-15 Google Inc. Flow control in very large query result sets using a release message to confirm that a client computer is ready to receive the data associated with a data collection operation
JP5904082B2 (ja) * 2012-10-05 2016-04-13 富士ゼロックス株式会社 関連検索システム、検索窓口装置、データベース及びプログラム
US9239727B1 (en) * 2012-10-17 2016-01-19 Amazon Technologies, Inc. Configurable virtual machines
US9836330B2 (en) 2013-07-16 2017-12-05 Hitachi, Ltd. Virtual resource management tool for cloud computing service
US10019478B2 (en) * 2013-09-05 2018-07-10 Futurewei Technologies, Inc. Mechanism for optimizing parallel execution of queries on symmetric resources
US20150081400A1 (en) * 2013-09-19 2015-03-19 Infosys Limited Watching ARM
US9875279B2 (en) * 2013-12-17 2018-01-23 Huawei Technologies Co., Ltd. Data scanning method and apparatus
US9665633B2 (en) * 2014-02-19 2017-05-30 Snowflake Computing, Inc. Data management systems and methods
US9430663B2 (en) 2014-06-11 2016-08-30 Live Nation Entertainment, Inc. Dynamic filtering and precision alteration of query responses responsive to request load

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS642145A (en) * 1987-06-25 1989-01-06 Fujitsu Ltd Resource control system for virtual computer system
JPH1139340A (ja) * 1997-07-24 1999-02-12 N T T Data:Kk データベース検索システム、マルチプロセッサシステム及びデータベース検索方法
JP2001331463A (ja) * 2000-05-23 2001-11-30 Nec Corp データベース構築方法及びそのプログラムを記録した記録媒体
JP2003157177A (ja) * 2001-11-22 2003-05-30 Hitachi Ltd 仮想計算機システム及びプログラム
WO2004063928A1 (ja) * 2003-01-14 2004-07-29 Accelia, Inc. データベース負荷軽減システムおよび負荷軽減プログラム
JP2005196602A (ja) * 2004-01-09 2005-07-21 Hitachi Ltd 無共有型データベース管理システムにおけるシステム構成変更方法
JP2005309644A (ja) * 2004-04-20 2005-11-04 Hitachi Ltd リソース制御方法及びそのシステム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009265A (en) * 1994-02-25 1999-12-28 International Business Machines Corporation Program product for optimizing parallel processing of database queries
US6507834B1 (en) * 1999-12-22 2003-01-14 Ncr Corporation Method and apparatus for parallel execution of SQL from stored procedures
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
US7277897B2 (en) * 2003-08-01 2007-10-02 Oracle International Corporation Dynamic reassignment of data ownership
US20050081210A1 (en) * 2003-09-25 2005-04-14 International Business Machines Corporation Dynamic adjustment of system resource allocation during query execution in a database management system
US7574424B2 (en) * 2004-10-13 2009-08-11 Sybase, Inc. Database system with methodology for parallel schedule generation in a query optimizer
US7383247B2 (en) * 2005-08-29 2008-06-03 International Business Machines Corporation Query routing of federated information systems for fast response time, load balance, availability, and reliability

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS642145A (en) * 1987-06-25 1989-01-06 Fujitsu Ltd Resource control system for virtual computer system
JPH1139340A (ja) * 1997-07-24 1999-02-12 N T T Data:Kk データベース検索システム、マルチプロセッサシステム及びデータベース検索方法
JP2001331463A (ja) * 2000-05-23 2001-11-30 Nec Corp データベース構築方法及びそのプログラムを記録した記録媒体
JP2003157177A (ja) * 2001-11-22 2003-05-30 Hitachi Ltd 仮想計算機システム及びプログラム
WO2004063928A1 (ja) * 2003-01-14 2004-07-29 Accelia, Inc. データベース負荷軽減システムおよび負荷軽減プログラム
JP2005196602A (ja) * 2004-01-09 2005-07-21 Hitachi Ltd 無共有型データベース管理システムにおけるシステム構成変更方法
JP2005309644A (ja) * 2004-04-20 2005-11-04 Hitachi Ltd リソース制御方法及びそのシステム

Also Published As

Publication number Publication date
JP2008123040A (ja) 2008-05-29
US8051422B2 (en) 2011-11-01
US20080109813A1 (en) 2008-05-08

Similar Documents

Publication Publication Date Title
JP4571609B2 (ja) リソース割当方法、リソース割当プログラム、および、管理コンピュータ
US6505187B1 (en) Computing multiple order-based functions in a parallel processing database system
US20190205291A1 (en) Scalable index build techniques for column stores
JP5011006B2 (ja) リソース割当方法、リソース割当プログラム、および、リソース割当装置
US8799267B2 (en) Optimizing storage allocation
JPH06214843A (ja) データベース管理システムおよび問合せの処理方法
CN111581234B (zh) Rac多节点数据库查询方法、装置及系统
US10810174B2 (en) Database management system, database server, and database management method
US20070174248A1 (en) Method and system for data processing with load balance
US6564221B1 (en) Random sampling of rows in a parallel processing database system
US20210149903A1 (en) Successive database record filtering on disparate database types
JP6823626B2 (ja) データベース管理システム及び方法
US9298769B1 (en) Method and apparatus to facilitate discrete-device accelertaion of queries on structured data
JP2009037369A (ja) データベースサーバへのリソース割当て方法
WO2016092604A1 (ja) データ処理システムおよびデータアクセス方法
US20100017429A1 (en) Method and apparatus of distributing data in partioned databases operating on a shared-nothing architecture
JP5043166B2 (ja) 計算機システム、データ検索方法及びデータベース管理計算機
JPH06309284A (ja) 問合せ処理負荷分散方法
US20140379691A1 (en) Database query processing with reduce function configuration
JPH0991257A (ja) Cpu管理方式
JP4422697B2 (ja) データベース管理システムおよび問合せの処理方法
JP3538322B2 (ja) データベース管理システムおよび問合せの処理方法
US11868352B2 (en) Systems and methods for spilling data for hash joins
JP3668243B2 (ja) データベース管理システム
US20240086386A1 (en) Multihost database host removal shortcut

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100629

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

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

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

Free format text: PAYMENT UNTIL: 20130820

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees