JP2011039800A - データベース管理方法およびシステム並びにその処理プログラム - Google Patents

データベース管理方法およびシステム並びにその処理プログラム Download PDF

Info

Publication number
JP2011039800A
JP2011039800A JP2009186956A JP2009186956A JP2011039800A JP 2011039800 A JP2011039800 A JP 2011039800A JP 2009186956 A JP2009186956 A JP 2009186956A JP 2009186956 A JP2009186956 A JP 2009186956A JP 2011039800 A JP2011039800 A JP 2011039800A
Authority
JP
Japan
Prior art keywords
data
threads
processing unit
processing request
processes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009186956A
Other languages
English (en)
Other versions
JP4801761B2 (ja
Inventor
Hironori Sugimoto
裕紀 杉本
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 JP2009186956A priority Critical patent/JP4801761B2/ja
Priority to US12/703,661 priority patent/US8346744B2/en
Publication of JP2011039800A publication Critical patent/JP2011039800A/ja
Application granted granted Critical
Publication of JP4801761B2 publication Critical patent/JP4801761B2/ja
Priority to US13/731,561 priority patent/US20140019430A1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • 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/5033Allocation 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 data affinity
    • 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/2455Query execution
    • G06F16/24552Database cache management
    • 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/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24561Intermediate data storage techniques for performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Abstract

【課題】記憶装置などのハードウェアの構成や処理要求の内容に応じて、処理要求ごとに適切なリソース数の上限を設定することにより、処理性能を向上する方法を提供すること。
【解決手段】 処理要求受付処理部は、データの問い合わせである処理要求を受け付ける。補助記憶装置は、データを記憶するデータベースを格納する格納領域を配置する。データ操作実行処理部は、前記受け付けた処理要求を解析し、該解析の結果に基づいて前記複数のデータ操作を行う。リソース管理処理部は、生成されたプロセスやスレッドに割り当て当てられる前記データ操作のそれぞれを管理する。バッファ管理処理部は、前記データ操作を行った際に前記データ操作のデータを前記補助記憶装置から前記メモリ上にキャッシュし前記データ操作の対象となるデータがキャッシュ上に存在するかどうかを判別する。
【選択図】 図1

Description

本発明は、データベース管理技術に関わり、データベース管理システム(DBMS)に広く適用することができる。
従来、特許文献1に開示されているような技術が利用され、データベース処理要求に対して、CPUリソースを動的に割り当てて実行するような処理が行われる。
また、近年大規模分析のニーズ増大に伴い、特許文献2に開示されているような技術が利用され、データベース管理システム内部でプロセスやスレッドなどのリソースを多数利用して並列処理することで、処理を高速化する技術が必要とされている。
さらに、データベース管理システムのインデクスの作成やデータ挿入、更新などのデータ操作についても、ユーザやアプリケーションからのひとつの処理要求に対して並列に処理を行うことで処理を高速化する技術も広まっている。
特開2007-249468号公報 特開2007-34414号公報
このような処理ではプロセスやスレッドなどのリソースを多数使用する必要があるが、例えば記憶装置の入出力性能によっては、いくら多数のリソースを割り当ててもそれ以上性能が上がらなくなる状態が存在する。このような状態で多くのリソースを割り当てても、例えばプロセスやスレッドの場合、プロセスやスレッドの切り替えなどにかかるコストが増大し、一定数以上増やしてもかえって性能が劣化する場合がある。
また、オペレーティングシステムなどのシステム全体には、使用できるリソースの上限値があることが一般的であり、複数の処理要求が実行された場合に、最初に実行された処理要求がシステムの上限までリソースを使用してしまうと、次の処理要求に必要なリソースが十分に割り当てられず、低い性能しか出せない場合がある。
一方、データベース管理システムにおいて、例えば格納されているデータに対するアクセスごとにスレッドを作成してアクセスする場合を考えると、データが少ない場合には少数のスレッドでアクセスすることができる。つまり、最適なプロセスまたはスレッド数で動作するためには、プロセスまたはスレッド数の上限値を決定することが重要である。
本発明の目的は、記憶装置などのハードウェアの構成や処理要求の内容に応じて、処理要求ごとに適切なリソース数の上限を設定することにより、処理性能を向上発揮することにある。
本発明は、
データの問い合わせである処理要求を受け付ける処理要求受付処理部と、
データを記憶するデータベースを格納する格納領域が配置される補助記憶装置と、
前記受け付けた処理要求を解析し、該解析の結果に基づいて前記複数のデータ操作を行うデータ操作実行処理部と、
生成されたプロセスやスレッドに割り当て当てられる前記データ操作のそれぞれを管理するリソース管理処理部と、
前記データ操作を行った際に前記データ操作の対象となるデータを前記補助記憶装置から前記メモリ上にキャッシュし前記データ操作の対象となるデータがキャッシュ上に存在するかどうかを判別するバッファ管理処理部とを有し、
さらに、前記データ操作実行処理部は、前記データ操作を実行する際に、
前記バッファ管理処理部による判定が前記キャッシュ上にデータが存在するか否かを判断し、
前記キャッシュ上にデータが存在しない場合は、
当該データ操作における前記プロセス数や前記スレッド数の空きの判断を前記リソース管理部により行い、
前記プロセス数や前記スレッド数が空いている場合は前記プロセスや前記スレッドに前記データ操作を実行するために、前記実行したデータ操作の処理対象となるデータをメモリ上にキャッシュするためのアクセス要求を前記補助記憶装置に送り、
前記プロセス数や前記スレッド数の該空きがない場合は該空いた後前記データ操作を実行し、前記キャッシュ上にデータが存在する場合は、前記データ操作を実行することによって課題を解決するものである。
本発明によって、データベース管理システム内で一つの処理要求に割り当てるリソース上限を設定することによって、効率的なリソース利用が可能となる。
本発明の処理要求毎リソース数決定処理部を説明するための概念図である。 本発明の実施形態に係るコンピュータシステムの概略構成を示す図である。 処理要求毎リソース数決定処理部の詳細を説明するためのフローチャートである。 スキーマ定義情報を説明するための概念図である。 ストレージ構成情報を説明するための概念図である。 ストレージ装置の階層が複雑化した場合のストレージ構成情報を説明するための概念図である スキーマとストレージ構成のマッピング情報を説明するための概念図である。 ストレージ構成情報として、I/O性能を用いた場合の処理要求毎リソース数決定処理部の詳細を説明するためのフローチャートである。 I/O性能をストレージ構成情報として扱った場合のストレージ構成情報の例を説明する概念図である。 結合処理における操作対象テーブルごとのリソース数を割り当てる処理について説明するためのフローチャートである。 ディスクへのI/Oを伴う操作などを実行するデータ操作実行処理部を説明するためのフローチャートである。 基準リソース数とディスク装置の対応表を説明するための概念図である。 性能統計情報を説明するための概念図である。 結合処理におけるリソース数割り当ての効果を説明するための概念図である。 結合処理における結合順を考慮したリソース数割り当てを説明するためのフロー図である。 結合順係数管理表を説明するための概念図である。
本発明の実施の形態について、図面を参照しつつ第1の実施例を説明する。
図2は本発明の実施形態に係るコンピュータシステムの概略構成の一例を示す図である。
コンピュータシステム201は、CPU202、主記憶装置203、ストレージエリアネットワーク204により接続されたストレージサブシステム205からなり、データベースアクセス処理部206を持つ多数のクライアントホスト207とネットワーク208を介して接続している。
ストレージサブシステム205内部には複数のディスク装置209からなる領域に、データベース管理システム101が管理するデータを格納するデータベース格納領域210が置かれる。また、このストレージサブシステム205はデータ格納領域215とディスク装置209の対応などのストレージ構成情報212を管理する制御部214を持つ。
前記のストレージサブシステム205はコンピュータシステム201に内蔵のディスクとして構成されていても構わない。
また、管理サーバ211はストレージエリアネットワーク環境を管理するためのサーバ装置であり、ストレージの構成情報212を管理する、ストレージ管理ソフトウェア213が格納されている。
このストレージ管理ソフトウェア213はストレージサブシステム205に内蔵されていても構わない。
さらに、主記憶装置203上にはデータベース管理システム101を配置する。
データベース管理システム101には、クライアントホスト206からデータ検索をはじめとする処理要求を受け付ける既存処理である処理要求受付処理部216と、
データベース格納領域210に配置されたデータの操作をデータベース管理システム101が実行する既存処理であるデータ操作実行処理部218と、
データベースのテーブル構成などの情報であるスキーマ定義情報219と、
データベース管理システム101がプロセスやスレッドなどのリソースを保持して処理への割り当てを行うリソース管理部221と、
処理要求ごとのリソース数を決定する処理要求毎リソース数決定処理部217と、
テーブルなどの定義と、それが格納されているデータ管理領域がどのディスク装置に配置されているかを表すスキーマとストレージ構成のマッピング情報 220と、
ディスク装置1台当たりのI/O性能を最大限に引き出すためのスレッド数である基準リソース数222と、を配置する。
基準リソース数222は、ハードウェア構成が同じであれば実験値などから導き出すことができるものであり、本実施例ではディスク装置209の種類を表す型番などのID1201と基準リソース数222の対応を持つ、基準リソース数とディスク装置の対応表223を記録する。
上述した各処理部は、CPU202で実行されることにより、各処理が実現される。また、上述した各処理部は、各手段と言い換えてもよい。各処理部は、ハードウェア(例えば回路)、コンピュータプログラム、オブジェクト、或いはそれらの組み合わせ(例えば、一部をコンピュータプログラムで実行し一部をハードウェア回路で実行すること)によって実現することもできる。各コンピュータプログラムは、コンピュータマシンに備えられる記憶資源(例えばメモリ)から読み込むことができる。その記憶資源には、CD−ROMやDVD(Digital Versatile Disk)等の記録媒体を介してインストールすることもできるし、インターネットやLAN等の通信ネットワークを介してダウンロードすることもできる。
図12は基準リソース数とディスク装置の対応表223を説明するための概念図である。この対応表は、ディスク装置の種類を表す型番などのID1201と基準リソース数222の対応を記録する。
この基準リソース数とディスク装置の対応表223は、データベース管理システム101によるデータ操作実行時に性能統計情報224を取得し、あるディスク装置209の性能統計情報からそのディスク装置209に対応した基準リソース数222を決めても良い。
このような性能統計情報は、一般にデータベース管理システム101やオペレーティングシステムが取得できるもので、例えば1秒あたりのI/Oの数(IOPS)を測定し、1リソースで動いた時のIOPSと、リソース数を上げてもIOPSが上がらなくなった状態を検知して、IOPSが上限に達する時のリソース数を基準リソース数とすることができる。
図13は性能統計情報224を説明するための概念図である。
本実施例での性能統計情報224は格納領域ID403とこれまでに発生した最大のIOPS1301、さらにその最大IOPSを取得した際に当該領域にアクセスしていたリソースの数1302からなる。
なお、本実施例ではリソース数をスレッド数として扱っているが、プロセス数など他のリソースの場合も同様の処理を行うことができる。
また、データベース管理システム101は、データ操作の性能を向上させるためにメモリ上にディスク上のデータをキャッシュし、データがDBバッファ227上に存在するかどうかを管理するバッファ管理機能226を持つことが一般的である。
図1は本発明の処理要求毎リソース数決定処理部を説明するための概念図である。データベース管理システム101はクライアントホスト207から処理要求を受け付け実行する処理要求実行処理部105を持つ。
処理要求は通常他の業務アプリケーション等が発行されるものであるが、ユーザがクライアントホスト207端末などからデータベース管理システム101に対して処理要求の処理を命じることも可能である。
処理要求実行処理部105は、処理要求を受け付ける処理要求受付処理部216によって処理要求を受け取り、構文解析や最適化などを行った上で、テーブル内のデータへの更新または読み込みといったデータ操作の命令群である実行ロジックに変換する。データ操作実行処理部218はこの実行ロジックを読み込んでデータ操作を実行する。
処理要求毎実行リソース数決定処理部は、スキーマ定義情報219を元に、処理要求の解析結果から検索対象テーブルを決定し(ステップ102)、
ストレージ構成情報212、スキーマとストレージ構成のマッピング情報 220を元に、どのテーブルのデータがどのディスク装置209上に配置されているかといった、操作対象テーブルのストレージ構成を取得し(ステップ103)、
これを元にストレージ構成に対応した処理要求ごとの適切なスレッド最大数を決定する(ステップ104)。
図3は処理要求毎リソース数決定処理部217の詳細を説明するためのフローチャートであり、図1の処理要求毎リソース数決定処理部を詳細化したものである。
処理要求毎リソース数決定処理部217は
スキーマ定義情報219を読み込み(ステップ301)、
処理要求解析結果に含まれる操作対象テーブル一覧を作成する(ステップ302)。
次に、ストレージ管理ソフトウェア213あるいはストレージサブシステム205の制御部214からストレージ構成情報を読み込む(ステップ303)。
ストレージ構成情報212は、利用している領域が何台のディスク装置の上に構成されているかという物理的な構成台数であり、ストレージサブシステム205の制御部214や、ストレージサブシステム205を管理するストレージ管理ソフトウェア213から取得することができる。
さらに、データベース管理システム101が持つスキーマとストレージ構成のマッピング情報220を読み込み(ステップ304)、
スキーマとストレージ構成のマッピング情報220とステップ303で得られたストレージ構成情報とを合わせることで、操作対象テーブルが格納されている部分のストレージ構成情報212を得る(ステップ305)。
ここで、ディスク装置1台あたりのスレッド数である基準リソース数を読み込み(ステップ306)、
ステップ305で得られたストレージ構成情報212、すなわちディスク装置209の構成台数と、基準リソース数222を掛け合わせることで処理要求ごとの適切なスレッド数を決定する(ステップ307)。
なお、ストレージ構成情報212としては、ディスク装置の台数の代わりに、ディスク装置の回転数や入出力のスループット性能、レスポンス性能を用いて同様の処理を行うこともできる。
図4はスキーマ定義情報219を説明するための概念図である。
スキーマ定義情報219は操作対象となるテーブル名402と、テーブルを処理内部で特定するためのテーブルID401や、テーブルが実際に格納されている格納領域のIDである格納領域ID403などから構成されている。
ここで、テーブル名や格納領域名がIDを兼ねていても構わない。
また、検索を高速化する目的で作成されるインデクスについても同様にインデクス名405やそのID404と格納されている領域のID403、インデクスが定義されているテーブルのID401などから構成される情報を持つ。
本実施例では、スキーマ定義情報をメモリ上に格納しているが、リソース数決定処理部の実行時に読み込み可能な場所であれば、ディスク装置上に格納するなど、他の場所に格納されていても良い。
図11はディスク装置へのI/Oを伴う操作などを実行するデータ操作実行処理部218を説明するためのフローチャートである。
データ操作実行処理部218は、
まず実行ロジックを読み込み(ステップ1101)、
実行ロジックが事前に定義された並列化可能なロジックであるかどうかを判断する(ステップ1107)。
並列化可能であった場合には、操作対象がバッファ上にキャッシュされておらずディスク上にのみ存在しているかどうかを確認する(ステップ1701)。
操作対象がバッファ上にキャッシュされていない場合には、現在使用しているスレッド数が上限に達していないかどうかを確認し(ステップ1102)、
利用しているスレッド数が上限に達している場合にはスレッドの空きを待ち(ステップ1103)、
利用しているスレッド数が上限に達していない場合には、スレッドにデータ操作を割り当て(ステップ1104)、データ操作を実行する(ステップ1106)。
実行ロジックが並列化可能でない場合、および操作対象がバッファ上にキャッシュされている場合には、単純にデータ操作を実行する(ステップ1105)。
そして、上記のステップを実行ロジックが完了するまで繰り返す(ステップ1105)。
DBバッファ227を用いてキャッシュされたデータに対して読み込みを行う場合、多数のスレッドを割り当てても大きな効果は得られない。
そこで、処理要求実行時、データ操作対象がキャッシュされているかどうかを判別し、DBバッファ227上にキャッシュされているデータであればそのまま読み込み、キャッシュされていないデータであれば、スレッドを割り当てて操作を実行することが考えられる。
データ操作実行処理部218で前記のような処理を行うことで、データのキャッシュ状態を考慮したリソース割り当てを行うことが可能である。
図5はストレージ構成情報212を説明するための概念図である。
ストレージ構成情報212は、データベースサーバから認識できるLogical DeviceのID502と、その領域が何台のディスク装置から構成されているかというディスク台数501とからなる。
なお、ディスク台数については、ストレージ装置の仮想化などにより、階層が複雑になっている場合には、複数の関連を重ねた関係を保持し、複数領域にまたがった領域の場合には、その領域間の平均で近似することもできる。
図6はそのようなストレージ装置の階層が複雑化した場合のストレージ構成情報212を説明するための概念図である。
この例では、複数台のディスク装置209をまとめてRAID Group601を構成し、それぞれのRAID Group601をLogical Device602に分割し、分割されたLogical Device602を複数のRAID Group601上から取り出して1つの結合されたLogical Device603を構成している。
このような場合、全てのRAID Groupを構成する平均ディスク装置台数をデータベース格納領域210に対応するディスク台数501であるとする。
また、利用しているディスク容量の比率から、それぞれのディスク台数の重み付けをして、データベース格納領域210に対応するディスク台数501を決定してもよい。
図7はスキーマとストレージ構成のマッピング情報220を説明するための概念図である。
スキーマとストレージ構成のマッピング情報220は、データが格納されている領域を表す格納領域ID403と、
その格納領域に対応する、Logical DeviceのID502と
からなる。
この時、1つの格納領域は複数のLogical Deviceから構成されていてもよく、また、複数の格納領域を1つのLogical Deviceから構成していても良い。
この例以外でも、ストレージサブシステムやオペレーティングシステムの機能を用いて様々な構成が考えられるが、同様の考え方でデータベース格納領域210に対応するディスク台数501を決定することができる。
ここで、ストレージ構成情報212については、単に格納領域のI/O性能をもって、ディスク装置の台数と同じようにストレージ構成情報212として扱っても良い。
図8は図3と同様の処理要求毎リソース数決定処理部217の詳細を説明するためのフローチャートであるが、ストレージ構成情報として、I/O性能を用いた場合の例である。
このフローチャートでは、ステップ301からステップ305までは図3で説明した内容と同様である。
図3のステップ306における、ストレージ1台あたりのスレッド数である基準リソース数を読み込みに代わり、単位I/O性能あたりのスレッド数を基準リソース数として、それを読み込む(ステップ801)。
また、図3のステップ307に代わり、単位I/O性能あたりのスレッド数に格納領域のI/O性能を掛け合わせることで、処理要求毎の最適なスレッド数を導き出す(ステップ802)。
図9はI/O性能を、ストレージ構成情報212として扱った場合のストレージ構成情報の例を説明する概念図である。
ここでストレージ構成情報212は、データベースサーバから認識できるLogical DeviceのID502と、その領域がどれだけのI/Oを単位時間内に出せるかというI/O性能901とからなる。
なお、データ配置に偏りがある場合、理論通りの性能が出ない可能性はあるが、本発明は検索対象がほぼ一様に分布している場合に特に高い効果を発揮するものである。格納されているデータが十分に大規模である場合には一様に分布していることが期待される。
第2の実施例は、複数のテーブルのデータを関連付けて処理する結合処理を持つ場合の実施形態であり、コンピュータシステムの概略構成は図2と同様である。
このような結合処理を持つ場合、複数のテーブルに対して同時に操作を実行するため、操作対象テーブルそれぞれに対して適切なリソース数を割り当てる必要がある。
図10は、結合処理における操作対象テーブルごとのリソース数を割り当てる処理について説明するためのフローチャートである。
このフローチャートでは、ステップ301からステップ307までは図3で説明した内容と同様である。
こちらのフローチャートでは、ステップ307のディスク装置の構成台数と基準リソース数を掛け合わせることで処理要求毎の適切なリソース数を決定する処理を、操作対象テーブルの数だけ繰り返す(ステップ1001)。
そして得られたテーブル毎のリソース数を操作対象テーブルごとのリソース数上限として記憶する(ステップ1002)。
この時のデータ操作実行処理部は図11と同様であるが、ステップ1102の、現在使用しているスレッド数が上限に達しているかのチェックをテーブル単位に実行し、1つのテーブルに割り当てられている上限をこえた場合には、空きを待つステップ(ステップ1103)が実行される。
図14は結合処理におけるリソース数割り当ての効果を説明するための概念図である。
ここでは4台のディスク装置209から構成されている格納領域210と、2台のディスク装置209から構成されている格納領域210があり、それぞれにデータを格納するテーブル1401が配置されている。
このような状況で2つのテーブルのデータを付き合わせる結合処理を行う場合、単に全てのテーブルごとのリソース数上限を合計したものを全体のリソース数上限として動作しても良いが、上記実施例で述べているように、テーブルAとテーブルBの検索それぞれについてリソース数上限を設定することで、テーブルAについてはディスク装置4台分のリソースを用いた検索が実行され、テーブルBについてはディスク装置2台分のリソースを用いた検索が実行される。このように本実施例によれば、1つのデータベース処理要求で複数の格納領域にアクセスが実行される場合でも、領域ごとに適切なリソース数割り当てを行うことができる。
さらに、結合処理を持つ場合、一般に結合順が先となるデータよりも、結合順が後になるデータの方がより多く読み込まれる傾向があるため、結合順が先となるデータよりも後になるデータにより大きなリソース数条件を設定する方式をとっても良い。
図15は結合処理における結合順を考慮したリソース数割り当てを説明するためのフロー図である。
このフローチャートでは、ステップ301からステップ307と、ステップ1001、ステップ1002については、図10で説明した内容と同様である。
ステップ1501はディスク装置の構成台数と基準リソース数を掛け合わせることで処理要求毎の適切なリソース数を決定するステップ307の後に、結合順1601に対応した結合順係数1602をかけることで、リソース数を変更する。
結合順係数は、システムで一定の値を保持しておき、利用するものであり、1未満の値となる。なお、結合順が先か後かは従来処理である処理要求受付部で判断しており、容易に判別できる。
図16は結合順係数管理表225を説明するための概念図である。
結合順係数管理表225は結合順1601と結合順係数1602の対応表になっており、結合順係数225は最後の結合であれば1を、それより前であれば1未満の値を設定し、結合順が前であるほど小さくなる。
結合順係数は、テーブルの中でアクセスされるデータの個数に依存するため、アクセス要求実行前に判断することはできない。例として、単純に結合順を元に例えば結合順が最終結合の1つ前の結合であれば0.9、そのさらに1つ前であれば0.8とし、0.1未満は0.1としておく形が考えられる。
以上によれば、複数の記憶装置内にデータが格納されており多数のリソースを利用する場合、リソースの効率的な利用が可能となり、全体として高速な動作が可能となる。
本発明の実施形態を説明したが、この実施形態は本発明の説明のための例示にすぎず、本発明の範囲をその実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。
101・・・データベース管理システム
105・・・処理要求実行処理部
202・・・CPU
203・・・主記憶装置
204・・・ストレージエリアネットワーク
205・・・ストレージサブシステム
206・・・クライアントホスト
207・・・データベースアクセス処理部
208・・・ネットワーク
209・・・ディスク装置
210・・・データベース格納領域
211・・・管理サーバ
212・・・ストレージ構成情報
213・・・ストレージ管理ソフトウェア
216・・・処理要求受付処理部
217・・・処理要求毎リソース数決定処理部
218・・・データ操作実行処理部
219・・・スキーマ定義情報
220・・・スキーマとストレージ構成のマッピング情報
221・・・リソース管理部
222・・・基準リソース数

Claims (9)

  1. データを記憶するデータベースを格納する格納領域を有する補助記憶装置を備えたデータベース管理システムにおけるデータベース管理方法において、
    データの問い合わせである処理要求を受け付ける処理要求受付処理部と、
    前記受け付けた処理要求を解析し、該解析の結果に基づいて前記複数のデータ操作を行うデータ操作実行処理部と、
    生成されたプロセスやスレッドに割り当て当てられる前記データ操作のそれぞれを管理するリソース管理処理部と、
    前記データ操作を実行する際に前記データ操作の対象となるデータを前記補助記憶装置から前記メモリ上にキャッシュし前記データ操作の対象となるデータがキャッシュ上に存在するかどうかを判別するバッファ管理処理部とを有し、
    さらに、前記データ操作実行処理部は、前記データ操作を実行する際に、
    前記バッファ管理処理部により前記キャッシュ上にデータが存在するか否かが判定され、
    前記キャッシュ上にデータが存在しない場合は、
    前記プロセス数や前記スレッド数の空きの判断を前記データ操作について前記リソース管理部により行い、
    前記プロセス数や前記スレッド数が空いている場合は前記プロセスや前記スレッドに前記データ操作を実行するために、前記実行したデータ操作の処理対象となるデータをメモリ上にキャッシュするためのアクセス要求を前記補助記憶装置に送り、
    前記プロセス数や前記スレッド数の該空きがない場合は該空いた後に前記データ操作を実行し、前記キャッシュ上にデータが存在する場合は、前記データ操作を実行することを特徴とするデータベース管理方法。
  2. データを記憶するデータベースを格納する格納領域を有する補助記憶装置を備えたデータベース管理システムにおけるデータベース管理方法において、
    データの問い合わせである処理要求を受け付ける処理要求受付処理部と、
    前記受け付けた処理要求を解析し、該解析の結果に基づいて前記複数のデータ操作を行うデータ操作実行処理部と、
    生成されたプロセスやスレッドに割り当て当てられる前記データ操作のそれぞれを管理するリソース管理処理部と、
    前記データベースのテーブル構成などの情報を格納したスキーマ定義情報と
    前記データベースのデータを格納する格納領域と前記補助記憶装置の領域とのマッピングを記憶するストレージ構成情報と、前記スキーマと前記ストレージ構成情報のマッピング情報と、前記補助記憶装置に対しプロセスまたはスレッド数を変化させた場合に所定の性能が出せるプロセスまたはスレッド数を表す基準リソース数とを有し、
    前記補助記憶装置の台数と前記基準リソース数を基づいて計算して、前記受け付けた処理要求の実行ごとに当該処理要求が利用するプロセスまたはスレッド数上限を決定する処理要求毎リソース数決定処理部を有する
    ことを特徴とするデータベース管理方法。
  3. 前記処理要求毎リソース数決定処理部は、過去の処理要求実行時に取得した前記データベース管理システムの性能統計情報に基づいて前記プロセスまたはスレッド数における上限数を決定する
    ことを特徴とする請求項2に記載のデータベース管理方法。
  4. 前記処理要求毎リソース数決定処理部は、前記格納領域のI/O性能に基づいて前記プロセスまたはスレッド数における上限数を決定する
    ことを特徴とする請求項2に記載のデータベース管理方法。
  5. 前記複数の前記格納領域に前記データ操作の対象となるデータが格納されている場合、
    前記処理要求毎リソース数決定処理部は、それぞれの前記格納領域ごとに、前記データ操作の対象となるデータが格納されている前記補助記憶装置の台数に基づいて前記プロセスまたはスレッド数の上限を決定する
    ことを特徴とする請求項2〜4に記載のデータベース管理方法。
  6. 前記処理要求毎リソース数決定処理部は、それぞれの前記格納領域ごとに求められた前記プロセスまたはスレッド数の上限の合計値を処理要求全体の上限とする
    ことを特徴とする請求項5に記載のデータベース管理方法。
  7. 複数の関連するデータを突き合わせる結合処理の実行要求を受け付けると、
    前記結合処理を実行する際に、突き合わせるデータそれぞれが別な前記格納領域に格納されている場合、
    前記処理要求毎リソース数決定処理部は、前記結合処理の結合順が先となるデータよりも結合順が後となるデータの方に数を多く前記プロセスまたはスレッド数の上限数を設定することを特徴とする
    請求項6に記載のデータベース管理方法。
  8. データを記憶するデータベースを格納する格納領域を有する補助記憶装置を備えたデータベース管理システムを機能させるデータベース管理プログラムにおいて、
    データの問い合わせである処理要求を受け付ける処理要求受付処理部と、
    前記受け付けた処理要求を解析し、該解析の結果に基づいて前記複数のデータ操作を行うデータ操作実行処理部と、
    生成されたプロセスやスレッドに割り当て当てられる前記データ操作のそれぞれを管理するリソース管理処理部と、
    前記データ操作を行った際に前記データ操作の対象となるデータを前記補助記憶装置から前記メモリ上にキャッシュし前記データ操作の対象となるデータがキャッシュ上に存在するかどうかを判別するバッファ管理処理部とを有し、
    さらに、前記データ操作実行処理部は、前記データ操作を実行する際に、
    前記バッファ管理処理部による判定が前記キャッシュ上にデータが存在するか否かを判断し、
    前記キャッシュ上にデータが存在しない場合は、
    当該データ操作における前記プロセス数や前記スレッド数の空きの判断を前記リソース管理部により行い、
    前記プロセス数や前記スレッド数が空いている場合は前記プロセスや前記スレッドに前記データ操作を実行するために、前記実行したデータ操作の処理対象となるデータをメモリ上にキャッシュするためのアクセス要求を前記補助記憶装置に送り、
    前記プロセス数や前記スレッド数の該空きがない場合は該空いた後前記データ操作を実行し、前記キャッシュ上にデータが存在する場合は、前記データ操作を実行することを特徴とするデータベース管理システム。
  9. データを記憶するデータベースを格納する格納領域を有する補助記憶装置を備えたデータベース管理システムを機能させるデータベース管理プログラムにおいて、
    データの問い合わせである処理要求を受け付ける処理要求受付処理ステップと、
    前記受け付けた処理要求を解析し、該解析の結果に基づいて前記複数のデータ操作を行うデータ操作実行処理ステップと、
    生成されたプロセスやスレッドに割り当て当てられる前記データ操作のそれぞれを管理するリソース管理処理ステップと、
    前記データ操作を行った際に前記データ操作の対象となるデータを前記補助記憶装置から前記メモリ上にキャッシュし前記データ操作の対象となるデータがキャッシュ上に存在するかどうかを判別するバッファ管理処理ステップとを有し、
    さらに、前記データ操作実行処理ステップは、前記データ操作を実行する際に、
    前記バッファ管理処理ステップによる判定が前記キャッシュ上にデータが存在するか否かを判断し、
    前記キャッシュ上にデータが存在しない場合は、
    当該データ操作における前記プロセス数や前記スレッド数の空きの判断を前記リソース管理ステップにより行い、
    前記プロセス数や前記スレッド数が空いている場合は前記プロセスや前記スレッドに前記データ操作を実行するために、前記実行したデータ操作の処理対象となるデータをメモリ上にキャッシュするためのアクセス要求を前記補助記憶装置に送り、
    前記プロセス数や前記スレッド数の該空きがない場合は該空いた後前記データ操作を実行し、前記キャッシュ上にデータが存在する場合は、前記データ操作を実行することを特徴とするデータベース管理プログラム。
JP2009186956A 2009-08-12 2009-08-12 データベース管理方法およびシステム並びにその処理プログラム Expired - Fee Related JP4801761B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009186956A JP4801761B2 (ja) 2009-08-12 2009-08-12 データベース管理方法およびシステム並びにその処理プログラム
US12/703,661 US8346744B2 (en) 2009-08-12 2010-02-10 Database management method, database management system, and processing program therefor
US13/731,561 US20140019430A1 (en) 2009-08-12 2012-12-31 Database management method, database management system, and processing program therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009186956A JP4801761B2 (ja) 2009-08-12 2009-08-12 データベース管理方法およびシステム並びにその処理プログラム

Publications (2)

Publication Number Publication Date
JP2011039800A true JP2011039800A (ja) 2011-02-24
JP4801761B2 JP4801761B2 (ja) 2011-10-26

Family

ID=43589178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009186956A Expired - Fee Related JP4801761B2 (ja) 2009-08-12 2009-08-12 データベース管理方法およびシステム並びにその処理プログラム

Country Status (2)

Country Link
US (2) US8346744B2 (ja)
JP (1) JP4801761B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015156000A1 (ja) * 2014-04-11 2015-10-15 国立大学法人 東京大学 計算機システム、データの検査方法及び計算機
JP2015184883A (ja) * 2014-03-24 2015-10-22 株式会社日立製作所 計算機システム
JP2019140593A (ja) * 2018-02-14 2019-08-22 ブラザー工業株式会社 プログラムおよび情報処理装置
US11301133B2 (en) 2019-12-09 2022-04-12 Fujitsu Limited Analysis device, non-transitory computer-readable storage medium for analysis program, and computer system

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9053239B2 (en) * 2003-08-07 2015-06-09 International Business Machines Corporation Systems and methods for synchronizing software execution across data processing systems and platforms
US9166865B2 (en) * 2012-11-07 2015-10-20 International Business Machines Corporation Mobility operation resource allocation
US9900360B1 (en) * 2015-09-30 2018-02-20 Quantcast Corporation Managing a distributed system processing a publisher's streaming data
US20180217875A1 (en) * 2016-02-17 2018-08-02 Hitachi, Ltd. Data processing system and data processing method
CN110750218A (zh) * 2019-10-18 2020-02-04 北京浪潮数据技术有限公司 一种存储资源管理方法、装置、设备及可读存储介质
CN113722078A (zh) * 2021-11-02 2021-11-30 西安热工研究院有限公司 一种基于线程池高并发数据库访问方法、系统及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1049309A (ja) * 1996-07-29 1998-02-20 Shikoku Nippon Denki Software Kk Scsi・tcq制御方式
JP2004348233A (ja) * 2003-05-20 2004-12-09 Nec Corp ファイル共有システム及びサーバー並びにプログラム
JP2004362376A (ja) * 2003-06-06 2004-12-24 Fujitsu Ltd バッチアプリケーション実行制御方法,バッチアプリケーション実行制御装置およびバッチアプリケーション実行制御プログラム
JP2007034414A (ja) * 2005-07-22 2007-02-08 Masaru Kiregawa データベース管理システム及び方法
JP2007249468A (ja) * 2006-03-15 2007-09-27 Hitachi Ltd Cpu割当方法、cpu割当プログラム、cpu割当装置、および、データベース管理システム
JP2008226040A (ja) * 2007-03-14 2008-09-25 Hitachi Ltd 情報処理装置及びコマンド多重度制御方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5394531A (en) * 1989-04-03 1995-02-28 International Business Machines Corporation Dynamic storage allocation system for a prioritized cache
US6535878B1 (en) * 1997-05-02 2003-03-18 Roxio, Inc. Method and system for providing on-line interactivity over a server-client network
US6081906A (en) * 1997-11-21 2000-06-27 Fuji Xerox Co., Ltd. Multi-thread processing with queuing and recovery
US6947987B2 (en) * 1998-05-29 2005-09-20 Ncr Corporation Method and apparatus for allocating network resources and changing the allocation based on dynamic workload changes
US6859926B1 (en) * 2000-09-14 2005-02-22 International Business Machines Corporation Apparatus and method for workload management using class shares and tiers
EP1199632A1 (en) * 2000-10-20 2002-04-24 Sun Microsystems, Inc. Method and apparatus for resource access synchronization
US7302450B2 (en) * 2003-10-02 2007-11-27 International Business Machines Corporation Workload scheduler with resource optimization factoring
US6970805B1 (en) * 2003-12-23 2005-11-29 Unisys Corporatiion Analysis of data processing system performance
US20050246461A1 (en) * 2004-04-29 2005-11-03 International Business Machines Corporation Scheduling threads in a multi-processor computer
US8401987B2 (en) * 2007-07-17 2013-03-19 International Business Machines Corporation Managing validation models and rules to apply to data sets

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1049309A (ja) * 1996-07-29 1998-02-20 Shikoku Nippon Denki Software Kk Scsi・tcq制御方式
JP2004348233A (ja) * 2003-05-20 2004-12-09 Nec Corp ファイル共有システム及びサーバー並びにプログラム
JP2004362376A (ja) * 2003-06-06 2004-12-24 Fujitsu Ltd バッチアプリケーション実行制御方法,バッチアプリケーション実行制御装置およびバッチアプリケーション実行制御プログラム
JP2007034414A (ja) * 2005-07-22 2007-02-08 Masaru Kiregawa データベース管理システム及び方法
JP2007249468A (ja) * 2006-03-15 2007-09-27 Hitachi Ltd Cpu割当方法、cpu割当プログラム、cpu割当装置、および、データベース管理システム
JP2008226040A (ja) * 2007-03-14 2008-09-25 Hitachi Ltd 情報処理装置及びコマンド多重度制御方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015184883A (ja) * 2014-03-24 2015-10-22 株式会社日立製作所 計算機システム
WO2015156000A1 (ja) * 2014-04-11 2015-10-15 国立大学法人 東京大学 計算機システム、データの検査方法及び計算機
JP2015203927A (ja) * 2014-04-11 2015-11-16 国立大学法人 東京大学 計算機システム、データの検査方法及び計算機
US10452644B2 (en) 2014-04-11 2019-10-22 The University Of Tokyo Computer system, method for verifying data, and computer
JP2019140593A (ja) * 2018-02-14 2019-08-22 ブラザー工業株式会社 プログラムおよび情報処理装置
JP7022318B2 (ja) 2018-02-14 2022-02-18 ブラザー工業株式会社 プログラムおよび情報処理装置
US11301133B2 (en) 2019-12-09 2022-04-12 Fujitsu Limited Analysis device, non-transitory computer-readable storage medium for analysis program, and computer system

Also Published As

Publication number Publication date
US20110040725A1 (en) 2011-02-17
JP4801761B2 (ja) 2011-10-26
US20140019430A1 (en) 2014-01-16
US8346744B2 (en) 2013-01-01

Similar Documents

Publication Publication Date Title
JP4801761B2 (ja) データベース管理方法およびシステム並びにその処理プログラム
US9965324B2 (en) Process grouping for improved cache and memory affinity
US10664452B2 (en) Parallel processing of large data files on distributed file systems with dynamic workload balancing
US20180136838A1 (en) Management of block storage devices based on access frequency
JP2005196602A (ja) 無共有型データベース管理システムにおけるシステム構成変更方法
JP6172649B2 (ja) 情報処理装置、プログラム、及び、情報処理方法
US11146654B2 (en) Multitier cache framework
KR102521051B1 (ko) 하이브리드 데이터 룩-업 방법
JP2007249468A (ja) Cpu割当方法、cpu割当プログラム、cpu割当装置、および、データベース管理システム
JP2005338985A (ja) 記憶領域管理方法及びシステム
WO2024078429A1 (zh) 内存管理方法、装置、计算机设备及存储介质
WO2017126003A1 (ja) 複数種類のメモリデバイスを含む計算機システム及び方法
US11216421B2 (en) Extensible streams for operations on external systems
JP6823626B2 (ja) データベース管理システム及び方法
Cao et al. Is-hbase: An in-storage computing optimized hbase with i/o offloading and self-adaptive caching in compute-storage disaggregated infrastructure
US9256648B2 (en) Data handling in a cloud computing environment
US11461274B2 (en) Processing streams on external data sources
US20090183156A1 (en) Intelligent Pre-Started Job Affinity for Non-Uniform Memory Access Computer Systems
JP2011070464A (ja) 計算機システム及び計算機システムの性能管理方法
JP2006277530A (ja) 割当システム、割当装置、割当方法及びそのプログラム
KR101754713B1 (ko) 비대칭 분산 파일 시스템, 연산 분배 장치 및 방법
US20240111743A1 (en) Efficient evaluation of queries across multiple columnar storage tiers
KR101924466B1 (ko) 하둡 기반 시스템을 위한 캐시 인지 작업 스케줄링 장치 및 방법
JP5146440B2 (ja) 無共有型データベース管理システム
Wang et al. RBC: A bandwidth controller to reduce write-stalls and tail latency

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110617

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

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

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

Free format text: PAYMENT UNTIL: 20140812

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140812

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees