JPH06251067A - 並列データ検索装置 - Google Patents

並列データ検索装置

Info

Publication number
JPH06251067A
JPH06251067A JP5037226A JP3722693A JPH06251067A JP H06251067 A JPH06251067 A JP H06251067A JP 5037226 A JP5037226 A JP 5037226A JP 3722693 A JP3722693 A JP 3722693A JP H06251067 A JPH06251067 A JP H06251067A
Authority
JP
Japan
Prior art keywords
search
condition
computer
bit string
computers
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
JP5037226A
Other languages
English (en)
Inventor
Keiko Nagase
恵子 永瀬
Hideji Harashima
秀次 原嶋
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
Original Assignee
Toshiba 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 filed Critical Toshiba Corp
Priority to JP5037226A priority Critical patent/JPH06251067A/ja
Publication of JPH06251067A publication Critical patent/JPH06251067A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 並列検索を行う複数の計算機が同じ検索を行
うという無駄な処理を省くことを目的とする。 【構成】 通信媒体で相互に接続された質問処理計算機
と、インデックスも含めて検索対象レコード群が多重化
されている複数の計算機からなるデータ検索装置におい
て、複数の条件の論理積からなる検索条件を並列検索す
る場合に、特定の条件をそれぞれ1つの計算機に割り当
てることにより各計算機が異なる検索をし、その結果を
集計し全体の検索結果を出力する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数の計算機上に多重
化されたデータを持つ並列データ検索装置に関する。
【0002】
【従来の技術】データ検索装置は「与えられた条件を満
たすレコードをいかに高速に検索するか。」が重要であ
る。
【0003】そのため、従来は同一のレコード群を複数
台の計算機上に登録し(以下、多重化と呼ぶ)、検索範
囲を計算機ごとに割り当てて検索させ、その結果を結合
して最終的な結果を得るという並列検索の装置が用いら
れていた。またさらに、頻繁に検索の対象となる項目に
ついてはインデックスをつけておくことにより、検索の
効率化をはかることも行われていた。例えば、表1を検
索の対象となるレコード群とする。
【0004】
【表1】
【0005】この表1は識別子1というレコードが、項
目1として「α」という情報を、項目2として「x」と
いう情報を、項目3として「a」という情報を、項目4
として「イ」という情報を、項目5として「×」と言う
情報を持つデータであることを表している。
【0006】またインデックスを、(p;q,r・・
・)で表すこととする。(pはレコード項目の値、q,
r・・・はそのレコード項目の値をもつレコード識別子
の列である。)ここでは、項目1と項目3にインデック
スが付いているものとする。
【0007】具体的には項目1のインデックスは(α;
1,2,5,6,8)、(β;4,9)、(γ;3,
7)であり、項目3のインデックスは(a;1,4,
9)、(b;2,5,8)、(c;3,6,7)とな
る。
【0008】これら上記表1の検索の対象となるレコー
ド群とインデックスは並列検索を行う2台の計算機に多
重化されて保存されていて、この2台の計算機で「{項
目1がα}かつ{項目2がx}かつ{項目3がb}かつ
{項目4がア}かつ{項目5が○}」という質問を並列
検索するとする。
【0009】ここでは、第1の計算機に識別子1から識
別子5までのレコードの検索を割り当て、第2の計算機
に識別子6から9までのレコードの検索を割り当てると
する。
【0010】まず、第1の計算機では、項目1のインデ
ックスを用いてレコード群から{項目1がα}を満たす
レコードのレコード識別子1、識別子2、識別子5、識
別子6、識別子8が検索される。次に、第1の計算機で
は、項目3のインデックスを用いてレコード群から{項
目3がb}を満たすレコードのレコード識別子2、識別
子8が検索される。これら2つのインデックスを用いた
検索の結果が識別子2、識別子8になる。
【0011】最後に、第1の計算機はインデックスのつ
いていない項目2と項目4と項目5について「{項目2
がx}かつ{項目4がア}かつ{項目5が○}」を満た
すレコードを識別子1から識別子5までの範囲で、上述
のインデックスにより検索されたレコードから検索す
る。ここでは、識別子2が該当する。この様に、第1の
計算機の検索結果として識別子2のレコードが得られ
る。
【0012】一方、識別子6から識別子9までのレコー
ドの検索を割り当てられた第2の計算機の検索の結果、
第2の計算機の検索範囲に含まれるものは識別子8のみ
なので、第2の計算機の検索結果として識別子8のレコ
ードが得られる。
【0013】そして最終的に、質問処理計算機である計
算機で第1の計算機の検索結果である識別子2と第2の
計算機の検索結果である識別子8をあわせて、並列処理
データ検索装置の検索結果として識別子2、識別子8の
レコードを出力する。
【0014】
【発明が解決しようとする課題】上述のような従来の装
置では、多重化されたレコード群がインデックスを含め
て多重化されている場合、各計算機ではインデックスを
利用して全レコードを対象にした検索を行っていなが
ら、割り当てられた検索の範囲の結果のみ利用するた
め、無駄な計算を行い、それだけ時間を余計に消費して
しまうという問題点があった。
【0015】そこで本発明は、このような事情に対処し
てなされたもので、検索条件を検索処理を行う計算機に
有効に割り当てることにより、無駄な計算をなくし、従
来にくらべて高速な検索を可能とすることを目的とす
る。
【0016】
【課題を解決するための手段】本発明は、上記課題を解
決するために、インデックスを持つ項目とインデックス
を持たない項目を持つレコード群を記憶しているレコー
ド群記憶部を多重化して持ち、前記レコード群記憶部の
中から論理積で結合された条件の集合からなる検索条件
を並列に検索するため通信媒体を介して接続された並列
検索を行う複数の計算機と、前記並列検索を行う複数の
計算機が前記レコード群記憶部の中から検索する範囲を
前記並列検索を行う複数の計算機ごとに重複の無いよう
に設定して前記並列検索を行う複数の計算機に検索を命
令し、前記並列検索を行う複数の計算機の検索結果を集
計する少なくとも一つの計算機からなる質問処理計算機
とを具備する並列データ検索装置において、 (a)前記レコード群記憶部の多重度 (b)前記並列検索を行う複数の計算機の区別 (c)前記レコード群記憶部に格納されているレコード
群の総数の情報 に基づき前記論理積で結合された条件の集合からなる検
索条件を構成する全ての条件について、インデックスを
利用できる条件の一部を前記並列検索を行う複数の計算
機の一つに割り当てインデックスを利用できない条件を
前記並列検索を行う複数の計算機の各々の計算機に割り
当てる前記質問処理計算機の検索条件割当部と、 (イ)前記質問処理計算機の検索条件割当部に前記イン
デックスを利用できる条件を割り当てられた場合、前記
並列検索を行う複数の計算機のレコード群記憶部から前
記インデックスを利用できる条件に該当するレコードを
検索する第1の検索
【0017】(ロ)前記第1の検索の結果と他の前記並
列検索を行う複数の計算機の検索部が行った第1の検索
の結果から、前記第1の検索の結果と他の前記並列検索
を行う複数の計算機の検索部が行った第1の検索の結果
全てに該当するものの検索を行う第2の検索 (ハ)前記第2の検索の結果の中から前記質問処理計算
機の検索条件割当部に割り当てられた前記インデックス
を利用できない条件の検索を行う第3の検索を行う前記
並列検索を行う複数の計算機の検索部とを具備すること
を特徴とする。
【0018】また、インデックスを持つ項目とインデッ
クスを持たない項目を持つレコード群を記憶しているレ
コード群記憶部を多重化してを持ち、前記レコード群記
憶部の中から論理積で結合された条件の集合からなる検
索条件を並列に検索するため通信媒体を介して接続され
並列検索を行う複数の計算機と、前記並列検索を行う複
数の計算機が前記レコード群記憶部の中から検索する範
囲を前記並列検索を行う複数の計算機ごとに重複の無い
ように設定して前記並列検索を行う複数の計算機に検索
を命令し、前記並列検索を行う複数の計算機の検索結果
を集計する少なくとも一つの計算機からなる質問処理計
算機とを具備する並列データ検索装置において、 (a)前記レコード群記憶部の多重度 (b)前記並列検索を行う複数の計算機の区別 (c)前記レコード群記憶部に格納されているレコード
群の総数の情報 に基づき、前記論理積で結合された条件の集合からなる
検索条件を構成する全ての条件について、インデックス
を利用できる条件を前記並列検索を行う複数の計算機の
各々の計算機に割り当てインデックスを利用できない条
件の一部を前記並列検索を行う複数の計算機の一つに割
り当てる前記質問処理計算機の検索条件割当部と、 (イ)前記質問処理計算機の検索条件割当部に前記イン
デックスを利用できる条件を割り当てられた場合、前記
並列検索を行う複数の計算機のレコード群記憶部から前
記インデックスを利用できる条件すべてに該当するレコ
ードを検索する第1の検索
【0019】(ロ)前記第1の検索の結果と他の前記並
列検索を行う複数の計算機の検索部が行った第1の検索
の結果から、前記第1の検索の結果と他の前記並列検索
を行う複数の計算機の検索部が行った第1の検索の結果
全てに該当するものの検索を行う第2の検索 (ハ)前記第2の検索の結果の中から前記質問処理計算
機の検索条件割当部に割り当てられた前記インデックス
を利用できない条件の検索を行う第3の検索を行う前記
並列検索を行う複数の計算機の検索部とを具備すること
を特徴とする。
【0020】
【作用】上記構成の並列データ検索装置によれば、質問
処理計算機が並列検索を行う複数の計算機にそれぞれ異
なる検索条件を割り当てることにより、前記複数の計算
機にそれぞれ異なる検索をさせ、同じ検索を行うという
無駄を省き、また、質問処理計算機が検索条件を割り当
てる際、並列検索する計算機の一つが検索を行うための
検索条件が、論理積で結合された条件の一部を検索条件
として割り当てるため、並列検索を行う計算機一つ一つ
の検索速度が速く効率のよい検索が可能となる。
【0021】
【実施例】
(実施例1)以下、請求項1記載の本発明の一実施例を
図面を参照して説明する。
【0022】図1は本発明の一実施例の構成を示す図で
ある。ここで示す例は、4台の計算機で構成される並列
データ検索装置で、計算機1と計算機2と計算機3と計
算機4が通信媒体5を介して結合されている。計算機1
を質問処理計算機とし、計算機2、計算機3、計算機4
を検索を行う複数の計算機とする。
【0023】以下、検索を実行する例を説明するが、こ
こでの検索対象は従来の検索例と同じ、表1のレコード
群から{項目1がα}かつ{項目2がx}かつ{項目3
がb}かつ{項目4がア}かつ{項目5が○}というレ
コードを検索し、項目1と項目3が従来の装置と同じイ
ンデックスを持つ場合を説明する。
【0024】質問処理計算機である計算機1が並列検索
を行う複数の計算機2、3、4に検索条件を配布する手
順を図1の構成図と図2のフローチャートを基に説明す
る。なお、図2のフローチャートは一般性を持たせるた
め、整数をnとiのように文字で表している。
【0025】ステップ「検索条件を入力」200にある
ように、質問処理計算機である計算機1の入出力部11
にユーザが検索条件を入力する。ここでは{項目1が
α}かつ{項目2がx}かつ{項目3がb}かつ{項目
4がア}かつ{項目5が○}を入力する。
【0026】次に、入出力部11は質問解析部12に前
記検索条件を送り、質問解析部12はステップ「n←入
力された検索条件数、i←1」201にあるように入力
された条件数を求め、i番目の条件を計算機に割り当て
るための初期値1を入れる。ここでは、{項目1が
α}、{項目2がx}、{項目3がb}、{項目4が
ア}、{項目5が○}という5つの条件が与えられてい
る。
【0027】質問解析部12は、ステップ「計算機の多
重度、インデックス情報を調べる」202にあるように
本並列処理データ検索装置が管理している並列検索を行
う複数の計算機の数と前記複数の計算機が持つレコード
群のインデックスの情報を調査する。ここでは、3台の
計算機に検索条件を割り当て、項目1と項目3がインデ
ックスを持っていることを判断する。質問解析部12は
検索条件割当部13に前記ステップ「計算機の多重度、
インデックス情報を調べる」202の結果を送付する。
検索条件割当部13は、計算機2と計算機3と計算機4
に割り当てる検索条件と検索範囲を以下のように決定す
る。
【0028】具体的に検索条件割当部13は、ステップ
「i番目の条件にインデックスがある」203にあるよ
うに、1番目の条件にインデックスがあるか否か判断す
る。ここでは項目1はインデックスを持つので、ステッ
プ「i番目の条件を一つの計算機に割り当てる」204
にあるように項目1の条件を計算機2に割り当てること
を決定する。検索条件割当部13はステップ「n←n−
1、i←i+1」205にあるように、次の条件の割り
当てを行うために番号を更新し、ステップ「全ての条件
の割当を決定した(n=0)」206で全ての条件の割
り当てを決定したか否か判断する。ここではあと4つの
条件があるので、検索条件割当部13は再び条件の割り
当ての決定を行う。
【0029】ステップ「i番目の条件にインデックスが
ある」203にあるように検索条件割当部13は、2番
目の条件にインデックスがあるか否か判断する。ここで
検索条件割当部13は、項目2がインデックスを持たな
いのでステップ「i番目の条件を全ての計算機に割り当
てる」207にあるように計算機2、計算機3、計算機
4とすべての計算機に割り当てることを決定する。
【0030】検索条件割当部13はステップ「n←n−
1、i←i+1」205にあるように、次の条件の割り
当てを行うために番号を更新し、ステップ「全ての条件
の割当を決定した(n=0)」206で全ての条件の割
り当てを決定したか否か判断する。ここではあと3つ条
件があるので、検索条件割当部13は再び条件の割り当
ての決定を行う。
【0031】検索条件割当部13は、ステップ「i番目
の条件にインデックスがある」203にあるように、3
番目の条件にインデックスがあるか否か判断する。ここ
で検索条件割当部13は項目3がインデックスを持つの
で、ステップ「i番目の条件を一つの計算機に割り当て
る」204にあるように項目3の条件を計算機3に割り
当てることを決定する。
【0032】検索条件割当部13はステップ「n←n−
1、i←i+1」205にあるように、次の条件の割り
当てを行うために番号を更新し、ステップ「全ての条件
の割当を決定した(n=0)」206で全ての条件の割
り当てを決定したか否か判断する。ここではあと2つ条
件があるので、検索条件割当部13は再び条件の割り当
ての決定を行う。
【0033】ステップ「i番目の条件にインデックスが
ある」203にあるように検索条件割当部13は、4番
目の条件にインデックスがあるか否か判断する。ここで
検索条件割当部13は、項目4がインデックスを持たな
いのでステップ「i番目の条件を全ての計算機に割り当
てる」207にあるように計算機2、計算機3、計算機
4とすべての計算機に割り当てることを決定する。
【0034】検索条件割当部13はステップ「n←n−
1、i←i+1」205にあるように、次の条件の割り
当てを行うために番号を更新し、ステップ「全ての条件
の割当を決定した(n=0)」206で全ての条件の割
り当てを決定したか否か判断する。ここではあと1つ条
件があるので、検索条件割当部13は再び条件の割り当
ての決定を行う。
【0035】ステップ「i番目の条件にインデックスが
ある」203にあるように検索条件割当部13は、5番
目の条件にインデックスがあるか否か判断する。ここで
検索条件割当部13は、項目5がインデックスを持たな
いのでステップ「i番目の条件を全ての計算機に割り当
てる」207にあるように計算機2、計算機3、計算機
4とすべての計算機に割り当てることを決定する。
【0036】検索条件割当部13はステップ「n←n−
1、i←i+1」205にあるように、次の条件の割り
当てを行うために番号を更新し、ステップ「全ての条件
の割当を決定した(n=0)」206で全ての条件の割
り当てを決定したか否か判断する。ここで検索条件割当
部13は、全ての条件の割り当てを決定したので次の処
理に移る。
【0037】検索条件割当部13は、ステップ「検索条
件をインデックスを利用できるものを先にして論理積で
結合する」208にあるように並列検索を行う複数の計
算機に与えられた検索条件をインデックスが利用できる
ものを先にして論理積で結合する。ここで検索条件割当
部13は、計算機2では「{項目1がα}かつ{項目2
がx}かつ{項目4がア}かつ{項目5が○}」という
条件になり、計算機3では「{項目3がb}かつ{項目
2がx}かつ{項目4がア}かつ{項目5が○}」とい
う条件になり、計算機4では「{項目2がx}かつ{項
目4がア}かつ{項目5が○}」という条件になる。
【0038】検索条件割当部13は、ステップ「各計算
機の検索範囲を決定する」209にあるように3台の並
列検索を行う複数の計算機にレコード群の検索範囲を決
定する。ここで検索条件割当部13は、本実施例の場合
レコードの総数が9個あるので、計算機2に識別子1か
ら識別子3の範囲の検索を割り当て、計算機3には識別
子4から識別子6までを、計算機4には識別子7から識
別子9を割り当てる。
【0039】検索条件割当部13は、計算機の多重度と
検索条件と検索範囲の情報を通信制御部14に送り、通
信制御部14はステップ「計算機の多重度と検索条件と
検索範囲を各計算機に送付する」210にあるように計
算機の多重度と検索条件と検索範囲を各計算機に送付す
る。ここでは、並列検索を行う複数の計算機の台数と検
索条件と検索範囲の情報を通信媒体5を介して計算機
2、計算機3、計算機4に送付する。
【0040】計算機2と計算機3と計算機4は質問処理
計算機である計算機1から通信媒体5を介して送付され
た並列検索を行う複数の計算機の台数と検索条件と検索
範囲を通信制御部24、34、44で受信する。
【0041】通信制御部24は、受信した「3台の並列
検索を行う複数の計算機がある」という情報と「{項目
1がα}かつ{項目2がx}かつ{項目4がア}かつ
{項目5が○}」という条件と「識別子1から識別子
3」という検索の範囲の情報を検索条件保持部25に送
る。
【0042】同様に、通信制御部34は、受信した「3
台の並列検索を行う複数の計算機がある。」という情報
と「{項目3がb}かつ{項目2がx}かつ{項目4が
ア}かつ{項目5が○}」という条件と「識別子4から
識別子6」という検索の範囲の情報を検索条件保持部3
5に送る。
【0043】通信制御部44は、受信した「3台の並列
検索を行う複数の計算機がある」という情報と「{項目
2がx}かつ{項目4がア}かつ{項目5が○}」とい
う条件と「識別子7から識別子9」という検索の範囲の
情報をを検索条件保持部45に送る。
【0044】以下、3台の並列検索を行う複数の計算機
である計算機2と計算機3と計算機4が同時に第1の検
索を行うが、一度に表記することはできないので、それ
ぞれの計算機の処理を分けて説明する。計算機2の第1
の検索を図3のフローチャートを基に説明する。なお、
図3のフローチャートは一般性を持たせるため、整数を
I、hのように文字で表す。
【0045】検索部26は、「3台の並列検索を行う複
数の計算機がある」という情報と「{項目1がα}かつ
{項目2がx}かつ{項目4がア}かつ{項目5が
○}」という条件と「識別子1から識別子3」という検
索の範囲の情報をステップ「計算機の多重度、検索条
件、検索範囲を受け取る」300にあるように検索条件
保持部25から受け取る。
【0046】以下、検索の結果の識別子を保持し、ま
た、他の計算機との結果の情報交換の際にはビット列を
用いる。例えば、識別子2と識別子4と識別子5と識別
子8をビット列では「010110010」と表現す
る。
【0047】検索部26は、ステップ「I←インデック
ス付の条件数、h←1、第一検索ビット列にすべて1を
セット」301にあるように、計算機2に割り当てられ
た検索条件でインデックスの付いている条件数を確認
し、第一検索ビット列に「111111111」をセッ
トし、h番目の条件の検索を行うための初期値1を入れ
る。ここでは、計算機2に割り当てられたインデックス
の付いている条件数は1である。
【0048】検索部26は、ステップ「インデックス付
の条件がある(I≠0)」302にあるようにインデッ
クスの付いている条件の有無を判断する。ここではイン
デックスの付いている条件が1つあるのでステップ「イ
ンデックスを利用してh番目の条件を検索し、第二検索
ビット列にセット」303に進む。
【0049】検索部26は、ステップ「インデックスを
利用してh番目の条件を検索し、第二検索ビット列にセ
ット」303にあるように、レコード群記憶部27に記
憶されている表1のレコード群からインデックスを利用
して1番目の条件である{項目1はα}という条件をも
とに検索を行い、その結果をビット列で表現する。ここ
ではインデックスから識別子1と識別子2と識別子5と
識別子6と識別子8が選ばれ、ビット列は「11001
1010」となる。そして、検索部26はこのビット列
を第二検索ビット列にセットする。
【0050】検索部26は、ステップ「第一検索ビット
列と第二検索ビット列の論理積を計算し、その結果を第
一検索ビット列にセット」304にあるように、第一検
索ビット列「111111111」と第二検索ビット列
「110011010」の論理積をとり、その結果の
「110011010」を第一検索ビット列にセットす
る。
【0051】検索部26は、ステップ「h←h+1、I
←I−1」305のように次の条件の検索を行うために
番号を更新し、ステップ「すべての第1の検索終了(I
=0)」306にあるように全ての第1の検索を実行し
たか否か判断する。ここでは、計算機2に割り当てられ
たインデックスの付いている条件は1つなので、次の処
理に進む。
【0052】検索部26は、ステップ「第1検索結果ビ
ット列を検索結果保持部に格納」307にあるように、
第一検索ビット列にセットされているビット列「110
011010」を検索結果保持部28に格納する。以下
このビット列を第1検索結果ビット列と呼ぶ。ステップ
「第1検索結果ビット列を他の並列検索を行う計算機に
送付する」308にある第1の検索結果を配布する手順
を説明する。検索結果保持部28は第1の検索結果であ
る第1検索結果ビット列「110011010」を通信
制御部24に送る。
【0053】計算機2の通信制御部24は、第1の検索
結果である第1検索結果ビット列「11001101
0」を通信媒体5を介して計算機3の通信制御部34と
計算機4の通信制御部44に送信する。
【0054】計算機3の通信制御部34は、計算機2か
ら送られた第1検索結果ビット列「11001101
0」を検索条件保持部35に送り保持させる。同様に計
算機4の通信制御部44は、計算機2から送られた第1
検索結果ビット列「110011010」を検索条件保
持部45に送り保持させる。計算機3での第1の検索を
図3のフローチャートを基に説明する。
【0055】検索部36は、「3台の並列検索を行う複
数の計算機がある」という情報と「{項目3がb}かつ
{項目2がx}かつ{項目4がア}かつ{項目5が
○}」という条件と「識別子4から識別子6」という検
索の範囲の情報をステップ「計算機の多重度、検索条
件、検索範囲を受け取る」300にあるように検索条件
保持部35から受け取る。
【0056】検索部36は、ステップ「I←インデック
ス付の条件数、h←1、第一検索ビット列にすべて1を
セット」301にあるように、計算機3に割り当てられ
た検索条件でインデックスの付いている条件数を確認
し、第一検索ビット列に「111111111」をセッ
トし、h番目の条件の検索を行うための初期値1を入れ
る。ここでは、計算機3に割り当てられたインデックス
の付いている条件数は1つである。
【0057】検索部36は、ステップ「インデックス付
の条件がある(I≠0)」302にあるようにインデッ
クスの付いている条件の有無を判断する。ここではイン
デックスの付いている条件が1つあるのでステップ「イ
ンデックスを利用してh番目の条件を検索し、第二検索
ビット列にセット」303に進む。
【0058】検索部36は、ステップ「インデックスを
利用してh番目の条件を検索し、第二検索ビット列にセ
ット」303にあるように、レコード群記憶部37に記
憶されている表1のレコード群からインデックスを利用
して1番目の条件である{項目3はb}という条件をも
とに検索を行い、その結果をビット列で表現する。ここ
ではインデックスから識別子2と識別子5と識別子8が
選ばれ、ビット列は「010010010」となる。そ
して、検索部26はこのビット列を第二検索ビット列に
セットする。
【0059】検索部36は、ステップ「第一検索ビット
列と第二検索ビット列の論理積を計算し、その結果を第
一検索ビット列にセット」304にあるように、第一検
索ビット列「111111111」と第二検索ビット列
「010010010」の論理積をとり、その結果の
「010010010」を第一検索ビット列にセットす
る。
【0060】検索部36は、ステップ「h←h+1、I
←I−1」305のように次の条件の検索を行うために
番号を更新し、ステップ「すべての第1の検索終了(I
=0)」306にあるように全ての検索を実行したか否
か判断する。ここでは、計算機3に割り当てられたイン
デックスの付いている条件は1つなので、次の処理に進
む。
【0061】検索部36は、ステップ「第1検索結果ビ
ット列を検索結果保持部に格納」307にあるように、
第一検索ビット列にセットされているビット列「010
010010」を第1検索結果ビット列として検索結果
保持部38に格納する。ステップ「第1検索結果ビット
列を他の並列検索を行う計算機に送付する」308にあ
る第1の検索結果を配布する手順を説明する。検索結果
保持部38は、第1の検索結果である第1検索結果ビッ
ト列「010010010」を通信制御部34に送る。
【0062】計算機3の通信制御部34は、第1検索結
果である第1検索結果ビット列「010010010」
を通信媒体5を介して計算機2の通信制御部24と計算
機4の通信制御部44に送信する。計算機2の通信制御
部24は、計算機3から送られた第1検索結果ビット列
「010010010」を検索条件保持部25に送り保
持させる。計算機4の通信制御部44は、計算機3から
送られた第1検索結果ビット列「010010010」
を検索条件保持部45に送り保持させる。計算機4での
第1の検索を図3のフローチャートを基に説明する。
【0063】検索部46は、「3台の並列検索を行う複
数の計算機がある」という情報と「{項目2がx}かつ
{項目4はア}かつ{項目5が○}」という条件と「識
別子7から識別子9」という検索の範囲の情報をステッ
プ「計算機の多重度、検索条件、検索範囲を受け取る」
300にあるように検索条件保持部45から受け取る。
【0064】検索部46は、ステップ「I←インデック
ス付の条件数、h←1、第一検索ビット列にすべて1を
セット」301にあるように、計算機4に割り当てられ
た検索条件でインデックスの付いている条件数を確認
し、第一検索ビット列に「111111111」をセッ
トし、h番目の条件の検索を行うための初期値1を入れ
る。ここでは、計算機4に割り当てられたインデックス
の付いている条件はない。
【0065】検索部46は、ステップ「インデックス付
の条件がある(I≠0)」302にあるようにインデッ
クスの付いている条件の有無を判断する。ここではイン
デックスの付いている条件がないので、第1の検索は行
われず、ステップ「第1検索結果ビット列を検索結果保
持部に格納」307の処理に進む。
【0066】検索部46は、ステップ「第1検索結果ビ
ット列を検索結果保持部に格納」307にあるように、
第一検索ビット列にセットされているビット列「111
111111」を第1検索結果ビット列として検索結果
保持部48に格納する。ステップ「第1検索結果ビット
列を他の並列検索を行う計算機に送付する」308のあ
る第1の検索結果を配布する手順を説明する。検索結果
保持部48は第1の検索結果である第1検索結果ビット
列「111111111」を通信制御部44に送る。
【0067】計算機4の通信制御部44は、第1検索結
果である第1検索結果ビット列「111111111」
を通信媒体5を介して計算機2の通信制御部24と計算
機3の通信制御部34に送信する。
【0068】計算機2の通信制御部24は、計算機4か
ら送られた第1検索結果ビット列「11111111
1」を検索条件保持部25に送り保持させる。同様に計
算機3の通信制御部34は、計算機4から送られた第1
検索結果ビット列「111111111」を検索条件保
持部35に送り保持させる。
【0069】以下、第1の検索を行った計算機自身が保
持する第1検索結果ビット列と他の計算機から送られた
第1検索結果ビット列とを区別するため、前者を第1検
索結果保持ビット列と呼び、後者を第1検索結果配布ビ
ット列と呼ぶことにする。第2の検索を行う手順を図4
のフローチャートをもとに説明する。
【0070】計算機2が行う第2の検索について説明す
る。ここでは計算機4は実際には第1の検索を行わない
ので、計算機4の第1検索結果配布ビット列が計算機3
の第1検索配布ビット列よりも先に到着したとする。実
際は、どのような順序で第1検索結果配布ビット列が到
着しても検索結果には影響しない。
【0071】ステップ「第1検索結果保持ビット列を第
一検索ビット列にセットする」400にあるように計算
機2の検索部26は、検索結果保持部28に格納されて
いる第1検索結果保持ビット列「110011010」
を呼びだし、第一検索ビット列にセットする。
【0072】検索部26は、ステップ「第1検索結果配
布ビット列を第二検索ビット列にセットする」401に
あるように検索条件保持部25に格納されている第1検
索結果配布ビット列「111111111」を呼びだ
し、第二検索ビット列にセットする。
【0073】検索部26は、ステップ「第一検索ビット
列と第二検索ビット列の論理積をとる」402にあるよ
うに第一検索ビット列「110011010」と第二検
索ビット列「111111111」との論理積をとる。
ここでは「110011010」となる。
【0074】検索部26は、ステップ「すべての第1検
索結果配布ビット列の論理積をとった」403にあるよ
うに検索条件保持部25に格納されている第1検索結果
配布ビット列が他に存在するか否か判断する。ここで
は、計算機3の第1検索配布ビット列があるので、検索
部26はもう一度検索を行う。
【0075】検索部26は、ステップ「計算結果を第一
検索ビット列にセットする」404にあるように、ステ
ップ「第一検索ビット列と第二検索ビット列の論理積を
とる」402で計算した第一検索ビット列と第二検索ビ
ット列との論理積をとった結果の「11001101
0」を第一検索ビット列にセットする。
【0076】検索部26は、ステップ「第1検索結果配
布ビット列を第二検索ビット列にセットする」401に
あるように、検索条件保持部25に保持されている計算
機3の第1検索結果配布ビット列「01001001
0」を第二検索ビット列にセットする。
【0077】検索部26は、ステップ「第一検索ビット
列と第二検索ビット列の論理積をとる」402にあるよ
うに、第一検索ビット列「110011010」と第二
検索ビット列「010010010」との論理積をと
る。ここでは「010010010」となる。
【0078】検索部26は、ステップ「すべての第1検
索結果配布ビット列の論理積をとった」403にあるよ
うに、検索条件保持部25に格納されている第1検索結
果配布ビット列が他に存在するか否か判断する。ここで
は、計算機3の第1検索結果配布ビット列と計算機4の
第1検索結果配布ビット列について第2の検索を行った
ので、検索部26は次の処理に進む。
【0079】検索部26は、ステップ「論理積の計算結
果を検索結果保持部に格納する」405にあるように第
2の検索結果である「010010010」を検索結果
保持部28に格納する。以下、第2の検索結果のビット
列を第2検索結果ビット列と呼ぶことにする。ここでは
第2検索結果ビット列は「010010010」とな
る。
【0080】計算機3が行う第2の検索について説明す
る。ここでも計算機4は実際には第1の検索を行わない
ので、計算機4の第1検索結果配布ビット列が計算機2
の第1検索配布ビット列よりも先に到着したとする。
【0081】計算機3の検索部36は、ステップ「第1
検索結果保持ビット列を第一検索ビット列にセットす
る」400にあるように、検索結果保持部38に格納さ
れている第1検索結果保持ビット列「01001001
0」を呼びだし、第一検索ビット列にセットする。
【0082】検索部36は、ステップ「第1検索結果配
布ビット列を第二検索ビット列にセットする」401に
あるように、検索条件保持部35に格納されている第1
検索結果配布ビット列「111111111」を呼びだ
し、第二検索ビット列にセットする。
【0083】検索部36は、ステップ「第一検索ビット
列と第二検索ビット列の論理積をとる」402にあるよ
うに、第一検索ビット列「010010010」と第二
検索ビット列「111111111」との論理積をと
る。ここでは「010010010」となる。
【0084】検索部36は、ステップ「すべての第1検
索結果配布ビット列の論理積をとった」403にあるよ
うに、検索条件保持部35に格納されている第1検索結
果配布ビット列が他に存在するか否か判断する。ここで
は、計算機2の第1検索配布ビット列があるので、検索
部36はもう一度検索を行う。
【0085】検索部36は、ステップ「計算結果を第一
検索ビット列にセットする」404にあるように、ステ
ップ「第一検索ビット列と第二検索ビット列の論理積を
とる」402で計算した第一検索ビット列と第二検索ビ
ット列との論理積結果「010010010」を第一検
索ビット列にセットする。
【0086】検索部36は、ステップ「第1検索結果配
布ビット列を第二検索ビット列にセットする」401に
あるように検索条件保持部35に格納されている計算機
2の第1検索結果配布ビット列「110011010」
を第二検索ビット列にセットする。
【0087】検索部36は、ステップ「第一検索ビット
列と第二検索ビット列の論理積をとる」402にあるよ
うに、第一検索ビット列「010010010」と第二
検索ビット列「110011010」との論理積をと
る。ここでは「010010010」となる。
【0088】検索部36は、ステップ「すべての第1検
索結果配布ビット列の論理積をとった」403にあるよ
うに検索条件保持部35に格納されている第1検索結果
配布ビット列が他に存在するか否か判断する。ここで
は、計算機2の第1検索結果配布ビット列と計算機4の
第1検索結果配布ビット列について第2の検索を行った
ので、検索部36は次の処理に進む。
【0089】検索部36は、ステップ「論理積の計算結
果を検索結果保持部に格納する」405にあるように、
第2の検索結果である第2検索結果ビット列「0100
10010」を検索結果保持部38に格納する。計算機
4が行う第2の検索について説明する。ここでは計算機
2の第1検索結果配布ビット列が計算機3の第1検索配
布ビット列よりも先に到着したとする。
【0090】計算機4の検索部46は、ステップ「第1
検索結果保持ビット列を第一検索ビット列にセットす
る」400にあるように、検索結果保持部48に格納さ
れている第1検索結果保持ビット列「11111111
1」を呼びだし、第一検索ビット列にセットする。
【0091】検索部46は、ステップ「第1検索結果配
布ビット列を第二検索ビット列にセットする」401に
あるように、検索条件保持部45に格納されている第1
検索結果配布ビット列「110011010」を呼びだ
し、第二検索ビット列にセットする。
【0092】検索部46は、ステップ「第一検索ビット
列と第二検索ビット列の論理積をとる」402にあるよ
うに、第一検索ビット列「111111111」と第二
検索ビット列「110011010」との論理積をと
る。ここでは「110011010」となる。
【0093】検索部46は、ステップ「すべての第1検
索結果配布ビット列の論理積をとった」403にあるよ
うに、検索条件保持部45に格納されている第1検索結
果配布ビット列が他に存在するか否か判断する。ここで
は、計算機3の第1検索結果配布ビット列があるので、
検索部46はもう一度検索を行う。
【0094】ステップ「計算結果を第一検索ビット列に
セットする」404にあるように、ステップ「第一検索
ビット列と第二検索ビット列の論理積をとる」402で
計算した第一検索ビット列と第二検索ビット列との論理
積結果「110011010」を第一検索ビット列にセ
ットする。
【0095】検索部46は、ステップ「第1検索結果配
布ビット列を第二検索ビット列にセットする」401に
あるように、計算機3の第1検索結果配布ビット列を第
二検索ビット列「010010010」にセットする。
【0096】検索部46は、ステップ「第一検索ビット
列と第二検索ビット列の論理積をとる」402にあるよ
うに、第一検索ビット列「110011010」と第二
検索ビット列「010010010」との論理積をと
る。ここでは「010010010」となる。
【0097】検索部46は、ステップ「すべての第1検
索結果配布ビット列の論理積をとった」403にあるよ
うに、検索条件保持部45に格納されている第1検索結
果配布ビット列が他に存在するか否か判断する。ここで
は、計算機2の第1検索結果配布ビット列と計算機3の
第1検索結果配布ビット列について第2の検索を行った
ので、検索部46は次の処理に進む。
【0098】検索部46は、ステップ「論理積の計算結
果を検索結果保持部格納する」405にあるように、第
2の検索結果である第2検索結果ビット列「01001
0010」を検索結果保持部48に格納する。以上で第
2の検索の説明を終わり、第3の検索について説明す
る。
【0099】並列検索を行う計算機2と計算機3と計算
機4のそれぞれの検索結果保持部28と検索結果保持部
38と検索結果保持部48とは共通の第2検索結果ビッ
ト列「010010010」を保持する。
【0100】並列検索を行う計算機2と計算機3と計算
機4は、すでに割り当てられている検索範囲を対象にイ
ンデックスの利用できない条件の検索を行う。ここでは
「{項目2がx}かつ{項目4がア}かつ{項目5が
○}」という条件の検索を行う。以下、計算機2と計算
機3と計算機4ごとに並列検索を行う第3の検索の手順
を具体的に説明する。計算機2の第3の検索について説
明する。検索部26は、検索条件保持部25に保持され
ている検索範囲を呼び出す。ここでは計算機2の検索範
囲は識別子1から識別子3である。
【0101】検索部26は、識別子1から識別子3の間
で第2検索結果ビット列の対応する部分が1となってい
る識別子2のレコードに対して「{項目2がx}かつ
{項目4がア}かつ{項目5が○}」という条件を満た
すか否か調べ(以下、範囲検索と呼ぶ)、該当するので
検索結果保持部28に識別子2を送り、最終結果として
保持させる。検索結果保持部28は、最終結果の識別子
2に対応するレコードを検索部26を通じてレコード群
記憶部27から求め、通信制御部24に送る。通信制御
部24は、通信媒体5を介して識別子2のレコードを計
算機2の第3の検索結果として、検索結果を集計する計
算機1に送付する。計算機3の第3の検索について説明
する。検索部36は、検索条件保持部35に保持されて
いる検索範囲を呼び出す。ここでは計算機3の検索範囲
は識別子4から識別子6である。
【0102】検索部36は、識別子4から識別子6の間
で第2検索結果ビット列の対応する部分が1となってい
る識別子5のレコードに対して、「{項目2がx}かつ
{項目4がア}かつ{項目5が○}」という条件を満た
すか否か調べる。ここでは、該当しないので、検索結果
保持部38に該当レコードなしという情報を送る。
【0103】検索結果保持部38は、該当レコードなし
という情報を通信制御部34に送り、通信制御部34は
通信媒体5を介して該当レコードなしという情報を計算
機3の第3の検索結果として、検索結果を集計する計算
機1に送付する。計算機4の第3の検索について説明す
る。検索部46は、検索条件保持部45に保持されてい
る検索範囲を呼び出す。ここでは計算機4の検索範囲は
識別子7から識別子9である。
【0104】検索部46は、識別子7から識別子9の間
で第2検索結果ビット列の対応する部分が1になってい
る識別子8のレコードに対して、「{項目2がx}かつ
{項目4がア}かつ{項目5が○}」という条件を満た
すか否か調べ、該当するので、検索結果保持部48に識
別子8を送り、最終結果として保持させる。検索結果保
持部48は、最終検索結果の識別子8に対応するレコー
ドを検索部46を通じてレコード群記憶部47から求
め、通信制御部44に送る。
【0105】通信制御部44は、通信媒体5を介して識
別子8のレコードを計算機4の第3の検索結果として、
検索結果の集計を行う質問処理計算機である計算機1に
送付する。
【0106】質問処理計算機である計算機1が、計算機
2と計算機3と計算機4から送られた第3検索結果のレ
コードを集計し、検索結果をユーザに提示する手順を説
明する。
【0107】計算機1の通信制御部14は、通信媒体5
を介して送付された計算機2からの識別子2のレコード
と、計算機3から該当レコードなしという情報と、計算
機4からの識別子8のレコードを受け取る。
【0108】通信制御部14は、受け取った計算機2か
らの識別子2のレコードと、計算機3から該当レコード
なしという情報と、計算機4からの識別子8のレコード
を検索結果処理部19に送る。検索結果処理部19は、
受け取った計算機2からの識別子2のレコードと計算機
4からの識別子8のレコードとを合わせて最終的な検索
結果を得る。
【0109】検索結果処理部19は、出力する識別子2
と識別子8のレコードを入出力部11に送り、入出力部
11はユーザに検索の結果のレコードを提示し、検索は
終了する。
【0110】以上の様に、質問処理計算機が並列検索を
行う複数の計算機にそれぞれ異なる検索条件を割り当て
ることにより、前記複数の計算機にそれぞれ異なる第1
の検索をさせ、従来の装置のように複数の計算機がイン
デックスを利用して同じ検索を行うという無駄を省き、
また、質問処理計算機が検索条件を割り当てる際、並列
検索を行う計算機の一つが検索を行うための検索条件
が、論理積で結合された条件の一部を検索条件として割
り当てるため、並列検索を行う計算機ひとつひとつの検
索速度が速く効率のよい検索が可能となる。 (実施例2)
【0111】以下、請求項2記載の本発明の一実施例を
簡単に説明する。ここで示す例も、図1で示すように4
台の計算機で構成される並列データ検索装置であり、計
算機1と計算機2と計算機3と計算機4が通信媒体5を
介して結合されており、計算機1を質問処理計算機と
し、計算機2、計算機3、計算機4を並列検索を行う複
数の計算機とする。
【0112】以下、検索を実行する例を説明するが、こ
こでの検索対象も従来の検索例や実施例1と同じく、表
1のレコード群から{項目1がα}かつ{項目2がx}
かつ{項目3がb}かつ{項目4がア}かつ{項目5が
○}というレコードを検索し、項目1と項目3が従来の
装置と同じインデックスを持つ場合を説明する。
【0113】ユーザが実施例1と同様に入出力部11に
{項目1がα}かつ{項目2がx}かつ{項目3がb}
かつ{項目4がア}かつ{項目5が○}という検索条件
を入力する。
【0114】実施例1と同様に、入出力部11は質問解
析部12にこの検索条件を送付し、質問解析部12は入
力された情報や計算機の多重度、インデックスの情報を
調べ、検索条件割当部13にその情報を送付する。
【0115】検索条件割当部13は、インデックスが利
用できるものを並列検索を行う複数の計算機の各々に割
り当て、インデックスが利用できないものを並列検索を
行う複数の計算機の一つに割り当てることにより、イン
デックスが利用できるものを先にして論理積で結合す
る。ここでは、計算機2では「{項目1がα}かつ{項
目3がb}かつ{項目2がx}」という条件の検索を行
い、計算機3では「{項目1がα}かつ{項目3がb}
かつ{項目4がア}」という条件の検索を行い、計算機
4では「{項目1がα}かつ{項目3がb}かつ{項目
5が○}」という条件の検索を行うことを決定する。
【0116】また検索条件割当部13は、3台の並列検
索を行う複数の計算機にレコード群の検索範囲を決定す
る。ここで検索条件割当部13は、本実施例の場合レコ
ードの総数が9個あるので、実施例1と同様に計算機2
に識別子1から識別子3の範囲の検索を割り当て、計算
機3には識別子4から識別子6までを、計算機4には識
別子7から識別子9を割り当てる。
【0117】検索条件割当部13は並列検索を行う複数
の計算機の多重度と検索条件や検索範囲を通信制御部1
4に送付し、通信制御部14は、通信媒体5を介して計
算機2、計算機3、計算機4に送付する。
【0118】計算機2と計算機3と計算機4は質問処理
計算機である計算機1から通信媒体5を介して送付され
た並列検索を行う複数の計算機の多重度と検索条件と検
索範囲を通信制御部24、34、44で受信する。
【0119】通信制御部24は、受信した「3台の並列
検索を行う複数の計算機がある」という情報と「{項目
1がα}かつ{項目3がb}かつ{項目2がx}」とい
う条件と「識別子1から識別子3」という検索の範囲の
情報を検索条件保持部25に送る。
【0120】同様に、通信制御部34は、受信した「3
台の並列検索を行う複数の計算機がある。」という情報
と「{項目1がα}かつ{項目3がb}かつ{項目4が
ア}」という条件と「識別子4から識別子6」という検
索の範囲の情報を検索条件保持部35に送る。
【0121】通信制御部44は、受信した「3台の並列
検索を行う複数の計算機がある」という情報と「{項目
1がα}かつ{項目3がb}かつ{項目5が○}」とい
う条件と「識別子7から識別子9」という検索の範囲の
情報をを検索条件保持部45に送る。
【0122】以下、3台の並列検索を行う複数の計算機
である計算機2と計算機3と計算機4が同時に第1の検
索を行う。ここでは計算機2が第1の検索は識別子1か
ら識別子3の範囲で検索を行い、計算機3が識別子4か
ら識別子6の範囲で検索を行い、計算機4が識別子7か
ら識別子9の範囲で検索を行うものとする。
【0123】検索部26は、識別子1から識別子3の範
囲で検索を行うため、第一検索ビット列に「11100
0000」をセットし、インデックスを利用できる1番
目の条件{項目1はα}を検索して得られる「1100
11010」を第二検索ビット列にセットし、第一検索
ビット列と第二検索ビット列の論理積をとる。ここで
は、「110000000」となり、この結果を第一検
索ビット列にセットする。
【0124】検索部26は、全ての第1の検索を実行し
たか否か判断する。ここでは、計算機2に割り当てられ
たインデックスを利用できる条件はもう1つあるので、
もう一度第1の検索を行う。
【0125】検索部26は、インデックスを利用できる
2番目の条件{項目3はb}を検索して得られる「01
0010010」を第二検索ビット列にセットし、第一
検索ビット列と第二検索ビット列の論理積をとる。ここ
では、「010000000」となり、この結果を第一
検索ビット列にセットする。
【0126】検索部26は、第一検索ビット列にセット
されているビット列「010000000」を検索結果
保持部28に格納する。以下このビット列を実施例1の
ときと同様に、第1検索結果ビット列と呼ぶ。
【0127】検索部26は、この第1検索結果ビット列
「010000000」を通信制御部24と通信媒体5
を介して、計算機3と計算機4に送付し、検索条件保持
部35と検索条件保持部45に格納する。ここで、第1
検索結果ビット列を他の計算機3、4に送付し格納する
手順は、実施例1でビット列を送付し格納する手順と同
様である。
【0128】検索部36は、識別子4から識別子6の範
囲で検索を行うため、第一検索ビット列に「00011
1000」をセットし、インデックスを利用できる1番
目の条件{項目1はα}を検索して得られる「1100
11010」を第二検索ビット列にセットし、第一検索
ビット列と第二検索ビット列の論理積をとる。ここで
は、「000011000」となり、この結果を第一検
索ビット列にセットする。
【0129】検索部36は、全ての第1の検索を実行し
たか否か判断する。ここでは、計算機3に割り当てられ
たインデックスを利用できる条件はもう1つあるので、
もう一度第1の検索を行う。
【0130】検索部36は、インデックスを利用できる
2番目の条件{項目3はb}」を検索して得られる「0
10010010」を第二検索ビット列にセットし、第
一検索ビット列と第二検索ビット列の論理積をとる。こ
こでは、「000010000」となり、この結果を第
一検索ビット列にセットする。検索部36は、第一検索
ビット列にセットされているビット列「0000100
00」を検索結果保持部38に格納する。
【0131】検索部36は、この第1検索結果ビット列
「000010000」を通信制御部34と通信媒体5
を介して、計算機2と計算機4に送付し、検索条件保持
部25と検索条件保持部45に格納する。
【0132】検索部46は、識別子7から識別子9の範
囲で検索を行うため、第一検索ビット列に「00000
0111」をセットし、インデックスを利用できる1番
目の条件{項目1はα}を検索して得られる「1100
11010」を第二検索ビット列にセットし、第一検索
ビット列と第二検索ビット列の論理積をとる。ここで
は、「000000010」となり、この結果を第一検
索ビット列にセットする。
【0133】検索部46は、全ての第1の検索を実行し
たか否か判断する。ここでは、計算機4に割り当てられ
たインデックスを利用できる条件はもう1つあるので、
もう一度第1の検索を行う。
【0134】検索部46は、インデックスを利用できる
2番目の条件{項目3はb}を検索して得られる「01
0010010」を第二検索ビット列にセットし、第一
検索ビット列と第二検索ビット列の論理積をとる。ここ
では、「000000010」となり、この結果を第一
検索ビット列にセットする。検索部46は、第一検索ビ
ット列にセットされているビット列「00000001
0」を検索結果保持部48に格納する。
【0135】検索部46は、この第1検索結果ビット列
「000000010」を通信制御部44と通信媒体5
を介して、計算機2と計算機3に送付し、検索条件保持
部25と検索条件保持部35に格納する。
【0136】次に、並列検索を行う計算機2、計算機
3、計算機4が、それぞれ自らが保持する第1検索結果
ビット列と他の計算機から配布された第1検索結果ビッ
ト列から検索する第2の検索の説明をする。以下、実施
例1と同様に前者の第1検索結果ビット列を第1検索結
果保持ビット列と呼び、後者の第1検索結果ビット列を
第1検索結果配布ビット列と呼ぶ。
【0137】計算機2の検索部26は、検索結果保持部
28に格納されている第1検索結果保持ビット列「01
0000000」を呼びだし、第一検索ビット列にセッ
トする。
【0138】検索部26は、検索条件保持部25に格納
されている計算機3の第1検索結果配布ビット列「00
0010000」を呼びだし、第二検索ビット列にセッ
トする。
【0139】検索部26は、第一検索ビット列「010
000000」と第二検索ビット列「00001000
0」との論理和をとる。ここでは「01001000
0」となる。
【0140】検索部26は、検索条件保持部25に格納
されている第1検索結果配布ビット列が他に存在するか
否か判断する。ここでは、計算機4の第1検索配布ビッ
ト列があるので、検索部26はもう一度検索を行う。検
索部26は、計算した第一検索ビット列と第二検索ビッ
ト列との論理和積をとった結果の「01001000
0」を第一検索ビット列にセットする。検索部26は、
検索条件保持部25に保持されている計算機4の第1検
索結果配布ビット列「000000010」を第二検索
ビット列にセットする。
【0141】検索部26は、第一検索ビット列「010
010000」と第二検索ビット列「00000001
0」との論理和をとる。ここでは「01001001
0」となる。
【0142】検索部26は、検索条件保持部25に格納
されている第1検索結果配布ビット列が他に存在するか
否か判断する。ここでは、計算機3の第1検索結果配布
ビット列と計算機4の第1検索結果配布ビット列につい
て第2の検索を行ったので、検索部26は次の処理に進
む。検索部26は、第2の検索結果である「01001
0010」を検索結果保持部28に格納する。以下、第
2の検索結果のビット列を第2検索結果ビット列と呼ぶ
ことにする。ここでは第2検索結果ビット列は「010
010010」となる。計算機3と計算機4の第2の検
索も計算機2の場合と同様に行われ、その第2検索結果
ビット列は「010010010」である。第2の検索
結果と割り当てられたインデックスを利用できない条件
から検索を行う第3の検索について説明する。
【0143】計算機2の検索部26は、検索条件保持部
25に保持されている{項目2がx}という条件を検索
し、その結果をビット列で表す。ここでは、ビット列は
「111010110」と表現される。検索部26は、
この検索の結果「111010110」を第一検索ビッ
ト列にセットする。
【0144】検索部26は、検索結果保持部28に保持
されている第2検索結果ビット列「01001001
0」を第二検索ビット列にセットし、第一検索ビット列
と第二検索ビット列の論理積をとる。この結果は「01
0010010」となり、これが計算機2の第3の検索
の結果である。以下、第3の検索結果を第3検索結果ビ
ット列と呼ぶ。検索部26は、第2検索結果ビット列
「010010010」を検索結果保持部28に送り保
持させる。検索結果保持部28は、第3の検索結果であ
る第3検索結果ビット列「010010010」を通信
制御部24に送る。
【0145】計算機2の通信制御部24は、第3検索結
果である第3検索結果ビット列「010010010」
を通信媒体5を介して計算機1の通信制御部14に送信
する。
【0146】計算機3の検索部36は、検索条件保持部
35に保持されている{項目4がア}という条件を検索
し、その結果をビット列で表す。ここでは、ビット列は
「011000010」と表現される。検索部36は、
この検索の結果「011000010」を第一検索ビッ
ト列にセットする。
【0147】検索部36は、検索結果保持部38に保持
されている第2検索結果ビット列「01001001
0」を第二検索ビット列にセットし、第一検索ビット列
と第二検索ビット列の論理積をとる。この結果は「01
0000010」となり、これが計算機3の第3の検索
の結果である。検索部36は、第3検索結果ビット列
「010000010」を検索結果保持部38に送り保
持させる。検索結果保持部38は、第3の検索結果であ
る第3検索結果ビット列「010000010」を通信
制御部34に送る。
【0148】計算機3の通信制御部34は、第3検索結
果である第3検索結果ビット列「010000010」
を通信媒体5を介して計算機1の通信制御部14に送信
する。
【0149】計算機4の検索部46は、検索条件保持部
45に保持されている{項目5が○}という条件を検索
し、その結果をビット列で表す。ここでは、ビット列は
「011010110」と表現される。検索部46は、
この検索の結果「011010110」を第一検索ビッ
ト列にセットする。
【0150】検索部46は、検索結果保持部48に保持
されている第2検索結果ビット列「01001001
0」を第二検索ビット列にセットし、第一検索ビット列
と第二検索ビット列の論理積をとる。この結果は「01
0010010」となり、これが計算機4の第3の検索
の結果である。検索部46は、第3検索結果ビット列
「010010010」を検索結果保持部48に送り保
持させる。検索結果保持部48は、第3の検索結果であ
る第3検索結果ビット列「010010010」を通信
制御部44に送る。
【0151】計算機4の通信制御部44は、第3検索結
果である第3検索結果ビット列「010010010」
を通信媒体5を介して計算機1の通信制御部14に送信
する。
【0152】質問処理計算機である計算機1が、計算機
2と計算機3と計算機4から送られた第3検索結果ビッ
ト列を集計し、検索結果をユーザに提示する手順を説明
する。
【0153】計算機1の通信制御部14は、通信媒体5
を介して送付された計算機2の第3検索結果ビット列
「010010010」と、計算機3の第3検索結果ビ
ット列「010000010」と、計算機4の第3検索
結果ビット列と「010010010」を受け取る。
【0154】通信制御部14は、受け取った計算機2の
第3検索結果ビット列と、計算機3の第3検索結果ビッ
ト列と、計算機4の第3検索結果ビット列とを検索結果
処理部19に送る。
【0155】検索結果処理部19は、受け取った計算機
2の第3検索結果ビット列「010010010」と、
計算機3の第3検索結果ビット列「01000001
0」と、計算機4の第3検索結果ビット列「01001
0010」との論理積をとる。ここでは、計算結果は
「010000010」となる。検索結果処理部19
は、計算結果である「010000010」というビッ
ト列を通信制御部14に送る。通信制御部14は、「0
10000010」というビット列を計算機2の通信制
御部24に送付する。
【0156】通信制御部24は、「01000001
0」というビット列を検索条件保持部25に保持させ、
検索条件保持部25は、検索部26に「0100000
10」というビット列を送り、レコード群記憶部27か
ら「010000010」というビット列に対応する識
別子のレコードを求める。ここでは、識別子2と識別子
8のレコードである。検索部26は、求めた識別子2と
識別子8のレコードを検索結果保持部28を経由して、
通信制御部24から計算機1の通信制御部14に送付す
る。通信制御部14は、識別子2と識別子8のレコード
を検索結果処理部19に送る。
【0157】検索結果処理部19は、識別子2と識別子
8のレコードを入出力部11に送り、入出力部11はユ
ーザに検索の結果として識別子2と識別子8のレコード
を提示し、検索は終了する。
【0158】以上の様に、質問処理計算機が並列検索を
行う複数の計算機にそれぞれ異なる検索条件を割り当て
ることにより、前記複数の計算機にそれぞれ異なる範囲
で第1の検索をさせ、従来の装置のように複数の計算機
が同じ検索を行うという無駄を省き、また、質問処理計
算機が検索条件を割り当てる際、並列検索を行う計算機
の一つが検索を行うための検索条件が、論理積で結合さ
れた条件の一部を検索条件として割り当てるため、並列
検索を行う計算機ひとつひとつの検索速度が速く効率の
よい検索が可能となる。
【0159】
【発明の効果】本発明の並列データ検索装置によれば、
並列検索を行う計算機の計算の無駄を省き、並列検索を
行う計算機のひとつひとつの検索速度が速く効率のよい
検索が可能となる。
【図面の簡単な説明】
【図1】本発明の一実施例である実施例1および実施例
2における全体の構成を示す図。
【図2】本発明の一実施例である実施例1における質問
処理計算機が並列検索を行う複数の計算機に検索条件を
配布する手順を示す図。
【図3】本発明の一実施例である実施例1における第1
の検索の手順を示す図。
【図4】本発明の一実施例である実施例1における第2
の検索の手順を示す図。
【符号の説明】
1、2、3、4 計算機 5 通信媒体 11 入出力部 12 質問解析部 13 検索条件割当部 14、24、34、44 通信制御部 19 検索結果処理部 25、35、45 検索条件保持部 26、36、46 検索部 27、37、47 レコード群管理部 28、38、48 検索結果保持部

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】インデックスを持つ項目とインデックスを
    持たない項目を持つレコード群を記憶しているレコード
    群記憶部を多重化して持ち、前記レコード群記憶部の中
    から論理積で結合された条件の集合からなる検索条件を
    並列に検索するため通信媒体を介して接続された並列検
    索を行う複数の計算機と、 前記並列検索を行う複数の計算機が前記レコード群記憶
    部の中から検索する範囲を前記並列検索を行う複数の計
    算機ごとに重複の無いように設定して前記並列検索を行
    う複数の計算機に検索を命令し、前記並列検索を行う複
    数の計算機の検索結果を集計する少なくとも一つの計算
    機からなる質問処理計算機とを具備する並列データ検索
    装置において、 (a)前記レコード群記憶部の多重度 (b)前記並列検索を行う複数の計算機の区別 (c)前記レコード群記憶部に格納されているレコード
    群の総数の情報 に基づき前記論理積で結合された条件の集合からなる検
    索条件を構成する全ての条件について、 インデックスを利用できる条件の一部を前記並列検索を
    行う複数の計算機の一つに割り当てインデックスを利用
    できない条件を前記並列検索を行う複数の計算機の各々
    の計算機に割り当てる前記質問処理計算機の検索条件割
    当部と、 (イ)前記質問処理計算機の検索条件割当部に前記イン
    デックスを利用できる条件を割り当てられた場合、前記
    並列検索を行う複数の計算機のレコード群記憶部から前
    記インデックスを利用できる条件に該当するレコードを
    検索する第1の検索 (ロ)前記第1の検索の結果と他の前記並列検索を行う
    複数の計算機の検索部が行った第1の検索の結果から、
    前記第1の検索の結果と他の前記並列検索を行う複数の
    計算機の検索部が行った第1の検索の結果全てに該当す
    るものの検索を行う第2の検索 (ハ)前記第2の検索の結果の中から前記質問処理計算
    機の検索条件割当部に割り当てられた前記インデックス
    を利用できない条件の検索を行う第3の検索 を行う前記並列検索を行う複数の計算機の検索部とを具
    備する並列データ検索装置。
  2. 【請求項2】インデックスを持つ項目とインデックスを
    持たない項目を持ちレコード群を記憶しているレコード
    群記憶部それぞれ多重化してを持ち、前記レコード群記
    憶部の中から論理積で結合された条件の集合からなる検
    索条件を並列に検索するため通信媒体を介して接続され
    並列検索を行う複数の計算機と、 前記並列検索を行う複数の計算機が前記レコード群記憶
    部の中から検索する範囲を前記並列検索を行う複数の計
    算機ごとに重複の無いように設定して前記並列検索を行
    う複数の計算機に検索を命令し、前記並列検索を行う複
    数の計算機の検索結果を集計する少なくとも一つの計算
    機からなる質問処理計算機とを具備する並列データ検索
    装置において、 (a)前記レコード群記憶部の多重度 (b)前記並列検索を行う複数の計算機の区別 (c)前記レコード群記憶部に格納されているレコード
    群の総数の情報 に基づき前記論理積で結合された条件の集合からなる検
    索条件を構成する全ての条件について、 インデックスを利用できる条件を前記並列検索を行う複
    数の計算機の各々の計算機に割り当てインデックスを利
    用できない条件の一部を前記並列検索を行う複数の計算
    機の一つに割り当てる前記質問処理計算機の検索条件割
    当部と、 (イ)前記質問処理計算機の検索条件割当部に前記イン
    デックスを利用できる条件を割り当てられた場合、前記
    並列検索を行う複数の計算機のレコード群記憶部から前
    記インデックスを利用できる条件すべてに該当するレコ
    ードを検索する第1の検索 (ロ)前記第1の検索の結果と他の前記並列検索を行う
    複数の計算機の検索部が行った第1の検索の結果から、
    前記第1の検索の結果と他の前記並列検索を行う複数の
    計算機の検索部が行った第1の検索の結果全てに該当す
    るものの検索を行う第2の検索 (ハ)前記第2の検索の結果の中から前記質問処理計算
    機の検索条件割当部に割り当てられた前記インデックス
    を利用できない条件の検索を行う第3の検索 を行う前記並列検索を行う複数の計算機の検索部とを具
    備する並列データ検索装置。
JP5037226A 1993-02-26 1993-02-26 並列データ検索装置 Pending JPH06251067A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5037226A JPH06251067A (ja) 1993-02-26 1993-02-26 並列データ検索装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5037226A JPH06251067A (ja) 1993-02-26 1993-02-26 並列データ検索装置

Publications (1)

Publication Number Publication Date
JPH06251067A true JPH06251067A (ja) 1994-09-09

Family

ID=12491688

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5037226A Pending JPH06251067A (ja) 1993-02-26 1993-02-26 並列データ検索装置

Country Status (1)

Country Link
JP (1) JPH06251067A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055983A (ja) * 2000-08-14 2002-02-20 Max Management:Kk データ検索システム及び方法
JP2006350839A (ja) * 2005-06-17 2006-12-28 Ntt Docomo Inc 分散検索システムおよび分散検索方法
JP2021170409A (ja) * 2020-09-27 2021-10-28 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド ラベルデータ処理方法、装置、機器及び記憶媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002055983A (ja) * 2000-08-14 2002-02-20 Max Management:Kk データ検索システム及び方法
JP2006350839A (ja) * 2005-06-17 2006-12-28 Ntt Docomo Inc 分散検索システムおよび分散検索方法
JP2021170409A (ja) * 2020-09-27 2021-10-28 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド ラベルデータ処理方法、装置、機器及び記憶媒体

Similar Documents

Publication Publication Date Title
US6185557B1 (en) Merge join process
KR101137147B1 (ko) 질의 강제 인덱싱
US7558802B2 (en) Information retrieving system
US6678687B2 (en) Method for creating an index and method for searching an index
US5511190A (en) Hash-based database grouping system and method
US8239406B2 (en) Expression tree data structure for representing a database query
JP2000187668A (ja) グループ化方法と重複排除方法
US8214356B1 (en) Apparatus for elastic database processing with heterogeneous data
US8099440B2 (en) Method for laying out fields in a database in a hybrid of row-wise and column-wise ordering
Cornell et al. An effective approach to vertical partitioning for physical design of relational databases
US20080270374A1 (en) Method and system for combining ranking and clustering in a database management system
US7599905B2 (en) Method and system for allocating multiple attribute storage properties to selected data storage resources
US7162478B2 (en) System and method for correlated fragmentations in databases
US20030055834A1 (en) Method and system for supporting multivalue attributes in a database system
EP2901344A1 (en) System and method for flexible distributed massively parallel processing (mpp) database
JPH1097544A (ja) データベース処理システム
CN107209768A (zh) 用于数据集的可扩展排序的方法和设备
US6895487B2 (en) Methods for intra-partition parallelism for inserts
US20110179013A1 (en) Search Log Online Analytic Processing
CN114090695A (zh) 分布式数据库的查询优化的方法和装置
CN106980673A (zh) 内存数据库表索引更新方法及系统
JPH06251067A (ja) 並列データ検索装置
JPH08235033A (ja) オブジェクト指向データベース管理システムにおける結合演算方式
US6694324B1 (en) Determination of records with a specified number of largest or smallest values in a parallel database system
JP2000090115A (ja) インデクス作成方法および検索方法