(57)【要約】複数の情報処理装置に対して検索対象であるデータベースと、このデータベースに対する検索条件からなる検索要求が与えられたときに、各情報処理装置の記憶部の容量以下のサブデータベースにデータベースを分割し、検索要求もまた分割して並列に処理し、処理結果を結合することにより検索処理を高速化することを特徴とする。
2004084095.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置（２）をそなえ、検索対象であるデータベース（３）と当該データベース（３）に対する検索条件とからなる検索要求を、前記複数の情報処理装置（２）によって並列に処理する情報検索システムであって、
該データベース（３）に基づいて、該情報処理装置（２）にそなえられた記憶部の容量以下のサイズの複数のサブデータベースを作成するサブデータベース作成部（６）と、
該情報処理装置（２）に該サブデータベースに対する該検索要求を処理させるべく、該サブデータベース作成部（６）によって作成された該サブデータベースをサブ検索要求として該情報処理装置（２）に対して割り当てる割当管理部（８）と、
前記複数の情報処理装置（２）による該サブ検索要求に関する処理結果を取得し結合する結合部（１２）とをそなえることを特徴とする、情報検索システム。
【請求項２】
該検索条件を分割してサブ検索条件を作成するサブ検索条件作成部（７）をそなえ、
該割当管理部（８）が、該情報処理装置（２）に該サブ検索条件を用いて該サブデータベースを検索させるべく、該サブ検索条件を該サブ検索要求として該情報処理装置（２）に対して割り当てることを特徴とする、請求の範囲第１項記載の情報検索システム。
【請求項３】
該情報処理装置（２）に対して、該割当管理部（８）によって優先的に割り当てる該サブデータベースに関する情報をＤＢアフィニティとして設定可能なＤＢアフィニティ設定部（９）をそなえ、
該割当管理部（８）が、該ＤＢアフィニティに基づいて、該情報処理装置（２）に該サブ検索要求を割り当てることを特徴とする、請求の範囲第１項又は第２項記載の情報検索システム。
【請求項４】
該ＤＢアフィニティ設定部（９）が、優先的に処理を行なうサブデータベースを予め設定可能であることを特徴とする、請求の範囲第３項記載の情報検索システム。
【請求項５】
該ＤＢアフィニティ設定部（９）が、該情報処理装置（２）における該サブ検索要求の処理履歴に基づいて、該ＤＢアフィニティを設定することを特徴とする、請求の範囲第３記載の情報検索システム。
【請求項６】
前記情報処理装置（２）にそなえられた記憶部の空き容量を管理する空き容量管理部（１０）をそなえ、
該割当管理部（８）が、該空き容量管理部（１０）によって管理される前記情報処理装置（２）の記憶部の空き容量に基づいて、当該空き容量以下のサイズの該サブデータベースを当該情報処理装置（２）に対して割り当てることを特徴とする、請求の範囲第１項〜第５項のいずれか１項に記載の情報検索システム。
【請求項７】
該情報処理装置（２）による該サブ検索要求に関する処理に要する時間を予測可能な処理時間予測部（１１）をそなえ、
該割当管理部（８）が、該処理時間予測部（１１）によって予測された前記処理に要する時間に基づいて、当該時間が長い該サブ検索要求から優先的に、当該サブ検索要求を該情報処理装置（２）に対して割り当てることを特徴とする、請求の範囲第１項〜第６項のいずれか１項に記載の情報検索システム。
【請求項８】
該サブデータベース作成部（６）もしくは該サブ検索条件作成部（７）が、該割当管理部（８）によって未だ該情報処理装置（２）に対して割り当てられていない該サブ検索要求を分割して、複数のサブ検索要求を作成することを特徴とする、請求の範囲第７項記載の情報検索システム。
【請求項９】
該サブ検索要求について、該ＤＢアフィニティ設定部（９）によって設定された該情報処理装置（２）に関するＤＢアフィニティ，該サブデータベースおよび該処理時間予測部（１１）によって予測された前記処理に要する時間の少なくとも１つ以上について、評価関数を用いて評価する評価部をそなえ、
該割当管理部（８）が、該評価部による評価結果に基づいて、該情報処理装置（２）に該サブ検索要求を抽選的に割り当てることを特徴とする、請求の範囲第１項〜第９項のいずれか１項に記載の情報検索システム。
【請求項１０】
検索対象であるデータベース（３）と当該データベース（３）に対する検索条件とからなる検索要求を、複数の情報処理装置（２）によって並列に処理する情報検索方法であって、
該検索要求に基づいて、該情報処理装置（２）にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成ステップと、
該情報処理装置（２）に該サブ検索要求作成ステップにおいて作成された該サブ検索要求を処理させるべく、該サブ検索要求を該情報処理装置（２）に対して割り当てる割当管理ステップと、
前記複数の情報処理装置（２）による該サブ検索要求に関する処理結果を取得し結合する結合ステップとをそなえることを特徴とする、情報検索方法。
【請求項１１】
検索対象であるデータベース（３）と当該データベース（３）に対する検索条件とからなる検索要求を、複数の情報処理装置（２）に対して並列に処理させる情報検索装置であって、
該検索要求に基づいて、該情報処理装置（２）にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成部と、
該情報処理装置（２）に該サブ検索要求作成部によって作成された該サブ検索要求を処理させるべく、該サブ検索要求を該情報処理装置（２）に対して割り当てる割当管理部（８）と、
前記複数の情報処理装置（２）による該サブ検索要求に関する処理結果を取得し結合する結合部（１２）とをそなえることを特徴とする、情報検索装置。
【請求項１２】
検索対象であるデータベース（３）と当該データベース（３）に対する検索条件とからなる検索要求を、複数の情報処理装置（２）に対して並列に処理させる情報検索機能をコンピュータに実行させるための情報検索プログラムであって、
該検索要求に基づいて、該情報処理装置（２）にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成部と、
該情報処理装置（２）に該サブ検索要求作成部によって作成された該サブ検索要求を処理させるべく、該サブ検索要求を該情報処理装置（２）に対して割り当てる割当管理部（８）と、
前記複数の情報処理装置（２）による該サブ検索要求に関する処理結果を取得し結合する結合部（１２）として、該コンピュータを機能させることを特徴とする、情報検索プログラム。
【請求項１３】
検索対象であるデータベース（３）と当該データベース（３）に対する検索条件とからなる検索要求を、複数の情報処理装置（２）に対して並列に処理させる情報検索機能をコンピュータに実行させるための情報検索プログラムを記録したコンピュータ読取可能な記録媒体であって、
該情報検索プログラムが、
該検索要求に基づいて、該情報処理装置（２）にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成部と、
該情報処理装置（２）に該サブ検索要求作成部によって作成された該サブ検索要求を処理させるべく、該サブ検索要求を該情報処理装置（２）に対して割り当てる割当管理部（８）と、
前記複数の情報処理装置（２）による該サブ検索要求に関する処理結果を取得し結合する結合部（１２）として、該コンピュータを機能させることを特徴とする、情報検索プログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】  本発明は、データベースに対する検索要求を複数の情報処理装置によって並行して処理するために用いて好適な、情報検索システム，情報検索方法，情報検索装置，情報検索プログラムおよび当該プログラムを記録したコンピュータ読取可能な記録媒体に関する。
【背景技術】  近年、データベースを単なるデータの蓄積に用いるだけでなく、データベースに蓄積されたデータから様々な情報を引き出す活用法が注目されている。そこでは、希望する情報を高速に検索する性能が要求されるが、データベースにおいては、一般的に、蓄積されたデータ量が増えると検索の処理量は急激に増え処理時間が増大する傾向がある。
このようなデータベースの検索を高速に行なうために、近年においては、複数のコンピュータ（ワークステーション）を用いて並列検索を行なうことが知られている。
さて、データベースに対して実際に検索処理を行なうコンピュータにおいては、検索対象のデータベースをハードディスク等の外部記憶装置から順次メモリ（主記憶装置）にコピーし、このメモリ上にコピーされたデータに対して検索処理を行なうようになっている。
一般に、データベースが格納されているハードディスク等の外部記憶装置は、データの入出力（Ｉ／Ｏ：Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）が低速であり、この外部記憶装置とメモリとの間におけるデータ転送に時間がかかる。従って、検索処理を行なう場合、この外部記憶装置とメモリとの間におけるデータ転送時間が、検索時間を決める要因となることが多い。
一般的なＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ；オペレーティングシステム）は、ディスクキャッシュと呼ばれる機能を備えており、このディスクキャッシュ機能により、間近に外部記憶装置から読み出したデータがメモリの未使用部分に保存されているので、検索対象であるデータベースが事前に他の検索処理により処理されていた場合には、外部記憶装置からメモリへのデータ転送が不要となることがある。従って、同一のデータベースに対して検索要求が続く場合には、最初の検索要求を除き、外部記憶装置からメモリへのデータ転送が不要となり、結果として検索時間を大幅に短縮することができる可能性がある。
しかし、このディスクキャッシュ機能による検索時間短縮という利益を享受するためには、データベースのサイズがメモリよりも小さい場合に限定される。仮にデータベースのサイズがメモリサイズよりも大きい場合には、データベースの全内容をメモリ上に保存することができないからである。
図１２は従来の情報検索システムにおけるデータベースのサイズと検索時間との関係を模式的に示す図である。この図１２に示すように、検索対象のデータベースのサイズがコンピュータ（計算機）のメモリサイズよりも大きくなると、たとえ同一のデータベースに対する検索処理が事前にあったとしても、ハードディスク等の外部記憶装置に対するアクセスが発生し、外部記憶装置からのデータ転送がボトルネックとなり、データベースサイズが小さいときと比較して大幅に検索時間が長くなる。
従って、従来の情報検索システムにおいては、コンピュータに装備されているメモリサイズよりも大きいサイズのデータベースを対象とする検索処理に対しては、外部記憶装置へのアクセスを大幅に減らす良い方法がなく、検索時間が長くなるという課題がある。
本発明は、このような課題に鑑み創案されたもので、データベースに対する検索要求を複数の情報処理装置によって並行して処理する場合において、各情報処理装置において検索要求を高速に処理することができるようにして、データベースに対して高速に検索を行なうことができるようにした、情報検索システム，情報検索方法，情報検索装置，情報検索プログラムおよび当該プログラムを記録したコンピュータ読取可能な記録媒体を提供することを目的とする。
【発明の開示】
上記の目的を達成するために、本発明の情報検索システムは、複数の情報処理装置をそなえ、検索対象であるデータベースとこのデータベースに対する検索条件とからなる検索要求を、複数の情報処理装置によって並列に処理する情報検索システムであって、データベースに基づいて、情報処理装置にそなえられた記憶部の容量以下のサイズの複数のサブデータベースを作成するサブデータベース作成部と、情報処理装置にサブデータベースに対する検索要求を処理させるべくサブデータベース作成部によって作成されたサブデータベースをサブ検索要求として情報処理装置に対して割り当てる割当管理部と、複数の情報処理装置によるサブ検索要求に関する処理結果を取得し結合する結合部とをそなえることを特徴としている。
なお、検索条件を分割してサブ検索条件を作成するサブ検索条件作成部をそなえ、割当管理部が、情報処理装置にサブ検索条件を用いてサブデータベースを検索させるべく、サブ検索条件をサブ検索要求として情報処理装置に対して割り当ててもよい。
また、情報処理装置に対して、割当管理部によって優先的に割り当てるサブデータベースに関する情報をＤＢアフィニティとして設定可能なＤＢアフィニティ設定部をそなえ、割当管理部が、ＤＢアフィニティに基づいて、情報処理装置にサブ検索要求を割り当ててもよい。
さらに、ＤＢアフィニティ設定部が、優先的に処理を行なうサブデータベースを予め設定可能であってもよく、又、ＤＢアフィニティ設定部が、情報処理装置におけるサブ検索要求の処理履歴に基づいて、ＤＢアフィニティを設定してもよい。
また、情報処理装置にそなえられた記憶部の空き容量を管理する空き容量管理部をそなえ、割当管理部が、空き容量管理部によって管理される情報処理装置の記憶部の空き容量に基づいて、空き容量以下のサイズのサブデータベースを情報処理装置に対して割り当ててもよい。
さらに、情報処理装置によるサブ検索要求に関する処理に要する時間を予測可能な処理時間予測部をそなえ、割当管理部が、処理時間予測部によって予測された処理に要する時間に基づいて、この時間が長いサブ検索要求から優先的に、サブ検索要求を情報処理装置に対して割り当ててもよい。
また、サブデータベース作成部もしくはサブ検索条件作成部が、割当管理部によって未だ情報処理装置に対して割り当てられていないサブ検索要求を分割して、複数のサブ検索要求を作成してもよい。
さらに、サブ検索要求について、ＤＢアフィニティ設定部によって設定された情報処理装置に関するＤＢアフィニティ，サブ検索要求としてのデータベースおよび処理時間予測部によって予測された前記処理に要する時間の少なくとも１つ以上について、評価関数を用いて評価する評価部をそなえ、割当管理部が、評価部による評価結果に基づいて、情報処理装置にサブ検索要求を抽選的に割り当ててもよい。
また、本発明の情報検索方法は、検索対象であるデータベースとこのデータベースに対する検索条件とからなる検索要求を、複数の情報処理装置によって並列に処理する情報検索方法であって、検索要求に基づいて、情報処理装置にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成ステップと、情報処理装置にサブ検索要求作成ステップにおいて作成されたサブ検索要求を処理させるべく、サブ検索要求を情報処理装置に対して割り当てる割当管理ステップと、複数の情報処理装置によるサブ検索要求に関する処理結果を取得し結合する結合ステップとをそなえることを特徴としている。
さらに、本発明の情報検索装置は、検索対象であるデータベースとそのデータベースに対する検索条件とからなる検索要求を、複数の情報処理装置に対して並列に処理させる情報検索装置であって、検索要求に基づいて、情報処理装置にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成部と、情報処理装置にサブ検索要求作成部によって作成されたサブ検索要求を処理させるべく、サブ検索要求を情報処理装置に対して割り当てる割当管理部と、複数の情報処理装置によるサブ検索要求に関する処理結果を取得し結合する結合部とをそなえることを特徴としている。
また、本発明の情報検索プログラムは、検索対象であるデータベースと当該データベースに対する検索条件とからなる検索要求を、複数の情報処理装置に対して並列に処理させる情報検索機能をコンピュータに実行させるための情報検索プログラムであって、検索要求に基づいて、情報処理装置にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成部と、情報処理装置にサブ検索要求作成部によって作成されたサブ検索要求を処理させるべく、サブ検索要求を情報処理装置に対して割り当てる割当管理部と、複数の情報処理装置によるサブ検索要求に関する処理結果を取得し結合する結合部として、コンピュータを機能させることを特徴としている。
さらに、本発明のコンピュータ読取可能な記録媒体は、上述した情報検索プログラムを記録したものである。
このように、本発明の情報検索システム，情報検索方法，情報検索装置，情報検索プログラムおよび当該プログラムを記録したコンピュータ読取可能な記録媒体によれば、以下の効果ないし利点がある。
（１）データベースに基づいて、情報処理装置にそなえられた記憶部の容量以下のサイズの複数のサブデータベースを作成し、情報処理装置にサブデータベースに対する検索要求を処理させるべく、サブデータベースをサブ検索要求として情報処理装置に対して割り当てることにより、一度サブ検索要求に対する処理を行なった情報処理装置において、その記憶部には検索対象のサブデータベースがキャッシュされる。これにより、その情報処理装置においては、サブデータベースにアクセスするためにアクセス速度が遅いハードディスクへのアクセス（ディスクアクセス）を行なう必要がなく、サブデータベースに対する検索処理を高速に行なうことができる。
（２）検索条件を分割してサブ検索条件を作成することにより、適当な大きさ（予測処理時間の長さ）のサブ検索要求を容易に作成することができ利便性が高い。
（３）情報処理装置に対して優先的に割り当てるサブデータベースに関する情報をＤＢアフィニティとして設定し、このＤＢアフィニティに基づいて、情報処理装置にサブ検索要求（サブデータベース）を割り当てることにより、情報処理装置に対して容易にサブ検索要求を割り当てることができる。
（４）ＤＢアフィニティとして優先的に処理を行なうサブデータベースを予め設定することにより、ＤＢアフィニティを確実に設定することができる。
（５）情報処理装置におけるサブ検索要求の処理履歴に基づいて、ＤＢアフィニティを設定することにより、容易にＤＢアフィニティを設定することができる。
（６）情報処理装置にそなえられた記憶部の空き容量を管理し、その空き容量以下のサイズのサブデータベースを情報処理装置に対して割り当てることにより、容易に且つ確実に、情報処理装置の記憶部の空き容量以下のサイズのサブデータベースを情報処理装置に対して割り当てることができる。
（７）情報処理装置による該サブ検索要求に関する処理に要する時間を予測し、その時間が長いサブ検索要求から優先的に、サブ検索要求を情報処理装置に対して割り当てることにより、複数のサブ検索要求を複数の情報処理装置に対して効率よく割り当てることができる。
（８）未だ該情報処理装置に対して割り当てられていないサブ検索要求を分割して、複数のサブ検索要求を作成することにより、システム全体での総処理時間（検索時間）が短くなり、結果的に処理速度を短縮することができ、又、ＤＢアフィニティが適合しないジョブを割り当てることによるリスク（サブデータベースの読み出し負荷）を低減することができる。
（９）サブ検索要求について、ＤＢアフィニティ，サブデータベースおよび処理に要する予測時間の少なくとも１つ以上について、評価関数を用いて評価し、この評価結果に基づいて、情報処理装置にサブ検索要求を抽選的に割り当てることにより、容易且つ確実に各情報処理装置にジョブを割り当てることができる。
【図面の簡単な説明】  図１は本発明の一実施形態としての情報検索システムの模式的な構成を示す図である。
図２〜図４はいずれも本発明の一実施形態としての情報検索システムにおけるサブ検索要求（ジョブ）の作成手法を説明するための図である。
図５は本発明の一実施形態としての情報検索システムにおける不均等ジョブ作成手法の例を説明するための図である。
図６は本発明の一実施形態としての情報検索システムにおける割当管理部による動的なジョブ割当手法を説明するための図である。
図７は本発明の一実施形態としての情報検索システムにおけるサブ検索要求作成部により作成されたジョブの例を示す図である。
図８は本発明の一実施形態としての情報検索システムにおける割当管理部によるジョブの割当手法を説明するためのフローチャートである。
図９は本発明の一実施形態としての情報検索システムにおける割当管理部によって各ＰＣにジョブが割り当てられた状態の例を示す図である。
図１０は本発明の一実施形態としての情報検索システムにおける割当管理部による他のジョブの割当手法を説明するためのフローチャートである。
図１１は本発明の一実施形態としての情報検索システムにおける割当管理部により各ＰＣにジョブが割り当てられた他の状態の例を示す図である。
図１２は従来の情報検索システムにおけるデータベースのサイズと検索時間との関係を模式的に示す図である。
【発明を実施するための最良の形態】  以下、図面を参照して本発明の実施の形態を説明する。
（Ａ）一実施形態の説明
図１は本発明の一実施形態としての情報検索システムの模式的な構成を示す図である。本情報検索システム１は、検索要求入力部４１から入力された、データベース３に対する検索要求を、複数（本実施形態では４つ）のＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ：情報処理装置）２ａ，２ｂ，２ｃ，２ｄによって並列に処理するものであり、検索要求入力部４１，検索結果出力部４２，管理サーバ２０，データベース３およびＰＣ２ａ，２ｂ，２ｃ，２ｄをそなえて構成されている。
データベース（検索対象）３は、何らかの情報（データ）を網羅的に収集し、蓄積したもの（情報群）であって、情報の追加や削除、更新、検索を処理するための構造を持っており、検索要求入力部４１から入力される検索要求に基づいて検索され、その検索要求に応じた情報を提供することができるものである。
検索要求入力部４１はオペレータが検索要求を入力するためのものであり、検索対象のデータベース（本実施形態においてはデータベース３）や、そのデータベースに対して希望する検索条件を入力するためのものである。この検索要求入力部４１は、例えばコンピュータシステムにおけるキーボードやマウス等により実現されるようになっている。
また、検索要求は、検索対象であるデータベースとそのデータベースに対する検索条件とからなる。本実施形態においては、１つのデータベース３のみがそなえられているが、これに限定されるわけではなく、複数のデータベースをそなえ、これらのデータベースの中から、少なくとも１つの特定のデータベースを検索対象にしてもよく、更に、その少なくとも１つのデータベースをオペレータが検索対象として任意に選択できるようにしてもよい。
そして、検索要求入力部４１においては、オペレータが、任意の検索条件を入力することができるようになっている。
検索結果出力部４２は、検索要求入力部４１から入力された検索要求についての検索結果を管理サーバ２０から取得し、オペレータ等に対して出力するものである。この検索結果出力部４２は、例えば、ディスプレイ装置やプリンタ等の各種の出力装置により実現されるようになっている。
ＰＣ２ａ，２ｂ，２ｃ，２ｄは、検索要求入力部４１から入力された検索要求をそれぞれ処理する情報処理装置（計算機）である。本実施形態においては、ＰＣ２ａ，２ｂ，２ｃ，２ｄは、管理サーバ２０において、サブ検索要求作成部５によって作成され且つ割当管理部８によって割り当てられたサブ検索要求（詳細は後述）をそれぞれ処理し、又、その処理結果を管理サーバ２０に送信するようになっている。
なお、以下、ＰＣを示す符号としては、複数のＰＣのうち１つを特定する必要があるときには符号２ａ，２ｂ，２ｃ，２ｄを用いるが、任意のＰＣを指すときには符号２を用いる。
ＰＣ２ａ，２ｂ，２ｃ，２ｄは、図１に示すように、それぞれＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０，ＲＡＭ３１，ＲＯＭ３２，ハードディスク３３および通信制御部３４をそなえて構成されている。なお、図中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
ＲＯＭ３２にはＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）と呼ばれる、ＰＣ２における基本的な入出力を行なうためのプログラム等が予め記録されており、ハードディスク３３には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やアプリケーションプログラム等のＰＣ２を機能させるための種々のプログラムやデータ等が保存されている。
そして、ＣＰＵ３０が、これらのＲＯＭ３２やハードディスク３３に格納された種々のプログラムを実行することにより、サブ検索要求（後述）を処理することができるようになっている。
ＲＡＭ（記憶部）３１は、ＣＰＵ３０が種々の処理を行なう際にデータ等を一時的に保存・展開するためのものであり、本実施形態においては、サブ検索要求としてのサブデータベース（詳細は後述）が、このＲＡＭ３１上に展開されるようになっている。
また、本情報検索システム１においては、便宜上、各ＰＣ２ａ，２ｂ，２ｃ，２ｄはそれぞれ同容量のＲＡＭ３１をそなえているものとする。
ＰＣ２は、ディスクキャッシュ機能をそなえており、使用頻度の高いデータや最後に使用したデータをＲＡＭ３１上に保持（キャッシュ）するようになっている。これにより、そのデータに対して読み出し要求があった時に、ＣＰＵ３０は、アクセス速度の遅いハードディスク３３やデータベース３等からデータを読み込む必要がなく、ＲＡＭ３１上のデータを読み出すことができ、そのデータに対して処理を高速に行なうことができる。
そして、ＰＣ２においては、このディスクキャッシュ機能により、一度処理を行なったサブデータベースがＲＡＭ３１上に保持されるようになっている。なお、新たなデータをＲＡＭ３１に読み込む場合には、ＲＡＭ３１にキャッシュされたデータは、先入れ先出し方式によって古いデータから順番にＲＡＭ３１から追い出されるようになっている。
通信制御部３４は、ＰＣ２と外部との間における種々のデータの通信を制御するものであり、例えば、管理サーバ２０から送信されるサブ検索要求（後述）を受信したり、ＰＣ２において処理した検索結果を管理サーバ２０に送信したりするための制御を行なうようになっている。
管理サーバ２０は、検索要求入力部４１によって入力された検索要求を複数のＰＣ２に並列に処理させるものであり、更に、それらの各ＰＣ２による処理結果を取得して結合し、その検索結果を検索結果出力部４２に対して出力するものである。
この管理サーバ２０は、図１に示すように、サブ検索要求作成部５，割当管理部８，ＤＢアフィニティ設定部９，メモリ管理部（空き容量管理部）１０，処理時間予測部１１および結合部１２をそなえて構成されている。
メモリ管理部（空き容量管理部）１０は、あらかじめ各ＰＣ２のＲＡＭ３１のサイズを取得して保持しており、これにより、後述するサブデータベース作成部６が、各ＰＣ２のＲＡＭ３１のサイズを知ることができるようになっている。
また、メモリ管理部１０は、各ＰＣ２のＲＡＭ３１の使用状況を管理するようになっており、割当管理部８（詳細は後述）によって各ＰＣ２に対してどのようなサブ検索要求（サブデータベース）を割り当てたかを管理することにより、各ＰＣ２のＲＡＭ３１にキャッシュされているサブデータベースのサイズを管理するようになっていて、これにより、各ＰＣ２のＲＡＭ３１の使用状況および空き容量（残容量；未使用領域のサイズ）を管理することができるようになっている。
本情報検索システム１においては、各ＰＣ２は、それぞれ管理サーバ２０（割当管理部８）によって割り当てられる処理（サブ検索要求）のみを行なうようになっており、これにより、各ＰＣ２のＲＡＭ３１には、それぞれ割当管理部８によって割り当てられたサブデータベースがキャッシュされるようになっている。
処理時間予測部１１は、各ＰＣ２によるサブ検索要求に関する処理に要する時間を予測するものであって、例えば、ＰＣ２に割り当てられるサブデータベースのサイズやサブ検索条件の内容，ＰＣ２（ＣＰＵ３０）の仕様や性能等の情報に基づいて、そのその処理時間を予測することができるようになっている。なお、処理時間予測部１１は、ＰＣ２に対して各処理に要する時間を問い合わせてもよく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
サブ検索要求作成部５は、検索要求入力部４１から入力された検索要求に基づいて、ＰＣ２に処理させるためのサブ検索要求を作成するものである。このサブ検索要求作成部５は、データベース分割とクエリー分割との２つの手法を用いて複数のサブ検索要求（以下、ジョブという場合もある）を作成するようになっており、図１に示すように、サブデータベース作成部６およびサブ検索条件作成部７をそなえて構成されている。
図２〜図４はそれぞれ本発明の一実施形態としての情報検索システム１におけるサブ検索要求（ジョブ）の作成手法を説明するための図であり、図２はデータベース分割によって複数のジョブを作成する手法を説明するための図、図３はクエリー分割によって複数のジョブを作成する手法を説明するための図、図４はデータベース分割およびクエリー分割によって複数のジョブを作成する手法を説明するための図である。
なお、これらの図２〜図４においては、検索対象であるデータベースＤＢ１（図中縦軸）と、そのデータベースに対するクエリー（Ｑｕｅｒｙ）Ｑ［検索条件；図中横軸］とからなる検索要求を分割して、複数のジョブ（サブ検索要求）を作成する例を示している。
サブデータベース作成部６は、データベース３に基づいて、各ＰＣ２にそなえられたＲＡＭ３１の容量以下のサイズの複数のサブデータベースを作成するものである。図２に示す例においては、サブデータベース作成部６は、データベースＤＢ１とクエリーＱとからなる検索要求について、そのデータベースＤＢ１をデータベース分割によってサブデータベースＳＤＢ１，ＳＤＢ２に分割することにより、サブデータベースＳＤＢ１に対してクエリーＱで検索を行なうジョブ１と、サブデータベースＳＤＢ２に対してクエリーＱで検索を行なうジョブ２との２つジョブを作成している。
このサブデータベース作成部６は、メモリ管理部１０に管理されている各ＰＣ２のＲＡＭ３１のサイズの情報に基づいて、検索要求入力部４１によって入力された検索要求に関するデータベース３から、各ＰＣ２のＲＡＭ３１のサイズ以下となるようなサブデータベースを複数作成するようになっている。
例えば、各ＰＣ２がそれぞれ２５６ＭＢのＲＡＭ３１をそなえている場合には、サブデータベース作成部６は、２５６ＭＢ以下のサイズのサブデータベースを複数作成する。
一般に、データベースは、多数の独立したエントリから構成されていることが多い。そのため、このエントリを単位としてデータベースを分割することが容易である。又、エントリが多いという特性上、ＰＣ２の台数が多い場合であっても、ＰＣ２の台数分の予測検索時間の均等なサブデータベースを作成し易いという特徴もある。
サブ検索条件作成部７は、検索要求入力部４１から入力された検索条件（クエリー；検索要求）に基づいて、その検索条件を相互に依存関係の無い複数のサブ検索条件に分割することにより、各ＰＣ２が処理する複数のジョブを作成するようになっている。図３に示す例においては、サブ検索条件作成部７は、データベースＤＢ１とクエリーＱとからなる検索要求について、その検索条件（クエリー）Ｑをクエリー分割によってサブ検索条件（サブクエリー）ＳＱＡ，ＳＱＢに分割することにより、データベースＤＢ１に対してサブ検索条件ＳＱＡで検索を行なうジョブＡと、データベースＤＢ１に対してサブ検索条件ＳＱＢで検索を行なうジョブＢとの２つジョブを作成している。
一般に、検索条件において、複数の検索条件は相互に依存していることが多いので、上述したデータベース分割と比較すると検索条件（クエリー）は分割することが困難である。しかしながら、もし分割が可能である場合には、それらの分割後のサブ検索条件は互いに独立していることが多く、一旦分割できた場合には、それらの各サブ検索条件を複数のＰＣ２で並列に処理した場合と、その分割前の検索条件を単一の計算機（ＰＣ２）で処理した場合とで、その検索結果を等しくすることが多い。従って、結合部１２によって行なわれるそれらのサブ検索条件についての検索結果のマージ処理（後述）においては、その負荷が比較的軽いという特徴がある。
なお、ＢＬＡＳＴ（Ｂａｓｉｃ  Ｌｏｃａｌ  Ａｌｉｇｎｍｅｎｔ  Ｓｅａｒｃｈ  Ｔｏｏｌ）やＦＡＳＴＡ等のバイオインフォマティックス分野においてよく使用される相同性検索には、完全に独立した検索要求の集合がクエリーとなっていることがある。このような場合には、結合部１２においては、クエリー分割によるマージ負荷はほとんど無いといえる。
また、本実施形態においては、サブデータベース作成部６によるデータベース分割とともに、サブ検索条件作成部７によるクエリー分割を併用して行なうことができるようになっている。データベース分割は、分割が容易である一方で、それらの検索結果のマージの負荷が重いという特徴を有している。その逆に、クエリー分割は、分割が困難である一方で、それらの検索結果のマージの負荷が軽いという特徴を有している。
上述したように、データベース分割とクエリー分割とは、データベース分割の容易性および検索結果のマージの容易性において相反する特徴を有していると言えるが、これらのデータベース分割とクエリー分割との双方を適用可能である場合には、両分割手法の長所を生かしてジョブを作成することが望ましい。例えば、先ず、マージ負荷の軽いクエリー分割でジョブを作成し、その後、クエリー分割だけでは必要な数やサイズのジョブを作成できない場合に、データベース分割により更に複数のジョブに分割する（図４参照）ことにより、両分割手法の特徴を生かすことができる。
図４に示す例においては、サブデータベース作成部６は、データベースＤＢ１とクエリーＱとからなる検索要求について、そのデータベースＤＢ１をデータベース分割によってサブデータベースＳＤＢ１，ＳＤＢ２に分割しており、又、サブ検索条件作成部７は、データベースＤＢ１とクエリーＱとからなる検索要求について、その検索条件（クエリー）Ｑをクエリー分割によってサブ検索条件（サブクエリー）ＳＱＡ，ＳＱＢに分割している。
これにより、サブ検索要求作成部５（サブデータベース作成部６，サブ検索条件作成部７）は、サブデータベースＳＤＢ１に対してサブ検索条件ＳＱＡで検索を行なうジョブ１Ａ，サブデータベースＳＤＢ１に対してサブ検索条件ＳＱＢで検索を行なうジョブ１Ｂ，データベースＳＤＢ２に対してサブ検索条件ＳＱＡで検索を行なうジョブ２Ａおよび、サブデータベースＳＤＢ２に対してサブ検索条件ＳＱＢで検索を行なうジョブ２Ｂの４つのジョブを作成している。
また、サブ検索要求作成部５においては、サブデータベース作成部６およびサブ検索条件作成部７によって、ＰＣ２における予測処理時間（検索時間）が異なる（不均等な）複数のサイズのジョブを作成するようになっている（不均等ジョブ作成）。このような不均等ジョブ作成手法としては、例えば、検索時間とデータベースのエントリとの相関が非常に高い場合においては、サブデータベース作成部６によって、エントリ数が異なるサブデータベースを複数作成することにより実現することができる。
図５は本発明の一実施形態としての情報検索システム１における不均等ジョブ作成手法の例を説明するための図である。不均等ジョブを作成するためには、図５に示すように、例えば、先ず、予測検索時間がほぼ等しくなるジョブをＰＣ２の台数と同数（本実施形態では４つ）作成し、次に、これらの各ジョブをそれぞれ予測検索時間が４：２：１の比率となるように３つに分割することによって作成する。これにより、４台のＰＣ２に対して１２個の不均等ジョブを容易に作成することができる。なお、便宜上、図５に示す例においては、作成された各ジョブに符号１１，１２，１３，２１，２２，２３，３１，３２，３３，４１，４２および４３を付して示している。
ＤＢアフィニティ設定部９は、割当管理部８によってＰＣ２に対して優先的に割り当てるサブデータベースに関する情報をＤＢアフィニティ（Ｄａｔａ  Ｂａｓｅ  Ａｆｆｉｎｉｔｙ）として設定可能なものである。すなわち、ＤＢアフィニティ設定部９は、ＰＣ２毎に、そのＰＣ２が検索対象とすべきサブデータベースを予め設定することができるようになっている。なお、個々のＰＣ２に対してＤＢアフィニティとして複数のサブデータベースを指定してもよいが、１つのＰＣ２に対してＤＢアフィニティとして設定するサブデータベースのサイズの総和は、そのＰＣ２のＲＡＭ３１のサイズ（メモリサイズ）を超えないようにする。
なお、ＤＢアフィニティ設定部９は、各ＰＣ２が優先的に処理を行なうサブデータベースをオペレータや管理者等が予め設定してもよく、又、各ＰＣ２におけるサブデータベースの処理履歴に基づいて、過去に処理を行なったサブデータベースを優先的にＤＢアフィニティとして設定してもよい。
割当管理部８は、サブ検索要求作成部５（サブデータベース作成部６，サブ検索条件作成部７）によって作成されたサブ検索要求をＰＣ２に対して割り当てるものである。すなわち、割当管理部８は、ＰＣ２にサブデータベースに対する検索要求を処理させるべく、サブデータベース作成部６やサブ検索条件作成部７によって作成されたサブデータベースやサブ検索条件をサブ検索要求（ジョブ）としてＰＣ２に対して割り当てるようになっている。
また、割当管理部８は、ＰＣ２にジョブを割り当てる際には、ＤＢアフィニティ設定部９に設定されたＤＢアフィニティを参照し、ＤＢアフィニティが一致するサブデータベースをそのＰＣ２に割り当てるようになっている。
すなわち、本情報検索システム１においては、ＤＢアフィニティとしてＰＣ２毎に担当するサブデータベースを予め設定するようになっており、割当管理部８によって、このＤＢアフィニティに従ってジョブの割り当てが行なわれるようになっている。これにより、一度サブ検索要求に対する処理を行なったＰＣ２には、そのＲＡＭ３１には検索対象のサブデータベースがキャッシュされる。
そして、そのサブデータベースに関する検索要求については、ＤＢアフィニティに従ってそのＰＣ２に積極的に処理させることにより、ＰＣ２においては、サブデータベースにアクセスするためにディスクアクセスを行なう必要がなく、サブデータベースに対する検索処理を高速に行なうことができる。
また、割当管理部８は、動的なジョブ割当手法を用いて、各ＰＣ２に対してジョブを割り当てるようになっている。動的なジョブ割当手法とは、文字通りジョブを動的に各ＰＣ２に割り当てる手法である。動的なジョブ割当は、ＰＣ２の台数以上のジョブを用意し、これらのジョブの中から予測検索時間の長いジョブから順番に各ＰＣ２に割り当てて処理を行なわせ、処理が完了したＰＣ２に対して、残りのジョブの中から予測検索時間の長いジョブを選択して順次割り当て、これらの処理をジョブが無くなるまで繰り返し行なうことにより実現することができる。なお、動的なジョブ割当は、処理時間予測部１１による、各ＰＣ２におけるジョブの検索時間の予測精度が低い場合に特に有効である。
図６は本発明の一実施形態としての情報検索システム１における割当管理部８による動的なジョブ割当手法を説明するための図であり、サブ検索要求作成部５によって作成された複数のジョブ（図５参照）を４台のＰＣ２ａ，２ｂ，２ｃ，２ｄに動的に割り当てる例を示す図である。なお、図６に示す例においては、ジョブ４１，４２，４３について、それぞれ処理時間予測部１１による予測検索時間の２倍の時間がかかってしまったものとする。
かかる図６に示す例においては、最初に予測検索時間が長いジョブ１１，２１，３１，４１をＰＣ２ａ，２ｂ，２ｃ，２ｄに対してそれぞれ割り当てて処理を行なう。その後、処理が完了したＰＣ２ａ，２ｂ，２ｃに対して、残りのジョブの中から予測検索時間の長いジョブ１２，２２，３２をそれぞれ割り当て、更に、それらの処理が完了した後に、ＰＣ２ａ，２ｂ，２ｃに対して、それぞれジョブ４２，１３，２３を割り当てる。そして、その後、処理が完了したＰＣ２ｂ，２ｃに対してジョブ３３，４３をそれぞれ割り当てる。
このように、ＰＣ２に対して動的にジョブを割り当てることにより、処理時間予測部１１による検索時間の予測精度が悪い場合においても、複数のジョブを高速に処理することができる。
なお、上述の如き動的なジョブの割当は、静的なジョブの割当と比較してジョブ管理が複雑であり、ジョブ管理の負荷が大きいので、処理時間予測部１１による検索時間の予測精度が十分に良い場合には、割当管理部８は、必ずしも動的なジョブの割当を行なわずに静的なジョブの割り当てを行なってもよい。
静的なジョブ割当手法は、文字通りジョブを静的に各ＰＣ２に割り当てる手法である。静的なジョブ割当は、例えば、検索時間とデータベースのエントリ数との相関が非常に高い場合に、エントリ数が互いに等しくなるようにデータベースを分割してＰＣ２の台数分のジョブを作成し、それらのジョブを静的に各ＰＣ２に割り当てるだけで、ＰＣ２間における負荷バランスを保つことができる。
なお、予測検索時間の予測精度が低い場合には、静的なジョブ割当手法よりも動的なジョブ割当手法の方が、全体的な処理時間を短縮することができると言える。例えば、ＰＣ２の台数分のジョブを作成し、各ＰＣ２にこれらのジョブをそれぞれ処理させた場合において、１つのジョブの処理に他のジョブの２倍の時間がかかってしまった場合には、その時間がかかったジョブの検索時間がシステム１全体の性能を律速することになる。従って、このような場合には、ＰＣ２を複数用いて並列に処理させることによる効果が不明確となる。
すなわち、静的なジョブ割当手法は、動的なジョブ割当手法と比較して、ジョブ管理が容易であり、事前に各ジョブの処理時間（予測検索時間）を高い精度で予測できる場合に有効である。
また、割当管理部８は、ＰＣ２に割り当てるジョブを決定する際に、評価関数を用いてまだ割り当てられていないジョブの評価値を算出し、ＰＣ２に割り当てるジョブを決定してもよい。評価関数の簡単な例としては、以下のようなものが考えられる。
（１）該当ジョブの検索対象サブデータベースがＰＣ２のＤＢアフィニティと一致する場合
評価値＝  ジョブの予測検索時間
（２）該当ジョブの検索対象サブデータベースがＰＣ２のＤＢアフィニティと一致しない場合
評価値＝  ジョブの予測検索時間／２
上記のような評価関数を用いる場合には、割当管理部８は、まだ割り当てられていないジョブの中から最も評価値の高いジョブを選択し、ＰＣ２に割り当てることとなる。
結合部１２は、各ＰＣ２によるジョブ（サブ検索要求）に関する処理結果（検索結果）を取得し結合（マージ）するものであり、検索要求入力部４１から入力された検索要求に対する検索結果を作成するものである。この結合部１２によって結合された検索結果は、検索結果出力部４２に送信されるようになっている。
上述の如く構成された本発明の一実施形態としての情報検索システム１において、検索要求入力部４１によってユーザにより検索要求（検索対象のデータベースおよび検索条件）が入力されると、その検索要求が管理サーバ２０に送信される。
管理サーバ２０においては、サブ検索要求作成部５が、検索要求入力部４１から入力された検索要求に基づいて、複数のＰＣ２によって処理されるべき複数のジョブ（サブ検索要求）を作成する（サブ検索要求作成ステップ）。具体的には、サブデータベース作成部６が、データベース３に基づいて、各ＰＣ２のＲＡＭ３１の容量以下になるような複数のサブデータベースを作成する。又、サブ検索条件作成部７は、必要に応じて、検索要求入力部４１から検索要求として入力された検索条件に基づいてサブ検索要求を作成する。
また、サブ検索要求作成部５は、処理時間予測部１１による予測処理時間に基づいて不均等ジョブを作成するようになっている。
図７は本発明の一実施形態としての情報検索システム１におけるサブ検索要求作成部５により作成されたジョブの例を示す図であり、４台のＰＣ２（２ａ，２ｂ，２ｃ，２ｄ）によって、各ＰＣ２のＲＡＭ３１のメモリサイズ（例えば、２５６ＭＢ）の１．５倍のサイズ（例えば、３８４ＭＢ）のデータベース３を検索対象とする検索要求に基づいて、複数のジョブを作成する例を示すものである。
この図７に示す例においては、サブデータベース作成部６によって、データベース３に基づいて２つのサブデータベースＳＤＢ１，ＳＤＢ２が作成されており、これらのサブデータベースＳＤＢ１，ＳＤＢ２は、それぞれ各ＰＣ２のＲＡＭ３１のメモリサイズよりも小さいサイズとなるように形成されている。
また、図７に示す例においては、サブ検索条件作成部７は、検索要求入力部４１から入力された検索要求を分割して４つのサブ検索条件ＳＱＡ，ＳＱＢ，ＳＱＣ，ＳＱＤを作成している。
すなわち、図７に示す例においては、サブデータベース作成部６およびサブ検索条件作成部７により、８つのジョブ（サブ検索要求）１Ａ，１Ｂ，１Ｃ，１Ｄ，２Ａ，２Ｂ，２Ｃ，２Ｄが作成されている。
なお、処理時間予測部１１によって予測された、これらのジョブの予測検索時間は、ジョブ１Ｂ，１Ｄ，２Ｂ，２Ｄが互いに略同じ予測検索時間を要するとともに、ジョブ１Ａ，１Ｃ，２Ａ，２Ｃが互いに略同じ予測検索時間を要し、更に、ジョブ１Ａ，１Ｃ，２Ａ，２Ｃが、ジョブ１Ｂ，１Ｄ，２Ｂ，２Ｄの略２倍の予測検索時間を要するものとする。
また、図７に示す例においては、ＤＢアフィニティ設定部９において、ＰＣ２ａおよびＰＣ２ｂに対してはサブデータベースＳＤＢ１を優先的に割り当てるようにＤＢアフィニティが設定されており、ＰＣ２ｃおよびＰＣ２ｄに対してはサブデータベースＳＤＢ２を優先的に割り当てるようにＤＢアフィニティが設定されているものとする。
そして、割当管理部８が、上述の如くサブ検索要求作成部５によって作成された各ジョブ１Ａ，１Ｂ，１Ｃ，１Ｄ，２Ａ，２Ｂ，２Ｃ，２Ｄを、ＤＢアフィニティ設定部９に設定されたＤＢアフィニティに従って、各ＰＣ２に対してそれぞれ割り当てる（割当管理ステップ）。又、この際、割当管理部８は動的なジョブ割当手法を用いて、ＰＣ２に各ジョブを割り当てる。
ここで、本発明の一実施形態としての情報検索システム１における割当管理部８によるジョブの割当手法を、図９を参照しながら図８に示すフローチャート（ステップＡ１０〜Ａ８０）に従って説明する。なお、図９は本発明の一実施形態としての情報検索システム１における割当管理部８によって各ＰＣ２にジョブが割り当てられた状態の例を示す図である。
割当管理部８は、未割り当てのジョブがあるか否かを判断し（ステップＡ１０）、未割り当てのジョブが無い場合には（ステップＡ１０のＮＯルート参照）、処理を終了する。
また、未割り当てのジョブがある場合には（ステップＡ１０のＹＥＳルート参照）、割当管理部８は、ジョブが割り当てられるのを待っているＰＣ２があるか、すなわち、ジョブを処理できる状態にあるＰＣ２があるか否かを判断する（ステップＡ２０）。
ジョブの割り当てを待っているＰＣ２がある場合には（ステップＡ２０のＹＥＳルート参照）、割当管理部８は、ＤＢアフィニティ設定部９を参照して、そのＰＣ２についてＤＢアフィニティが適合（一致）するジョブがあるか否かを判断する（ステップＡ６０）。そのＰＣ２に対して、ＤＢアフィニティが適合するジョブがある場合には（ステップＡ６０のＹＥＳルート参照）、処理時間予測部１１による予測検索時間を参照して、ＤＢアフィニティが適合するジョブのうち、予測検索時間が最も長いジョブをそのＰＣ２に対して割り当て（ステップＡ８０）、ステップＡ１０に移行する。
また、そのＰＣ２に対してＤＢアフィニティが適合するジョブが無い場合には（ステップＡ６０のＮＯルート参照）、そのＰＣ２へのジョブの割り当てを終了して（ステップＡ５０）、ステップＡ２０に戻る。
一方、ジョブの割当てを待っているＰＣ２が無い場合には（ステップＡ２０のＮＯルート参照）、割当管理部８は、ジョブを実行中のＰＣ２があるか否かを判断する（ステップＡ３０）。ジョブを実行中のＰＣ２がある場合には（ステップＡ３０のＹＥＳルート参照）、割当管理部８は、そのＰＣ２のジョブが完了するのを待ち（ステップＡ７０）、ステップＡ１０に戻る。又、ジョブを実行中のＰＣ２が無い場合には（ステップＡ３０のＮＯルート参照）、割当管理部８は、本情報検索システム１のオペレータ等に対してエラーを示すメッセージを出力して（ステップＡ４０）、ステップＡ１０に戻る。
上述の如きジョブの割当手法により、図９に示すように、各ＰＣ２に対してジョブが動的に割り当てられる。なお、図９に示す例においては、ジョブ２Ｃの処理には処理時間予測部１１によって予測された予測検索時間よりも１．５倍の時間がかかり、ジョブ２Ｄの処理には処理時間予測部１１によって予測された予測検索時間よりも２倍の時間がかかったものとする。
上述の如く、割当管理部８が各ＰＣ２に対してジョブを割り当てると、各ＰＣ２はそれぞれ割り当てられたジョブを処理する。すなわち、各ＰＣ２は、サブデータベースに対してサブ検索条件に基づいて検索を行ない、その検索結果を管理サーバ２０に対して送信する。
なお、ＰＣ２において、各ＰＣ２に割り当てられたサブデータベースのサイズは、それぞれ各ＰＣ２にそなえられたＲＡＭ３１のサイズよりも小さいので、サブデータベースに対してサブ検索条件の検索を行なう際には、ＲＡＭ３１上に検索対象であるサブデータベースを全て展開して検索を行なうことができ、ディスクアクセス等を生じることなく、高速に検索処理を行なうことができる。
各ＰＣ２による検索結果は、管理サーバ２０において、結合部１２によって結合（マージ）され、検索要求に対する検索結果として検索結果出力部４２に送信されて、オペレータに対して提示される。
このように、本発明の一実施形態としての情報検索システム１によれば、サブデータベース作成部６（サブ検索要求作成部５）が、各ＰＣ２にそなえられたＲＡＭ３１の容量以下のサイズの複数のサブデータベースを作成し、割当管理部８が、これらのサブデータベースを各ＰＣ２に割り当てるので、一度サブ検索要求に対する処理を行なったＰＣ２において、そのＲＡＭ３１には検索対象のサブデータベースがキャッシュされる。これにより、そのＰＣ２においては、サブデータベースにアクセスするためにアクセス速度が遅いハードディスクへのアクセス（ディスクアクセス）を行なう必要がなく、サブデータベースに対する検索処理を高速に行なうことができる。
特に、ＤＢアフィニティ設定部９に、ＤＢアフィニティとしてＰＣ２毎に担当するサブデータベースを予め設定し、割当管理部８がこのＤＢアフィニティに従ってジョブの割り当てを行なうので、割当管理部８が容易にジョブ（サブデータベース）をＰＣ２に割り当てることができ、又、一度サブ検索要求に対する処理を行なったＰＣ２には、そのＲＡＭ３１には検索対象のサブデータベースがキャッシュされ、ＰＣ２においては、サブデータベースにアクセスするためにディスクアクセスを行なう必要がなく、サブデータベースに対する検索処理を高速に行なうことができる。
また、検索要求入力部４１から入力された検索条件を、サブ検索条件作成部７が分割してサブ検索条件を作成することにより、適当な（任意の）大きさ（予測検索時間の長さ）のサブ検索要求を容易に作成することができ利便性が高い。
処理時間予測部１１が、各ジョブについてその予測検索時間を予測するので、割当管理部８が容易に動的なジョブ割当を行なうことができ利便性が高い。
ＤＢアフィニティ設定部９が、各ＰＣ２が優先的に処理を行なうサブデータベースをオペレータや管理者等が予め設定することにより、ＤＢアフィニティを確実に設定することができ、又、各ＰＣ２におけるサブデータベースの処理履歴に基づいて、過去に処理を行なったサブデータベースを優先的にＤＢアフィニティとして設定することにより、容易にＤＢアフィニティを設定することができる。
メモリ管理部１０が、各ＰＣ２にそなえられたＲＡＭ３１の空き容量を管理し、その空き容量以下のサイズのサブデータベースを各ＰＣ２に対して割り当てることにより、容易に且つ確実に、ＰＣ２のＲＡＭ３１の空き容量以下のサイズのサブデータベースをＰＣ２に対して割り当てることができる。
処理時間予測部１１が、各ＰＣ２による各サブ検索要求に関する処理に要する時間（予測検索時間）を予測し、割当管理部８が、その予測検索時間が長いサブ検索要求から優先的にサブ検索要求をＰＣ２に対して割り当てることにより、複数のジョブを複数のＰＣ２に対して効率よく割り当てることができる。
（Ｂ）その他
本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、割当管理部８は、ＰＣ２とサブデータベースとのＤＢアフィニティが適合しない場合においても、割当管理部８が、ＰＣ２のＲＡＭ３１の残容量以内のデータサイズのジョブをＰＣ２に対して割り当ててもよく、更に、サブ検索要求作成部５が、ＰＣ２のＲＡＭ３１の残容量以内のデータサイズとなるように、ＰＣ２に対して未だ割り当てられていない（未割当の）ジョブ（サブデータベース）を、その残容量以下となるように更に分割して、ＰＣ２に割り当ててもよい。
すなわち、本情報検索システム１においては、割当管理部８は、メモリ管理部１０から、各ＰＣ２のＲＡＭ３１の使用状況もしくは空き容量（未使用領域のサイズ）を取得し、その空き容量に応じて、未割当のジョブを更にサブ検索要求作成部５によって、その空き容量以下の複数のジョブ（サブデータベース）に分割させて、その分割して作成されたジョブをそれらのＰＣ２に対して割り当ててもよいのである。
このような、本発明の一実施形態としての情報検索システム１における割当管理部８による他のジョブの割当手法を、図１１を参照しながら図１０に示すフローチャート（ステップＢ１０〜Ｂ１１０）に従って説明する。なお、図１１は本発明の一実施形態としての情報検索システム１における割当管理部８により各ＰＣ２にジョブが割り当てられた他の状態の例を示す図である。
割当管理部８は、未割り当てのジョブがあるか否かを判断し（ステップＢ１０）、未割り当てのジョブが無い場合には（ステップＢ１０のＮＯルート参照）、処理を終了する。
また、未割り当てのジョブがある場合には（ステップＢ１０のＹＥＳルート参照）、割当管理部８は、次に、ジョブが割り当てられるのを待っているＰＣ２があるか、すなわち、ジョブを処理できる状態にあるＰＣ２があるか否かを判断する（ステップＢ２０）。
ジョブの割当てを待っているＰＣ２が無い場合には（ステップＢ２０のＮＯルート参照）、割当管理部８は、次に、ジョブを実行中のＰＣ２があるか否かを判断する（ステップＢ３０）。ジョブを実行中のＰＣ２がある場合には（ステップＢ３０のＹＥＳルート参照）、割当管理部８は、そのＰＣ２のジョブが完了するのを待ち（ステップＢ５０）、ステップＢ１０に戻る。又、ジョブを実行中のＰＣ２が無い場合には（ステップＢ３０のＮＯルート参照）、割当管理部８は、本情報検索システム１のオペレータ等に対してエラーを示すメッセージを出力して（ステップＢ４０）、ステップＢ１０に戻る。
ジョブの割当てを待っているＰＣ２がある場合には（ステップＢ２０のＹＥＳルート参照）、割当管理部８は、ＤＢアフィニティ設定部９を参照して、そのＰＣ２についてＤＢアフィニティが適合（一致）するジョブがあるか否かを判断する（ステップＢ６０）。そのＰＣ２に対して、ＤＢアフィニティが適合するジョブがある場合には（ステップＢ６０のＹＥＳルート参照）、割当管理部８は、処理時間予測部１１による予測検索時間を参照して、そのＰＣ２に適合するジョブのうち、予測検索時間が最も長いジョブをそのＰＣ２に対して割り当て（ステップＢ８０）、ステップＢ１０に移行する。
また、そのＰＣ２に対してＤＢアフィニティが適合するジョブが無い場合には（ステップＢ６０のＮＯルート参照）、割当管理部８は、メモリ管理部１０を参照してそのＰＣ２のＲＡＭ３１の残容量を確認し、そのＰＣ２の残容量以内のデータサイズのジョブがあるか否か、すなわち、サブデータベースのサイズがそのＰＣ２の残容量以内となるジョブがあるか否かを判断する（ステップＢ７０）。
そのＰＣ２の残容量以内のデータサイズのジョブがある場合（ステップＢ７０のＹＥＳルート参照）には、割当管理部８はステップＢ８０に移行する。すなわち、割当管理部８は、ＤＢアフィニティが適合しなくても、そのＰＣ２のＲＡＭ３１の残容量以内のデータサイズのジョブのうち、予測検索時間が最も長いジョブをそのＰＣ２に対して割り当てて（ステップＢ８０）、ステップＢ１０に移行するのである。
また、サブデータベースのサイズがそのＰＣ２のＲＡＭ４１の残容量以内となるジョブが無い場合には（ステップＢ７０のＮＯルート参照）、割当管理部８は、ＰＣ２に対して未割当のジョブについて、そのＰＣ２のＲＡＭ３１残容量以下となるように作成することができるものがあるか、すなわち、未割当のジョブについて、そのサブデータベースを更に分割することができるジョブがあるか否かを判断する（ステップＢ９０）。
サブデータベースを更に分割することができるジョブがある場合には（ステップＢ９０のＹＥＳルート参照）、割当管理部８は、サブデータベース作成部６に、そのジョブのサブデータベースを、そのＰＣ２のＲＡＭ３１残容量以下となるように更に分割させて（ステップＢ１１０）、ステップＢ１０に移行する。
また、サブデータベースを更に分割することができるジョブが無い場合には（ステップＢ９０のＮＯルート参照）、そのＰＣ２に対するジョブの割り当てを終了させて（ステップＢ１００）、ステップＢ２０に移行する。
上述の如きジョブの割当手法により、図１１に示すように、各ＰＣ２に対してジョブが動的に割り当てられる。なお、図１１に示す例においては、ジョブ２Ａの処理には処理時間予測部１１によって予測された予測検索時間よりも１．５倍の時間がかかり、ジョブ２Ｃの処理には処理時間予測部１１によって予測された予測検索時間よりも２倍の時間がかかったものとする。
また、図１１中において、ジョブ２Ｄ−１，２Ｄ−２はともにジョブ２Ｄを再分割して作成されたものである。この図１１に示す例においては、ジョブ２Ｄ−１，２Ｄ−２はＰＣ２ａ，２ｂとＤＢアフィニティが一致しないので、ＰＣ２ａ，２ｂのＲＡＭ３１にはジョブ２Ｄ−１，２Ｄ−２に関するサブデータベースＳＤＢ２がキャッシュされていない。従って、ＰＣ２ａ，２ｂがジョブ２Ｄ−１，２Ｄ−２を処理するためには、ＰＣ２ａ，２ｂはジョブ２Ｄ−１，２Ｄ−２に関するサブデータベースＳＤＢ２をデータベース３等から読み出す（ディスクアクセスを行なう）必要があるが、これらのジョブ２Ｄ−１，２Ｄ−２は、サブ検索要求作成部５によって読み出し負荷が小さくなるように再分割して作成されているので、システム全体での処理時間（検索）が短くなり、結果的に処理速度を短縮することができ、又、ＤＢアフィニティが適合しないジョブを割り当てることによるリスク（サブデータベースの読み出し負荷）を低減することができる。
また、ＤＢアフィニティが適合しないジョブを、ＰＣ２ａ，２ｂのＲＡＭ３１の残容量以下のサイズで割り当てるので、ＰＣ２ａ，２ｂにおいては、ＲＡＭ３１内にサブデータベースＳＤＢ１が引き続きキャッシュされており、ＰＣ２ａ，２ｂに対して、再度サブデータベースＳＤＢ１に関する処理を行なわせる場合にも検索速度が低下することがない。
さらに、ジョブ（サブ検索要求）について、ＤＢアフィニティ設定部９によって設定された各ＰＣ２に関するＤＢアフィニティ，サブデータベースおよび処理時間予測部１１によって予測された予測検索時間（予測検索処理量）の少なくとも１つ以上について、前述の如き評価関数を用いて評価する評価部をそなえ、割当管理部８が、この評価部による評価結果に基づいて、各ＰＣ２にジョブを抽選的に割り当てもよい。これにより、割当管理部８が、容易且つ確実に各ＰＣ２にジョブを割り当てることができる。
また、上述した実施形態においては、便宜上、各ＰＣ２はそれぞれ同容量のＲＡＭ３１をそなえているが、これに限定されるものではなく、各ＰＣ２がそれぞれ異なるサイズのＲＡＭ３１をそなえてもよく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
さらに、管理サーバ２０は、例えばサーバ機能をそなえたコンピュータ（情報処理装置）によって実現され、このコンピュータのＣＰＵが、情報検索プログラムを実行することにより、上述したサブ検索要求作成部５，サブデータベース作成部６，サブ検索条件作成部７，割当管理部８，ＤＢアフィニティ設定部９，メモリ管理部１０，処理時間予測部１１，結合部１２，および評価部として機能するようになっている。
なお、サブ検索要求作成部５，サブデータベース作成部６，サブ検索条件作成部７，割当管理部８，ＤＢアフィニティ設定部９，メモリ管理部１０，処理時間予測部１１，結合部１２，および評価部としての機能を実現するためのプログラム（情報検索プログラム）は、例えばフレキシブルディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−Ｒ／Ｗ，ＤＶＤ，ＤＶＤ−Ｒ，ＤＶＤ−Ｒ／Ｗ，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
サブ検索要求作成部５，サブデータベース作成部６，サブ検索条件作成部７，割当管理部８，ＤＢアフィニティ設定部９，メモリ管理部１０，処理時間予測部１１，結合部１２，および評価部としての機能を実現する際には、内部記憶装置（本実施形態ではプリンタのＲＡＭやＲＯＭ）に格納されたプログラムがコンピュータのマイクロプロセッサ（ＣＰＵ）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、管理サーバ２０がコンピュータとしての機能を有しているのである。
さらに、本実施形態における記録媒体としては、上述したフレキシブルディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−Ｒ／Ｗ，ＤＶＤ，ＤＶＤ−Ｒ，ＤＶＤ−Ｒ／Ｗ，磁気ディスク，光ディスク，光磁気ディスクのほか、ＩＣカード，ＲＯＭカートリッジ，磁気テープ、パンチカード、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ），外部記憶装置等や、バーコードなどの符号が印刷された印刷物等のコンピュータ読取可能な種々の媒体を利用することができる。
なお、本発明の各実施形態が開示されていれば、当業者によって製造することが可能である。
【産業上の利用可能性】  以上のように、本発明の情報検索システム，情報検索方法，情報検索装置，情報検索プログラムおよび当該プログラムを記録したコンピュータ読取可能な記録媒体は、複数の情報処理装置をそなえ、検索対象であるデータベースとこのデータベースに対する検索条件とからなる検索要求を、これらの複数の情報処理装置によって並列に処理することに有用であり、特に各情報処理装置において検索要求を高速に処理することができるようにして、データベースに対して高速に検索を行なうことに適している。
【図１】
2004084095.tif 000003
【図２】
2004084095.tif 000004
【図３】
2004084095.tif 000005
【図４】
2004084095.tif 000006
【図５】
2004084095.tif 000007
【図６】
2004084095.tif 000008
【図７】
2004084095.tif 000009
【図８】
2004084095.tif 000010
【図９】
2004084095.tif 000011
【図１０】
2004084095.tif 000012
【図１１】
2004084095.tif 000013
【図１２】
2004084095.tif 000014
【手続補正書】
【提出日】平成17年4月1日(2005.4.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の情報処理装置をそなえ、検索対象であるデータベースと当該データベースに対する検索条件とからなる検索要求を、前記複数の情報処理装置によって並列に処理する情報検索システムであって、
該データベースに基づいて、該情報処理装置にそなえられた記憶部の容量以下のサイズの複数のサブデータベースを作成するサブデータベース作成部と、
該情報処理装置に該サブデータベースに対する該検索要求を処理させるべく、該サブデータベース作成部によって作成された該サブデータベースをサブ検索要求として該情報処理装置に対して割り当てる割当管理部と、
前記複数の情報処理装置による該サブ検索要求に関する処理結果を取得し結合する結合部と、
該情報処理装置に対して、該割当管理部によって優先的に割り当てる該サブデータベースに関する情報をＤＢアフィニティとして設定可能なＤＢアフィニティ設定部とをそなえ、
該割当管理部が、該ＤＢアフィニティに基づいて、該情報処理装置に該サブ検索要求を割り当てることを特徴とする、情報検索システム。
【請求項２】
該検索条件を分割してサブ検索条件を作成するサブ検索条件作成部をそなえ、
該割当管理部が、該情報処理装置に該サブ検索条件を用いて該サブデータベースを検索させるべく、該サブ検索条件を該サブ検索要求として該情報処理装置に対して割り当てることを特徴とする、請求の範囲第１項記載の情報検索システム。
【請求項３】
該ＤＢアフィニティ設定部が、優先的に処理を行なうサブデータベースを予め設定可能であることを特徴とする、請求の範囲第１項又は第２項に記載の情報検索システム。
【請求項４】
該ＤＢアフィニティ設定部が、該情報処理装置における該サブ検索要求の処理履歴に基づいて、該ＤＢアフィニティを設定することを特徴とする、請求の範囲第１項〜第３項のいずれか１項に記載の情報検索システム。
【請求項５】
前記情報処理装置にそなえられた記憶部の空き容量を管理する空き容量管理部をそなえ、
該割当管理部が、該空き容量管理部によって管理される前記情報処理装置の記憶部の空き容量に基づいて、当該空き容量以下のサイズの該サブデータベースを当該情報処理装置に対して割り当てることを特徴とする、請求の範囲第１項〜第４項のいずれか１項に記載の情報検索システム。
【請求項６】
該情報処理装置による該サブ検索要求に関する処理に要する時間を予測可能な処理時間予測部をそなえ、
該割当管理部が、該処理時間予測部によって予測された前記処理に要する時間に基づいて、当該時間が長い該サブ検索要求から優先的に、当該サブ検索要求を該情報処理装置に対して割り当てることを特徴とする、請求の範囲第１項〜第５項のいずれか１項に記載の情報検索システム。
【請求項７】
該サブデータベース作成部もしくは該サブ検索条件作成部が、該割当管理部によって未だ該情報処理装置に対して割り当てられていない該サブ検索要求を分割して、複数のサブ検索要求を作成することを特徴とする、請求の範囲第６項記載の情報検索システム。
【請求項８】
該サブ検索要求について、該ＤＢアフィニティ設定部によって設定された該情報処理装置に関するＤＢアフィニティ，該サブデータベースおよび該処理時間予測部によって予測された前記処理に要する時間の少なくとも１つ以上について、評価関数を用いて評価する評価部をそなえ、
該割当管理部が、該評価部による評価結果に基づいて、該情報処理装置に該サブ検索要求を抽選的に割り当てることを特徴とする、請求の範囲第１項〜第７項のいずれか１項に記載の情報検索システム。
【請求項９】
検索対象であるデータベースと当該データベースに対する検索条件とからなる検索要求を、複数の情報処理装置によって並列に処理する情報検索方法であって、
該検索要求に基づいて、該情報処理装置にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成ステップと、
該情報処理装置に該サブ検索要求作成ステップにおいて作成された該サブ検索要求を処理させるべく、該サブ検索要求を該情報処理装置に対して割り当てる割当管理ステップと、
前記複数の情報処理装置による該サブ検索要求に関する処理結果を取得し結合する結合ステップとをそなえることを特徴とする、情報検索方法。
【請求項１０】
検索対象であるデータベースと当該データベースに対する検索条件とからなる検索要求を、複数の情報処理装置に対して並列に処理させる情報検索装置であって、
該検索要求に基づいて、該情報処理装置にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成部と、
該情報処理装置に該サブ検索要求作成部によって作成された該サブ検索要求を処理させるべく、該サブ検索要求を該情報処理装置に対して割り当てる割当管理部と、
前記複数の情報処理装置による該サブ検索要求に関する処理結果を取得し結合する結合部と、
該情報処理装置に対して、該割当管理部によって優先的に割り当てる該サブデータベースに関する情報をＤＢアフィニティとして設定可能なＤＢアフィニティ設定部とをそなえ、
該割当管理部が、該ＤＢアフィニティに基づいて、該情報処理装置に該サブ検索要求を割り当てることを特徴とする、情報検索装置。
【請求項１１】
検索対象であるデータベースと当該データベースに対する検索条件とからなる検索要求を、複数の情報処理装置に対して並列に処理させる情報検索機能をコンピュータに実行させるための情報検索プログラムであって、
該検索要求に基づいて、該情報処理装置にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成部と、
該情報処理装置に該サブ検索要求作成部によって作成された該サブ検索要求を処理させるべく、該サブ検索要求を該情報処理装置に対して割り当てる割当管理部と、
前記複数の情報処理装置による該サブ検索要求に関する処理結果を取得し結合する結合部と、
該情報処理装置に対して、該割当管理部によって優先的に割り当てる該サブデータベースに関する情報をＤＢアフィニティとして設定可能なＤＢアフィニティ設定部として、該コンピュータを機能させるとともに、
該割当管理部として該コンピュータを機能させる際に、該ＤＢアフィニティに基づいて、該情報処理装置に該サブ検索要求を割り当てることを特徴とする、情報検索プログラム。
【請求項１２】
検索対象であるデータベースと当該データベースに対する検索条件とからなる検索要求を、複数の情報処理装置に対して並列に処理させる情報検索機能をコンピュータに実行させるための情報検索プログラムを記録したコンピュータ読取可能な記録媒体であって、
該情報検索プログラムが、
該検索要求に基づいて、該情報処理装置にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成部と、
該情報処理装置に該サブ検索要求作成部によって作成された該サブ検索要求を処理させるべく、該サブ検索要求を該情報処理装置に対して割り当てる割当管理部と、
前記複数の情報処理装置による該サブ検索要求に関する処理結果を取得し結合する結合部と、
該情報処理装置に対して、該割当管理部によって優先的に割り当てる該サブデータベースに関する情報をＤＢアフィニティとして設定可能なＤＢアフィニティ設定部として、該コンピュータを機能させるとともに、
該割当管理部として該コンピュータを機能させる際に、該ＤＢアフィニティに基づいて、該情報処理装置に該サブ検索要求を割り当てることを特徴とする、情報検索プログラムを記録したコンピュータ読取可能な記録媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースに対する検索要求を複数の情報処理装置によって並行して処理するために用いて好適な、情報検索システム，情報検索方法，情報検索装置，情報検索プログラムおよび当該プログラムを記録したコンピュータ読取可能な記録媒体に関する。
【背景技術】
【０００２】
近年、データベースを単なるデータの蓄積に用いるだけでなく、データベースに蓄積されたデータから様々な情報を引き出す活用法が注目されている。そこでは、希望する情報を高速に検索する性能が要求されるが、データベースにおいては、一般的に、蓄積されたデータ量が増えると検索の処理量は急激に増え処理時間が増大する傾向がある。
このようなデータベースの検索を高速に行なうために、近年においては、複数のコンピュータ（ワークステーション）を用いて並列検索を行なうことが知られている。
【０００３】
さて、データベースに対して実際に検索処理を行なうコンピュータにおいては、検索対象のデータベースをハードディスク等の外部記憶装置から順次メモリ（主記憶装置）にコピーし、このメモリ上にコピーされたデータに対して検索処理を行なうようになっている。
一般に、データベースが格納されているハードディスク等の外部記憶装置は、データの入出力（Ｉ／Ｏ：Input／Output）が低速であり、この外部記憶装置とメモリとの間におけるデータ転送に時間がかかる。従って、検索処理を行なう場合、この外部記憶装置とメモリとの間におけるデータ転送時間が、検索時間を決める要因となることが多い。
【０００４】
一般的なＯＳ（Operating System；オペレーティングシステム）は、ディスクキャッシュと呼ばれる機能を備えており、このディスクキャッシュ機能により、間近に外部記憶装置から読み出したデータがメモリの未使用部分に保存されているので、検索対象であるデータベースが事前に他の検索処理により処理されていた場合には、外部記憶装置からメモリへのデータ転送が不要となることがある。従って、同一のデータベースに対して検索要求が続く場合には、最初の検索要求を除き、外部記憶装置からメモリへのデータ転送が不要となり、結果として検索時間を大幅に短縮することができる可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、このディスクキャッシュ機能による検索時間短縮という利益を享受するためには、データベースのサイズがメモリよりも小さい場合に限定される。仮にデータベースのサイズがメモリサイズよりも大きい場合には、データベースの全内容をメモリ上に保存することができないからである。
図１２は従来の情報検索システムにおけるデータベースのサイズと検索時間との関係を模式的に示す図である。この図１２に示すように、検索対象のデータベースのサイズがコンピュータ（計算機）のメモリサイズよりも大きくなると、たとえ同一のデータベースに対する検索処理が事前にあったとしても、ハードディスク等の外部記憶装置に対するアクセスが発生し、外部記憶装置からのデータ転送がボトルネックとなり、データベースサイズが小さいときと比較して大幅に検索時間が長くなる。
【０００６】
従って、従来の情報検索システムにおいては、コンピュータに装備されているメモリサイズよりも大きいサイズのデータベースを対象とする検索処理に対しては、外部記憶装置へのアクセスを大幅に減らす良い方法がなく、検索時間が長くなるという課題がある。
本発明は、このような課題に鑑み創案されたもので、データベースに対する検索要求を複数の情報処理装置によって並行して処理する場合において、各情報処理装置において検索要求を高速に処理することができるようにして、データベースに対して高速に検索を行なうことができるようにした、情報検索システム，情報検索方法，情報検索装置，情報検索プログラムおよび当該プログラムを記録したコンピュータ読取可能な記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために、本発明の情報検索システムは、複数の情報処理装置をそなえ、検索対象であるデータベースとこのデータベースに対する検索条件とからなる検索要求を、複数の情報処理装置によって並列に処理する情報検索システムであって、データベースに基づいて、情報処理装置にそなえられた記憶部の容量以下のサイズの複数のサブデータベースを作成するサブデータベース作成部と、情報処理装置にサブデータベースに対する検索要求を処理させるべくサブデータベース作成部によって作成されたサブデータベースをサブ検索要求として情報処理装置に対して割り当てる割当管理部と、複数の情報処理装置によるサブ検索要求に関する処理結果を取得し結合する結合部と、情報処理装置に対して、割当管理部によって優先的に割り当てる該サブデータベースに関する情報をＤＢアフィニティとして設定可能なＤＢアフィニティ設定部とをそなえ、割当管理部が、ＤＢアフィニティに基づいて、情報処理装置にサブ検索要求を割り当てることを特徴としている。
【０００８】
なお、検索条件を分割してサブ検索条件を作成するサブ検索条件作成部をそなえ、割当管理部が、情報処理装置にサブ検索条件を用いてサブデータベースを検索させるべく、サブ検索条件をサブ検索要求として情報処理装置に対して割り当ててもよい。
さらに、ＤＢアフィニティ設定部が、優先的に処理を行なうサブデータベースを予め設定可能であってもよく、又、ＤＢアフィニティ設定部が、情報処理装置におけるサブ検索要求の処理履歴に基づいて、ＤＢアフィニティを設定してもよい。
【０００９】
また、情報処理装置にそなえられた記憶部の空き容量を管理する空き容量管理部をそなえ、割当管理部が、空き容量管理部によって管理される情報処理装置の記憶部の空き容量に基づいて、空き容量以下のサイズのサブデータベースを情報処理装置に対して割り当ててもよい。
さらに、情報処理装置によるサブ検索要求に関する処理に要する時間を予測可能な処理時間予測部をそなえ、割当管理部が、処理時間予測部によって予測された処理に要する時間に基づいて、この時間が長いサブ検索要求から優先的に、サブ検索要求を情報処理装置に対して割り当ててもよい。
【００１０】
また、サブデータベース作成部もしくはサブ検索条件作成部が、割当管理部によって未だ情報処理装置に対して割り当てられていないサブ検索要求を分割して、複数のサブ検索要求を作成してもよい。
さらに、サブ検索要求について、ＤＢアフィニティ設定部によって設定された情報処理装置に関するＤＢアフィニティ，サブ検索要求としてのデータベースおよび処理時間予測部によって予測された前記処理に要する時間の少なくとも１つ以上について、評価関数を用いて評価する評価部をそなえ、割当管理部が、評価部による評価結果に基づいて、情報処理装置にサブ検索要求を抽選的に割り当ててもよい。
【００１１】
また、本発明の情報検索方法は、検索対象であるデータベースとこのデータベースに対する検索条件とからなる検索要求を、複数の情報処理装置によって並列に処理する情報検索方法であって、検索要求に基づいて、情報処理装置にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成ステップと、情報処理装置にサブ検索要求作成ステップにおいて作成されたサブ検索要求を処理させるべく、サブ検索要求を情報処理装置に対して割り当てる割当管理ステップと、複数の情報処理装置によるサブ検索要求に関する処理結果を取得し結合する結合ステップとをそなえることを特徴としている。
【００１２】
さらに、本発明の情報検索装置は、検索対象であるデータベースとそのデータベースに対する検索条件とからなる検索要求を、複数の情報処理装置に対して並列に処理させる情報検索装置であって、検索要求に基づいて、情報処理装置にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成部と、情報処理装置にサブ検索要求作成部によって作成されたサブ検索要求を処理させるべく、サブ検索要求を情報処理装置に対して割り当てる割当管理部と、複数の情報処理装置によるサブ検索要求に関する処理結果を取得し結合する結合部と、情報処理装置に対して、割当管理部によって優先的に割り当てるサブデータベースに関する情報をＤＢアフィニティとして設定可能なＤＢアフィニティ設定部とをそなえ、割当管理部が、ＤＢアフィニティに基づいて、情報処理装置にサブ検索要求を割り当てることを特徴としている。
【００１３】
また、本発明の情報検索プログラムは、検索対象であるデータベースと当該データベースに対する検索条件とからなる検索要求を、複数の情報処理装置に対して並列に処理させる情報検索機能をコンピュータに実行させるための情報検索プログラムであって、検索要求に基づいて、情報処理装置にそなえられた記憶部の容量以下のサイズの複数のサブ検索要求を作成するサブ検索要求作成部と、情報処理装置にサブ検索要求作成部によって作成されたサブ検索要求を処理させるべく、サブ検索要求を情報処理装置に対して割り当てる割当管理部と、複数の情報処理装置によるサブ検索要求に関する処理結果を取得し結合する結合部と、情報処理装置に対して、割当管理部によって優先的に割り当てるサブデータベースに関する情報をＤＢアフィニティとして設定可能なＤＢアフィニティ設定部として、コンピュータを機能させるとともに、割当管理部としてコンピュータを機能させる際に、ＤＢアフィニティに基づいて、情報処理装置にサブ検索要求を割り当てることを特徴としている。
【００１４】
さらに、本発明のコンピュータ読取可能な記録媒体は、上述した情報検索プログラムを記録したものである。
【発明の効果】
【００１５】
このように、本発明の情報検索システム，情報検索方法，情報検索装置，情報検索プログラムおよび当該プログラムを記録したコンピュータ読取可能な記録媒体によれば、以下の効果ないし利点がある。
（１）データベースに基づいて、情報処理装置にそなえられた記憶部の容量以下のサイズの複数のサブデータベースを作成し、情報処理装置にサブデータベースに対する検索要求を処理させるべく、サブデータベースをサブ検索要求として情報処理装置に対して割り当てることにより、一度サブ検索要求に対する処理を行なった情報処理装置において、その記憶部には検索対象のサブデータベースがキャッシュされる。これにより、その情報処理装置においては、サブデータベースにアクセスするためにアクセス速度が遅いハードディスクへのアクセス（ディスクアクセス）を行なう必要がなく、サブデータベースに対する検索処理を高速に行なうことができる。
【００１６】
（２）検索条件を分割してサブ検索条件を作成することにより、適当な大きさ（予測処理時間の長さ）のサブ検索要求を容易に作成することができ利便性が高い。
（３）情報処理装置に対して優先的に割り当てるサブデータベースに関する情報をＤＢアフィニティとして設定し、このＤＢアフィニティに基づいて、情報処理装置にサブ検索要求（サブデータベース）を割り当てることにより、情報処理装置に対して容易にサブ検索要求を割り当てることができる。
【００１７】
（４）ＤＢアフィニティとして優先的に処理を行なうサブデータベースを予め設定することにより、ＤＢアフィニティを確実に設定することができる。
（５）情報処理装置におけるサブ検索要求の処理履歴に基づいて、ＤＢアフィニティを設定することにより、容易にＤＢアフィニティを設定することができる。
（６）情報処理装置にそなえられた記憶部の空き容量を管理し、その空き容量以下のサイズのサブデータベースを情報処理装置に対して割り当てることにより、容易に且つ確実に、情報処理装置の記憶部の空き容量以下のサイズのサブデータベースを情報処理装置に対して割り当てることができる。
【００１８】
（７）情報処理装置による該サブ検索要求に関する処理に要する時間を予測し、その時間が長いサブ検索要求から優先的に、サブ検索要求を情報処理装置に対して割り当てることにより、複数のサブ検索要求を複数の情報処理装置に対して効率よく割り当てることができる。
（８）未だ該情報処理装置に対して割り当てられていないサブ検索要求を分割して、複数のサブ検索要求を作成することにより、システム全体での総処理時間（検索時間）が短くなり、結果的に処理速度を短縮することができ、又、ＤＢアフィニティが適合しないジョブを割り当てることによるリスク（サブデータベースの読み出し負荷）を低減することができる。
【００１９】
（９）サブ検索要求について、ＤＢアフィニティ，サブデータベースおよび処理に要する予測時間の少なくとも１つ以上について、評価関数を用いて評価し、この評価結果に基づいて、情報処理装置にサブ検索要求を抽選的に割り当てることにより、容易且つ確実に各情報処理装置にジョブを割り当てることができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して本発明の実施の形態を説明する。
（Ａ）一実施形態の説明
図１は本発明の一実施形態としての情報検索システムの模式的な構成を示す図である。本情報検索システム１は、検索要求入力部４１から入力された、データベース３に対する検索要求を、複数（本実施形態では４つ）のＰＣ（Personal Computer：情報処理装置）２ａ，２ｂ，２ｃ，２ｄによって並列に処理するものであり、検索要求入力部４１，検索結果出力部４２，管理サーバ２０，データベース３およびＰＣ２ａ，２ｂ，２ｃ，２ｄをそなえて構成されている。
【００２１】
データベース（検索対象）３は、何らかの情報（データ）を網羅的に収集し、蓄積したもの（情報群）であって、情報の追加や削除、更新、検索を処理するための構造を持っており、検索要求入力部４１から入力される検索要求に基づいて検索され、その検索要求に応じた情報を提供することができるものである。
検索要求入力部４１はオペレータが検索要求を入力するためのものであり、検索対象のデータベース（本実施形態においてはデータベース３）や、そのデータベースに対して希望する検索条件を入力するためのものである。この検索要求入力部４１は、例えばコンピュータシステムにおけるキーボードやマウス等により実現されるようになっている。
【００２２】
また、検索要求は、検索対象であるデータベースとそのデータベースに対する検索条件とからなる。本実施形態においては、１つのデータベース３のみがそなえられているが、これに限定されるわけではなく、複数のデータベースをそなえ、これらのデータベースの中から、少なくとも１つの特定のデータベースを検索対象にしてもよく、更に、その少なくとも１つのデータベースをオペレータが検索対象として任意に選択できるようにしてもよい。
【００２３】
そして、検索要求入力部４１においては、オペレータが、任意の検索条件を入力することができるようになっている。
検索結果出力部４２は、検索要求入力部４１から入力された検索要求についての検索結果を管理サーバ２０から取得し、オペレータ等に対して出力するものである。この検索結果出力部４２は、例えば、ディスプレイ装置やプリンタ等の各種の出力装置により実現されるようになっている。
【００２４】
ＰＣ２ａ，２ｂ，２ｃ，２ｄは、検索要求入力部４１から入力された検索要求をそれぞれ処理する情報処理装置（計算機）である。本実施形態においては、ＰＣ２ａ，２ｂ，２ｃ，２ｄは、管理サーバ２０において、サブ検索要求作成部５によって作成され且つ割当管理部８によって割り当てられたサブ検索要求（詳細は後述）をそれぞれ処理し、又、その処理結果を管理サーバ２０に送信するようになっている。
【００２５】
なお、以下、ＰＣを示す符号としては、複数のＰＣのうち１つを特定する必要があるときには符号２ａ，２ｂ，２ｃ，２ｄを用いるが、任意のＰＣを指すときには符号２を用いる。
ＰＣ２ａ，２ｂ，２ｃ，２ｄは、図１に示すように、それぞれＣＰＵ（Central Processing Unit）３０，ＲＡＭ３１，ＲＯＭ３２，ハードディスク３３および通信制御部３４をそなえて構成されている。なお、図中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その詳細な説明は省略する。
【００２６】
ＲＯＭ３２にはＢＩＯＳ（Basic Input / Output System）と呼ばれる、ＰＣ２における基本的な入出力を行なうためのプログラム等が予め記録されており、ハードディスク３３には、ＯＳ（Operating System）やアプリケーションプログラム等のＰＣ２を機能させるための種々のプログラムやデータ等が保存されている。
そして、ＣＰＵ３０が、これらのＲＯＭ３２やハードディスク３３に格納された種々のプログラムを実行することにより、サブ検索要求（後述）を処理することができるようになっている。
【００２７】
ＲＡＭ（記憶部）３１は、ＣＰＵ３０が種々の処理を行なう際にデータ等を一時的に保存・展開するためのものであり、本実施形態においては、サブ検索要求としてのサブデータベース（詳細は後述）が、このＲＡＭ３１上に展開されるようになっている。
また、本情報検索システム１においては、便宜上、各ＰＣ２ａ，２ｂ，２ｃ，２ｄはそれぞれ同容量のＲＡＭ３１をそなえているものとする。
【００２８】
ＰＣ２は、ディスクキャッシュ機能をそなえており、使用頻度の高いデータや最後に使用したデータをＲＡＭ３１上に保持（キャッシュ）するようになっている。これにより、そのデータに対して読み出し要求があった時に、ＣＰＵ３０は、アクセス速度の遅いハードディスク３３やデータベース３等からデータを読み込む必要がなく、ＲＡＭ３１上のデータを読み出すことができ、そのデータに対して処理を高速に行なうことができる。
【００２９】
そして、ＰＣ２においては、このディスクキャッシュ機能により、一度処理を行なったサブデータベースがＲＡＭ３１上に保持されるようになっている。なお、新たなデータをＲＡＭ３１に読み込む場合には、ＲＡＭ３１にキャッシュされたデータは、先入れ先出し方式によって古いデータから順番にＲＡＭ３１から追い出されるようになっている。
通信制御部３４は、ＰＣ２と外部との間における種々のデータの通信を制御するものであり、例えば、管理サーバ２０から送信されるサブ検索要求（後述）を受信したり、ＰＣ２において処理した検索結果を管理サーバ２０に送信したりするための制御を行なうようになっている。
【００３０】
管理サーバ２０は、検索要求入力部４１によって入力された検索要求を複数のＰＣ２に並列に処理させるものであり、更に、それらの各ＰＣ２による処理結果を取得して結合し、その検索結果を検索結果出力部４２に対して出力するものである。
この管理サーバ２０は、図１に示すように、サブ検索要求作成部５，割当管理部８，ＤＢアフィニティ設定部９，メモリ管理部（空き容量管理部）１０，処理時間予測部１１および結合部１２をそなえて構成されている。
【００３１】
メモリ管理部（空き容量管理部）１０は、あらかじめ各ＰＣ２のＲＡＭ３１のサイズを取得して保持しており、これにより、後述するサブデータベース作成部６が、各ＰＣ２のＲＡＭ３１のサイズを知ることができるようになっている。
また、メモリ管理部１０は、各ＰＣ２のＲＡＭ３１の使用状況を管理するようになっており、割当管理部８（詳細は後述）によって各ＰＣ２に対してどのようなサブ検索要求（サブデータベース）を割り当てたかを管理することにより、各ＰＣ２のＲＡＭ３１にキャッシュされているサブデータベースのサイズを管理するようになっていて、これにより、各ＰＣ２のＲＡＭ３１の使用状況および空き容量（残容量；未使用領域のサイズ）を管理することができるようになっている。
【００３２】
本情報検索システム１においては、各ＰＣ２は、それぞれ管理サーバ２０（割当管理部８）によって割り当てられる処理（サブ検索要求）のみを行なうようになっており、これにより、各ＰＣ２のＲＡＭ３１には、それぞれ割当管理部８によって割り当てられたサブデータベースがキャッシュされるようになっている。
処理時間予測部１１は、各ＰＣ２によるサブ検索要求に関する処理に要する時間を予測するものであって、例えば、ＰＣ２に割り当てられるサブデータベースのサイズやサブ検索条件の内容，ＰＣ２（ＣＰＵ３０）の仕様や性能等の情報に基づいて、そのその処理時間を予測することができるようになっている。なお、処理時間予測部１１は、ＰＣ２に対して各処理に要する時間を問い合わせてもよく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
【００３３】
サブ検索要求作成部５は、検索要求入力部４１から入力された検索要求に基づいて、ＰＣ２に処理させるためのサブ検索要求を作成するものである。このサブ検索要求作成部５は、データベース分割とクエリー分割との２つの手法を用いて複数のサブ検索要求（以下、ジョブという場合もある）を作成するようになっており、図１に示すように、サブデータベース作成部６およびサブ検索条件作成部７をそなえて構成されている。
【００３４】
図２〜図４はそれぞれ本発明の一実施形態としての情報検索システム１におけるサブ検索要求（ジョブ）の作成手法を説明するための図であり、図２はデータベース分割によって複数のジョブを作成する手法を説明するための図、図３はクエリー分割によって複数のジョブを作成する手法を説明するための図、図４はデータベース分割およびクエリー分割によって複数のジョブを作成する手法を説明するための図である。
【００３５】
なお、これらの図２〜図４においては、検索対象であるデータベースＤＢ１（図中縦軸）と、そのデータベースに対するクエリー（Query）Ｑ［検索条件；図中横軸］とからなる検索要求を分割して、複数のジョブ（サブ検索要求）を作成する例を示している。
サブデータベース作成部６は、データベース３に基づいて、各ＰＣ２にそなえられたＲＡＭ３１の容量以下のサイズの複数のサブデータベースを作成するものである。図２に示す例においては、サブデータベース作成部６は、データベースＤＢ１とクエリーＱとからなる検索要求について、そのデータベースＤＢ１をデータベース分割によってサブデータベースＳＤＢ１，ＳＤＢ２に分割することにより、サブデータベースＳＤＢ１に対してクエリーＱで検索を行なうジョブ１と、サブデータベースＳＤＢ２に対してクエリーＱで検索を行なうジョブ２との２つジョブを作成している。
【００３６】
このサブデータベース作成部６は、メモリ管理部１０に管理されている各ＰＣ２のＲＡＭ３１のサイズの情報に基づいて、検索要求入力部４１によって入力された検索要求に関するデータベース３から、各ＰＣ２のＲＡＭ３１のサイズ以下となるようなサブデータベースを複数作成するようになっている。
例えば、各ＰＣ２がそれぞれ２５６ＭＢのＲＡＭ３１をそなえている場合には、サブデータベース作成部６は、２５６ＭＢ以下のサイズのサブデータベースを複数作成する。
【００３７】
一般に、データベースは、多数の独立したエントリから構成されていることが多い。そのため、このエントリを単位としてデータベースを分割することが容易である。又、エントリが多いという特性上、ＰＣ２の台数が多い場合であっても、ＰＣ２の台数分の予測検索時間の均等なサブデータベースを作成し易いという特徴もある。
サブ検索条件作成部７は、検索要求入力部４１から入力された検索条件（クエリー；検索要求）に基づいて、その検索条件を相互に依存関係の無い複数のサブ検索条件に分割することにより、各ＰＣ２が処理する複数のジョブを作成するようになっている。図３に示す例においては、サブ検索条件作成部７は、データベースＤＢ１とクエリーＱとからなる検索要求について、その検索条件（クエリー）Ｑをクエリー分割によってサブ検索条件（サブクエリー）ＳＱＡ，ＳＱＢに分割することにより、データベースＤＢ１に対してサブ検索条件ＳＱＡで検索を行なうジョブＡと、データベースＤＢ１に対してサブ検索条件ＳＱＢで検索を行なうジョブＢとの２つジョブを作成している。
【００３８】
一般に、検索条件において、複数の検索条件は相互に依存していることが多いので、上述したデータベース分割と比較すると検索条件（クエリー）は分割することが困難である。しかしながら、もし分割が可能である場合には、それらの分割後のサブ検索条件は互いに独立していることが多く、一旦分割できた場合には、それらの各サブ検索条件を複数のＰＣ２で並列に処理した場合と、その分割前の検索条件を単一の計算機（ＰＣ２）で処理した場合とで、その検索結果を等しくすることが多い。従って、結合部１２によって行なわれるそれらのサブ検索条件についての検索結果のマージ処理（後述）においては、その負荷が比較的軽いという特徴がある。
【００３９】
なお、ＢＬＡＳＴ（Basic Local Alignment Search Tool）やＦＡＳＴＡ等のバイオインフォマティックス分野においてよく使用される相同性検索には、完全に独立した検索要求の集合がクエリーとなっていることがある。このような場合には、結合部１２においては、クエリー分割によるマージ負荷はほとんど無いといえる。
また、本実施形態においては、サブデータベース作成部６によるデータベース分割とともに、サブ検索条件作成部７によるクエリー分割を併用して行なうことができるようになっている。データベース分割は、分割が容易である一方で、それらの検索結果のマージの負荷が重いという特徴を有している。その逆に、クエリー分割は、分割が困難である一方で、それらの検索結果のマージの負荷が軽いという特徴を有している。
【００４０】
上述したように、データベース分割とクエリー分割とは、データベース分割の容易性および検索結果のマージの容易性において相反する特徴を有していると言えるが、これらのデータベース分割とクエリー分割との双方を適用可能である場合には、両分割手法の長所を生かしてジョブを作成することが望ましい。例えば、先ず、マージ負荷の軽いクエリー分割でジョブを作成し、その後、クエリー分割だけでは必要な数やサイズのジョブを作成できない場合に、データベース分割により更に複数のジョブに分割する（図４参照）ことにより、両分割手法の特徴を生かすことができる。
【００４１】
図４に示す例においては、サブデータベース作成部６は、データベースＤＢ１とクエリーＱとからなる検索要求について、そのデータベースＤＢ１をデータベース分割によってサブデータベースＳＤＢ１，ＳＤＢ２に分割しており、又、サブ検索条件作成部７は、データベースＤＢ１とクエリーＱとからなる検索要求について、その検索条件（クエリー）Ｑをクエリー分割によってサブ検索条件（サブクエリー）ＳＱＡ，ＳＱＢに分割している。
【００４２】
これにより、サブ検索要求作成部５（サブデータベース作成部６，サブ検索条件作成部７）は、サブデータベースＳＤＢ１に対してサブ検索条件ＳＱＡで検索を行なうジョブ１Ａ，サブデータベースＳＤＢ１に対してサブ検索条件ＳＱＢで検索を行なうジョブ１Ｂ，データベースＳＤＢ２に対してサブ検索条件ＳＱＡで検索を行なうジョブ２Ａおよび、サブデータベースＳＤＢ２に対してサブ検索条件ＳＱＢで検索を行なうジョブ２Ｂの４つのジョブを作成している。
【００４３】
また、サブ検索要求作成部５においては、サブデータベース作成部６およびサブ検索条件作成部７によって、ＰＣ２における予測処理時間（検索時間）が異なる（不均等な）複数のサイズのジョブを作成するようになっている（不均等ジョブ作成）。このような不均等ジョブ作成手法としては、例えば、検索時間とデータベースのエントリとの相関が非常に高い場合においては、サブデータベース作成部６によって、エントリ数が異なるサブデータベースを複数作成することにより実現することができる。
【００４４】
図５は本発明の一実施形態としての情報検索システム１における不均等ジョブ作成手法の例を説明するための図である。不均等ジョブを作成するためには、図５に示すように、例えば、先ず、予測検索時間がほぼ等しくなるジョブをＰＣ２の台数と同数（本実施形態では４つ）作成し、次に、これらの各ジョブをそれぞれ予測検索時間が４：２：１の比率となるように３つに分割することによって作成する。これにより、４台のＰＣ２に対して１２個の不均等ジョブを容易に作成することができる。なお、便宜上、図５に示す例においては、作成された各ジョブに符号１１，１２，１３，２１，２２，２３，３１，３２，３３，４１，４２および４３を付して示している。
【００４５】
ＤＢアフィニティ設定部９は、割当管理部８によってＰＣ２に対して優先的に割り当てるサブデータベースに関する情報をＤＢアフィニティ（Data Base Affinity）として設定可能なものである。すなわち、ＤＢアフィニティ設定部９は、ＰＣ２毎に、そのＰＣ２が検索対象とすべきサブデータベースを予め設定することができるようになっている。なお、個々のＰＣ２に対してＤＢアフィニティとして複数のサブデータベースを指定してもよいが、１つのＰＣ２に対してＤＢアフィニティとして設定するサブデータベースのサイズの総和は、そのＰＣ２のＲＡＭ３１のサイズ（メモリサイズ）を超えないようにする。
【００４６】
なお、ＤＢアフィニティ設定部９は、各ＰＣ２が優先的に処理を行なうサブデータベースをオペレータや管理者等が予め設定してもよく、又、各ＰＣ２におけるサブデータベースの処理履歴に基づいて、過去に処理を行なったサブデータベースを優先的にＤＢアフィニティとして設定してもよい。
割当管理部８は、サブ検索要求作成部５（サブデータベース作成部６，サブ検索条件作成部７）によって作成されたサブ検索要求をＰＣ２に対して割り当てるものである。すなわち、割当管理部８は、ＰＣ２にサブデータベースに対する検索要求を処理させるべく、サブデータベース作成部６やサブ検索条件作成部７によって作成されたサブデータベースやサブ検索条件をサブ検索要求（ジョブ）としてＰＣ２に対して割り当てるようになっている。
【００４７】
また、割当管理部８は、ＰＣ２にジョブを割り当てる際には、ＤＢアフィニティ設定部９に設定されたＤＢアフィニティを参照し、ＤＢアフィニティが一致するサブデータベースをそのＰＣ２に割り当てるようになっている。
すなわち、本情報検索システム１においては、ＤＢアフィニティとしてＰＣ２毎に担当するサブデータベースを予め設定するようになっており、割当管理部８によって、このＤＢアフィニティに従ってジョブの割り当てが行なわれるようになっている。これにより、一度サブ検索要求に対する処理を行なったＰＣ２には、そのＲＡＭ３１には検索対象のサブデータベースがキャッシュされる。
【００４８】
そして、そのサブデータベースに関する検索要求については、ＤＢアフィニティに従ってそのＰＣ２に積極的に処理させることにより、ＰＣ２においては、サブデータベースにアクセスするためにディスクアクセスを行なう必要がなく、サブデータベースに対する検索処理を高速に行なうことができる。
また、割当管理部８は、動的なジョブ割当手法を用いて、各ＰＣ２に対してジョブを割り当てるようになっている。動的なジョブ割当手法とは、文字通りジョブを動的に各ＰＣ２に割り当てる手法である。動的なジョブ割当は、ＰＣ２の台数以上のジョブを用意し、これらのジョブの中から予測検索時間の長いジョブから順番に各ＰＣ２に割り当てて処理を行なわせ、処理が完了したＰＣ２に対して、残りのジョブの中から予測検索時間の長いジョブを選択して順次割り当て、これらの処理をジョブが無くなるまで繰り返し行なうことにより実現することができる。なお、動的なジョブ割当は、処理時間予測部１１による、各ＰＣ２におけるジョブの検索時間の予測精度が低い場合に特に有効である。
【００４９】
図６は本発明の一実施形態としての情報検索システム１における割当管理部８による動的なジョブ割当手法を説明するための図であり、サブ検索要求作成部５によって作成された複数のジョブ（図５参照）を４台のＰＣ２ａ，２ｂ，２ｃ，２ｄに動的に割り当てる例を示す図である。なお、図６に示す例においては、ジョブ４１，４２，４３について、それぞれ処理時間予測部１１による予測検索時間の２倍の時間がかかってしまったものとする。
【００５０】
かかる図６に示す例においては、最初に予測検索時間が長いジョブ１１，２１，３１，４１をＰＣ２ａ，２ｂ，２ｃ，２ｄに対してそれぞれ割り当てて処理を行なう。その後、処理が完了したＰＣ２ａ，２ｂ，２ｃに対して、残りのジョブの中から予測検索時間の長いジョブ１２，２２，３２をそれぞれ割り当て、更に、それらの処理が完了した後に、ＰＣ２ａ，２ｂ，２ｃに対して、それぞれジョブ４２，１３，２３を割り当てる。そして、その後、処理が完了したＰＣ２ｂ，２ｃに対してジョブ３３，４３をそれぞれ割り当てる。
【００５１】
このように、ＰＣ２に対して動的にジョブを割り当てることにより、処理時間予測部１１による検索時間の予測精度が悪い場合においても、複数のジョブを高速に処理することができる。
なお、上述の如き動的なジョブの割当は、静的なジョブの割当と比較してジョブ管理が複雑であり、ジョブ管理の負荷が大きいので、処理時間予測部１１による検索時間の予測精度が十分に良い場合には、割当管理部８は、必ずしも動的なジョブの割当を行なわずに静的なジョブの割り当てを行なってもよい。
【００５２】
静的なジョブ割当手法は、文字通りジョブを静的に各ＰＣ２に割り当てる手法である。静的なジョブ割当は、例えば、検索時間とデータベースのエントリ数との相関が非常に高い場合に、エントリ数が互いに等しくなるようにデータベースを分割してＰＣ２の台数分のジョブを作成し、それらのジョブを静的に各ＰＣ２に割り当てるだけで、ＰＣ２間における負荷バランスを保つことができる。
【００５３】
なお、予測検索時間の予測精度が低い場合には、静的なジョブ割当手法よりも動的なジョブ割当手法の方が、全体的な処理時間を短縮することができると言える。例えば、ＰＣ２の台数分のジョブを作成し、各ＰＣ２にこれらのジョブをそれぞれ処理させた場合において、１つのジョブの処理に他のジョブの２倍の時間がかかってしまった場合には、その時間がかかったジョブの検索時間がシステム１全体の性能を律速することになる。従って、このような場合には、ＰＣ２を複数用いて並列に処理させることによる効果が不明確となる。
【００５４】
すなわち、静的なジョブ割当手法は、動的なジョブ割当手法と比較して、ジョブ管理が容易であり、事前に各ジョブの処理時間（予測検索時間）を高い精度で予測できる場合に有効である。
また、割当管理部８は、ＰＣ２に割り当てるジョブを決定する際に、評価関数を用いてまだ割り当てられていないジョブの評価値を算出し、ＰＣ２に割り当てるジョブを決定してもよい。評価関数の簡単な例としては、以下のようなものが考えられる。
【００５５】
（１）該当ジョブの検索対象サブデータベースがＰＣ２のＤＢアフィニティと一致する場合
評価値＝  ジョブの予測検索時間
（２）該当ジョブの検索対象サブデータベースがＰＣ２のＤＢアフィニティと一致しない場合
評価値＝  ジョブの予測検索時間／２
上記のような評価関数を用いる場合には、割当管理部８は、まだ割り当てられていないジョブの中から最も評価値の高いジョブを選択し、ＰＣ２に割り当てることとなる。
【００５６】
結合部１２は、各ＰＣ２によるジョブ（サブ検索要求）に関する処理結果（検索結果）を取得し結合（マージ）するものであり、検索要求入力部４１から入力された検索要求に対する検索結果を作成するものである。この結合部１２によって結合された検索結果は、検索結果出力部４２に送信されるようになっている。
上述の如く構成された本発明の一実施形態としての情報検索システム１において、検索要求入力部４１によってユーザにより検索要求（検索対象のデータベースおよび検索条件）が入力されると、その検索要求が管理サーバ２０に送信される。
【００５７】
管理サーバ２０においては、サブ検索要求作成部５が、検索要求入力部４１から入力された検索要求に基づいて、複数のＰＣ２によって処理されるべき複数のジョブ（サブ検索要求）を作成する（サブ検索要求作成ステップ）。具体的には、サブデータベース作成部６が、データベース３に基づいて、各ＰＣ２のＲＡＭ３１の容量以下になるような複数のサブデータベースを作成する。又、サブ検索条件作成部７は、必要に応じて、検索要求入力部４１から検索要求として入力された検索条件に基づいてサブ検索要求を作成する。
【００５８】
また、サブ検索要求作成部５は、処理時間予測部１１による予測処理時間に基づいて不均等ジョブを作成するようになっている。
図７は本発明の一実施形態としての情報検索システム１におけるサブ検索要求作成部５により作成されたジョブの例を示す図であり、４台のＰＣ２（２ａ，２ｂ，２ｃ，２ｄ）によって、各ＰＣ２のＲＡＭ３１のメモリサイズ（例えば、２５６ＭＢ）の１．５倍のサイズ（例えば、３８４ＭＢ）のデータベース３を検索対象とする検索要求に基づいて、複数のジョブを作成する例を示すものである。
【００５９】
この図７に示す例においては、サブデータベース作成部６によって、データベース３に基づいて２つのサブデータベースＳＤＢ１，ＳＤＢ２が作成されており、これらのサブデータベースＳＤＢ１，ＳＤＢ２は、それぞれ各ＰＣ２のＲＡＭ３１のメモリサイズよりも小さいサイズとなるように形成されている。
また、図７に示す例においては、サブ検索条件作成部７は、検索要求入力部４１から入力された検索要求を分割して４つのサブ検索条件ＳＱＡ，ＳＱＢ，ＳＱＣ，ＳＱＤを作成している。
【００６０】
すなわち、図７に示す例においては、サブデータベース作成部６およびサブ検索条件作成部７により、８つのジョブ（サブ検索要求）１Ａ，１Ｂ，１Ｃ，１Ｄ，２Ａ，２Ｂ，２Ｃ，２Ｄが作成されている。
なお、処理時間予測部１１によって予測された、これらのジョブの予測検索時間は、ジョブ１Ｂ，１Ｄ，２Ｂ，２Ｄが互いに略同じ予測検索時間を要するとともに、ジョブ１Ａ，１Ｃ，２Ａ，２Ｃが互いに略同じ予測検索時間を要し、更に、ジョブ１Ａ，１Ｃ，２Ａ，２Ｃが、ジョブ１Ｂ，１Ｄ，２Ｂ，２Ｄの略２倍の予測検索時間を要するものとする。
【００６１】
また、図７に示す例においては、ＤＢアフィニティ設定部９において、ＰＣ２ａおよびＰＣ２ｂに対してはサブデータベースＳＤＢ１を優先的に割り当てるようにＤＢアフィニティが設定されており、ＰＣ２ｃおよびＰＣ２ｄに対してはサブデータベースＳＤＢ２を優先的に割り当てるようにＤＢアフィニティが設定されているものとする。
そして、割当管理部８が、上述の如くサブ検索要求作成部５によって作成された各ジョブ１Ａ，１Ｂ，１Ｃ，１Ｄ，２Ａ，２Ｂ，２Ｃ，２Ｄを、ＤＢアフィニティ設定部９に設定されたＤＢアフィニティに従って、各ＰＣ２に対してそれぞれ割り当てる（割当管理ステップ）。又、この際、割当管理部８は動的なジョブ割当手法を用いて、ＰＣ２に各ジョブを割り当てる。
【００６２】
ここで、本発明の一実施形態としての情報検索システム１における割当管理部８によるジョブの割当手法を、図９を参照しながら図８に示すフローチャート（ステップＡ１０〜Ａ８０）に従って説明する。なお、図９は本発明の一実施形態としての情報検索システム１における割当管理部８によって各ＰＣ２にジョブが割り当てられた状態の例を示す図である。
【００６３】
割当管理部８は、未割り当てのジョブがあるか否かを判断し（ステップＡ１０）、未割り当てのジョブが無い場合には（ステップＡ１０のＮＯルート参照）、処理を終了する。
また、未割り当てのジョブがある場合には（ステップＡ１０のＹＥＳルート参照）、割当管理部８は、ジョブが割り当てられるのを待っているＰＣ２があるか、すなわち、ジョブを処理できる状態にあるＰＣ２があるか否かを判断する（ステップＡ２０）。
【００６４】
ジョブの割り当てを待っているＰＣ２がある場合には（ステップＡ２０のＹＥＳルート参照）、割当管理部８は、ＤＢアフィニティ設定部９を参照して、そのＰＣ２についてＤＢアフィニティが適合（一致）するジョブがあるか否かを判断する（ステップＡ６０）。そのＰＣ２に対して、ＤＢアフィニティが適合するジョブがある場合には（ステップＡ６０のＹＥＳルート参照）、処理時間予測部１１による予測検索時間を参照して、ＤＢアフィニティが適合するジョブのうち、予測検索時間が最も長いジョブをそのＰＣ２に対して割り当て（ステップＡ８０）、ステップＡ１０に移行する。
【００６５】
また、そのＰＣ２に対してＤＢアフィニティが適合するジョブが無い場合には（ステップＡ６０のＮＯルート参照）、そのＰＣ２へのジョブの割り当てを終了して（ステップＡ５０）、ステップＡ２０に戻る。
一方、ジョブの割当てを待っているＰＣ２が無い場合には（ステップＡ２０のＮＯルート参照）、割当管理部８は、ジョブを実行中のＰＣ２があるか否かを判断する（ステップＡ３０）。ジョブを実行中のＰＣ２がある場合には（ステップＡ３０のＹＥＳルート参照）、割当管理部８は、そのＰＣ２のジョブが完了するのを待ち（ステップＡ７０）、ステップＡ１０に戻る。又、ジョブを実行中のＰＣ２が無い場合には（ステップＡ３０のＮＯルート参照）、割当管理部８は、本情報検索システム１のオペレータ等に対してエラーを示すメッセージを出力して（ステップＡ４０）、ステップＡ１０に戻る。
【００６６】
上述の如きジョブの割当手法により、図９に示すように、各ＰＣ２に対してジョブが動的に割り当てられる。なお、図９に示す例においては、ジョブ２Ｃの処理には処理時間予測部１１によって予測された予測検索時間よりも１．５倍の時間がかかり、ジョブ２Ｄの処理には処理時間予測部１１によって予測された予測検索時間よりも２倍の時間がかかったものとする。
【００６７】
上述の如く、割当管理部８が各ＰＣ２に対してジョブを割り当てると、各ＰＣ２はそれぞれ割り当てられたジョブを処理する。すなわち、各ＰＣ２は、サブデータベースに対してサブ検索条件に基づいて検索を行ない、その検索結果を管理サーバ２０に対して送信する。
なお、ＰＣ２において、各ＰＣ２に割り当てられたサブデータベースのサイズは、それぞれ各ＰＣ２にそなえられたＲＡＭ３１のサイズよりも小さいので、サブデータベースに対してサブ検索条件の検索を行なう際には、ＲＡＭ３１上に検索対象であるサブデータベースを全て展開して検索を行なうことができ、ディスクアクセス等を生じることなく、高速に検索処理を行なうことができる。
【００６８】
各ＰＣ２による検索結果は、管理サーバ２０において、結合部１２によって結合（マージ）され、検索要求に対する検索結果として検索結果出力部４２に送信されて、オペレータに対して提示される。
このように、本発明の一実施形態としての情報検索システム１によれば、サブデータベース作成部６（サブ検索要求作成部５）が、各ＰＣ２にそなえられたＲＡＭ３１の容量以下のサイズの複数のサブデータベースを作成し、割当管理部８が、これらのサブデータベースを各ＰＣ２に割り当てるので、一度サブ検索要求に対する処理を行なったＰＣ２において、そのＲＡＭ３１には検索対象のサブデータベースがキャッシュされる。これにより、そのＰＣ２においては、サブデータベースにアクセスするためにアクセス速度が遅いハードディスクへのアクセス（ディスクアクセス）を行なう必要がなく、サブデータベースに対する検索処理を高速に行なうことができる。
【００６９】
特に、ＤＢアフィニティ設定部９に、ＤＢアフィニティとしてＰＣ２毎に担当するサブデータベースを予め設定し、割当管理部８がこのＤＢアフィニティに従ってジョブの割り当てを行なうので、割当管理部８が容易にジョブ（サブデータベース）をＰＣ２に割り当てることができ、又、一度サブ検索要求に対する処理を行なったＰＣ２には、そのＲＡＭ３１には検索対象のサブデータベースがキャッシュされ、ＰＣ２においては、サブデータベースにアクセスするためにディスクアクセスを行なう必要がなく、サブデータベースに対する検索処理を高速に行なうことができる。
【００７０】
また、検索要求入力部４１から入力された検索条件を、サブ検索条件作成部７が分割してサブ検索条件を作成することにより、適当な（任意の）大きさ（予測検索時間の長さ）のサブ検索要求を容易に作成することができ利便性が高い。
処理時間予測部１１が、各ジョブについてその予測検索時間を予測するので、割当管理部８が容易に動的なジョブ割当を行なうことができ利便性が高い。
【００７１】
ＤＢアフィニティ設定部９が、各ＰＣ２が優先的に処理を行なうサブデータベースをオペレータや管理者等が予め設定することにより、ＤＢアフィニティを確実に設定することができ、又、各ＰＣ２におけるサブデータベースの処理履歴に基づいて、過去に処理を行なったサブデータベースを優先的にＤＢアフィニティとして設定することにより、容易にＤＢアフィニティを設定することができる。
【００７２】
メモリ管理部１０が、各ＰＣ２にそなえられたＲＡＭ３１の空き容量を管理し、その空き容量以下のサイズのサブデータベースを各ＰＣ２に対して割り当てることにより、容易に且つ確実に、ＰＣ２のＲＡＭ３１の空き容量以下のサイズのサブデータベースをＰＣ２に対して割り当てることができる。
処理時間予測部１１が、各ＰＣ２による各サブ検索要求に関する処理に要する時間（予測検索時間）を予測し、割当管理部８が、その予測検索時間が長いサブ検索要求から優先的にサブ検索要求をＰＣ２に対して割り当てることにより、複数のジョブを複数のＰＣ２に対して効率よく割り当てることができる。
【００７３】
（Ｂ）その他
本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、割当管理部８は、ＰＣ２とサブデータベースとのＤＢアフィニティが適合しない場合においても、割当管理部８が、ＰＣ２のＲＡＭ３１の残容量以内のデータサイズのジョブをＰＣ２に対して割り当ててもよく、更に、サブ検索要求作成部５が、ＰＣ２のＲＡＭ３１の残容量以内のデータサイズとなるように、ＰＣ２に対して未だ割り当てられていない（未割当の）ジョブ（サブデータベース）を、その残容量以下となるように更に分割して、ＰＣ２に割り当ててもよい。
【００７４】
すなわち、本情報検索システム１においては、割当管理部８は、メモリ管理部１０から、各ＰＣ２のＲＡＭ３１の使用状況もしくは空き容量（未使用領域のサイズ）を取得し、その空き容量に応じて、未割当のジョブを更にサブ検索要求作成部５によって、その空き容量以下の複数のジョブ（サブデータベース）に分割させて、その分割して作成されたジョブをそれらのＰＣ２に対して割り当ててもよいのである。
【００７５】
このような、本発明の一実施形態としての情報検索システム１における割当管理部８による他のジョブの割当手法を、図１１を参照しながら図１０に示すフローチャート（ステップＢ１０〜Ｂ１１０）に従って説明する。なお、図１１は本発明の一実施形態としての情報検索システム１における割当管理部８により各ＰＣ２にジョブが割り当てられた他の状態の例を示す図である。
【００７６】
割当管理部８は、未割り当てのジョブがあるか否かを判断し（ステップＢ１０）、未割り当てのジョブが無い場合には（ステップＢ１０のＮＯルート参照）、処理を終了する。
また、未割り当てのジョブがある場合には（ステップＢ１０のＹＥＳルート参照）、割当管理部８は、次に、ジョブが割り当てられるのを待っているＰＣ２があるか、すなわち、ジョブを処理できる状態にあるＰＣ２があるか否かを判断する（ステップＢ２０）。
【００７７】
ジョブの割当てを待っているＰＣ２が無い場合には（ステップＢ２０のＮＯルート参照）、割当管理部８は、次に、ジョブを実行中のＰＣ２があるか否かを判断する（ステップＢ３０）。ジョブを実行中のＰＣ２がある場合には（ステップＢ３０のＹＥＳルート参照）、割当管理部８は、そのＰＣ２のジョブが完了するのを待ち（ステップＢ５０）、ステップＢ１０に戻る。又、ジョブを実行中のＰＣ２が無い場合には（ステップＢ３０のＮＯルート参照）、割当管理部８は、本情報検索システム１のオペレータ等に対してエラーを示すメッセージを出力して（ステップＢ４０）、ステップＢ１０に戻る。
【００７８】
ジョブの割当てを待っているＰＣ２がある場合には（ステップＢ２０のＹＥＳルート参照）、割当管理部８は、ＤＢアフィニティ設定部９を参照して、そのＰＣ２についてＤＢアフィニティが適合（一致）するジョブがあるか否かを判断する（ステップＢ６０）。そのＰＣ２に対して、ＤＢアフィニティが適合するジョブがある場合には（ステップＢ６０のＹＥＳルート参照）、割当管理部８は、処理時間予測部１１による予測検索時間を参照して、そのＰＣ２に適合するジョブのうち、予測検索時間が最も長いジョブをそのＰＣ２に対して割り当て（ステップＢ８０）、ステップＢ１０に移行する。
【００７９】
また、そのＰＣ２に対してＤＢアフィニティが適合するジョブが無い場合には（ステップＢ６０のＮＯルート参照）、割当管理部８は、メモリ管理部１０を参照してそのＰＣ２のＲＡＭ３１の残容量を確認し、そのＰＣ２の残容量以内のデータサイズのジョブがあるか否か、すなわち、サブデータベースのサイズがそのＰＣ２の残容量以内となるジョブがあるか否かを判断する（ステップＢ７０）。
【００８０】
そのＰＣ２の残容量以内のデータサイズのジョブがある場合（ステップＢ７０のＹＥＳルート参照）には、割当管理部８はステップＢ８０に移行する。すなわち、割当管理部８は、ＤＢアフィニティが適合しなくても、そのＰＣ２のＲＡＭ３１の残容量以内のデータサイズのジョブのうち、予測検索時間が最も長いジョブをそのＰＣ２に対して割り当てて（ステップＢ８０）、ステップＢ１０に移行するのである。
【００８１】
また、サブデータベースのサイズがそのＰＣ２のＲＡＭ４１の残容量以内となるジョブが無い場合には（ステップＢ７０のＮＯルート参照）、割当管理部８は、ＰＣ２に対して未割当のジョブについて、そのＰＣ２のＲＡＭ３１残容量以下となるように作成することができるものがあるか、すなわち、未割当のジョブについて、そのサブデータベースを更に分割することができるジョブがあるか否かを判断する（ステップＢ９０）。
【００８２】
サブデータベースを更に分割することができるジョブがある場合には（ステップＢ９０のＹＥＳルート参照）、割当管理部８は、サブデータベース作成部６に、そのジョブのサブデータベースを、そのＰＣ２のＲＡＭ３１残容量以下となるように更に分割させて（ステップＢ１１０）、ステップＢ１０に移行する。
また、サブデータベースを更に分割することができるジョブが無い場合には（ステップＢ９０のＮＯルート参照）、そのＰＣ２に対するジョブの割り当てを終了させて（ステップＢ１００）、ステップＢ２０に移行する。
【００８３】
上述の如きジョブの割当手法により、図１１に示すように、各ＰＣ２に対してジョブが動的に割り当てられる。なお、図１１に示す例においては、ジョブ２Ａの処理には処理時間予測部１１によって予測された予測検索時間よりも１．５倍の時間がかかり、ジョブ２Ｃの処理には処理時間予測部１１によって予測された予測検索時間よりも２倍の時間がかかったものとする。
【００８４】
また、図１１中において、ジョブ２Ｄ−１，２Ｄ−２はともにジョブ２Ｄを再分割して作成されたものである。この図１１に示す例においては、ジョブ２Ｄ−１，２Ｄ−２はＰＣ２ａ，２ｂとＤＢアフィニティが一致しないので、ＰＣ２ａ，２ｂのＲＡＭ３１にはジョブ２Ｄ−１，２Ｄ−２に関するサブデータベースＳＤＢ２がキャッシュされていない。従って、ＰＣ２ａ，２ｂがジョブ２Ｄ−１，２Ｄ−２を処理するためには、ＰＣ２ａ，２ｂはジョブ２Ｄ−１，２Ｄ−２に関するサブデータベースＳＤＢ２をデータベース３等から読み出す（ディスクアクセスを行なう）必要があるが、これらのジョブ２Ｄ−１，２Ｄ−２は、サブ検索要求作成部５によって読み出し負荷が小さくなるように再分割して作成されているので、システム全体での処理時間（検索）が短くなり、結果的に処理速度を短縮することができ、又、ＤＢアフィニティが適合しないジョブを割り当てることによるリスク（サブデータベースの読み出し負荷）を低減することができる。
【００８５】
また、ＤＢアフィニティが適合しないジョブを、ＰＣ２ａ，２ｂのＲＡＭ３１の残容量以下のサイズで割り当てるので、ＰＣ２ａ，２ｂにおいては、ＲＡＭ３１内にサブデータベースＳＤＢ１が引き続きキャッシュされており、ＰＣ２ａ，２ｂに対して、再度サブデータベースＳＤＢ１に関する処理を行なわせる場合にも検索速度が低下することがない。
さらに、ジョブ（サブ検索要求）について、ＤＢアフィニティ設定部９によって設定された各ＰＣ２に関するＤＢアフィニティ，サブデータベースおよび処理時間予測部１１によって予測された予測検索時間（予測検索処理量）の少なくとも１つ以上について、前述の如き評価関数を用いて評価する評価部をそなえ、割当管理部８が、この評価部による評価結果に基づいて、各ＰＣ２にジョブを抽選的に割り当てもよい。これにより、割当管理部８が、容易且つ確実に各ＰＣ２にジョブを割り当てることができる。
【００８６】
また、上述した実施形態においては、便宜上、各ＰＣ２はそれぞれ同容量のＲＡＭ３１をそなえているが、これに限定されるものではなく、各ＰＣ２がそれぞれ異なるサイズのＲＡＭ３１をそなえてもよく、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。
さらに、管理サーバ２０は、例えばサーバ機能をそなえたコンピュータ（情報処理装置）によって実現され、このコンピュータのＣＰＵが、情報検索プログラムを実行することにより、上述したサブ検索要求作成部５，サブデータベース作成部６，サブ検索条件作成部７，割当管理部８，ＤＢアフィニティ設定部９，メモリ管理部１０，処理時間予測部１１，結合部１２，および評価部として機能するようになっている。
【００８７】
なお、サブ検索要求作成部５，サブデータベース作成部６，サブ検索条件作成部７，割当管理部８，ＤＢアフィニティ設定部９，メモリ管理部１０，処理時間予測部１１，結合部１２，および評価部としての機能を実現するためのプログラム（情報検索プログラム）は、例えばフレキシブルディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−Ｒ／Ｗ，ＤＶＤ，ＤＶＤ−Ｒ，ＤＶＤ−Ｒ／Ｗ，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００８８】
サブ検索要求作成部５，サブデータベース作成部６，サブ検索条件作成部７，割当管理部８，ＤＢアフィニティ設定部９，メモリ管理部１０，処理時間予測部１１，結合部１２，および評価部としての機能を実現する際には、内部記憶装置（本実施形態ではプリンタのＲＡＭやＲＯＭ）に格納されたプログラムがコンピュータのマイクロプロセッサ（ＣＰＵ）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００８９】
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、管理サーバ２０がコンピュータとしての機能を有しているのである。
【００９０】
さらに、本実施形態における記録媒体としては、上述したフレキシブルディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−Ｒ／Ｗ，ＤＶＤ，ＤＶＤ−Ｒ，ＤＶＤ−Ｒ／Ｗ，磁気ディスク，光ディスク，光磁気ディスクのほか、ＩＣカード，ＲＯＭカートリッジ，磁気テープ、パンチカード、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ），外部記憶装置等や、バーコードなどの符号が印刷された印刷物等のコンピュータ読取可能な種々の媒体を利用することができる。
【００９１】
なお、本発明の各実施形態が開示されていれば、当業者によって製造することが可能である。
【産業上の利用可能性】
【００９２】
以上のように、本発明の情報検索システム，情報検索方法，情報検索装置，情報検索プログラムおよび当該プログラムを記録したコンピュータ読取可能な記録媒体は、複数の情報処理装置をそなえ、検索対象であるデータベースとこのデータベースに対する検索条件とからなる検索要求を、これらの複数の情報処理装置によって並列に処理することに有用であり、特に各情報処理装置において検索要求を高速に処理することができるようにして、データベースに対して高速に検索を行なうことに適している。
【図面の簡単な説明】
【００９３】
【図１】本発明の一実施形態としての情報検索システムの模式的な構成を示す図である。
【図２】本発明の一実施形態としての情報検索システムにおけるサブ検索要求（ジョブ）の作成手法を説明するための図である。
【図３】本発明の一実施形態としての情報検索システムにおけるサブ検索要求（ジョブ）の作成手法を説明するための図である。
【図４】本発明の一実施形態としての情報検索システムにおけるサブ検索要求（ジョブ）の作成手法を説明するための図である。
【図５】本発明の一実施形態としての情報検索システムにおける不均等ジョブ作成手法の例を説明するための図である。
【図６】本発明の一実施形態としての情報検索システムにおける割当管理部による動的なジョブ割当手法を説明するための図である。
【図７】本発明の一実施形態としての情報検索システムにおけるサブ検索要求作成部により作成されたジョブの例を示す図である。
【図８】本発明の一実施形態としての情報検索システムにおける割当管理部によるジョブの割当手法を説明するためのフローチャートである。
【図９】本発明の一実施形態としての情報検索システムにおける割当管理部によって各ＰＣにジョブが割り当てられた状態の例を示す図である。
【図１０】本発明の一実施形態としての情報検索システムにおける割当管理部による他のジョブの割当手法を説明するためのフローチャートである。
【図１１】本発明の一実施形態としての情報検索システムにおける割当管理部により各ＰＣにジョブが割り当てられた他の状態の例を示す図である。
【図１２】従来の情報検索システムにおけるデータベースのサイズと検索時間との関係を模式的に示す図である。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図１
【補正方法】変更
【補正の内容】
【図１】
2004084095.tif 000015
【国際調査報告】
2004084095.tif 000016
2004084095.tif 000017
2004084095.tif 000018
2004084095.tif 000019