説明

情報検索システム,情報検索方法,情報検索装置,情報検索プログラムおよび当該プログラムを記録したコンピュータ読取可能な記録媒体

複数の情報処理装置に対して検索対象であるデータベースと、このデータベースに対する検索条件からなる検索要求が与えられたときに、各情報処理装置の記憶部の容量以下のサブデータベースにデータベースを分割し、検索要求もまた分割して並列に処理し、処理結果を結合することにより検索処理を高速化することを特徴とする。

【発明の詳細な説明】
【技術分野】
本発明は、データベースに対する検索要求を複数の情報処理装置によって並行して処理するために用いて好適な、情報検索システム,情報検索方法,情報検索装置,情報検索プログラムおよび当該プログラムを記録したコンピュータ読取可能な記録媒体に関する。
【背景技術】
近年、データベースを単なるデータの蓄積に用いるだけでなく、データベースに蓄積されたデータから様々な情報を引き出す活用法が注目されている。そこでは、希望する情報を高速に検索する性能が要求されるが、データベースにおいては、一般的に、蓄積されたデータ量が増えると検索の処理量は急激に増え処理時間が増大する傾向がある。
このようなデータベースの検索を高速に行なうために、近年においては、複数のコンピュータ(ワークステーション)を用いて並列検索を行なうことが知られている。
さて、データベースに対して実際に検索処理を行なうコンピュータにおいては、検索対象のデータベースをハードディスク等の外部記憶装置から順次メモリ(主記憶装置)にコピーし、このメモリ上にコピーされたデータに対して検索処理を行なうようになっている。
一般に、データベースが格納されているハードディスク等の外部記憶装置は、データの入出力(I/O:Input/Output)が低速であり、この外部記憶装置とメモリとの間におけるデータ転送に時間がかかる。従って、検索処理を行なう場合、この外部記憶装置とメモリとの間におけるデータ転送時間が、検索時間を決める要因となることが多い。
一般的なOS(Operating System;オペレーティングシステム)は、ディスクキャッシュと呼ばれる機能を備えており、このディスクキャッシュ機能により、間近に外部記憶装置から読み出したデータがメモリの未使用部分に保存されているので、検索対象であるデータベースが事前に他の検索処理により処理されていた場合には、外部記憶装置からメモリへのデータ転送が不要となることがある。従って、同一のデータベースに対して検索要求が続く場合には、最初の検索要求を除き、外部記憶装置からメモリへのデータ転送が不要となり、結果として検索時間を大幅に短縮することができる可能性がある。
しかし、このディスクキャッシュ機能による検索時間短縮という利益を享受するためには、データベースのサイズがメモリよりも小さい場合に限定される。仮にデータベースのサイズがメモリサイズよりも大きい場合には、データベースの全内容をメモリ上に保存することができないからである。
図12は従来の情報検索システムにおけるデータベースのサイズと検索時間との関係を模式的に示す図である。この図12に示すように、検索対象のデータベースのサイズがコンピュータ(計算機)のメモリサイズよりも大きくなると、たとえ同一のデータベースに対する検索処理が事前にあったとしても、ハードディスク等の外部記憶装置に対するアクセスが発生し、外部記憶装置からのデータ転送がボトルネックとなり、データベースサイズが小さいときと比較して大幅に検索時間が長くなる。
従って、従来の情報検索システムにおいては、コンピュータに装備されているメモリサイズよりも大きいサイズのデータベースを対象とする検索処理に対しては、外部記憶装置へのアクセスを大幅に減らす良い方法がなく、検索時間が長くなるという課題がある。
本発明は、このような課題に鑑み創案されたもので、データベースに対する検索要求を複数の情報処理装置によって並行して処理する場合において、各情報処理装置において検索要求を高速に処理することができるようにして、データベースに対して高速に検索を行なうことができるようにした、情報検索システム,情報検索方法,情報検索装置,情報検索プログラムおよび当該プログラムを記録したコンピュータ読取可能な記録媒体を提供することを目的とする。
【発明の開示】
上記の目的を達成するために、本発明の情報検索システムは、複数の情報処理装置をそなえ、検索対象であるデータベースとこのデータベースに対する検索条件とからなる検索要求を、複数の情報処理装置によって並列に処理する情報検索システムであって、データベースに基づいて、情報処理装置にそなえられた記憶部の容量以下のサイズの複数のサブデータベースを作成するサブデータベース作成部と、情報処理装置にサブデータベースに対する検索要求を処理させるべくサブデータベース作成部によって作成されたサブデータベースをサブ検索要求として情報処理装置に対して割り当てる割当管理部と、複数の情報処理装置によるサブ検索要求に関する処理結果を取得し結合する結合部とをそなえることを特徴としている。
なお、検索条件を分割してサブ検索条件を作成するサブ検索条件作成部をそなえ、割当管理部が、情報処理装置にサブ検索条件を用いてサブデータベースを検索させるべく、サブ検索条件をサブ検索要求として情報処理装置に対して割り当ててもよい。
また、情報処理装置に対して、割当管理部によって優先的に割り当てるサブデータベースに関する情報をDBアフィニティとして設定可能なDBアフィニティ設定部をそなえ、割当管理部が、DBアフィニティに基づいて、情報処理装置にサブ検索要求を割り当ててもよい。
さらに、DBアフィニティ設定部が、優先的に処理を行なうサブデータベースを予め設定可能であってもよく、又、DBアフィニティ設定部が、情報処理装置におけるサブ検索要求の処理履歴に基づいて、DBアフィニティを設定してもよい。
また、情報処理装置にそなえられた記憶部の空き容量を管理する空き容量管理部をそなえ、割当管理部が、空き容量管理部によって管理される情報処理装置の記憶部の空き容量に基づいて、空き容量以下のサイズのサブデータベースを情報処理装置に対して割り当ててもよい。
さらに、情報処理装置によるサブ検索要求に関する処理に要する時間を予測可能な処理時間予測部をそなえ、割当管理部が、処理時間予測部によって予測された処理に要する時間に基づいて、この時間が長いサブ検索要求から優先的に、サブ検索要求を情報処理装置に対して割り当ててもよい。
また、サブデータベース作成部もしくはサブ検索条件作成部が、割当管理部によって未だ情報処理装置に対して割り当てられていないサブ検索要求を分割して、複数のサブ検索要求を作成してもよい。
さらに、サブ検索要求について、DBアフィニティ設定部によって設定された情報処理装置に関するDBアフィニティ,サブ検索要求としてのデータベースおよび処理時間予測部によって予測された前記処理に要する時間の少なくとも1つ以上について、評価関数を用いて評価する評価部をそなえ、割当管理部が、評価部による評価結果に基づいて、情報処理装置にサブ検索要求を抽選的に割り当ててもよい。
また、本発明の情報検索方法は、検索対象であるデータベースとこのデータベースに対する検索条件とからなる検索要求を、複数の情報処理装置によって並列に処理する情報検索方法であって、検索要求に基づいて、情報処理装置にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成ステップと、情報処理装置にサブ検索要求作成ステップにおいて作成されたサブ検索要求を処理させるべく、サブ検索要求を情報処理装置に対して割り当てる割当管理ステップと、複数の情報処理装置によるサブ検索要求に関する処理結果を取得し結合する結合ステップとをそなえることを特徴としている。
さらに、本発明の情報検索装置は、検索対象であるデータベースとそのデータベースに対する検索条件とからなる検索要求を、複数の情報処理装置に対して並列に処理させる情報検索装置であって、検索要求に基づいて、情報処理装置にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成部と、情報処理装置にサブ検索要求作成部によって作成されたサブ検索要求を処理させるべく、サブ検索要求を情報処理装置に対して割り当てる割当管理部と、複数の情報処理装置によるサブ検索要求に関する処理結果を取得し結合する結合部とをそなえることを特徴としている。
また、本発明の情報検索プログラムは、検索対象であるデータベースと当該データベースに対する検索条件とからなる検索要求を、複数の情報処理装置に対して並列に処理させる情報検索機能をコンピュータに実行させるための情報検索プログラムであって、検索要求に基づいて、情報処理装置にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成部と、情報処理装置にサブ検索要求作成部によって作成されたサブ検索要求を処理させるべく、サブ検索要求を情報処理装置に対して割り当てる割当管理部と、複数の情報処理装置によるサブ検索要求に関する処理結果を取得し結合する結合部として、コンピュータを機能させることを特徴としている。
さらに、本発明のコンピュータ読取可能な記録媒体は、上述した情報検索プログラムを記録したものである。
このように、本発明の情報検索システム,情報検索方法,情報検索装置,情報検索プログラムおよび当該プログラムを記録したコンピュータ読取可能な記録媒体によれば、以下の効果ないし利点がある。
(1)データベースに基づいて、情報処理装置にそなえられた記憶部の容量以下のサイズの複数のサブデータベースを作成し、情報処理装置にサブデータベースに対する検索要求を処理させるべく、サブデータベースをサブ検索要求として情報処理装置に対して割り当てることにより、一度サブ検索要求に対する処理を行なった情報処理装置において、その記憶部には検索対象のサブデータベースがキャッシュされる。これにより、その情報処理装置においては、サブデータベースにアクセスするためにアクセス速度が遅いハードディスクへのアクセス(ディスクアクセス)を行なう必要がなく、サブデータベースに対する検索処理を高速に行なうことができる。
(2)検索条件を分割してサブ検索条件を作成することにより、適当な大きさ(予測処理時間の長さ)のサブ検索要求を容易に作成することができ利便性が高い。
(3)情報処理装置に対して優先的に割り当てるサブデータベースに関する情報をDBアフィニティとして設定し、このDBアフィニティに基づいて、情報処理装置にサブ検索要求(サブデータベース)を割り当てることにより、情報処理装置に対して容易にサブ検索要求を割り当てることができる。
(4)DBアフィニティとして優先的に処理を行なうサブデータベースを予め設定することにより、DBアフィニティを確実に設定することができる。
(5)情報処理装置におけるサブ検索要求の処理履歴に基づいて、DBアフィニティを設定することにより、容易にDBアフィニティを設定することができる。
(6)情報処理装置にそなえられた記憶部の空き容量を管理し、その空き容量以下のサイズのサブデータベースを情報処理装置に対して割り当てることにより、容易に且つ確実に、情報処理装置の記憶部の空き容量以下のサイズのサブデータベースを情報処理装置に対して割り当てることができる。
(7)情報処理装置による該サブ検索要求に関する処理に要する時間を予測し、その時間が長いサブ検索要求から優先的に、サブ検索要求を情報処理装置に対して割り当てることにより、複数のサブ検索要求を複数の情報処理装置に対して効率よく割り当てることができる。
(8)未だ該情報処理装置に対して割り当てられていないサブ検索要求を分割して、複数のサブ検索要求を作成することにより、システム全体での総処理時間(検索時間)が短くなり、結果的に処理速度を短縮することができ、又、DBアフィニティが適合しないジョブを割り当てることによるリスク(サブデータベースの読み出し負荷)を低減することができる。
(9)サブ検索要求について、DBアフィニティ,サブデータベースおよび処理に要する予測時間の少なくとも1つ以上について、評価関数を用いて評価し、この評価結果に基づいて、情報処理装置にサブ検索要求を抽選的に割り当てることにより、容易且つ確実に各情報処理装置にジョブを割り当てることができる。
【図面の簡単な説明】
図1は本発明の一実施形態としての情報検索システムの模式的な構成を示す図である。
図2〜図4はいずれも本発明の一実施形態としての情報検索システムにおけるサブ検索要求(ジョブ)の作成手法を説明するための図である。
図5は本発明の一実施形態としての情報検索システムにおける不均等ジョブ作成手法の例を説明するための図である。
図6は本発明の一実施形態としての情報検索システムにおける割当管理部による動的なジョブ割当手法を説明するための図である。
図7は本発明の一実施形態としての情報検索システムにおけるサブ検索要求作成部により作成されたジョブの例を示す図である。
図8は本発明の一実施形態としての情報検索システムにおける割当管理部によるジョブの割当手法を説明するためのフローチャートである。
図9は本発明の一実施形態としての情報検索システムにおける割当管理部によって各PCにジョブが割り当てられた状態の例を示す図である。
図10は本発明の一実施形態としての情報検索システムにおける割当管理部による他のジョブの割当手法を説明するためのフローチャートである。
図11は本発明の一実施形態としての情報検索システムにおける割当管理部により各PCにジョブが割り当てられた他の状態の例を示す図である。
図12は従来の情報検索システムにおけるデータベースのサイズと検索時間との関係を模式的に示す図である。
【発明を実施するための最良の形態】
以下、図面を参照して本発明の実施の形態を説明する。
(A)一実施形態の説明
図1は本発明の一実施形態としての情報検索システムの模式的な構成を示す図である。本情報検索システム1は、検索要求入力部41から入力された、データベース3に対する検索要求を、複数(本実施形態では4つ)のPC(Personal Computer:情報処理装置)2a,2b,2c,2dによって並列に処理するものであり、検索要求入力部41,検索結果出力部42,管理サーバ20,データベース3およびPC2a,2b,2c,2dをそなえて構成されている。
データベース(検索対象)3は、何らかの情報(データ)を網羅的に収集し、蓄積したもの(情報群)であって、情報の追加や削除、更新、検索を処理するための構造を持っており、検索要求入力部41から入力される検索要求に基づいて検索され、その検索要求に応じた情報を提供することができるものである。
検索要求入力部41はオペレータが検索要求を入力するためのものであり、検索対象のデータベース(本実施形態においてはデータベース3)や、そのデータベースに対して希望する検索条件を入力するためのものである。この検索要求入力部41は、例えばコンピュータシステムにおけるキーボードやマウス等により実現されるようになっている。
また、検索要求は、検索対象であるデータベースとそのデータベースに対する検索条件とからなる。本実施形態においては、1つのデータベース3のみがそなえられているが、これに限定されるわけではなく、複数のデータベースをそなえ、これらのデータベースの中から、少なくとも1つの特定のデータベースを検索対象にしてもよく、更に、その少なくとも1つのデータベースをオペレータが検索対象として任意に選択できるようにしてもよい。
そして、検索要求入力部41においては、オペレータが、任意の検索条件を入力することができるようになっている。
検索結果出力部42は、検索要求入力部41から入力された検索要求についての検索結果を管理サーバ20から取得し、オペレータ等に対して出力するものである。この検索結果出力部42は、例えば、ディスプレイ装置やプリンタ等の各種の出力装置により実現されるようになっている。
PC2a,2b,2c,2dは、検索要求入力部41から入力された検索要求をそれぞれ処理する情報処理装置(計算機)である。本実施形態においては、PC2a,2b,2c,2dは、管理サーバ20において、サブ検索要求作成部5によって作成され且つ割当管理部8によって割り当てられたサブ検索要求(詳細は後述)をそれぞれ処理し、又、その処理結果を管理サーバ20に送信するようになっている。
なお、以下、PCを示す符号としては、複数のPCのうち1つを特定する必要があるときには符号2a,2b,2c,2dを用いるが、任意のPCを指すときには符号2を用いる。
PC2a,2b,2c,2dは、図1に示すように、それぞれCPU(Central Processing Unit)30,RAM31,ROM32,ハードディスク33および通信制御部34をそなえて構成されている。なお、図中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
ROM32にはBIOS(Basic Input/Output System)と呼ばれる、PC2における基本的な入出力を行なうためのプログラム等が予め記録されており、ハードディスク33には、OS(Operating System)やアプリケーションプログラム等のPC2を機能させるための種々のプログラムやデータ等が保存されている。
そして、CPU30が、これらのROM32やハードディスク33に格納された種々のプログラムを実行することにより、サブ検索要求(後述)を処理することができるようになっている。
RAM(記憶部)31は、CPU30が種々の処理を行なう際にデータ等を一時的に保存・展開するためのものであり、本実施形態においては、サブ検索要求としてのサブデータベース(詳細は後述)が、このRAM31上に展開されるようになっている。
また、本情報検索システム1においては、便宜上、各PC2a,2b,2c,2dはそれぞれ同容量のRAM31をそなえているものとする。
PC2は、ディスクキャッシュ機能をそなえており、使用頻度の高いデータや最後に使用したデータをRAM31上に保持(キャッシュ)するようになっている。これにより、そのデータに対して読み出し要求があった時に、CPU30は、アクセス速度の遅いハードディスク33やデータベース3等からデータを読み込む必要がなく、RAM31上のデータを読み出すことができ、そのデータに対して処理を高速に行なうことができる。
そして、PC2においては、このディスクキャッシュ機能により、一度処理を行なったサブデータベースがRAM31上に保持されるようになっている。なお、新たなデータをRAM31に読み込む場合には、RAM31にキャッシュされたデータは、先入れ先出し方式によって古いデータから順番にRAM31から追い出されるようになっている。
通信制御部34は、PC2と外部との間における種々のデータの通信を制御するものであり、例えば、管理サーバ20から送信されるサブ検索要求(後述)を受信したり、PC2において処理した検索結果を管理サーバ20に送信したりするための制御を行なうようになっている。
管理サーバ20は、検索要求入力部41によって入力された検索要求を複数のPC2に並列に処理させるものであり、更に、それらの各PC2による処理結果を取得して結合し、その検索結果を検索結果出力部42に対して出力するものである。
この管理サーバ20は、図1に示すように、サブ検索要求作成部5,割当管理部8,DBアフィニティ設定部9,メモリ管理部(空き容量管理部)10,処理時間予測部11および結合部12をそなえて構成されている。
メモリ管理部(空き容量管理部)10は、あらかじめ各PC2のRAM31のサイズを取得して保持しており、これにより、後述するサブデータベース作成部6が、各PC2のRAM31のサイズを知ることができるようになっている。
また、メモリ管理部10は、各PC2のRAM31の使用状況を管理するようになっており、割当管理部8(詳細は後述)によって各PC2に対してどのようなサブ検索要求(サブデータベース)を割り当てたかを管理することにより、各PC2のRAM31にキャッシュされているサブデータベースのサイズを管理するようになっていて、これにより、各PC2のRAM31の使用状況および空き容量(残容量;未使用領域のサイズ)を管理することができるようになっている。
本情報検索システム1においては、各PC2は、それぞれ管理サーバ20(割当管理部8)によって割り当てられる処理(サブ検索要求)のみを行なうようになっており、これにより、各PC2のRAM31には、それぞれ割当管理部8によって割り当てられたサブデータベースがキャッシュされるようになっている。
処理時間予測部11は、各PC2によるサブ検索要求に関する処理に要する時間を予測するものであって、例えば、PC2に割り当てられるサブデータベースのサイズやサブ検索条件の内容,PC2(CPU30)の仕様や性能等の情報に基づいて、そのその処理時間を予測することができるようになっている。なお、処理時間予測部11は、PC2に対して各処理に要する時間を問い合わせてもよく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
サブ検索要求作成部5は、検索要求入力部41から入力された検索要求に基づいて、PC2に処理させるためのサブ検索要求を作成するものである。このサブ検索要求作成部5は、データベース分割とクエリー分割との2つの手法を用いて複数のサブ検索要求(以下、ジョブという場合もある)を作成するようになっており、図1に示すように、サブデータベース作成部6およびサブ検索条件作成部7をそなえて構成されている。
図2〜図4はそれぞれ本発明の一実施形態としての情報検索システム1におけるサブ検索要求(ジョブ)の作成手法を説明するための図であり、図2はデータベース分割によって複数のジョブを作成する手法を説明するための図、図3はクエリー分割によって複数のジョブを作成する手法を説明するための図、図4はデータベース分割およびクエリー分割によって複数のジョブを作成する手法を説明するための図である。
なお、これらの図2〜図4においては、検索対象であるデータベースDB1(図中縦軸)と、そのデータベースに対するクエリー(Query)Q[検索条件;図中横軸]とからなる検索要求を分割して、複数のジョブ(サブ検索要求)を作成する例を示している。
サブデータベース作成部6は、データベース3に基づいて、各PC2にそなえられたRAM31の容量以下のサイズの複数のサブデータベースを作成するものである。図2に示す例においては、サブデータベース作成部6は、データベースDB1とクエリーQとからなる検索要求について、そのデータベースDB1をデータベース分割によってサブデータベースSDB1,SDB2に分割することにより、サブデータベースSDB1に対してクエリーQで検索を行なうジョブ1と、サブデータベースSDB2に対してクエリーQで検索を行なうジョブ2との2つジョブを作成している。
このサブデータベース作成部6は、メモリ管理部10に管理されている各PC2のRAM31のサイズの情報に基づいて、検索要求入力部41によって入力された検索要求に関するデータベース3から、各PC2のRAM31のサイズ以下となるようなサブデータベースを複数作成するようになっている。
例えば、各PC2がそれぞれ256MBのRAM31をそなえている場合には、サブデータベース作成部6は、256MB以下のサイズのサブデータベースを複数作成する。
一般に、データベースは、多数の独立したエントリから構成されていることが多い。そのため、このエントリを単位としてデータベースを分割することが容易である。又、エントリが多いという特性上、PC2の台数が多い場合であっても、PC2の台数分の予測検索時間の均等なサブデータベースを作成し易いという特徴もある。
サブ検索条件作成部7は、検索要求入力部41から入力された検索条件(クエリー;検索要求)に基づいて、その検索条件を相互に依存関係の無い複数のサブ検索条件に分割することにより、各PC2が処理する複数のジョブを作成するようになっている。図3に示す例においては、サブ検索条件作成部7は、データベースDB1とクエリーQとからなる検索要求について、その検索条件(クエリー)Qをクエリー分割によってサブ検索条件(サブクエリー)SQA,SQBに分割することにより、データベースDB1に対してサブ検索条件SQAで検索を行なうジョブAと、データベースDB1に対してサブ検索条件SQBで検索を行なうジョブBとの2つジョブを作成している。
一般に、検索条件において、複数の検索条件は相互に依存していることが多いので、上述したデータベース分割と比較すると検索条件(クエリー)は分割することが困難である。しかしながら、もし分割が可能である場合には、それらの分割後のサブ検索条件は互いに独立していることが多く、一旦分割できた場合には、それらの各サブ検索条件を複数のPC2で並列に処理した場合と、その分割前の検索条件を単一の計算機(PC2)で処理した場合とで、その検索結果を等しくすることが多い。従って、結合部12によって行なわれるそれらのサブ検索条件についての検索結果のマージ処理(後述)においては、その負荷が比較的軽いという特徴がある。
なお、BLAST(Basic Local Alignment Search Tool)やFASTA等のバイオインフォマティックス分野においてよく使用される相同性検索には、完全に独立した検索要求の集合がクエリーとなっていることがある。このような場合には、結合部12においては、クエリー分割によるマージ負荷はほとんど無いといえる。
また、本実施形態においては、サブデータベース作成部6によるデータベース分割とともに、サブ検索条件作成部7によるクエリー分割を併用して行なうことができるようになっている。データベース分割は、分割が容易である一方で、それらの検索結果のマージの負荷が重いという特徴を有している。その逆に、クエリー分割は、分割が困難である一方で、それらの検索結果のマージの負荷が軽いという特徴を有している。
上述したように、データベース分割とクエリー分割とは、データベース分割の容易性および検索結果のマージの容易性において相反する特徴を有していると言えるが、これらのデータベース分割とクエリー分割との双方を適用可能である場合には、両分割手法の長所を生かしてジョブを作成することが望ましい。例えば、先ず、マージ負荷の軽いクエリー分割でジョブを作成し、その後、クエリー分割だけでは必要な数やサイズのジョブを作成できない場合に、データベース分割により更に複数のジョブに分割する(図4参照)ことにより、両分割手法の特徴を生かすことができる。
図4に示す例においては、サブデータベース作成部6は、データベースDB1とクエリーQとからなる検索要求について、そのデータベースDB1をデータベース分割によってサブデータベースSDB1,SDB2に分割しており、又、サブ検索条件作成部7は、データベースDB1とクエリーQとからなる検索要求について、その検索条件(クエリー)Qをクエリー分割によってサブ検索条件(サブクエリー)SQA,SQBに分割している。
これにより、サブ検索要求作成部5(サブデータベース作成部6,サブ検索条件作成部7)は、サブデータベースSDB1に対してサブ検索条件SQAで検索を行なうジョブ1A,サブデータベースSDB1に対してサブ検索条件SQBで検索を行なうジョブ1B,データベースSDB2に対してサブ検索条件SQAで検索を行なうジョブ2Aおよび、サブデータベースSDB2に対してサブ検索条件SQBで検索を行なうジョブ2Bの4つのジョブを作成している。
また、サブ検索要求作成部5においては、サブデータベース作成部6およびサブ検索条件作成部7によって、PC2における予測処理時間(検索時間)が異なる(不均等な)複数のサイズのジョブを作成するようになっている(不均等ジョブ作成)。このような不均等ジョブ作成手法としては、例えば、検索時間とデータベースのエントリとの相関が非常に高い場合においては、サブデータベース作成部6によって、エントリ数が異なるサブデータベースを複数作成することにより実現することができる。
図5は本発明の一実施形態としての情報検索システム1における不均等ジョブ作成手法の例を説明するための図である。不均等ジョブを作成するためには、図5に示すように、例えば、先ず、予測検索時間がほぼ等しくなるジョブをPC2の台数と同数(本実施形態では4つ)作成し、次に、これらの各ジョブをそれぞれ予測検索時間が4:2:1の比率となるように3つに分割することによって作成する。これにより、4台のPC2に対して12個の不均等ジョブを容易に作成することができる。なお、便宜上、図5に示す例においては、作成された各ジョブに符号11,12,13,21,22,23,31,32,33,41,42および43を付して示している。
DBアフィニティ設定部9は、割当管理部8によってPC2に対して優先的に割り当てるサブデータベースに関する情報をDBアフィニティ(Data Base Affinity)として設定可能なものである。すなわち、DBアフィニティ設定部9は、PC2毎に、そのPC2が検索対象とすべきサブデータベースを予め設定することができるようになっている。なお、個々のPC2に対してDBアフィニティとして複数のサブデータベースを指定してもよいが、1つのPC2に対してDBアフィニティとして設定するサブデータベースのサイズの総和は、そのPC2のRAM31のサイズ(メモリサイズ)を超えないようにする。
なお、DBアフィニティ設定部9は、各PC2が優先的に処理を行なうサブデータベースをオペレータや管理者等が予め設定してもよく、又、各PC2におけるサブデータベースの処理履歴に基づいて、過去に処理を行なったサブデータベースを優先的にDBアフィニティとして設定してもよい。
割当管理部8は、サブ検索要求作成部5(サブデータベース作成部6,サブ検索条件作成部7)によって作成されたサブ検索要求をPC2に対して割り当てるものである。すなわち、割当管理部8は、PC2にサブデータベースに対する検索要求を処理させるべく、サブデータベース作成部6やサブ検索条件作成部7によって作成されたサブデータベースやサブ検索条件をサブ検索要求(ジョブ)としてPC2に対して割り当てるようになっている。
また、割当管理部8は、PC2にジョブを割り当てる際には、DBアフィニティ設定部9に設定されたDBアフィニティを参照し、DBアフィニティが一致するサブデータベースをそのPC2に割り当てるようになっている。
すなわち、本情報検索システム1においては、DBアフィニティとしてPC2毎に担当するサブデータベースを予め設定するようになっており、割当管理部8によって、このDBアフィニティに従ってジョブの割り当てが行なわれるようになっている。これにより、一度サブ検索要求に対する処理を行なったPC2には、そのRAM31には検索対象のサブデータベースがキャッシュされる。
そして、そのサブデータベースに関する検索要求については、DBアフィニティに従ってそのPC2に積極的に処理させることにより、PC2においては、サブデータベースにアクセスするためにディスクアクセスを行なう必要がなく、サブデータベースに対する検索処理を高速に行なうことができる。
また、割当管理部8は、動的なジョブ割当手法を用いて、各PC2に対してジョブを割り当てるようになっている。動的なジョブ割当手法とは、文字通りジョブを動的に各PC2に割り当てる手法である。動的なジョブ割当は、PC2の台数以上のジョブを用意し、これらのジョブの中から予測検索時間の長いジョブから順番に各PC2に割り当てて処理を行なわせ、処理が完了したPC2に対して、残りのジョブの中から予測検索時間の長いジョブを選択して順次割り当て、これらの処理をジョブが無くなるまで繰り返し行なうことにより実現することができる。なお、動的なジョブ割当は、処理時間予測部11による、各PC2におけるジョブの検索時間の予測精度が低い場合に特に有効である。
図6は本発明の一実施形態としての情報検索システム1における割当管理部8による動的なジョブ割当手法を説明するための図であり、サブ検索要求作成部5によって作成された複数のジョブ(図5参照)を4台のPC2a,2b,2c,2dに動的に割り当てる例を示す図である。なお、図6に示す例においては、ジョブ41,42,43について、それぞれ処理時間予測部11による予測検索時間の2倍の時間がかかってしまったものとする。
かかる図6に示す例においては、最初に予測検索時間が長いジョブ11,21,31,41をPC2a,2b,2c,2dに対してそれぞれ割り当てて処理を行なう。その後、処理が完了したPC2a,2b,2cに対して、残りのジョブの中から予測検索時間の長いジョブ12,22,32をそれぞれ割り当て、更に、それらの処理が完了した後に、PC2a,2b,2cに対して、それぞれジョブ42,13,23を割り当てる。そして、その後、処理が完了したPC2b,2cに対してジョブ33,43をそれぞれ割り当てる。
このように、PC2に対して動的にジョブを割り当てることにより、処理時間予測部11による検索時間の予測精度が悪い場合においても、複数のジョブを高速に処理することができる。
なお、上述の如き動的なジョブの割当は、静的なジョブの割当と比較してジョブ管理が複雑であり、ジョブ管理の負荷が大きいので、処理時間予測部11による検索時間の予測精度が十分に良い場合には、割当管理部8は、必ずしも動的なジョブの割当を行なわずに静的なジョブの割り当てを行なってもよい。
静的なジョブ割当手法は、文字通りジョブを静的に各PC2に割り当てる手法である。静的なジョブ割当は、例えば、検索時間とデータベースのエントリ数との相関が非常に高い場合に、エントリ数が互いに等しくなるようにデータベースを分割してPC2の台数分のジョブを作成し、それらのジョブを静的に各PC2に割り当てるだけで、PC2間における負荷バランスを保つことができる。
なお、予測検索時間の予測精度が低い場合には、静的なジョブ割当手法よりも動的なジョブ割当手法の方が、全体的な処理時間を短縮することができると言える。例えば、PC2の台数分のジョブを作成し、各PC2にこれらのジョブをそれぞれ処理させた場合において、1つのジョブの処理に他のジョブの2倍の時間がかかってしまった場合には、その時間がかかったジョブの検索時間がシステム1全体の性能を律速することになる。従って、このような場合には、PC2を複数用いて並列に処理させることによる効果が不明確となる。
すなわち、静的なジョブ割当手法は、動的なジョブ割当手法と比較して、ジョブ管理が容易であり、事前に各ジョブの処理時間(予測検索時間)を高い精度で予測できる場合に有効である。
また、割当管理部8は、PC2に割り当てるジョブを決定する際に、評価関数を用いてまだ割り当てられていないジョブの評価値を算出し、PC2に割り当てるジョブを決定してもよい。評価関数の簡単な例としては、以下のようなものが考えられる。
(1)該当ジョブの検索対象サブデータベースがPC2のDBアフィニティと一致する場合
評価値= ジョブの予測検索時間
(2)該当ジョブの検索対象サブデータベースがPC2のDBアフィニティと一致しない場合
評価値= ジョブの予測検索時間/2
上記のような評価関数を用いる場合には、割当管理部8は、まだ割り当てられていないジョブの中から最も評価値の高いジョブを選択し、PC2に割り当てることとなる。
結合部12は、各PC2によるジョブ(サブ検索要求)に関する処理結果(検索結果)を取得し結合(マージ)するものであり、検索要求入力部41から入力された検索要求に対する検索結果を作成するものである。この結合部12によって結合された検索結果は、検索結果出力部42に送信されるようになっている。
上述の如く構成された本発明の一実施形態としての情報検索システム1において、検索要求入力部41によってユーザにより検索要求(検索対象のデータベースおよび検索条件)が入力されると、その検索要求が管理サーバ20に送信される。
管理サーバ20においては、サブ検索要求作成部5が、検索要求入力部41から入力された検索要求に基づいて、複数のPC2によって処理されるべき複数のジョブ(サブ検索要求)を作成する(サブ検索要求作成ステップ)。具体的には、サブデータベース作成部6が、データベース3に基づいて、各PC2のRAM31の容量以下になるような複数のサブデータベースを作成する。又、サブ検索条件作成部7は、必要に応じて、検索要求入力部41から検索要求として入力された検索条件に基づいてサブ検索要求を作成する。
また、サブ検索要求作成部5は、処理時間予測部11による予測処理時間に基づいて不均等ジョブを作成するようになっている。
図7は本発明の一実施形態としての情報検索システム1におけるサブ検索要求作成部5により作成されたジョブの例を示す図であり、4台のPC2(2a,2b,2c,2d)によって、各PC2のRAM31のメモリサイズ(例えば、256MB)の1.5倍のサイズ(例えば、384MB)のデータベース3を検索対象とする検索要求に基づいて、複数のジョブを作成する例を示すものである。
この図7に示す例においては、サブデータベース作成部6によって、データベース3に基づいて2つのサブデータベースSDB1,SDB2が作成されており、これらのサブデータベースSDB1,SDB2は、それぞれ各PC2のRAM31のメモリサイズよりも小さいサイズとなるように形成されている。
また、図7に示す例においては、サブ検索条件作成部7は、検索要求入力部41から入力された検索要求を分割して4つのサブ検索条件SQA,SQB,SQC,SQDを作成している。
すなわち、図7に示す例においては、サブデータベース作成部6およびサブ検索条件作成部7により、8つのジョブ(サブ検索要求)1A,1B,1C,1D,2A,2B,2C,2Dが作成されている。
なお、処理時間予測部11によって予測された、これらのジョブの予測検索時間は、ジョブ1B,1D,2B,2Dが互いに略同じ予測検索時間を要するとともに、ジョブ1A,1C,2A,2Cが互いに略同じ予測検索時間を要し、更に、ジョブ1A,1C,2A,2Cが、ジョブ1B,1D,2B,2Dの略2倍の予測検索時間を要するものとする。
また、図7に示す例においては、DBアフィニティ設定部9において、PC2aおよびPC2bに対してはサブデータベースSDB1を優先的に割り当てるようにDBアフィニティが設定されており、PC2cおよびPC2dに対してはサブデータベースSDB2を優先的に割り当てるようにDBアフィニティが設定されているものとする。
そして、割当管理部8が、上述の如くサブ検索要求作成部5によって作成された各ジョブ1A,1B,1C,1D,2A,2B,2C,2Dを、DBアフィニティ設定部9に設定されたDBアフィニティに従って、各PC2に対してそれぞれ割り当てる(割当管理ステップ)。又、この際、割当管理部8は動的なジョブ割当手法を用いて、PC2に各ジョブを割り当てる。
ここで、本発明の一実施形態としての情報検索システム1における割当管理部8によるジョブの割当手法を、図9を参照しながら図8に示すフローチャート(ステップA10〜A80)に従って説明する。なお、図9は本発明の一実施形態としての情報検索システム1における割当管理部8によって各PC2にジョブが割り当てられた状態の例を示す図である。
割当管理部8は、未割り当てのジョブがあるか否かを判断し(ステップA10)、未割り当てのジョブが無い場合には(ステップA10のNOルート参照)、処理を終了する。
また、未割り当てのジョブがある場合には(ステップA10のYESルート参照)、割当管理部8は、ジョブが割り当てられるのを待っているPC2があるか、すなわち、ジョブを処理できる状態にあるPC2があるか否かを判断する(ステップA20)。
ジョブの割り当てを待っているPC2がある場合には(ステップA20のYESルート参照)、割当管理部8は、DBアフィニティ設定部9を参照して、そのPC2についてDBアフィニティが適合(一致)するジョブがあるか否かを判断する(ステップA60)。そのPC2に対して、DBアフィニティが適合するジョブがある場合には(ステップA60のYESルート参照)、処理時間予測部11による予測検索時間を参照して、DBアフィニティが適合するジョブのうち、予測検索時間が最も長いジョブをそのPC2に対して割り当て(ステップA80)、ステップA10に移行する。
また、そのPC2に対してDBアフィニティが適合するジョブが無い場合には(ステップA60のNOルート参照)、そのPC2へのジョブの割り当てを終了して(ステップA50)、ステップA20に戻る。
一方、ジョブの割当てを待っているPC2が無い場合には(ステップA20のNOルート参照)、割当管理部8は、ジョブを実行中のPC2があるか否かを判断する(ステップA30)。ジョブを実行中のPC2がある場合には(ステップA30のYESルート参照)、割当管理部8は、そのPC2のジョブが完了するのを待ち(ステップA70)、ステップA10に戻る。又、ジョブを実行中のPC2が無い場合には(ステップA30のNOルート参照)、割当管理部8は、本情報検索システム1のオペレータ等に対してエラーを示すメッセージを出力して(ステップA40)、ステップA10に戻る。
上述の如きジョブの割当手法により、図9に示すように、各PC2に対してジョブが動的に割り当てられる。なお、図9に示す例においては、ジョブ2Cの処理には処理時間予測部11によって予測された予測検索時間よりも1.5倍の時間がかかり、ジョブ2Dの処理には処理時間予測部11によって予測された予測検索時間よりも2倍の時間がかかったものとする。
上述の如く、割当管理部8が各PC2に対してジョブを割り当てると、各PC2はそれぞれ割り当てられたジョブを処理する。すなわち、各PC2は、サブデータベースに対してサブ検索条件に基づいて検索を行ない、その検索結果を管理サーバ20に対して送信する。
なお、PC2において、各PC2に割り当てられたサブデータベースのサイズは、それぞれ各PC2にそなえられたRAM31のサイズよりも小さいので、サブデータベースに対してサブ検索条件の検索を行なう際には、RAM31上に検索対象であるサブデータベースを全て展開して検索を行なうことができ、ディスクアクセス等を生じることなく、高速に検索処理を行なうことができる。
各PC2による検索結果は、管理サーバ20において、結合部12によって結合(マージ)され、検索要求に対する検索結果として検索結果出力部42に送信されて、オペレータに対して提示される。
このように、本発明の一実施形態としての情報検索システム1によれば、サブデータベース作成部6(サブ検索要求作成部5)が、各PC2にそなえられたRAM31の容量以下のサイズの複数のサブデータベースを作成し、割当管理部8が、これらのサブデータベースを各PC2に割り当てるので、一度サブ検索要求に対する処理を行なったPC2において、そのRAM31には検索対象のサブデータベースがキャッシュされる。これにより、そのPC2においては、サブデータベースにアクセスするためにアクセス速度が遅いハードディスクへのアクセス(ディスクアクセス)を行なう必要がなく、サブデータベースに対する検索処理を高速に行なうことができる。
特に、DBアフィニティ設定部9に、DBアフィニティとしてPC2毎に担当するサブデータベースを予め設定し、割当管理部8がこのDBアフィニティに従ってジョブの割り当てを行なうので、割当管理部8が容易にジョブ(サブデータベース)をPC2に割り当てることができ、又、一度サブ検索要求に対する処理を行なったPC2には、そのRAM31には検索対象のサブデータベースがキャッシュされ、PC2においては、サブデータベースにアクセスするためにディスクアクセスを行なう必要がなく、サブデータベースに対する検索処理を高速に行なうことができる。
また、検索要求入力部41から入力された検索条件を、サブ検索条件作成部7が分割してサブ検索条件を作成することにより、適当な(任意の)大きさ(予測検索時間の長さ)のサブ検索要求を容易に作成することができ利便性が高い。
処理時間予測部11が、各ジョブについてその予測検索時間を予測するので、割当管理部8が容易に動的なジョブ割当を行なうことができ利便性が高い。
DBアフィニティ設定部9が、各PC2が優先的に処理を行なうサブデータベースをオペレータや管理者等が予め設定することにより、DBアフィニティを確実に設定することができ、又、各PC2におけるサブデータベースの処理履歴に基づいて、過去に処理を行なったサブデータベースを優先的にDBアフィニティとして設定することにより、容易にDBアフィニティを設定することができる。
メモリ管理部10が、各PC2にそなえられたRAM31の空き容量を管理し、その空き容量以下のサイズのサブデータベースを各PC2に対して割り当てることにより、容易に且つ確実に、PC2のRAM31の空き容量以下のサイズのサブデータベースをPC2に対して割り当てることができる。
処理時間予測部11が、各PC2による各サブ検索要求に関する処理に要する時間(予測検索時間)を予測し、割当管理部8が、その予測検索時間が長いサブ検索要求から優先的にサブ検索要求をPC2に対して割り当てることにより、複数のジョブを複数のPC2に対して効率よく割り当てることができる。
(B)その他
本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、割当管理部8は、PC2とサブデータベースとのDBアフィニティが適合しない場合においても、割当管理部8が、PC2のRAM31の残容量以内のデータサイズのジョブをPC2に対して割り当ててもよく、更に、サブ検索要求作成部5が、PC2のRAM31の残容量以内のデータサイズとなるように、PC2に対して未だ割り当てられていない(未割当の)ジョブ(サブデータベース)を、その残容量以下となるように更に分割して、PC2に割り当ててもよい。
すなわち、本情報検索システム1においては、割当管理部8は、メモリ管理部10から、各PC2のRAM31の使用状況もしくは空き容量(未使用領域のサイズ)を取得し、その空き容量に応じて、未割当のジョブを更にサブ検索要求作成部5によって、その空き容量以下の複数のジョブ(サブデータベース)に分割させて、その分割して作成されたジョブをそれらのPC2に対して割り当ててもよいのである。
このような、本発明の一実施形態としての情報検索システム1における割当管理部8による他のジョブの割当手法を、図11を参照しながら図10に示すフローチャート(ステップB10〜B110)に従って説明する。なお、図11は本発明の一実施形態としての情報検索システム1における割当管理部8により各PC2にジョブが割り当てられた他の状態の例を示す図である。
割当管理部8は、未割り当てのジョブがあるか否かを判断し(ステップB10)、未割り当てのジョブが無い場合には(ステップB10のNOルート参照)、処理を終了する。
また、未割り当てのジョブがある場合には(ステップB10のYESルート参照)、割当管理部8は、次に、ジョブが割り当てられるのを待っているPC2があるか、すなわち、ジョブを処理できる状態にあるPC2があるか否かを判断する(ステップB20)。
ジョブの割当てを待っているPC2が無い場合には(ステップB20のNOルート参照)、割当管理部8は、次に、ジョブを実行中のPC2があるか否かを判断する(ステップB30)。ジョブを実行中のPC2がある場合には(ステップB30のYESルート参照)、割当管理部8は、そのPC2のジョブが完了するのを待ち(ステップB50)、ステップB10に戻る。又、ジョブを実行中のPC2が無い場合には(ステップB30のNOルート参照)、割当管理部8は、本情報検索システム1のオペレータ等に対してエラーを示すメッセージを出力して(ステップB40)、ステップB10に戻る。
ジョブの割当てを待っているPC2がある場合には(ステップB20のYESルート参照)、割当管理部8は、DBアフィニティ設定部9を参照して、そのPC2についてDBアフィニティが適合(一致)するジョブがあるか否かを判断する(ステップB60)。そのPC2に対して、DBアフィニティが適合するジョブがある場合には(ステップB60のYESルート参照)、割当管理部8は、処理時間予測部11による予測検索時間を参照して、そのPC2に適合するジョブのうち、予測検索時間が最も長いジョブをそのPC2に対して割り当て(ステップB80)、ステップB10に移行する。
また、そのPC2に対してDBアフィニティが適合するジョブが無い場合には(ステップB60のNOルート参照)、割当管理部8は、メモリ管理部10を参照してそのPC2のRAM31の残容量を確認し、そのPC2の残容量以内のデータサイズのジョブがあるか否か、すなわち、サブデータベースのサイズがそのPC2の残容量以内となるジョブがあるか否かを判断する(ステップB70)。
そのPC2の残容量以内のデータサイズのジョブがある場合(ステップB70のYESルート参照)には、割当管理部8はステップB80に移行する。すなわち、割当管理部8は、DBアフィニティが適合しなくても、そのPC2のRAM31の残容量以内のデータサイズのジョブのうち、予測検索時間が最も長いジョブをそのPC2に対して割り当てて(ステップB80)、ステップB10に移行するのである。
また、サブデータベースのサイズがそのPC2のRAM41の残容量以内となるジョブが無い場合には(ステップB70のNOルート参照)、割当管理部8は、PC2に対して未割当のジョブについて、そのPC2のRAM31残容量以下となるように作成することができるものがあるか、すなわち、未割当のジョブについて、そのサブデータベースを更に分割することができるジョブがあるか否かを判断する(ステップB90)。
サブデータベースを更に分割することができるジョブがある場合には(ステップB90のYESルート参照)、割当管理部8は、サブデータベース作成部6に、そのジョブのサブデータベースを、そのPC2のRAM31残容量以下となるように更に分割させて(ステップB110)、ステップB10に移行する。
また、サブデータベースを更に分割することができるジョブが無い場合には(ステップB90のNOルート参照)、そのPC2に対するジョブの割り当てを終了させて(ステップB100)、ステップB20に移行する。
上述の如きジョブの割当手法により、図11に示すように、各PC2に対してジョブが動的に割り当てられる。なお、図11に示す例においては、ジョブ2Aの処理には処理時間予測部11によって予測された予測検索時間よりも1.5倍の時間がかかり、ジョブ2Cの処理には処理時間予測部11によって予測された予測検索時間よりも2倍の時間がかかったものとする。
また、図11中において、ジョブ2D−1,2D−2はともにジョブ2Dを再分割して作成されたものである。この図11に示す例においては、ジョブ2D−1,2D−2はPC2a,2bとDBアフィニティが一致しないので、PC2a,2bのRAM31にはジョブ2D−1,2D−2に関するサブデータベースSDB2がキャッシュされていない。従って、PC2a,2bがジョブ2D−1,2D−2を処理するためには、PC2a,2bはジョブ2D−1,2D−2に関するサブデータベースSDB2をデータベース3等から読み出す(ディスクアクセスを行なう)必要があるが、これらのジョブ2D−1,2D−2は、サブ検索要求作成部5によって読み出し負荷が小さくなるように再分割して作成されているので、システム全体での処理時間(検索)が短くなり、結果的に処理速度を短縮することができ、又、DBアフィニティが適合しないジョブを割り当てることによるリスク(サブデータベースの読み出し負荷)を低減することができる。
また、DBアフィニティが適合しないジョブを、PC2a,2bのRAM31の残容量以下のサイズで割り当てるので、PC2a,2bにおいては、RAM31内にサブデータベースSDB1が引き続きキャッシュされており、PC2a,2bに対して、再度サブデータベースSDB1に関する処理を行なわせる場合にも検索速度が低下することがない。
さらに、ジョブ(サブ検索要求)について、DBアフィニティ設定部9によって設定された各PC2に関するDBアフィニティ,サブデータベースおよび処理時間予測部11によって予測された予測検索時間(予測検索処理量)の少なくとも1つ以上について、前述の如き評価関数を用いて評価する評価部をそなえ、割当管理部8が、この評価部による評価結果に基づいて、各PC2にジョブを抽選的に割り当てもよい。これにより、割当管理部8が、容易且つ確実に各PC2にジョブを割り当てることができる。
また、上述した実施形態においては、便宜上、各PC2はそれぞれ同容量のRAM31をそなえているが、これに限定されるものではなく、各PC2がそれぞれ異なるサイズのRAM31をそなえてもよく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
さらに、管理サーバ20は、例えばサーバ機能をそなえたコンピュータ(情報処理装置)によって実現され、このコンピュータのCPUが、情報検索プログラムを実行することにより、上述したサブ検索要求作成部5,サブデータベース作成部6,サブ検索条件作成部7,割当管理部8,DBアフィニティ設定部9,メモリ管理部10,処理時間予測部11,結合部12,および評価部として機能するようになっている。
なお、サブ検索要求作成部5,サブデータベース作成部6,サブ検索条件作成部7,割当管理部8,DBアフィニティ設定部9,メモリ管理部10,処理時間予測部11,結合部12,および評価部としての機能を実現するためのプログラム(情報検索プログラム)は、例えばフレキシブルディスク,CD−ROM,CD−R,CD−R/W,DVD,DVD−R,DVD−R/W,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
サブ検索要求作成部5,サブデータベース作成部6,サブ検索条件作成部7,割当管理部8,DBアフィニティ設定部9,メモリ管理部10,処理時間予測部11,結合部12,および評価部としての機能を実現する際には、内部記憶装置(本実施形態ではプリンタのRAMやROM)に格納されたプログラムがコンピュータのマイクロプロセッサ(CPU)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、管理サーバ20がコンピュータとしての機能を有しているのである。
さらに、本実施形態における記録媒体としては、上述したフレキシブルディスク,CD−ROM,CD−R,CD−R/W,DVD,DVD−R,DVD−R/W,磁気ディスク,光ディスク,光磁気ディスクのほか、ICカード,ROMカートリッジ,磁気テープ、パンチカード、コンピュータの内部記憶装置(RAMやROMなどのメモリ),外部記憶装置等や、バーコードなどの符号が印刷された印刷物等のコンピュータ読取可能な種々の媒体を利用することができる。
なお、本発明の各実施形態が開示されていれば、当業者によって製造することが可能である。
【産業上の利用可能性】
以上のように、本発明の情報検索システム,情報検索方法,情報検索装置,情報検索プログラムおよび当該プログラムを記録したコンピュータ読取可能な記録媒体は、複数の情報処理装置をそなえ、検索対象であるデータベースとこのデータベースに対する検索条件とからなる検索要求を、これらの複数の情報処理装置によって並列に処理することに有用であり、特に各情報処理装置において検索要求を高速に処理することができるようにして、データベースに対して高速に検索を行なうことに適している。
【図1】

【図2】

【図3】

【図4】

【図5】

【図6】

【図7】

【図8】

【図9】

【図10】

【図11】

【図12】


【特許請求の範囲】
【請求項1】
複数の情報処理装置(2)をそなえ、検索対象であるデータベース(3)と当該データベース(3)に対する検索条件とからなる検索要求を、前記複数の情報処理装置(2)によって並列に処理する情報検索システムであって、
該データベース(3)に基づいて、該情報処理装置(2)にそなえられた記憶部の容量以下のサイズの複数のサブデータベースを作成するサブデータベース作成部(6)と、
該情報処理装置(2)に該サブデータベースに対する該検索要求を処理させるべく、該サブデータベース作成部(6)によって作成された該サブデータベースをサブ検索要求として該情報処理装置(2)に対して割り当てる割当管理部(8)と、
前記複数の情報処理装置(2)による該サブ検索要求に関する処理結果を取得し結合する結合部(12)とをそなえることを特徴とする、情報検索システム。
【請求項2】
該検索条件を分割してサブ検索条件を作成するサブ検索条件作成部(7)をそなえ、
該割当管理部(8)が、該情報処理装置(2)に該サブ検索条件を用いて該サブデータベースを検索させるべく、該サブ検索条件を該サブ検索要求として該情報処理装置(2)に対して割り当てることを特徴とする、請求の範囲第1項記載の情報検索システム。
【請求項3】
該情報処理装置(2)に対して、該割当管理部(8)によって優先的に割り当てる該サブデータベースに関する情報をDBアフィニティとして設定可能なDBアフィニティ設定部(9)をそなえ、
該割当管理部(8)が、該DBアフィニティに基づいて、該情報処理装置(2)に該サブ検索要求を割り当てることを特徴とする、請求の範囲第1項又は第2項記載の情報検索システム。
【請求項4】
該DBアフィニティ設定部(9)が、優先的に処理を行なうサブデータベースを予め設定可能であることを特徴とする、請求の範囲第3項記載の情報検索システム。
【請求項5】
該DBアフィニティ設定部(9)が、該情報処理装置(2)における該サブ検索要求の処理履歴に基づいて、該DBアフィニティを設定することを特徴とする、請求の範囲第3記載の情報検索システム。
【請求項6】
前記情報処理装置(2)にそなえられた記憶部の空き容量を管理する空き容量管理部(10)をそなえ、
該割当管理部(8)が、該空き容量管理部(10)によって管理される前記情報処理装置(2)の記憶部の空き容量に基づいて、当該空き容量以下のサイズの該サブデータベースを当該情報処理装置(2)に対して割り当てることを特徴とする、請求の範囲第1項〜第5項のいずれか1項に記載の情報検索システム。
【請求項7】
該情報処理装置(2)による該サブ検索要求に関する処理に要する時間を予測可能な処理時間予測部(11)をそなえ、
該割当管理部(8)が、該処理時間予測部(11)によって予測された前記処理に要する時間に基づいて、当該時間が長い該サブ検索要求から優先的に、当該サブ検索要求を該情報処理装置(2)に対して割り当てることを特徴とする、請求の範囲第1項〜第6項のいずれか1項に記載の情報検索システム。
【請求項8】
該サブデータベース作成部(6)もしくは該サブ検索条件作成部(7)が、該割当管理部(8)によって未だ該情報処理装置(2)に対して割り当てられていない該サブ検索要求を分割して、複数のサブ検索要求を作成することを特徴とする、請求の範囲第7項記載の情報検索システム。
【請求項9】
該サブ検索要求について、該DBアフィニティ設定部(9)によって設定された該情報処理装置(2)に関するDBアフィニティ,該サブデータベースおよび該処理時間予測部(11)によって予測された前記処理に要する時間の少なくとも1つ以上について、評価関数を用いて評価する評価部をそなえ、
該割当管理部(8)が、該評価部による評価結果に基づいて、該情報処理装置(2)に該サブ検索要求を抽選的に割り当てることを特徴とする、請求の範囲第1項〜第9項のいずれか1項に記載の情報検索システム。
【請求項10】
検索対象であるデータベース(3)と当該データベース(3)に対する検索条件とからなる検索要求を、複数の情報処理装置(2)によって並列に処理する情報検索方法であって、
該検索要求に基づいて、該情報処理装置(2)にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成ステップと、
該情報処理装置(2)に該サブ検索要求作成ステップにおいて作成された該サブ検索要求を処理させるべく、該サブ検索要求を該情報処理装置(2)に対して割り当てる割当管理ステップと、
前記複数の情報処理装置(2)による該サブ検索要求に関する処理結果を取得し結合する結合ステップとをそなえることを特徴とする、情報検索方法。
【請求項11】
検索対象であるデータベース(3)と当該データベース(3)に対する検索条件とからなる検索要求を、複数の情報処理装置(2)に対して並列に処理させる情報検索装置であって、
該検索要求に基づいて、該情報処理装置(2)にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成部と、
該情報処理装置(2)に該サブ検索要求作成部によって作成された該サブ検索要求を処理させるべく、該サブ検索要求を該情報処理装置(2)に対して割り当てる割当管理部(8)と、
前記複数の情報処理装置(2)による該サブ検索要求に関する処理結果を取得し結合する結合部(12)とをそなえることを特徴とする、情報検索装置。
【請求項12】
検索対象であるデータベース(3)と当該データベース(3)に対する検索条件とからなる検索要求を、複数の情報処理装置(2)に対して並列に処理させる情報検索機能をコンピュータに実行させるための情報検索プログラムであって、
該検索要求に基づいて、該情報処理装置(2)にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成部と、
該情報処理装置(2)に該サブ検索要求作成部によって作成された該サブ検索要求を処理させるべく、該サブ検索要求を該情報処理装置(2)に対して割り当てる割当管理部(8)と、
前記複数の情報処理装置(2)による該サブ検索要求に関する処理結果を取得し結合する結合部(12)として、該コンピュータを機能させることを特徴とする、情報検索プログラム。
【請求項13】
検索対象であるデータベース(3)と当該データベース(3)に対する検索条件とからなる検索要求を、複数の情報処理装置(2)に対して並列に処理させる情報検索機能をコンピュータに実行させるための情報検索プログラムを記録したコンピュータ読取可能な記録媒体であって、
該情報検索プログラムが、
該検索要求に基づいて、該情報処理装置(2)にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成部と、
該情報処理装置(2)に該サブ検索要求作成部によって作成された該サブ検索要求を処理させるべく、該サブ検索要求を該情報処理装置(2)に対して割り当てる割当管理部(8)と、
前記複数の情報処理装置(2)による該サブ検索要求に関する処理結果を取得し結合する結合部(12)として、該コンピュータを機能させることを特徴とする、情報検索プログラムを記録したコンピュータ読取可能な記録媒体。

【国際公開番号】WO2004/084095
【国際公開日】平成16年9月30日(2004.9.30)
【発行日】平成18年6月22日(2006.6.22)
【国際特許分類】
【出願番号】特願2004−569562(P2004−569562)
【国際出願番号】PCT/JP2003/003245
【国際出願日】平成15年3月18日(2003.3.18)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】