JPH0778118A - 資源競合回避スケジューリング方法 - Google Patents

資源競合回避スケジューリング方法

Info

Publication number
JPH0778118A
JPH0778118A JP5172463A JP17246393A JPH0778118A JP H0778118 A JPH0778118 A JP H0778118A JP 5172463 A JP5172463 A JP 5172463A JP 17246393 A JP17246393 A JP 17246393A JP H0778118 A JPH0778118 A JP H0778118A
Authority
JP
Japan
Prior art keywords
query
inquiry
processing
oltp
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5172463A
Other languages
English (en)
Inventor
Masashi Tsuchida
正士 土田
Morihiro Iwata
守弘 岩田
Shunichi Torii
俊一 鳥居
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 JP5172463A priority Critical patent/JPH0778118A/ja
Publication of JPH0778118A publication Critical patent/JPH0778118A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】 オンライントランザクション処理(OLT
P)とバッチ処理との競合を回避するようスケジュール
し、高速な問合せ処理を実現することにある。 【構成】 問合せがOLTPに属するかバッチ処理(B
P)に属するかを判定しておき、BP問合せ100を投
入するBP問合せ投入時間とOLTP問合せ102を投
入するOLTP問合せ投入時間からなるオンライントラ
ンザクション/バッチ処理投入間隔103を設定し、該
投入間隔における前記BP問合せ投入時間と前記OLT
P問合せ投入時間の割合を設定し、前記BP問合せ投入
時間にはBP問合せ100の実行のみを行ない、OLT
P問合せ101の実行は待機させ、前記OLTP問合せ
投入時間にはOLTP問合せ102の実行のみを行なう
ようにスケジュールしている。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、デ−タベ−ス処理装置
に関し、特にリレ−ショナルデ−タベ−ス管理システム
に適した問合せの並列処理に好適な問合せ処理方法に関
する。
【0002】
【従来の技術】デ−タベ−ス管理システム(以下DBM
Sと略記)、特にリレ−ショナルDBMSは、非手続き
的な言語で表現された問合せを処理して、内部処理手順
を決定し、実行する。このデータベース言語としてSQ
Lが用いられる(Database Language
SQL ISO 9075:1989)。従来の問合
せ処理の主な方法には、予め設定した規則に基づいて単
一の内部処理手順を決定するものと、各種統計情報を用
いて選定された複数の候補処理手順から、コスト評価に
より、最適と思われるものを決定するものとがある。前
者は、処理手順作成のための負荷は小さいけれども、一
律に設定された規則の妥当性に問題があり、選ばれた内
部処理手順の最適性にも問題がある。後者は、各種統計
情報の管理と、複数の候補処理手順の作成及びそれらの
コスト評価のための負荷があるものの、最適な処理手順
を与える。上記両者の組合せ技術として、例えば、Sa
toh,K.,et.al.“Local and G
lobal Optimization Mechan
isms for Relational Datab
ase”, Proc.VLDB, 1985.があ
る。また、多くのDBMSは、問合せ解析処理と問合せ
実行処理の2フェーズの処理を経て、問合せ処理が実現
される。ホスト言語(COBOL、PL/I等)に問合
せ言語を組み込む場合、当アプリケ−ションプログラム
実行前に予め問合せを問合せ解析処理し、実行形式であ
る1つの内部処理手順を作成している。この問合せ表現
では、多くの場合検索条件式にはホスト言語の変数が記
述される。この変数に定数が代入されるのは、既に問合
せ解析処理された結果の内部処理手順の実行時、すなわ
ち問合せ実行時である。この場合の問題点としては、変
数に代入される値に従って複数の最適な処理手順が考え
られることである。この問題を解決するために、プロプ
ロセス処理時に複数の処理手順を作成しておき、問合せ
実行時に変数に代入された値に従って処理手順を選択す
るものがある(特開平1−194028、Graef
e,G.,et.al.”Dynamic Query
Evaluation Plans”, Proc.
ACM−SIGMOD, 1989.)。
【0003】さらに、CPU性能、ディスク容量の延び
を上回るトランザクション量、データベース量増大に対
応して、スケーラブルな並列データベースシステムのユ
ーザ要件が強まっている。データベースシステムに対す
るユーザの性能要件として、数万を超える同時実行ユー
ザ数への対応、テラバイト単位の検索トランザクション
の出現、表サイズに比例しない応答時間の保証がある。
並列データベースシステムは、近年のハードウェアコス
トの低減と相まって、注目を浴びている(DeWit
t,D.,et.al.:”ParallelData
base Systems: The Future
of HighPerformance Databa
se Systems”, CACM, Vol.3
5, No.6, 1992.)。そのようなシステム
では密結合あるいは疎結合にプロセッサを接続し、デー
タベース処理を複数のプロセッサに静的/動的に処理を
配分し、スケジュールする必要がある。並列度を増せば
応答性能は向上するが、過度の並列度は逆にオーバヘッ
ドの増大、他トランザクションの応答時間の延び等の影
響がある。そのため、適度な並列度の設定が重要であ
る。一般的に、デ−タベ−ス処理において、処理対象と
なるデ−タは二次記憶装置上に存在し、各デ−タベ−ス
演算に対して大量デ−タの読み出し及び転送が必要とな
る。並列デ−タベ−スシステムにおいても、データベー
スが各プロセッサに分割格納され、転送するデ−タが大
量となる場合、デ−タ転送時間がデ−タベ−スシステム
の性能ネックとなる。そこで、二次記憶装置からデ−タ
を転送する時間を有効活用する方法が考えられる。これ
は、デ−タの転送時間と当該デ−タに対するデ−タベ−
ス処理に要する時間とをオ−バラップさせるものであ
り、従来技術として良く知られている。この方式を相互
結合ネットワークで接続されるプロセッサ群間のデータ
転送にも適用可能である。ここで、デ−タベ−スはユ−
ザから2次元のテ−ブル形式で見られる表から成るもの
とし、当該表の行あるいはロウとするものである。ま
た、ロウは、1つ以上の属性(これを「カラム」とい
う)からなる。
【0004】
【発明が解決しようとする課題】上記従来技術は、問合
せ最適化処理とはユ−ザが入力した問合せから、デ−タ
ベ−スシステムの各種統計情報を基にして、最も効率の
良い処理手順をDBMSが自動判定するものである。さ
らに、問合せの選択条件式に変数が埋め込まれている場
合には、複数の処理手順を問合せ解析時に展開してお
き、問合せ実行時に当変数に代入される値に従って処理
手順を選択することによって、最適な処理手順が選択さ
れる。ユーザにおける主要業務は、オンライントランザ
クション処理(以下、OLTPと略記する)とバッチ処
理に分類できる。従来までOLTPは、基幹DBの最新
情報をアクセスし、オンライン情報を提供する。1トラ
ンザクションで多くとも十数問合せを含み、各問合せで
1〜数件のロウをアクセスするため、ロック資源は少な
くてすむが、スループットが重視される。バッチ処理
は、多くの場合単一の問合せでも大量データをアクセス
し、更新あるいは集計情報を出力する。バッチ処理は、
ロック資源を大量に取得し、処理する必要がある。バッ
チ処理で、OLTPがアクセス対象とする基幹DBを競
合してアクセスすると、バッチ処理のロック占有時間が
長いために、OLTPがロック競合の多発によりスルー
プットが大幅に低下する。そのため、OLTPとバッチ
処理は競合がなくなるように運用している。すなわち、
バッチ処理で、検索バッチ処理はノーロックモード(ロ
ックを取得しないで、バッチ処理を実行するため、最新
DBではなく、汚れ読みとなる。すなわち、ノーロック
モードでは、ロックがされて更新が行なわれたページも
読み取るため、更新されたページがコミット(更新内容
をデータベースに反映させるためディスクに格納する)
されれば問題ないが、更新されたページがロールバック
(コミットすることなく破棄する)された場合にはデー
タベースに反映されない情報を読み取ることにな
る。)、更新バッチ処理はOLTPと運用時間帯を分け
るか2つのDBシステムを構築して日、週、月遅れでD
Bを反映することで対処してきた。そのため、最新のD
B情報が取得できない問題があった。並列データベース
処理では、各ノード(プロセッサあるいはプロセッサと
ディスク装置との対)へデータベース演算が分割され、
各ノードで各データベース演算が並列にあるいはパイプ
ライン的に動作する。従来技術によれば、OLTPとバ
ッチ処理で発行される問合せに区別なく処理が行われる
ため、上記問題が発生する。そこで、本発明では、OL
TPとバッチ処理が共存する場合、OLTPをグループ
化することによって、バッチ処理との競合を回避する。
また、OLTPの応答性能をOLTPグループとバッチ
処理の投入間隔時間で保証する。さらに、ユーザから投
入されたOLTP及びバッチ処理の要求資源の範囲を推
定する。本発明の目的は、OLTPとバッチ処理に対応
したスケジューリングを適用し、バッチ処理との競合を
回避することにより、高速な問合せ処理を実現すること
にある。
【0005】
【課題を解決するための手段】上記目的を達成するた
め、データベースに対するユーザからの問合せを解析し
て対応する処理手順を決定し、それを実行し、複数のプ
ロセッサノードがネットワークにより接続され、各プロ
セッサノードが、ユーザからの問合せの解析、最適化、
処理手順作成を実行するフロントエンドサーバ機能と、
前記処理手順を基にしてデータベースをアクセスするバ
ックエンドサーバ機能と、データベースシステムの定義
情報を一括管理するディクショナリサーバ機能と、デー
タベース更新履歴情報を格納、管理するジャーナルサー
バ機能を備える並列データベースシステムにおいて、各
ノードで実行される処理手順を問合せ解析時あるいは問
合せ実行時に作成しておき、問合せ実行時に各ノードで
実行する処理手順を決定し、前記問合せがオンライント
ランザクション処理(OLTP)に属するかバッチ処理
(BP)に属するか判定し、BP問合せ投入時間とOL
TP問合せ投入時間からなるオンライントランザクショ
ン/バッチ処理投入間隔を設定し、該投入間隔における
前記BP問合せ投入時間と前記OLTP問合せ投入時間
の割合を設定し、前記BP問合せ投入時間にはBP問合
せの実行のみを行ない、OLTP問合せの実行は待機さ
せ、前記OLTP問合せ投入時間にはOLTP問合せの
実行のみを行なうようにしている。さらに、前記問合せ
がOLTPに属するかBPに属するかの判定を、問合せ
でアクセスするページ数、獲得ロック資源数、ヒットロ
ウ数等に基づく所定の閾値により行ない、OLTP問合
せの実行中にも該OLTP問合せに対して前記判定を行
ない、前記所定の閾値を超えた場合、該OLTP問合せ
をBP問合せとするようにしている。また、前記並列デ
ータベースシステムにおいて、BP問合せにおいては、
第1のプロセッサノード群には読みだし対象となるデー
タベースが格納され、データ読みだし処理、データ分割
処理を実行し、第2のプロセッサノード群では結合処理
のための部分列ソート処理、完全列作成処理、突き合わ
せ処理を実行し、第3のプロセッサノード群ではBP問
合せで要求したデータの受け取り処理を実行し、OLT
P問合せにおいては、第1のプロセッサノード群には読
みだし対象となるデータベースが格納され、データ読み
だし処理を実行し、第3のプロセッサノード群ではOL
TP問合せで要求したデータの受け取り処理を実行する
場合、デ−タベ−スに対するユ−ザからの問合せを解析
して対応する内部処理手順を決定し、問合せ解析処理時
あるいは問合せ実行処理時に入力された問合せの解析結
果とデ−タベ−スシステムの最適化情報とから単一ある
いは複数の内部処理手順を選定、格納する過程と、各ノ
ード単位で実行される単一あるいは複数の処理手順を問
合せ実行処理時に選択する過程と、該処理手順を実行す
る過程と、稼働中のシステムでOLTP問合せとBP問
合せが競合している場合には、前記選択する過程は、複
数の処理手順からなる問合せが前記第2のプロセッサノ
ード群を利用する内部処理手順を優先的に選択する過程
を含むようにしている。
【0006】
【作用】上記手段を取ることにより、オンライントラン
ザクション/バッチ処理投入間隔内で一定時間BP問合
せが実行され、残りの時間OLTP問合せが実行され、
投入間隔毎にBP問合せとOLTP問合せが確実に実行
され、OLTPの応答性能が保証される。また、BP問
合せ投入時間にはBP問合せの実行のみを行ない、OL
TP問合せの実行は待機させ、前記OLTP問合せ投入
時間にはOLTP問合せの実行のみが行なわれるので、
BP問合せとOLTP問合せの競合を回避することがで
きる。また、稼働中のシステムでOLTP問合せとBP
問合せが競合している場合には、BP問合せとなる可能
性が非常に高い複数の処理手順からなる問合せが前記第
2のプロセッサノード群を利用する内部処理手順を優先
的に選択するようにしているため、BP問合せとOLT
P問合せの競合を回避することができる。
【0007】
【実施例】以下、本発明の実施例を図面に基づいて詳細
に説明する。図1は、本発明の一実施例が適用された並
列デ−タベ−スシステムの実行例を説明する図である。
本発明の好適な一実施例であるが、後述することにす
る。図2は、従来のデ−タベ−スシステムの一実現例で
ある。デ−タベ−スシステムは、ユ−ザが作成したアプ
リケ−ションプログラム(以下、APと略記する)1
0、11と、問合せ処理、リソ−ス管理等デ−タベ−ス
システム全体の管理を行うDBMS20と、デ−タベ−
ス処理において、入出力処理対象となるデ−タの読書き
を行い、計算機システム全体の管理を受け持つオペレ−
ティングシステム(以下では、オペレ−ティングシステ
ムをOSと略記する)30と、デ−タベ−ス処理対象と
なるデ−タを格納するデ−タベ−ス40と、データベー
スの定義情報を管理するディクショナリ50と、データ
ベースの更新履歴情報を管理するジャーナル60から構
成される。DBMS20は、他データベース管理システ
ムと接続されている。上記DBMS20は、システム全
体の管理、制御に加えて、入出力の管理等を行うシステ
ム制御部21と、問合せの構文解析、意味解析を行う問
合せ解析220、適切な処理手順を生成する静的最適化
処理221、及び処理手順に対応したコ−ドの生成を行
なうコード生成222、静的最適化処理221で生成さ
れた処理手順候補から最適なものを選択する動的最適化
処理223、当コードの解釈実行を行うコード解釈実行
部224から成る論理処理部22と、当DBMS20で
処理対象となるデータを格納するデータベース/ディク
ショナリ/ジャーナルバッファ24と、アクセスしたデ
−タの条件判定、編集、レコード追加等を実現するデ−
タアクセス処理230、データベースレコ−ドの読み書
き等を制御するデ−タベ−ス/ディクショナリ/ジャー
ナルバッファ制御231、入出力対象となるデ−タの格
納位置を管理するマッピング処理232、及びシステム
で共用するリソースの排他制御を実現する排他制御23
3とから成るデータベースの物理処理を実行する物理処
理部23とから構成されている。
【0008】図3、4、5、6は、本発明が適用される
並列デ−タベ−スシステムの一実現例である。後述する
ように複数のプロセッサノードが高速ネットワークによ
り接続し、各ノードは少なくとも1台のCPUと少なく
とも1台のディスク装置とから構成されか、少なくとも
1台のCPUから構成され、各ノードにはデータベース
に対する問合せ要求を処理するためのプログラムが実装
されるものとする。各ノードは、以下の機能が実装され
る。図3は、ユーザからの問合せの解析、最適化、処理
手順作成を実行するフロントエンドサーバ(以下、FE
Sと略記)機能である。図4は、格納されたデータベー
スをFESで作成された処理手順を基にしてデータベー
スをアクセスするバックエンドサーバ(以下、BESと
略記)機能である。図5は、データベースシステムの定
義情報を一括管理するディクショナリサーバ(以下、D
Sと略記)機能である。図6は、各ノードで実行される
データベース更新履歴情報を格納、管理するジャーナル
サーバ(以下、JSと略記)機能である。基本的に、各
ノードで実現される機能は、図2で述べた従来のデータ
ベースシステムの実現機能と同等のものである。
【0009】ただし、図3に示すフロントエンドサーバ
機能においては、システム全体の管理、制御を行うシス
テム制御部21に、各ノードで実行される問合せのスケ
ジューリングを行うスケジューリング処理210、そし
て、オンライントランザクション処理(OLTP)とバ
ッチ処理(BP)の投入時間を監視する投入時間監視処
理が実現される。また、図4に示すバックエンドサーバ
機能においてはシステム全体の管理、制御を行うシステ
ム制御部21に、各ノードで実行される問合せのスケジ
ューリングを行うスケジューリング処理210が実現さ
れる。
【0010】図7は、本発明が適用されるハードウェア
構成の一例を示すものである。具体的には、図7は、プ
ロセッサ及びディスク装置がノードを構成する並列プロ
セッサシステムでの適用例である。図7は、プロセッサ
61〜66及びディスク装置70〜75が相互結合ネッ
トワーク80で接続される。また、プロセッサ65に示
すように、他システムと接続されてもよい。図8、9
は、本発明が適用された並列データベースシステムの処
理例を示す。問合せは、OLTP問合せとBP問合せに
分類できる。OLTP問合せは、インデクス経由の数件
までのロウアクセスと特徴付けられる。また、BP問合
せは、結合処理、集計グループ化処理等集合的なロウア
クセスの特徴を持つ。OLTP問合せの例として、以下
のような問合せが考えられる。 SELECT T1.C3 FROM T1 WHERE T1.C1=P(ただし、C1カラムに
インデクス有、また、Pは、例えば、10などの値であ
る) 上記問合せの意味は、表1のカラムC1がP(例えば、
10)の値を取るときの表1のカラムC3の値を求め
よ、ということである。ノード1(90)からノード4
(91)に表T1が各々格納され、データ取り出し処理
が実行される。ノード12(97)では、問合せ実行時
に設定される変数値に従ってノード1〜4のいずれのノ
ードに検索対象となるデータが格納されるか決定する。
これらのノード群は、相互結合ネットワーク80で接続
される。BP処理の例では、データベースに対する検索
要求に並列処理を適用する。この処理のためのBP問合
せは、以下のようになる。 SELECT T1.C3,T2.C3 FROM T1,T2 WHERE T1.C1=T2.C1 AND T1.C2=Q(ただし、Qは、例えば、1
0などの値である) 上記問合せの意味は、表1のカラムC1の値と表2のカ
ラムC1の値が等しく、かつ表1のカラムC2の値がQ
(例えば、10)であるときの表1のカラムC3の値と
表2のカラムC3の値を求めよ、ということである。ス
ロットソート処理は、データが格納されるページを対象
とするページ内のソート処理を指し、スロット順に読み
だせば、昇順にロウがアクセス可能とする。Nウェイマ
ージ処理は、Nウェイのバッファを用いて、各マージ段
でN本のソート連を入力にして最終的に1本のソート連
を作成する。ノード1(90)からノード4(91)に
表T1が、ノード5(92)からノード8(93)に表
T2が各々格納され、データ取り出し処理及びデータ分
配処理が実行される。また、ノード9(94)からノー
ド11(96)では、ノード1〜4及びノード5〜8か
ら出力されるデータを受け取り、ソート処理及び結合処
理を実行する。さらに、ノード12(97)では、ノー
ド9〜11から出力される結果のデータを受け取る。こ
れらのノード群は、相互結合ネットワーク80で接続さ
れ、ノード1〜4及びノード5〜8とノード9〜11と
が並列に、しかもパイプライン的に動作する(以下、並
列パイプライン動作と呼ぶ)。また、ノード9〜11と
ノード12とも同様にパイプライン動作する。
【0011】また、各ノードで実行される処理手順は非
同期に実行され、各ノードの各処理手順を実行するに当
って、各ノードの処理手順でアクセスするデータベース
の各分割格納単位毎にすべて読み終えた、あるいは他の
ノード群からの入力がない等の判断で各ノードの処理手
順の実行を制御し、BP問合せの各ノード間でのデータ
転送時、当該単一のトランザクションのデータからなる
ページ情報を転送し、OLTP問合せの各ノード間での
データ転送時、当該複数のトランザクションのデータか
らなるページ情報をページ満杯あるいは一定時間間隔I
のタイミングで転送する。
【0012】図1は、本発明の一実施例を説明する図で
あり、図8のOLTP問合せと図9のBP問合せが混在
した実行例である。また、図10は、従来のデータベー
スシステムでのOLTP問合せとBP問合せが混在した
実行例である。図1、10は、x軸が時刻、y軸が各ノ
ードに格納されるデータベース資源としての表であるこ
とを示す。具体的には、100は、図9のBP問合せの
実行例、101は、BP問合せ100が実行中に投入さ
れた図8のOLTP問合せ群、102は、BP問合せ1
00が終了後に投入されたOLTP問合せ群、103
は、オンライントランザクション/バッチ処理投入間隔
の時間、104は、従来のデータベースシステムでのB
P問合せの実行例である。
【0013】図10は、BP問合せ104の実行中にO
LTP問合せ101が投入された状況を示す。BP問合
せ104の実行のためにロック資源が既に獲得されてい
るために、OLTP問合せ101が投入されても実行で
きずにBP問合せ104の終了を待つ必要がある。その
ため、OLTP問合せ101が投入された時刻で実行さ
れずに、結果的に102の時点で実行されることにな
る。図1は、本発明の一実施例を説明する図であり、並
列デ−タベ−スシステムにおける実行例を説明する図で
ある。本発明の実施例では、オンライントランザクショ
ン/バッチ処理投入間隔103を設定し、この間隔10
3内でBP問合せに対して或る投入時間を割り当て、残
りの投入時間をOLTP問合せに割り当てる。この投入
間隔103でのBP問合せ処理とOLTP問合せ処理の
実行が終了すると、次の投入間隔に移り、この投入間隔
103でBP問合せ処理とOLTP問合せ処理が実行さ
れる。この投入間隔103およびこの投入間隔内でBP
問合せ処理とOLTP問合せ処理に割り当てられる時間
の割合はデータベース管理者の指定で決められる。図1
では、BP問合せ100の実行中にOLTP問合せ10
1が投入された状況を示している。BP問合せ100の
実行のためにロック資源が既に獲得されている可能性が
あるため、OLTP問合せ101を実行しない。そのた
め、OLTP問合せ101が投入された時刻で実行され
ずに、102の時点で実行されることになる。オンライ
ントランザクション/バッチ処理投入間隔103でBP
問合せを投入することでOLTP問合せへの影響を最小
化する。また、OLTP問合せ101の実行は遅れるも
のの、BP問合せ100とOLTP問合せ101とのロ
ック競合がないため、BP問合せ100がスケジュール
した通りに終了し、さらに、102の時点で実行される
OLTP問合せもBP問合せとのロック競合がない。オ
ンライントランザクション/バッチ処理投入間隔103
は、データベース管理者の指定で決められる。BP問合
せとOLTP問合せを20%、80%の比率でスケジュ
ールすると仮定すると、オンライントランザクション/
バッチ処理投入間隔103の内、20%がBP問合せの
実行に費やされ、残りの80%がOLTP問合せの実行
に用いられる。ただし、OLTP問合せの最大遅れ時間
が、少なくともオンライントランザクション/バッチ処
理投入間隔103の20%になるため、この遅れ時間を
考慮して投入間隔を決定する必要がある。なお、オンラ
イントランザクション/バッチ処理投入間隔103を設
定し、該投入間隔内でBP問合せに対して投入時間が割
り当てられるので、長い処理時間を必要とするBPは複
数に分割されていることが望ましく、この分割はアプリ
ケーションプログラムで発行するSQLを予め分割して
おくことにより可能である。もし、BP問合せ処理が上
記の投入間隔で終らなければエラーとして処理してもよ
く、また、終るまで待つようにしてもよい。
【0014】図11、12、13、14、15、16、
17、18、19は、本発明を適用したDBMSの処理
のフロ−チャ−トである。DBMSは、問合せ実行前に
行われる問合せの解析処理(220)、静的最適化処理
(221)、コード生成(222)を実現する問合せ解
析処理400(図11の(a))と、変数に定数を代入
し、処理手順を選択する動的最適化処理(223)、問
合せのコード解釈実行(224)を実現している問合せ
実行処理410(図11の(b))と、各ノードで実行
する処理手順の割当て、実行情報取得、解放を行うスケ
ジューリング処理(210)(図17、18)と、オン
ライントランザクション処理(OLTP)とバッチ処理
(BP)の投入時間を監視する投入時間監視処理(21
1)(図19)からなる。
【0015】各処理部概要について述べる。 (a)問合せ解析処理400 問合せ解析220……入力された問合せ文の構文解析、
意味解析を実行 静的最適化処理221……問合せで出現する条件式から
条件を満足するデ−タの割合を推定し、予め設定してい
る規則を基に、有効なアクセスパス候補(特にインデク
スを選出する)を作成し、処理手順の候補を作成 コード生成222……処理手順候補を実行形式に展開 (b)問合せ実行処理410 動的実行時最適化223……代入された定数に基づき、
各ノード群で実行する処理手順を決定 コード解釈実行224……当処理手順を解釈、実行 各処理部の詳細な処理フローの説明を行う。
【0016】静的最適化処理221は、図11の(d)
に示すように、問合せに出現する条件式の述語選択率推
定(2210)、インデクス等からなるアクセスパスの
剪定(2211)、これらアクセスパスを組合せた処理
手順候補の生成(2212)からなる。述語選択率推定
2210では、図11の(e)に示すように、問合せ条
件式に変数が出現するか否かチェックする(2210
1)。変数が出現すれば、当条件式にカラム値分布情報
があるかチェックする(22104)。存在すれば終了
する。存在しなければ、条件式の種別に応じてディフォ
ルト値を設定し(22105)、終了する。変数が出現
しなければ、当条件式にカラム値分布情報があるかチェ
ックする(22104)。存在しなければ、条件式の種
別に応じてディフォルト値を設定し(22105)、終
了する。存在すれば、カラム値分布情報を用いて選択率
を算出する(22103)。
【0017】図12はアクセスパス剪定のフローチャー
トである。アクセスパス剪定2211では、問合せ条件
式で出現するカラムのインデクスをアクセスパス候補と
して登録する(22110)。次に、問合せでアクセス
対象となる表が複数ノードに分割格納されているかチェ
ックする(22111)。分割格納されていれば、パラ
レルテーブルスキャンをアクセスパス候補として登録す
る(22113)。分割格納されていなければ、テ−ブ
ルスキャンをアクセスパス候補として登録する(221
13)。各条件式の選択率が既に設定済みか否かチェッ
クする(22114)。設定済みであれば、各表に関し
て選択率が最小となる条件式のインデクスをアクセスパ
スの最優先度とする(22115)。設定済みでなけれ
ば、各条件式の選択率の最大値/最小値を取得する(2
2116)。最後に、CPU性能、IO性能等システム
特性より各アクセスパスの選択基準を算出し(2211
7)、単一あるいは複数のインデクスを組合せたアクセ
スパスでの選択率が上記選択基準を下回るものだけアク
セスパス候補として登録する(22118)。
【0018】図13は処理手順候補生成のフローチャー
トである。処理手順候補生成2212は、問合せでアク
セス対象となる表が複数ノードに分割格納されているか
チェックする(22120)。分割格納されていれば、
22125へ。分割格納されていなければ、処理手順候
補にソート処理が含まれているか否かをチェックする
(22121)。含まれていれば、22125へ。含ま
れていなければ、問合せでアクセス対象となる表のアク
セスパスが唯一であるかチェックし(22122)、唯
一であれば単一の処理手順を作成し(22123)、唯
一でなければ複数の処理手順を作成し(22124)、
終了する。22125では、結合可能な2ウェイ結合へ
問合せを分解する。分割格納される表の格納ノード群に
対応して、データ読みだし/データ分配処理手順とスロ
ットソート処理手順を候補として登録する(2212
6)。結合処理ノード群に対応して、スロットソート処
理手順、Nウェイマージ処理手順、及び突き合わせ処理
手順を候補として登録する(22127)。要求データ
出力ノードに要求データ出力処理手順を登録する(22
128)。最後に、分解結果に対して評価がすべて終了
すれば(22129)、終了する。
【0019】図14はコード生成のフローチャートであ
る。コード生成222は、処理手順候補が唯一か否かを
チェックする(2220)。唯一であれば、2223
へ。唯一でなければ、カラム値分布情報等からなる最適
化情報を処理手順に埋込み(2221)、問合せ実行時
に代入された定数に基づいて処理手順を選択するデータ
構造を作成する(2222)。最後に、処理手順を実行
形式へ展開する(2223)。上記最適化情報は、少な
くともCPU性能、ディスク性能、ネットワーク性能か
らなるシステム特性情報と、データベースで定義された
表のロウ数、ページ数、カラム値分布情報、表分割情報
からなるデータベース特性情報からなる。
【0020】図15は動的最適化処理のフローチャート
である。動的最適化処理223は、まず、問合せ開始時
であるか否か判定し、問合せ開始時でなければ処理を終
了し、問合せ開始時ならば22300に進む。当該問合
せでアクセスする資源(表等)の範囲を処理手順から推
定する(22300)。作成されている処理手順が単一
か否かをチェックする(22301)。単一であれば、
OLTP問合せの可能性が高いので、終了する。単一で
なければ、BP問合せの可能性が高いので22304以
降のステップに進む。代入された定数を基に選択率を算
出する(22302)。処理手順候補に並列な処理手順
が含まれるか否かチェックする(22303)。含まれ
ていなければ、アクセスパスの選択基準に従って処理手
順を選択し(22310)、スケジューリング処理を呼
出し(22311)、終了する。含まれていれば、ディ
クショナリから上記最適化情報を入力し(2230
4)、データ取り出し/データ分配のための処理時間を
各システム特性を考慮し、算出する(22305)。当
処理時間から結合処理に割当てるノード数pを決定する
(22306)。現在稼働中のシステムにおいて、当該
問合せでアクセスする表が既にOLTP問合せとBP問
合せで競合しているかチェックする(22307)。競
合していれば、BP問合せの内部処理手順としてデータ
ベースが格納されていない第2のノード群を優先利用す
るよう設定する(22308)。次に、データ分配情報
を最適化情報を基にして作成し(22309)、223
10へ。アクセスパスの選択基準に従って処理手順を選
択し(22313)、スケジューリング処理を呼出し
(22311)、終了する。
【0021】図16はコード解釈実行のフローチャート
である。コード解釈実行224は、選択された実行形式
の処理手順を解釈実行する(2240)。当該コードが
BESで実行中であるかチェックする(2241)。B
ESで実行中であれば、アクセスページ数、獲得したロ
ック資源数、ヒットロウ数、ロック待ち状態等を問合せ
結果のデータとともにFESへ通知する(2242)。
次に、スケジューリング処理を呼出し(2243)、終
了する。
【0022】図17、図18はスケジューリング処理の
フローチャートである。スケジューリング処理210
は、問合せ開始時か否かチェックする(21000)。
問合せ開始時でなければ、21016へ。問合せ開始時
であれば、当該トランザクションがBPか否かチェック
する(21001)。当該トランザクションがBPであ
れば、当該問合せをBP問合せとする(21002)。
次に、当該問合せでアクセスするすべての表がBP処理
中か否かチェックする(21003)。BP処理中であ
れば、当該問合せがBP問合せか否かチェックする(2
1004)。BP問合せであれば、BPキューへ登録し
(21005)、そうでなければOLTPキューへ登録
し(21006)、終了する。BP処理中でなければ、
当該問合せでアクセスするすべての表がOLTP処理中
か否かチェックする(21010)。OLTP処理中で
あれば、当該問合せがBP問合せか否かチェックする
(21007)。BP問合せであれば、BPキューへ登
録し(21008)、そうでなければ当該問合せを実行
し(21009)、終了する。OLTP処理中でなけれ
ば、当該問合せでアクセスする表が実行処理中か否かチ
ェックする(21011)。実行処理中であれば、当該
問合せがBP問合せか否かチェックする(2101
3)。BP問合せであれば、BPキューへ登録し(21
014)、そうでなければ当該問合せを実行し(210
15)、終了する。実行中でなければ、当該問合せを実
行し(21012)、終了する。
【0023】問合せがBP問合せであるか否かの判定は
ステップ21001、21004、21007、210
13で行なわれるが、問合せがBP問合せであるか否か
は、次の判断基準に基づき判定される。すなわち、ペー
ジロックを実装するシステムとロウロックを前提にする
システムとを比較すると、ロックの競合の割合は、デー
タベース処理で発行する1つのSQL文の選択率によっ
て、コミットまで保持するロック資源(ロウ、あるいは
ページ)の範囲が決まる。選択率とは、問合せでアクセ
スする表のロウ、あるいはページの内、ヒットする(条
件を満足する)ことによってロックを保持することにな
った資源の比率である。 選択率 ロウロック範囲 ページロック範囲 1%ヒット 1% 10% 5%ヒット 5% 50% 10%ヒット 10% 70% 100%ヒット 100% 100% 上のロック範囲から判断して、表の70%以上の資源が
ロックされればBP問合せとすると、ページロック前提
で「1つの10%ヒットのSQL文の実行で表の70%
以上の資源がロック」、「2つの5%ヒットのSQL文
の実行で表の100%の資源がロック(2つのSQL文
間ではロック範囲に依存関係はないとする)」となるこ
とが分かる。BP問合せとする閾値(例えば、「ロック
される資源が表の70%」を1つの閾値とする)は、デ
ータベース管理者が決定する。
【0024】問合せ開始時でなければ、問合せ実行中か
否かをチェックする(21016)。問合せ実行中であ
れば、資源アクセスの閾値(上記のBP問合せとする閾
値)を越えたかチェックする(21017)。越えてい
れば、当該問合せをBP問合せ、当該トランザクション
をBPとし(21018)、終了する。すなわち、問合
せ開始時にOLTPと判定されても、問合せ実行中に上
記閾値を超えればBP問合せとする。問合せ実行中でな
ければ、すなわち問合せ終了時であれば、他トランザク
ションで当該問合せでアクセスした表が使用中か否かを
チェックする(21019)。使用中でなければ、当該
問合せでアクセスした表を未実行中とし(2102
0)、終了する。
【0025】図19は投入時間監視処理のフローチャー
トである。投入時間監視処理211は、システムの起動
と共に開始され、常にFESでバックグラウンドで実行
される。すなわち、スケジューリング処理210とは非
同期に動作する。投入時間監視処理211は、システム
開始時にオンライントランザクション/バッチ処理投入
間隔を設定する(2110)。BPキューに問合せが存
在すれば(2111)、BPキューからBP問合せを取
り出し(2112)、当該問合せを実行する(211
3)。次に、BP問合せの実行が終了していれば211
5へ、それ以外であれば、BP問合せの実行が終了する
まで監視する(2114)。OLTPキューに問合せが
存在すれば(2115)、OLTPキューからOLTP
問合せを取り出し(2116)、当該問合せを実行する
(2117)。それ以外であれば、投入間隔が経過した
か否かをチェックする(2118)。経過していなけれ
ば2115へ、経過していれば2111へ進む。したが
って、BP問合せを実行する間は、2111から211
4を実行し、OLTP問合せの実行中は、2115から
2118を実行することになる。
【0026】OLTP問合せ群を投入する時間間隔は多
くの場合、データベース管理者からの指定で決まると考
えられるが、システムで適切に決定してもよい。また、
OLTP問合せ群の実行時、各ノード間で転送されるデ
ータについては、複数のトランザクションに関与するデ
ータをページにまとめ、当該ページの満杯あるいは一定
時間の経過のタイミングで転送する方法を採用してもよ
い。また、上記実施例では、OLTP問合せとBP問合
せとを全く競合させないで時間を分けてスケジュールし
ているが、他の方法として、BP問合せの実行中にOL
TP問合せを投入して実行させ、ロック資源がBP問合
せと競合した時点で、該OLTP問合せの既に獲得した
ロック資源を全て開放した後、OLTPキューに登録す
るようにしてもよい。
【0027】以上、処理フロ−を説明した。本発明は、
統計情報を用いた規則とコスト評価との併用に限らず、
適当なデ−タベ−ス参照特性情報を与える処理手順が得
られるものであれば、例えばコスト評価のみ、規則利用
のみ、コスト評価と規則利用の併用等の最適化処理を行
うDBMSにも適用できる。本発明は、密結合/疎結合
マルチプロセッサシステム大型計算機のソフトウェアシ
ステムを介して実現することも、また各処理部のために
専用プロセッサが用意された密結合/疎結合複合プロセ
ッサシステムを介して実現することも可能である。ま
た、単一プロセッサシステムでも、各処理手順のために
並列なプロセスを割当てていれば、適用可能である。
【0028】
【発明の効果】本発明によれば、オンライントランザク
ション/バッチ処理投入間隔内で一定時間BP問合せが
実行され、残りの時間OLTP問合せが実行され、投入
間隔毎にBP問合せとOLTP問合せが確実に実行され
るため、OLTPの応答性能が保証される。また、BP
問合せ投入時間にはBP問合せの実行のみを行ない、O
LTP問合せの実行は待機させ、前記OLTP問合せ投
入時間にはOLTP問合せの実行のみが行なわれるの
で、BP問合せとOLTP問合せの競合が回避される。
また、これらにより高速な問合せ処理を実現することが
できる。さらに、稼働中のシステムでOLTP問合せと
BP問合せが競合している場合には、BP問合せとなる
可能性が非常に高い複数の処理手順からなる問合せが前
記第2のプロセッサノード群を利用する内部処理手順を
優先的に選択するようにしているため、BP問合せとO
LTP問合せの競合が回避される。また、これにより高
速な問合せ処理を実現することができる。
【図面の簡単な説明】
【図1】本発明の一実施例が適用された並列デ−タベ−
スシステムの実行例を説明する図である。
【図2】従来のデータベースシステムの構成を示す図で
ある。
【図3】本発明が適用される並列データベースシステム
におけるフロントエンドサーバ機能を示す図である。
【図4】本発明が適用される並列データベースシステム
におけるバックエンドサーバ機能を示す図である。
【図5】本発明が適用される並列データベースシステム
におけるディクショナリサーバ機能を示す図である。
【図6】本発明が適用される並列データベースシステム
におけるジャーナルサーバ機能を示す図である。
【図7】本発明が適用される並列データベースシステム
のハードウェア構成を示す図である。
【図8】本発明が適用される並列データベースシステム
におけるオンライントランザクション処理の概要を示す
図である。
【図9】本発明が適用される並列データベースシステム
におけるバッチ処理の概要を示す図である。
【図10】従来のデータベースシステムでのOLTP問
合せとBP問合せが混在した実行例を説明する図であ
る。
【図11】並列データベース管理システムにおける概略
の処理フローチャートを示す図である。
【図12】アクセスパス剪定のフローチャートを示す図
である。
【図13】処理手順候補生成のフローチャートを示す図
である。
【図14】コード生成のフローチャートを示す図であ
る。
【図15】動的最適化処理のフローチャートを示す図で
ある。
【図16】コード解釈実行のフローチャートを示す図で
ある。
【図17】スケジューリング処理のフローチャートを示
す図である。
【図18】図17のフローチャートに続くフローチャー
トを示す図である。
【図19】投入時間監視処理のフローチャートを示す図
である。
【符号の説明】
10、11 アプリケーションプログラム 20 データベース管理システム 21 システム制御部 22 論理処理部 24 データベース/ディクショナリ/ジャーナルバッ
ファ 30 オペレーティングシステム 40 データベース 50 ディクショナリ 60 ジャーナル 61、62、63、64、65、66 プロセッサ 70、71、72、73、74、75 ディスク装置 80 相互結合ネットワーク 90、91、92、93、94、95、96、97 ノ
ード 100、104 BP問合せ 101、102 OLTP問合せ 103 オンライントランザクション/バッチ処理投入
間隔

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 データベースに対するユーザからの問合
    せを解析して対応する処理手順を決定し、それを実行
    し、複数のプロセッサノードがネットワークにより接続
    され、各プロセッサノードが、ユーザからの問合せの解
    析、最適化、処理手順作成を実行するフロントエンドサ
    ーバ機能と、前記処理手順を基にしてデータベースをア
    クセスするバックエンドサーバ機能と、データベースシ
    ステムの定義情報を一括管理するディクショナリサーバ
    機能と、データベース更新履歴情報を格納、管理するジ
    ャーナルサーバ機能を備える並列データベースシステム
    において、各ノードで実行される処理手順を問合せ解析
    時あるいは問合せ実行時に作成しておき、問合せ実行時
    に各ノードで実行する処理手順を決定し、前記問合せが
    オンライントランザクション処理(以下、OLTPと記
    す)に属するかバッチ処理(以下、BPと記す)に属す
    るか判定し、判定されたOLTP問合せとBP問合せの
    実行をスケジュールする資源競合回避スケジューリング
    方法であって、 BP問合せ投入時間とOLTP問合せ投入時間からなる
    オンライントランザクション/バッチ処理投入間隔を設
    定し、該投入間隔における前記BP問合せ投入時間と前
    記OLTP問合せ投入時間の割合を設定し、 前記BP問合せ投入時間にはBP問合せの実行のみを行
    ない、OLTP問合せの実行は待機させ、前記OLTP
    問合せ投入時間にはOLTP問合せの実行のみを行なう
    ようにしたことを特徴とする資源競合回避スケジューリ
    ング方法。
  2. 【請求項2】 請求項1記載の資源競合回避スケジュー
    リング方法において、前記問合せがOLTPに属するか
    BPに属するかの判定を、問合せでアクセスするページ
    数、獲得ロック資源数、ヒットロウ数等に基づく所定の
    閾値により行ない、OLTP問合せの実行中にも該OL
    TP問合せに対して前記判定を行ない、前記所定の閾値
    を超えた場合、該OLTP問合せをBP問合せとするこ
    とを特徴とする資源競合回避スケジューリング方法。
  3. 【請求項3】 データベースに対するユーザからの問合
    せを解析して対応する処理手順を決定し、それを実行
    し、複数のプロセッサノードがネットワークにより接続
    され、各プロセッサノードが、ユーザからの問合せの解
    析、最適化、処理手順作成を実行するフロントエンドサ
    ーバ機能と、前記処理手順を基にしてデータベースをア
    クセスするバックエンドサーバ機能と、データベースシ
    ステムの定義情報を一括管理するディクショナリサーバ
    機能と、データベース更新履歴情報を格納、管理するジ
    ャーナルサーバ機能を備える並列データベースシステム
    における資源競合回避スケジューリング方法であって、 BP問合せにおいては、第1のプロセッサノード群には
    読みだし対象となるデータベースが格納され、データ読
    みだし処理、データ分割処理を実行し、第2のプロセッ
    サノード群では結合処理のための部分列ソート処理、完
    全列作成処理、突き合わせ処理を実行し、第3のプロセ
    ッサノード群ではBP問合せで要求したデータの受け取
    り処理を実行し、OLTP問合せにおいては、第1のプ
    ロセッサノード群には読みだし対象となるデータベース
    が格納され、データ読みだし処理を実行し、第3のプロ
    セッサノード群ではOLTP問合せで要求したデータの
    受け取り処理を実行する場合、 デ−タベ−スに対するユ−ザからの問合せを解析して対
    応する内部処理手順を決定し、問合せ解析処理時あるい
    は問合せ実行処理時に入力された問合せの解析結果とデ
    −タベ−スシステムの最適化情報とから単一あるいは複
    数の内部処理手順を選定、格納する過程と、 各ノード単位で実行される単一あるいは複数の処理手順
    を問合せ実行処理時に選択する過程と、該処理手順を実
    行する過程と、 稼働中のシステムでOLTP問合せとBP問合せが競合
    している場合には、前記選択する過程は、複数の処理手
    順からなる問合せが前記第2のプロセッサノード群を利
    用する内部処理手順を優先的に選択する過程を含むこと
    を特徴とする資源競合回避スケジューリング方法。
JP5172463A 1993-06-18 1993-06-18 資源競合回避スケジューリング方法 Pending JPH0778118A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5172463A JPH0778118A (ja) 1993-06-18 1993-06-18 資源競合回避スケジューリング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5172463A JPH0778118A (ja) 1993-06-18 1993-06-18 資源競合回避スケジューリング方法

Publications (1)

Publication Number Publication Date
JPH0778118A true JPH0778118A (ja) 1995-03-20

Family

ID=15942466

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5172463A Pending JPH0778118A (ja) 1993-06-18 1993-06-18 資源競合回避スケジューリング方法

Country Status (1)

Country Link
JP (1) JPH0778118A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015141574A (ja) * 2014-01-29 2015-08-03 富士通株式会社 制御プログラム、制御装置および制御方法
JP2020191067A (ja) * 2019-05-21 2020-11-26 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド クエリ処理方法、クエリ処理システム、サーバ及びコンピュータ可読媒体

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015141574A (ja) * 2014-01-29 2015-08-03 富士通株式会社 制御プログラム、制御装置および制御方法
US10171620B2 (en) 2014-01-29 2019-01-01 Fujitsu Limited Non-transitory computer-readable recording medium having stored therein control program, control apparatus and control method
JP2020191067A (ja) * 2019-05-21 2020-11-26 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド クエリ処理方法、クエリ処理システム、サーバ及びコンピュータ可読媒体
US11194807B2 (en) 2019-05-21 2021-12-07 Beijing Baidu Netcom Science And Technology Co., Ltd. Query processing method, query processing system, server and computer readable medium

Similar Documents

Publication Publication Date Title
JP3266351B2 (ja) データベース管理システムおよび問合せの処理方法
JP2760794B2 (ja) データベース処理方法および装置
US6556988B2 (en) Database management apparatus and query operation therefor, including processing plural database operation requests based on key range of hash code
US5574900A (en) System and method for optimizing parallel processing of database queries
US5325525A (en) Method of automatically controlling the allocation of resources of a parallel processor computer system by calculating a minimum execution time of a task and scheduling subtasks against resources to execute the task in the minimum time
EP0877327B1 (en) Method and apparatus for performing a join query in a database system
US7565342B2 (en) Dynamic semi-join processing with runtime optimization
US20030061244A1 (en) System and method for database query optimization
US20060074874A1 (en) Method and apparatus for re-evaluating execution strategy for a database query
US7958160B2 (en) Executing filter subqueries using a parallel single cursor model
US6678701B1 (en) Technique for establishing a point of consistency in a parallel database loading system
JPH0778118A (ja) 資源競合回避スケジューリング方法
JP3538322B2 (ja) データベース管理システムおよび問合せの処理方法
JP4422697B2 (ja) データベース管理システムおよび問合せの処理方法
JP3668243B2 (ja) データベース管理システム
JP3732655B2 (ja) データベース管理システム、データベース管理装置および問い合わせ処理方法
JP3667997B2 (ja) データベース管理装置
JP3819694B2 (ja) データベース管理システムおよび問合せの処理方法
JP3819695B2 (ja) データベース管理システムおよび問合せの処理方法
von Bültzingsloewen et al. Design and implementation of KARDAMOM—A set-oriented data flow database machine
JP2001147847A (ja) データベース管理システムおよび問合せの処理方法
JPS6315331A (ja) デ−タベ−ス処理方法
Zhang et al. An Optimized Solution for Highly Contended Transactional Workloads
JPH02234270A (ja) データベース処理方法
JP2000148557A (ja) デ―タベ―ス管理システムおよび問合せの処理方法