JP2983352B2 - データベース演算処理装置 - Google Patents

データベース演算処理装置

Info

Publication number
JP2983352B2
JP2983352B2 JP3268188A JP26818891A JP2983352B2 JP 2983352 B2 JP2983352 B2 JP 2983352B2 JP 3268188 A JP3268188 A JP 3268188A JP 26818891 A JP26818891 A JP 26818891A JP 2983352 B2 JP2983352 B2 JP 2983352B2
Authority
JP
Japan
Prior art keywords
processor
processing
command
table data
result
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 - Lifetime
Application number
JP3268188A
Other languages
English (en)
Other versions
JPH0581335A (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.)
Toshiba Corp
Toshiba Software Engineering Corp
Original Assignee
Toshiba Corp
Toshiba Software Engineering Corp
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 Toshiba Corp, Toshiba Software Engineering Corp filed Critical Toshiba Corp
Priority to JP3268188A priority Critical patent/JP2983352B2/ja
Publication of JPH0581335A publication Critical patent/JPH0581335A/ja
Application granted granted Critical
Publication of JP2983352B2 publication Critical patent/JP2983352B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、ホスト装置から与え
られるデータベース演算コマンドを受けて指定された演
算処理を実行するデータベース演算処理装置に係り、特
にホスト装置からの関係データベース演算である準結合
または結合の処理要求に対して、テーブルが大きいため
に、一括処理が可能なハードウェア定数を越えた場合に
好適なデータベース演算処理装置に関する。
【0002】
【従来の技術】ホスト装置から与えられるデータベース
演算コマンドを受けて指定された演算処理を実行するデ
ータベース演算処理装置が従来より知られている。従
来、このデータベース演算処理装置のハードウェア定数
(同装置で一括処理可能なデータ量)を越えるテーブル
の準結合または結合処理は、次のように行なわれてい
た。即ち、ホスト装置においてテーブルを分割し、その
分割したデータをデータベース演算処理装置に与えて処
理させ、得られた結果をホスト装置がまとめて全体の結
果を得ていた。
【0003】
【発明が解決しようとする課題】上記したように従来
は、準結合または結合の対象となるテーブルがデータベ
ース演算処理装置のハードウェア定数を越えるものであ
った場合、ホスト装置においてテーブルを分割し、その
分割したデータをデータベース演算処理装置に与えて処
理させ、得られた結果をホスト装置がまとめて全体の結
果を得ていたため、ホスト装置とデータベース演算処理
装置との間の転送が多く、ホスト装置に負荷がかかり、
処理に時間がかかるという問題があった。
【0004】この発明は上記事情に鑑みてなされたもの
でその目的は、処理すべきテーブルの大きさがデータベ
ース演算処理装置のハードウェア定数を越えた場合で
も、準結合と結合の処理がデータベース演算処理装置自
身で高速に行なえるデータベース演算処理装置を提供す
ることにある。
【0005】
【課題を解決するための手段】この発明は、ホスト装置
から与えられるデータベース演算コマンドを受けて指定
された演算処理を実行するデータベース演算処理装置
に、データベース演算処理装置全体の制御を司る第1の
プロセッサと、ホスト装置との間のインタフェース制御
及び2次記憶装置との間の入出力制御を司る第2のプロ
セッサと、並列ソーティング機構及び並列関係演算機構
が付加され、第1のプロセッサからの要求に応じてこれ
ら両機構を制御する第3のプロセッサと、関係演算の対
象となる対象テーブルデータおよび関係演算の条件とな
る条件テーブルデータを一時記憶するための内部メモリ
とを設け、上記第1のプロセッサを次のように構成した
ことを特徴とするものである。
【0006】即ち、第1のプロセッサは、ホスト装置か
ら第2のプロセッサを介して準結合を指示するコマンド
が与えられ、且つ同コマンドで指示された準結合処理が
第3のプロセッサで一括処理できない場合に、内部メモ
リ上の対象テーブルデータを第3のプロセッサで一括処
理が可能な単位O(j)(j=1,2…J)に分割する
と共に、内部メモリ上の条件テーブルデータを第3のプ
ロセッサで一括処理が可能な単位C(i)(i=1,2
…I)に分割し、対象テーブルデータ中の1つのO
(j)を固定して、条件テーブルデータ中の各C(i)
(i=1,2…I)について先頭から順に第3プロセッ
サにて制約を加えさせ、その結果の共通部分または合併
内容を同O(i)に対する結果として、全てのO(j)
について繰り返すように構成される。
【0007】また第1のプロセッサは、ホスト装置から
結合を指示するコマンドが与えられ、且つ同コマンドで
指示された結合処理が第3のプロセッサで一括処理でき
ない場合に、内部メモリ上の対象テーブルデータを第3
のプロセッサで一括処理が可能な単位O(j)(j=
1,2…J)に分割すると共に、内部メモリ上の条件テ
ーブルデータを第3のプロセッサで一括処理が可能な単
位C(i)(i=1,2…I)に分割し、条件テーブル
データ中の1つのC(i)を固定して、第3プロセッサ
にて、対象テーブルデータ中の各O(j)(j=1,2
…J)との結合処理を先頭から順に行なわせ、その結果
の合併内容を同C(i)に対する結果として、全てのC
(i)について繰り返すように構成される。
【0008】
【作用】上記の構成では、準結合(RESTRICT)または結
合処理(JOIN)の対象となるテーブルがデータベース演
算処理装置(内の第3のプロセッサ)で一括処理できる
データ量を越えている場合には、RESTRICTのときなら
ば、対象テーブルにおける1つのO(j)(jは1〜J
のいずれか)を固定し、条件テーブルにおける各Ci
(i=1,2…I)とのRESTRICTの結果の共通部分(演
算子がNOT EQUAL の場合)または合併(演算子がNOT EQ
UAL 以外の場合)をOjに対する結果としてjを動かす
ことにより条件テーブルと対象テーブルのRESTRICTの結
果がデータベース演算処理装置内で得られる。
【0009】同様に、JOINのときならば、条件テーブル
におけるCi(iは1〜Iのいずれか)を固定し、対象
テーブルにおける各Oj(j=1,2…J)とのJOINの
結果の合併をCiに対する結果としてiを動かすことに
より、条件テーブルと対象テーブルのJOINの結果がデー
タベース演算処理装置内で得られる。
【0010】
【実施例】以下、図面を参照してこの発明の実施例を説
明する。
【0011】図1にはこの発明の一実施例に係わるデー
タ処理装置の全体のシステム構成が示されている。この
データ処理装置は、ホストコンピュータ10と、データ
ベース演算処理装置(データベースエンジン;DBE)
16と、磁気ディスク装置などのディスク装置17とに
よって構成されている。ホストコンピュータ10は、C
PU11、主記憶装置12、第1及び第2のチャネル装
置14,15によって構成されており、これらCPU1
1、主記憶装置12及びチャネル装置14,15はシス
テムバス13を介して相互接続されている。
【0012】ホストコンピュータ10とデータベース演
算処理装置(DBE)16はチャネル装置14によって
接続され、またホストコンピュータ10とディスク装置
17はチャネル装置15によって接続されている。さら
に、データベース演算処理装置(DBE)16とディス
ク装置17は専用のバス18を介して接続されている。
【0013】CPU11は、ホストコンピュータ10全
体の制御を司るものであり、データベース演算処理装置
(DBE)16に対してソート処理や関係代数演算等の
各種演算処理の実行を依頼する。主記憶装置12には、
データベース演算処理装置(DBE)16に対して演算
対象ファイルや演算内容を指示するためのコマンド群が
格納される。
【0014】データベース演算処理装置(DBE)16
は、CPU11からのコマンドに基づいて演算対象ファ
イルのデータに対して演算処理を実行するものであり、
演算対象ファイルの入力及び演算結果の出力のために、
バス18を介してディスク装置17を直接的にアクセス
する。
【0015】このDBE(データベース演算処理装置)
16は、エンジンインタフェースプロセッサ(EIP)
161、エンジン制御プロセッサ(ECP)162、大
容量メモリ(EBDM)163、ハードウェア(HW)
ソータ制御プロセッサ(ECAM)164、並列ソーテ
ィングモジュール(PSOM)165及び並列関係代数
演算モジュール(PRAM)166によって構成されて
いる。
【0016】EIP(エンジンインタフェースプロセッ
サ)161、ECP(エンジン制御プロセッサ)162
及びECAM(ハードウェアソータ制御プロセッサ)1
64の3台のプロセッサは、内部バス167によって相
互接続されており、EBDM(大容量メモリ)163を
共有メモリとする密結合のマルチプロセッサを構成して
いる。EBDM163は、3台の各プロセッサの共通の
アドレス空間上に配置されている。また、これら3台の
プロセッサ、つまりEIP161、ECP162及びE
CAM164には機能分散がなされている。この場合、
それぞれの固有の役割を効率良く実行するために、これ
ら各プロセッサは、密結合ながらそれぞれに適した独立
のモニタによって動作制御されるように構成されてい
る。
【0017】EIP161、ECP162及びECAM
164の機能分散は、次のようになされている。
【0018】すなわち、EIP(エンジンインタフェー
プロセッサ)161は、ホストコンピュータ10とD
BE16間の通信を行なうと共に、ディスク装置17の
ディスクコントローラにもバス18を介して接続されて
おり、ディスク装置17とのデータ入出力を制御する。
また、EIP161は、ディスク装置17にデータを出
力する際、出力ファイルの再構成処理も行なう。
【0019】ホストコンピュータ10との間の通信にお
いては、EIP161は、第1のチャネル装置14を介
してCPU11から送られてくるコマンドを受信し、そ
れをECP162に送信する。また、EIP161は、
ECP162から送られてくるコマンド結果としてのス
テータスを受信し、それを第1のチャネル装置14を介
してCPU11に返信する。
【0020】ディスク装置17との間のデータ入出力処
理においては、EIP161は、ECP162からの入
出力要求を受け付け、直接EBDM163とディスク装
置17との間でデータ転送を行なう。
【0021】ECP162は、EIP161、EBDM
163及びECAM164を内部バス167を介して制
御し、データ処理を行なう。
【0022】EBDM(大容量メモリ)163は、ディ
スク装置17から読み出された演算対象のファイルデー
タ(テーブルデータ)、ECAM164、PSOM16
5及びPRAM166によるソート処理結果、関係代数
演算結果等を格納する共有メモリである。
【0023】ECAM(ハードウェアソータ制御プロセ
ッサ)164は、ECP162からの指令に基づいて、
PSOM165及びPRAM166による演算を制御す
る。
【0024】この場合、ECAM164は、EBDM1
63上のデータをPSOM165に入力し、PRAM1
66から出力された演算結果をEBDM163上に格納
するが、PSOM165へのデータ入力に際しては、キ
ー切り出し処理を実行する。このキー切り出し処理にお
いては、ECAM164は、演算対象の各レコードから
演算に必要なキーのみを切り出し、それにレコード識別
番号RID(EBDM163上におけるレコードの先頭
アドレス)を付加してPSOM165へ送出する。
【0025】PSOM(並列ソーティングモジュール)
165は、ECAM164によって駆動され、ソートを
並列に実行する専用のハードウェア回路であり、PRA
M166に接続されている。このPSOM165は、パ
イプラインマージソータと称されるものであり、2−ウ
ェイマージを行なう複数のソートセルをカスケード接続
してなる。
【0026】PRAM(並列関係代数演算モジュール)
166は、関係型データベースにおけるJOIN(結合)や
RESTRICT(制約、準結合)といった関係代数演算を並列
に実行する専用のハードウェア回路であり、PSOM1
65からソートされたデータを入力し、演算結果をEC
AM164に出力する。ソート処理だけを実行する場合
には、PRAM166は最終段のソートセルとして機能
する。
【0027】図2はホストコンピュータ10(のCPU
11)からDBE(データベース演算処理装置)16に
与えられるコマンド列21を示す。このコマンド列21
は、ホストコンピュータ10よりDBE16に処理を行
なわせる一連の処理内容を表わしたコマンド群(コマン
ド#1,#2…#n)とコマンド列内コマンド数よりな
る。
【0028】コマンドとしては、ディスク装置17から
EBDM163へのテーブルの読み込みを指示するREAD
コマンド、EBDM163上のデータを指定された形式
でディスク装置17またはEBDM163に出力するこ
とを指示するPROJECTION(射影)コマンド、及びRESTRI
CTコマンドが用意されている。このRESTRICTコマンド
は、異なるテーブルのカラムを条件として制約(準結
合)を行なうこと、即ち対象テーブルと条件テーブルの
複数カラムの比較を行ない該当する対象テーブル中のレ
コードを選択することを指示するコマンドである。
【0029】またコマンドとして、同一テーブルのカラ
ムまたは定数による選択を行なうことを指示するSELECT
コマンド、対象テーブルと条件テーブルそれぞれに対し
て与えられたカラムに対する条件によるレコードの選択
を行なった後対象テーブルの選択されたレコード群と条
件テーブルの選択されたレコード群の複数カラムの比較
を行ない該当する対象テーブル中のレコードを選択する
ことを指示するSELSELJOINコマンド(指定されたキーカ
ラムによる結合を行なうJOINコマンドの一種)、及びデ
ィスク装置17上のワークファイルを指定するWORKFILE
コマンドも用意されている。
【0030】コマンド列21を構成する各コマンドは、
図に示すように、コマンドコードとDBE16での処理
に必要な諸情報からなる。この諸情報は、例えばRESTRI
CTコマンドであれば、選択の対象となるテーブルと、条
件となるテーブルと、対象テーブルのカラムと、条件テ
ーブルのカラムと、比較演算子等である。また、SELSEL
JOINコマンドであれば、結合の対象とするテーブルと、
条件となるテーブルと、対象テーブルに対する選択条
件、条件テーブルに対する選択条件、対象テーブルのカ
ラム、条件テーブルのカラム、結合のための演算子等で
ある。
【0031】図3はDBE16からホストコンピュータ
10へ送られる処理ステータス23を示す。この処理ス
テータス23は、ホストコンピュータ10より処理依頼
を受けたコマンド群の処理結果を同コンピュータ10に
通知するためのものである。
【0032】図4は条件テーブル24a及び対象テーブ
ル24bの構造を示す。条件テーブル24aはコマンド
の処理対象となるもので、EBDM163の第1の入力
バッファ(図示せず)に置かれる。また、対象テーブル
24bもコマンドの処理対象となるもので、EBDM1
63の第2の入力バッファ(図示せず)に置かれる。こ
こでは、条件テーブル24a及び対象テーブル24bの
データ量が、DBE16内のECAM164で一括処理
可能なハードウェア定数を越えているものとする。この
ような場合、後述するように、条件テーブル24aはE
CAM164で一括処理が可能な単位C(i)(i=
1,2…I)に分割して処理され、対象テーブル24b
もECAM164で一括処理が可能な単位O(j)(j
=1,2…J)に分割して処理される。
【0033】図5はEBDM163に確保される出力バ
ッファ26の構造を示す。出力バッファ26は、ECA
M164の処理結果を保持するためのものである。出力
バッファ26は、一定サイズの単位バッファ(出力単位
バッファ)に分割して使用される。この出力バッファ2
6の単位バッファは、図示せぬ入力バッファの単位バッ
ファ(入力単位バッファ)に対応するものである。入力
単位バッファのサイズは、EIP161がディスク装置
17からデータを最も効率良く入力できるデータ量とな
るように設定される。本実施例において、出力バッファ
26に格納されるECAM164の処理結果は、RID
(の対)で表わされる。このため、出力バッファ26の
出力単位バッファは、入力バッファの入力単位バッファ
より小さなサイズとなる。
【0034】図6は図1のECP(エンジン制御プロセ
ッサ)162の機能構成を、同ECP162にて生成さ
れる各種タスク(以下、スレッドと称する)の相互関係
によって示すものである。
【0035】同図において、符号29はコマンド解析ス
レッドであり、ホストコンピュータ10からのコマンド
列21を先頭のコマンドから順に解析して、その解析毎
に対応するコマンドを処理するためのスレッド(コマン
ド処理スレッド)を生成し、結果をまとめて処理ステー
タス23としてホストコンピュータ10に送信する。
【0036】符号30はコマンド解析スレッド29によ
って次々と生成されるコマンド処理スレッドの1つであ
り、DBE16内のハードウェア資源の利用状況から処
理方法を決定して、ECAM処理依頼スレッド32を生
成し、コマンドの処理終了後、処理結果をコマンド解析
スレッド29に送信する。コマンド解析スレッド29に
よるコマンド列21の解析に伴って次々と生成されるコ
マンド処理スレッドは、それより先に生成されたコマン
ド処理スレッドがある場合、このスレッドの状態をみて
自スレッドが処理可能な状態になり次第処理を開始す
る。これにより、各コマンド処理スレッドの並行動作が
可能となる。
【0037】符号32はECAM処理依頼スレッドであ
り、第1の入力バッファのデータ(条件テーブル24
a)と第2の入力バッファのデータ(対象テーブル24
b)をECAM164に渡して、処理を依頼し、その処
理結果をコマンド処理スレッド30に送信する。
【0038】次に、図1のデータ処理装置におけるDB
E(データベース演算処理装置)16の動作を、RESTRI
CTコマンド及びSELSELJOINコマンドを実行する場合であ
って、処理対象のテーブル全体をECAM164で1回
で処理できない場合を例に、図7乃至図11のフローチ
ャートを適宜参照して説明する。なお、図7はマンド解
析スレッド29の処理手順を示すフローチャート、図8
はコマンド処理スレッド30の処理手順を示すフローチ
ャートである。また、図9はRESTRICTコマンドで演算子
がNOT EQUAL のときのECAM処理依頼スレッド32の
処理手順を示すフローチャート、図10はRESTRICTコマ
ンドで演算子がNOT EQUAL以外のときのECAM処理依
頼スレッド32の処理手順を示すフローチャート、図1
1はSELSELJOINコマンドのときのECAM処理依頼スレ
ッド32の処理手順を示すフローチャートである。
【0039】以下では条件テーブル24aと対象テーブ
ル24bはEBDM163上(の第1と第2の入力バッ
ファ)にあるものとする。
【0040】まず、ホストコンピュータ10(のCPU
11)からDBE16にシステムバス13、第1のチャ
ネル装置14を介して図2に示すコマンド列21が送ら
れてくると、同コマンド列21がEIP161によって
受信され、ECP162に渡される。この結果、ECP
162によってコマンド解析スレッド29が生成され
る。
【0041】コマンド解析スレッド29(に従って動作
するECP162)は、ホストコンピュータ10からの
コマンド列21を受け取り(図7ステップS1)、その
先頭を見てコマンド数nを知り、コマンドがなくなるま
で、コマンド列21内のコマンドコードを読んでは、そ
のコマンドコードに対する処理を行なうコマンド処理ス
レッドを生成することを繰り返す(図7ステップS2,
S3)。その際、コマンド処理スレッドに対し、該当す
るコマンドを渡す。コマンド解析スレッド29は、コマ
ンド列21内の全てのコマンドに対して、コマンド処理
スレッドを生成した後、各スレッドから順次処理結果メ
ッセージを受け取り(図7ステップS4)、全コマンド
の処理結果が揃った後、結果をまとめてホストコンピュ
ータ10にEIP161を介して処理結果ステータス2
3を送信する(図7ステップ5)。
【0042】ここではコマンドはRESTRICTコマンドまた
はSELSELJOINコマンドであるとする。
【0043】コマンド処理スレッド30(に従って動作
するECP162)は、コマンド解析スレッド29から
受け取ったコマンド(RESTRICTコマンドまたはSELSELJO
INコマンド)のコマンド処理のための諸情報をもとに、
コマンドの処理を行なう。まずコマンド処理スレッド3
0は、コマンドとDBE16の使用状況をもとに処理の
決定を行なう(図8ステップS11)。コマンド処理ス
レッド30は、このステップS11において、コマンド
を解析し、ECAM164で一括処理できるかの計算、
出力バッファ26の獲得等も行なう。
【0044】次にコマンド処理スレッド30は、ECA
M164に処理依頼をするスレッド(ECAM処理依頼
スレッド)32を生成する(図8ステップS12)。そ
してコマンド処理スレッド30は、ECAM処理依頼ス
レッド32からの処理終了メッセージを受信し、結果を
まとめてコマンド解析スレッド29に送信する(図8ス
テップS13,S14)。
【0045】ここで、処理すべきコマンドがNOT EQUAL
を演算子とするRESTRICTコマンドのときのECAM処理
依頼スレッド32の動作を、図9のフローチャートに従
って説明する。
【0046】ECAM処理依頼スレッド32(に従って
動作するECP162)は、EBDM163(の第1の
入力バッファ)上の条件テーブル24aをECAM16
4で一括処理が可能な単位C(i)(i=1,2…I)
に分割すると共に、対象テーブル24bをECAM16
4で一括処理が可能な単位O(j)(j=1,2…J)
に分割し、まずjを“1”に固定して(図9ステップS
21)、対象テーブル24bの先頭のO(1)につい
て、RESTRICTの結果R(1)を得るために以下のような
処理を行なう。
【0047】即ちECAM処理依頼スレッド32は、O
(1)と条件テーブル24aの先頭のC(1)(i=
1)とのRESTRICTをECAM164に処理依頼し、その
結果をR(1)として出力バッファ26に出力させる
(図9ステップS22〜S26)。この結果R(1)が
“0”でなければ(図9ステップS27)、ECAM処
理依頼スレッド32は、そのR(1)と条件テーブル2
4aの2番目のC(2)(i=2)とのRESTRICTをEC
AM164に処理依頼し、その結果を新たなR(1)と
して出力バッファ26に出力させる(図9ステップS2
8,S25,S26)。ECAM処理依頼スレッド32
は、以上の操作を条件テーブル24aの最後のC(I)
(i=I)まで行なう。そして、最後のC(I)とのRE
STRICTの結果が、O(1)についての最終結果R(1)
となり、出力バッファ26に出力される。
【0048】O(1)についての最終結果R(1)が得
られると、jが+1されて“2”に固定される(図9ス
テップS29)。この状態でECAM処理依頼スレッド
32は、対象テーブル24bの2番目のO(2)(j=
2)についても、上記したO(1)の場合と同様にして
条件テーブル24aのC(1)〜C(I)とのRESTRICT
をECAM164にて行なわせ、O(2)についてのRE
STRICT結果R(2)を出力バッファ26上に得る。
【0049】ECAM処理依頼スレッド32は、以上の
操作を対象テーブル24bの3番目のO(3)から最後
(J番目)のO(J)までについても行ない、O(3)
〜O(J)についてのそれぞれのRESTRICT結果R(3)
〜R(J)を出力バッファ26上に得る。
【0050】このようにしてO(1)〜O(J)につい
てのそれぞれのRESTRICT結果R(1)〜R(J)を得る
と、ECAM処理依頼スレッド32は、そのR(1)〜
R(J)の和集合、即ちR(j)のj=1からj=Jま
での和集合をとって、全体の処理結果を得る(図9ステ
ップS30)。そしてECAM処理依頼スレッド32
は、コマンド処理スレッド30に処理結果を送信して処
理を終わる(図9ステップS31)。
【0051】次に、処理すべきコマンドがNOT EQUAL 以
外を演算子とするRESTRICTコマンドのときのECAM処
理依頼スレッド32の動作を、図10のフローチャート
に従って説明する。
【0052】ECAM処理依頼スレッド32(に従って
動作するECP162)は、EBDM163(の第1の
入力バッファ)上の条件テーブル24aをECAM16
4で一括処理が可能な単位C(i)(i=1,2…I)
に分割すると共に、対象テーブル24bをECAM16
4で一括処理が可能な単位O(j)(j=1,2…J)
に分割し、まずjを“1”に固定して(図10ステップ
S41)、対象テーブル24bの先頭のO(1)につい
て、RESTRICTの結果R(i,1)を得るために以下のよ
うな処理を行なう。
【0053】即ちECAM処理依頼スレッド32は、O
(1)に含まれるレコードのアドレス(レコード識別番
号RID)の全体をA(1)(j=1)とする(図10
ステップS42,43)。そしてECAM処理依頼スレ
ッド32は、A(1)に含まれるアドレスに対応するレ
コード群と条件テーブル24aの先頭のC(1)(i=
1)とのRESTRICTをECAM164に処理依頼し、その
結果をR(1,1)として出力バッファ26に出力させ
る(図10ステップS44〜S46)。ここでR(1,
1)はA1の部分集合である。
【0054】ECAM処理依頼スレッド32は、R
(1,1)が“0”でなければ(図10ステップS4
7)、A(1)とR(1,1)との差集合を、ECAM
164に対してA(1)とR(1,1)のNOT EQUAL に
よるRESTRICTを行なわせることにより求め、新たなA
(1)とする(図10ステップS48)。
【0055】次にECAM処理依頼スレッド32は、新
たなA(1)に含まれるアドレスに対応するレコード群
と条件テーブル24aの2番目のC(2)(i=2)と
のRESTRICTをECAM164に処理依頼し、その結果を
R(2,1)として出力バッファ26に出力させる(図
10ステップS49,S45,S46)。ECAM処理
依頼スレッド32は、R(2,1)が“0”でなければ
(図10ステップS47)、A(1)とR(2,1)と
の差集合を、ECAM164に対してA(1)とR
(2,1)のNOT EQUAL によるRESTRICTを行なわせるこ
とにより求め、新たなA(1)とする(図10ステップ
S48)。
【0056】ECAM処理依頼スレッド32は、以上の
操作を条件テーブル24aのC(3)から最後のC
(I)までについても行ない、既に得られているR
(1,1)とR(2,1)の他に、R(3,1)〜R
(I,1)を出力バッファ26上に得る。そしてECA
M処理依頼スレッド32は、R(1,1)〜R(I,
1)の和集合、即ちR(i,1)のi=1からi=Iま
での和集合を求め、O(1)に対するRESTRICT結果R
(1)を得る(図10ステップ50)。
【0057】O(1)に対するRESTRICT結果R(1)が
得られると、jが+1されて“2”に固定される(図1
0ステップS51)。この状態でECAM処理依頼スレ
ッド32は、対象テーブル24bの2番目のO(2)
(j=2)についても、上記したO(1)の場合と同様
の操作を行ない、O(2)に対するRESTRICT結果R
(2)を出力バッファ26上に得る。
【0058】ECAM処理依頼スレッド32は、以上の
操作を対象テーブル24bの3番目のO(3)から最後
(J番目)のO(J)までについても行ない、O(3)
〜O(J)に対するそれぞれのRESTRICT結果R(3)〜
R(J)を出力バッファ26上に得る。
【0059】このようにしてR(1)〜R(J)を得る
と、ECAM処理依頼スレッド32は、そのR(1)〜
R(J)の和集合、即ちR(j)のj=1からj=Jま
での和集合をとって、全体の処理結果を得る(図10ス
テップS52)。そしてECAM処理依頼スレッド32
は、コマンド処理スレッド30に処理結果を送信して処
理を終わる(図10ステップS53)。
【0060】以上のRESTRICTコマンドの処理の原理を図
12に示す。
【0061】次に、処理すべきコマンドがSELSELJOINの
ときのECAM処理依頼スレッド32の動作を、図11
のフローチャートに従って説明する。
【0062】ECAM処理依頼スレッド32(に従って
動作するECP162)は、EBDM163(の第1の
入力バッファ)上の条件テーブル24aをECAM16
4で一括処理が可能な単位C(i)(i=1,2…I)
に分割すると共に、対象テーブル24bをECAM16
4で一括処理が可能な単位O(j)(j=1,2…J)
に分割し、まずiを“1”に固定して(図11ステップ
S61)、条件テーブル24aの先頭のC(1)につい
て、SELSELJOINの結果R(1,j)を得るために以下の
ような処理を行なう。
【0063】即ちECAM処理依頼スレッド32は、C
(1)をECAM164にロードする(図11ステップ
S62,S63)。これにより、ECAM164が持つ
PSOM165にて条件キーがソートされ、PRAM1
66のバッファ(図示せず)に格納される。また、SELS
ELJOINコマンドの場合、PSOM165でのソートに先
立ち、ECAM164においてカラムまたは定数による
選択が行なわれる。次にECAM処理依頼スレッド32
は、C(1)と対象テーブル24bの先頭のO(1)
(j=1)とのSELSELJOINをECAM164に処理依頼
し、その結果をR(1,1)として出力バッファ26に
出力させる(図11ステップS64〜S66)。
【0064】続いてECAM処理依頼スレッド32は、
C(1)と対象テーブル24bの2番目のO(2)(j
=2)とのSELSELJOINをECAM164に処理依頼し、
その結果をR(1,2)として出力バッファ26に出力
させる(図11ステップS67,S65,S66)。E
CAM処理依頼スレッド32は、以上の操作を対象テー
ブル24bの3番目のO(3)から最後のO(J)まで
についても行ない、それぞれの結果R(1,3)〜R
(1,J)を出力バッファ26上に得る。
【0065】このようにしC(1)とO(1)〜O
(J)とのSELSELJOIN結果R(1,1)〜R(1,J)
が得られると、iが+1されて“2”に固定される(図
11ステップS68)。この状態でECAM処理依頼ス
レッド32は、条件テーブル24aの2番目のC(2)
(i=2)についてもECAM164にロードして、上
記したC(1)の場合と同様の操作を行ない、C(2)
とO(1)〜O(J)とのSELSELJOIN結果R(2,1)
〜R(2,J)を出力バッファ26上に得る。
【0066】ECAM処理依頼スレッド32は、以上の
操作を条件テーブル24aの3番目のC(3)から最後
(I番目)のO(I)までについても行ない、C(3)
とO(1)〜O(J)とのSELSELJOIN結果R(3,1)
〜R(3,J)からC(I)とO(1)〜O(J)との
SELSELJOIN結果R(I,1)〜R(I,J)までを出力
バッファ26上に得る。以上の処理原理を図13に示
す。
【0067】このようにして、i=1〜I,j=1〜J
についての全ての結果R(i,j)を得ると、ECAM
処理依頼スレッド32は、そのR(i,j)のi=1か
らiIと、j=1からj=Jまでの和集合を求めて、全
体の処理結果を得る(図11ステップS69)。そして
ECAM処理依頼スレッド32は、コマンド処理スレッ
ド30に処理結果を送信して処理を終わる(図11ステ
ップS70)。
【0068】以上のように本実施例では、内部バス16
7によって相互接続され、互いに並列動作可能なEIP
(エンジンインタフェースプロセッサ)161、ECP
(エンジン制御プロセッサ)162及びECAM(ハー
ドウェアソータ制御プロセッサ)164の3つのプロセ
ッサと、これら各プロセッサによって共有されるEBD
M(大容量メモリ)163と、ECAM164によって
制御されるPSOM(並列ソーティングモジュール)1
65及びPRAM(並列関係代数演算モジュール)16
6とにより、DBE(データベース演算処理装置)16
を構成している。
【0069】また本実施例では、ホストコンピュータ1
0からDBE16にRESTRICTコマンドまたはSELSELJOIN
コマンドを含むコマンド列21が送られた場合に、EC
P162にてコマンド解析スレッド29が生成される構
成となっている。このコマンド解析スレッド29は、コ
マンド列21を解析してコマンド列21中のコマンド各
々の処理を行なうコマンド処理スレッド30で代表され
るコマンド処理スレッドを次々と生成し、それらからの
処理結果を受信してまとめてホストコンピュータ10へ
の処理ステータス23を通知するように構成される。
【0070】コマンド処理スレッド30は、ECAM処
理依頼スレッド32を生成し、ECAM処理依頼スレッ
ド32からの処理メッセージをもとにコマンド処理結果
をコマンド解析スレッド29に送信するように構成され
る。
【0071】ECAM処理依頼スレッド32は、コマン
ドがRESTRICTのときは、対象テーブル24bにおけるO
j(1≦j≦J)を固定し、条件テーブル24aにおけ
る各Ci(1≦i≦I)とのRESTRICTの結果の共通部分
(演算子がNOT EQUAL の場合)または合併(NOT EQUAL
以外の場合)をOjに対する結果として、jを動かすこ
とにより条件テーブル24aと対象テーブル24bのRE
STRICTの結果を得、しかる後に処理結果をコマンド処理
スレッド30に送信するように構成される。
【0072】ECAM処理依頼スレッド32はまた、コ
マンドがSELSELJOINのときは、条件テーブル24aにお
けるCi(1≦i≦I)を固定し、対象テーブル24b
における各Oj(1≦j≦J)とのSELSELJOINの結果の
合併をCiに対する結果として、iを動かすことにより
条件テーブル24aと対象テーブル24bのSELSELJOIN
の結果を得、しかる後に処理結果をコマンド処理スレッ
ド30に送信するように構成される。
【0073】このような構成により、条件テーブル24
aまたは対象テーブル24bがECAM164で一括処
理可能でない大きさの場合の準結合と結合の処理をDB
E16上で実現することができる。
【0074】
【発明の効果】以上詳述したようにこの発明によれば、
準結合(RESTRICT)の対象となるテーブルがデータベー
ス演算処理装置で一括処理できるデータ量を越えている
場合でも、対象テーブル,条件テーブルをそれぞれ一括
処理可能な単位O(j)(j=1,2…J),C(i)
(i=1,2…I)に分割し、1つのO(j)を固定し
て、条件テーブルにおける各CiとのRESTRICTの結果の
共通部分(演算子がNOTEQUAL の場合)または合併(演
算子がNOT EQUAL 以外の場合)をOjに対する結果とし
てjを動かすことにより、条件テーブルと対象テーブル
のRESTRICTの結果をデータベース演算処理装置内で得る
ことができる。
【0075】また、この発明によれば、結合処理(JOI
N)の対象となるテーブルがデータベース演算処理装置
で一括処理できるデータ量を越えている場合でも、対象
テーブル,条件テーブルをそれぞれ一括処理可能な単位
O(j)(j=1,2…J),C(i)(i=1,2…
I)に分割し、1つのCiを固定して、対象テーブルに
おける各OjとのJOINの結果の合併をCiに対する結果
としてiを動かすことにより、条件テーブルと対象テー
ブルのJOINの結果をデータベース演算処理装置内で得る
ことができる。
【0076】したがって、この発明によれば、テーブル
の大きさがデータベース演算処理装置のハードウェア定
数を越えた場合でも、準結合と結合の処理をデータベー
ス演算処理装置内で高速に行なうことができる。
【図面の簡単な説明】
【図1】この発明の一実施例に係るデータ処理装置のシ
ステム構成を示すブロック図。
【図2】図1のホストコンピュータ10からデータベー
ス演算処理装置(DBE)16に与えられるコマンド列
の構成を示す図。
【図3】データベース演算処理装置(DBE)16から
ホストコンピュータ10へ送られる処理ステータスの構
成を示す図。
【図4】条件テーブル及び対象テーブルの構造を示す
図。
【図5】図1の大容量メモリ(EBDM)163に確保
される出力バッファ26の構造を示す図。
【図6】図1のエンジン制御プロセッサ(ECP)16
2の機能構成を、同プロセッサ162にて生成される各
種スレッドの相互関係によって示す図。
【図7】図6のコマンド解析スレッド29の処理手順を
示すフローチャート。
【図8】図6のコマンド処理スレッド30の処理手順を
示すフローチャート。
【図9】RESTRICTコマンドがNOT EQUAL を演算子とする
ときの図6のECAM処理依頼スレッド32の処理手順
を示すフローチャート。
【図10】RESTRICTコマンドがNOT EQUAL 以外を演算子
とするときの図6のECAM処理依頼スレッド32の処
理手順を示すフローチャート。
【図11】SELSELJOINコマンドのときの図6のECAM
処理依頼スレッド32の処理手順を示すフローチャー
ト。
【図12】RESTRICTコマンドの処理の原理を説明するた
めの図。
【図13】SELSELJOINコマンドの処理の原理を説明する
ための図。
【符号の説明】
10…ホストコンピュータ、11…CPU、16…デー
タベース演算処理装置(DBE)、17…ディスク装置
(2次記憶装置)、18…バス、161…エンジンイン
タフェースプロセッサ(EIP、第2のプロセッサ)、
162…エンジン制御プロセッサ(ECP、第1のプロ
セッサ)、163…大容量メモリ(EBDM、内部メモ
リ)、164…ハードウェア(HW)ソータ制御プロセ
ッサ(ECAM、第3のプロセッサ)、165…並列ソ
ーティングモジュール(PSOM)、166…並列関係
代数演算モジュール(PRAM)、21…コマンド列、
23…処理ステータス、24a…条件テーブル、24b
…対象テーブル、26…出力バッファ、29…コマンド
解析スレッド、30…コマンド処理スレッド、32…E
CAM処理依頼スレッド。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山田 広佳 東京都青梅市末広町2丁目9番地 株式 会社東芝青梅工場内 (72)発明者 島川 和典 東京都青梅市末広町2丁目9番地 株式 会社東芝青梅工場内 (72)発明者 佐藤 祐治 東京都青梅市新町1385番地 東芝ソフト ウェアエンジニアリング株式会社内 (72)発明者 外尾 博紀 東京都青梅市新町1385番地 東芝ソフト ウェアエンジニアリング株式会社内 (72)発明者 天野 慎一 東京都青梅市新町1385番地 東芝ソフト ウェアエンジニアリング株式会社内 (56)参考文献 特開 平3−22151(JP,A) 特開 昭60−178573(JP,A) 中野美由紀ほか,「機能ディスクシス テム第2版」,コンピュータアーキテク チャシンポジウム論文集pp.37−46, (昭和63年5月17日) (58)調査した分野(Int.Cl.6,DB名) G06F 17/30 G06F 12/00 512 G06F 15/16 370

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 ホスト装置演算対象のテーブルデータ
    が格納される2次記憶装置と接続され、前記ホスト装
    置から与えられるコマンドに応じて前記演算対象のテー
    ブルデータを入力して所定のデータベース演算処理を実
    行するデータベース演算処理装置において、データベース演算処理 装置全体の制御を司る第1のプロ
    セッサと、 前記ホスト装置との間のインタフェース制御及び前記2
    次記憶装置との間の入出力制御を司る第2のプロセッサ
    と、 ソートを並列に実行する並列ソーティング機構及び各種
    関係代数演算を並列に実行する並列関係演算機構が付加
    され、前記第1のプロセッサからの要求に応じて前記両
    機構を制御する第3のプロセッサと、 関係演算の対象となる対象テーブルデータおよび関係演
    算の条件となる条件テーブルデータを一時記憶するため
    の内部メモリとを具備し、 前記第1のプロセッサは、前記ホスト装置から前記第2
    のプロセッサを介して準結合を指示するコマンドが与え
    られ、且つ同コマンドで指示された準結合処理が前記第
    3のプロセッサで一括処理できない場合に、前記内部メ
    モリ上の前記対象テーブルデータを前記第3のプロセッ
    サで一括処理が可能な単位O(j)(j=1,2…J)
    に分割すると共に、前記内部メモリ上の前記条件テーブ
    ルデータを前記第3のプロセッサで一括処理が可能な単
    位C(i)(i=1,2…I)に分割し、前記対象テー
    ブルデータ中の1つの前記O(j)を固定して、前記条
    件テーブルデータ中の各C(i)(i=1,2…I)に
    ついて先頭から順に前記第3プロセッサにて制約を加え
    させ、その結果の共通部分または合併内容を同O(i)
    に対する結果として、全てのO(j)について繰り返す
    ことにより、前記対象テーブルデータと条件テーブルデ
    ータとの準結合処理の結果を得るように構成されている
    ことを特徴とするデータベース演算処理装置。
  2. 【請求項2】 ホスト装置演算対象のテーブルデータ
    が格納される2次記憶装置と接続され、前記ホスト装
    置から与えられるコマンドに応じて前記演算対象のテー
    ブルデータを入力して所定のデータベース演算処理を実
    行するデータベース演算処理装置において、データベース演算処理 装置全体の制御を司る第1のプロ
    セッサと、 前記ホスト装置との間のインタフェース制御及び前記2
    次記憶装置との間の入出力制御を司る第2のプロセッサ
    と、 ソートを並列に実行する並列ソーティング機構及び各種
    関係代数演算を並列に実行する並列関係演算機構が付加
    され、前記第1のプロセッサからの要求に応じて前記両
    機構を制御する第3のプロセッサと、 関係演算の対象となる対象テーブルデータおよび関係演
    算の条件となる条件テーブルデータを一時記憶するため
    の内部メモリとを具備し、 前記第1のプロセッサは、前記ホスト装置から前記第2
    のプロセッサを介して結合を指示するコマンドが与えら
    れ、且つ同コマンドで指示された結合処理が前記第3の
    プロセッサで一括処理できない場合に、前記内部メモリ
    上の前記対象テーブルデータを前記第3のプロセッサで
    一括処理が可能な単位O(j)(j=1,2…J)に分
    割すると共に、前記内部メモリ上の前記条件テーブルデ
    ータを前記第3のプロセッサで一括処理が可能な単位C
    (i)(i=1,2…I)に分割し、前記条件テーブル
    データ中の1つの前記C(i)を固定して、前記第3プ
    ロセッサにて、前記対象テーブルデータ中の各O(j)
    (j=1,2…J)との結合処理を先頭から順に行なわ
    せ、その結果の合併内容を同C(i)に対する結果とし
    て、全てのC(i)について繰り返すことにより、前記
    対象テーブルデータと条件テーブルデータとの結合処理
    の結果を得るように構成されていることを特徴とするデ
    ータベース演算処理装置。
JP3268188A 1991-09-21 1991-09-21 データベース演算処理装置 Expired - Lifetime JP2983352B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3268188A JP2983352B2 (ja) 1991-09-21 1991-09-21 データベース演算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3268188A JP2983352B2 (ja) 1991-09-21 1991-09-21 データベース演算処理装置

Publications (2)

Publication Number Publication Date
JPH0581335A JPH0581335A (ja) 1993-04-02
JP2983352B2 true JP2983352B2 (ja) 1999-11-29

Family

ID=17455143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3268188A Expired - Lifetime JP2983352B2 (ja) 1991-09-21 1991-09-21 データベース演算処理装置

Country Status (1)

Country Link
JP (1) JP2983352B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6747162B2 (ja) * 2016-08-12 2020-08-26 富士通株式会社 情報提供方法、情報提供プログラムおよび情報提供装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
中野美由紀ほか,「機能ディスクシステム第2版」,コンピュータアーキテクチャシンポジウム論文集pp.37−46,(昭和63年5月17日)

Also Published As

Publication number Publication date
JPH0581335A (ja) 1993-04-02

Similar Documents

Publication Publication Date Title
JP2983352B2 (ja) データベース演算処理装置
JP3004102B2 (ja) データベース演算処理装置
JP3002041B2 (ja) データベース演算処理装置
JPH05324430A (ja) データ処理装置
JP2983351B2 (ja) データベース演算処理装置
JPH0581339A (ja) データ処理装置
JPH06348554A (ja) データ処理装置
JPH06348561A (ja) データ処理装置
JPH05101110A (ja) データベース演算処理装置
JPH0581343A (ja) データ処理装置
JP2522162B2 (ja) 仮想計算機システムにおける端末共用制御方式
JPH06176076A (ja) データ処理装置
JPH06110936A (ja) データ処理装置
JPH0375905B2 (ja)
JP2663491B2 (ja) Ncプログラムの自動分割方法
JP3263123B2 (ja) データ処理システムにおけるソート処理方式
JPH06348558A (ja) データ処理装置
JPH05324580A (ja) データ処理装置
JPH07105057A (ja) データ処理装置
JPH0580976A (ja) データ処理装置
JPH06176077A (ja) データ処理装置
CN116107713A (zh) 一种批处理任务执行方法、系统、存储介质及设备
JPS608925A (ja) 重複キー入力情報の処理方法
JPH0581338A (ja) データ処理装置
JPS6139284A (ja) 情報検索装置