JP4021287B2 - データベース検索プログラム、データベース検索方法及びデータベース検索装置 - Google Patents
データベース検索プログラム、データベース検索方法及びデータベース検索装置 Download PDFInfo
- Publication number
- JP4021287B2 JP4021287B2 JP2002263396A JP2002263396A JP4021287B2 JP 4021287 B2 JP4021287 B2 JP 4021287B2 JP 2002263396 A JP2002263396 A JP 2002263396A JP 2002263396 A JP2002263396 A JP 2002263396A JP 4021287 B2 JP4021287 B2 JP 4021287B2
- Authority
- JP
- Japan
- Prior art keywords
- database
- search
- divided
- database server
- search request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、複数のデータベースサーバ装置に不均一に多重に記憶されたデータベースをアクセスするための、データベース検索プログラム、データベース検索方法及びデータベース検索装置に関する。
【0002】
【従来の技術】
インターネットあるいはイントラネットなどのネットワーク上に構築された情報検索システムでは、データベースを記憶しデータベースへのアクセスを制御する多数のコンピュータ(データベースサーバ装置)を分散構成にすることによって、コンピュータ1台あたりの記憶容量やCPU性能の限界及びOSなどのプラットフォームに制限されることなく、大規模な情報データベースシステムを構築することが可能である。しかし、このように大規模な情報データベースシステムでは、一般的に情報の検索処理に要する時間が非常に大きい。特にマルチメディア情報データベースシステムの場合には、検索結果として転送されるデータ量も大きくなり、コンピュータやネットワークに大きな負荷が掛かり、情報検索要求1回当たりに対する応答時間が大きくなる傾向にある。このような大規模な情報データベースシステムにおいて、同時に多数のクライアント装置からの情報検索要求が発生した場合であっても、検索処理速度を著しく悪化させないことが望まれている。
【0003】
このため、従来、クライアント・サーバシステム又はWWWシステムとして構築された情報検索システムでは、分散並列化処理及び負荷分散の方法が行われてきた。すなわち、分散並列化処理では、異なるデータを異なるデータベースサーバ装置に記憶させることにより、それらのデータを並列にアクセス可能にするとともに、検索要求が相対的に多く発生するデータは、複数個設けることによりいわゆる多重に構成し、それらの多重のデータを異なるデータベースサーバ装置内に記憶させている。これにより、同じデータに対する異なるクライアントからの複数の検索要求を並列に処理可能にしている。データに対する検索要求の発生頻度は、データ毎に異なるので、多重度はデータにより異なり、その意味で不均一多重であるデータベースが使用されている場合も多い(例えば、特許文献1参照)。
【0004】
【特許文献1】
特開平6−119383号公報(段落17〜19、図5)
【0005】
不均一多重データベースの他の形態として、異なるデータベースの異なる組合せを複数のデータベースサーバ装置に記憶させるものもある。このようなデータベースシステムでは、多重度はデータ単位ではなく、データベース単位(同じデータベースを構成するデータ群の単位)に変えることも可能である。例えば、企業のデータベースシステムでは、本社に全てのデータベースのマスタを記憶させ、各支店には、支店毎に複数のデータベースのコピーを記憶させ、支店内の複数のデータベースは、イントラネットを介して支店内で使用可能にしている。支店毎のデータベースは、支店を構成する複数の部のそれぞれのニーズと使用頻度に対応して部毎に異なるデータベースを当該部用のデータベースサーバ装置に記憶させる例もある。
【0006】
例えば、地図情報に関連する部毎のデータベースの例としては、第1部用のデータベースサーバ装置には、住宅地図データベース、道路地図データベース、市街図データベースを記憶し、第2部用のデータベースサーバ装置には、住宅地図データベース、道路地図データベース、地形図データベース、設備図データベースを記憶し、第3部用のデータベースサーバ装置には、住宅地図データベース、道路地図データベース、市街図データベース、広域図データベースを記憶する。ここで、設備図データベースは、道路内部又は道路上に設けられた設備の地図である設備図を表すデータベースである。上記各データベースは、複数の層に区分された複数のデータからなり、それらのデータが重なり合って一つの地図を構成するものである。
【0007】
各部のメンバーは、クライアント装置から、自分が属する部に対応して設けられたデータベースサーバ装置にアクセスして業務を進める。自分の部用のデータベースサーバ装置に記憶されていないデータについては、同じ支店内の他の部用のデータベースサーバ装置に記憶されたデータを使用する。上の例に見られるように、住宅地図データベース、道路地図データベースは、いずれの部用のデータベースサーバ装置にも記憶されているので、それぞれの部において多くのクライアント装置から検索要求がこれらのデータベースに対して発生することが予想されている。一方、市街図データベースは、第2部と第3部用のデータベースサーバ装置に記憶されているので、このデータベースに対する検索要求は、これらの部で発生することが予想されている。設備図データベース、地形図データベース、広域図データベースは、それぞれ第2部、第2部、第3部用のデータベースサーバ装置にしか記憶されていない。これらのデータベースに対する検索要求は、対応する部内のメンバーからしか発生しないと予想されていることを反映している。
【0008】
負荷分散は、クライアント装置からの検索要求を複数のコンピュータに分散して投入することにより各コンピュータの負荷をなるべく均一に近いものにし、それでもって処理時間が極端に長いコンピュータが発生しないようにするものである。負荷分散の代表的な方法として、静的な負荷分散方法と動的な負荷分散方法が知られている。静的な負荷分散方法の例は、クライアント装置からの検索要求を複数の同等の処理性能を有するコンピュータに対して一定の順序で分配するものであり、個々のコンピュータの実際の負荷は検出されない。その方法の一例は、ラウンドロビン法であり、この方法では、クライアント装置からの検索要求を複数のコンピュータに対して一定の順序で巡回的に分配する。動的な負荷分散方法は、各コンピュータにおけるCPU負荷、I/O負荷などの負荷を監視、クライアント装置からの新たな検索要求を投入するときに、負荷がなるべく均等に近い状態に分散するように、投入先のコンピュータを動的に選択するものである。負荷分散に関する上記先行技術は当業者によく知られているので、これらの負荷分散に関する先行技術文献の記載は省略する。
【0009】
【発明が解決しようとする課題】
上記不均一多重に記憶された複数のデータベースに対する多くの検索要求を迅速に処理してターンアランド時間を短くするには、できるだけ多くのデータベースサーバ装置に検索要求を分散して実行させ、それでもって処理時間を極端に大きくならないようにすることが望ましい。更に、その際、それぞれのデータベースサーバ装置の性能を低下させないで、できるだけ最大限の性能を出させるようにすることが望ましい。
【0010】
ラウンドロビン法のような静的な負荷分散方法を複数のデータベースサーバ装置に適用するには、各データベースサーバ装置には、同じデータが記憶されていることが前提となっている。したがって、上に例示した地図データベースサーバ装置のように、データベースサーバ装置毎に、記憶されているデータの組合せが異なる不均一多重データベースの場合には、検索要求を単純に巡回的に異なるデータベースサーバ装置に分配することはできない。また、ラウンドロビン法を何らかの形態で適用しても効果が少ない。
【0011】
更に、ラウンドロビン法は、各データベースサーバ装置に対する検索要求の処理負荷がほぼ均一であることが前提となっている。しかし、検索要求の処理負荷は、検索対象のデータベースにより異なるのが普通である。したがって、上に例示した地図データベースサーバ装置のように、同じデータベースサーバ装置に複数の地図データベースが記憶されているデータベースの場合には、各データベースサーバ装置に対する検索要求の処理負荷は、いずれの地図データベースに対する検索要求であるかにより異なる。したがって、同じ数の検索要求が各データベースサーバ装置に投入されても複数のデータベースサーバ装置の処理負荷は異なるため、ラウンドロビン方法では効果が期待できない。また、各データベースサーバ装置のハードウェア的な処理能力(CPU、メモリ、ディスクの速度等)が異なる場合も同様に、ラウンドロビン方法では効果が期待できない。
【0012】
一方、動的負荷分散を行う方法では、すべてのデータベースサーバ装置は必ずしも同等の性能を有している必要はないが、負荷をどのように予測するかが問題であり、現状では負荷の予測の精度に問題がある。更に、各データベースサーバ装置の負荷を監視し、かつ、投入すべき検索要求の負荷を予測するための処理負荷が大きくなり、結果的に、各データベースサーバ装置の性能が低下したのと同じような悪影響が発生し、検索要求の処理時間がさほど減少しないという問題もあり、動的な負荷分散は必ずしも効果がでるものではないという問題がある。
【0013】
結局、従来技術では、不均一多重データベース対する新規の検索要求を、いずれのデータベースサーバ装置に投入するのがよいかを適切に決定することができない。
【0014】
一般に、各データベースサーバ装置は、複数のスレッドを用いるマルチスレッド機能により異なる検索要求を並列に処理可能になっている。しかし、スレッド数の限界値を超えて検索要求が投入された場合には、当該データベースサーバ装置内に設けられた内部キューに受信した検索要求を登録し、待ち状態に維持する。このため、いずれかのデータベースサーバ装置に投入された検索要求が直ぐに実行されるとは限らず、当該データベースサーバ装置内で処理待ち状態に長い時間維持されるということが発生する。
【0015】
このような待ち状態が発生した状態では、追加の検索要求を同じデータベースサーバ装置に投入しても同様に内部キューに登録されるだけであり、処理は開始されない。したがって、データベースサーバ装置内で検索要求を待ち状態に維持することは、見かけ上検索要求をデータベースサーバ装置に投入しただけであり、処理時間の短縮にならない。それどころか当該データベースサーバ装置が当該検索要求を処理可能になる前に、他のデータベースサーバ装置のほうが同じ検索要求を処理可能になる可能性があり、そのようになった場合には、検索要求を上記他のデータベースサーバ装置に投入するほうが処理速時間が減ることになる。したがって、上記先のデータベースサーバ装置に検索要求を投入したことがかえって当該検索要求の処理開始を遅らせることになり、結果として処理時間を増大していることになる。
【0016】
本発明では、以上に述べた従来技術の問題を考慮して、複数のデータベースサーバ装置に不均一に多重に記憶された複数のデータベースに対する複数の検索要求を分散して投入でき、かつ、処理速度の悪化を簡単な方法で抑止可能にする、データベース検索プログラム、データベース検索方法及びデータベース検索装置を提供することを目的とする。
【0017】
【課題を解決するための手段】
上記目的を達成するために、本発明に係るデータベース検索プログラムは、以下のステップをコンピュータに実行させるようにプログラムされているものである。すなわち、複数のデータベースサーバ装置にそれぞれ記憶され、複数の分割単位データの異なる組合せからなる複数のデータべースにより構成された不均一多重データベースに対する、いずれかのクライアント装置から受信された検索要求を分割して、それぞれ前記複数の分割単位データの一つに対して検索を要求する複数の分割検索要求を生成する。生成された複数の分割検索要求を、前記複数のデータベースサーバ装置に共通に設けられた共通キューに、それぞれの分割検索要求を生成する元となった検索要求の受信時刻の順序を識別できるように登録する。
更に、前記共通キューに複数の分割検索要求が新に登録される毎に、当該複数の分割検索要求を順次選択し、当該選択された分割検索要求を処理可能であるという処理可能条件と、処理中の他の分割検索要求と並列に当該選択された分割検索要求を処理できるという並列処理可能条件とを満たす追加投入可能な一つ又は複数のデータベースサーバ装置を判別し、前記判別により追加投入可能であると判別された一つのデータベースサーバ装置若しくは複数のデータベースサーバ装置の一つに前記選択された分割検索要求を追加投入する。
更に、いずれかの分割検索要求の処理がいずれかのデータベースサーバ装置により終了するのに同期して、前記共通キューから、前記処理可能条件と前記並列処理可能条件とを満たす分割検索要求を最も古いものから選択して当該データベースサーバ装置に投入する。
【0018】
これにより、新規に発生した検索要求を分割して得られる複数の分割検索要求を複数のデータベースサーバ装置により並列に処理させることができ、更に、各データベースサーバ装置には、新規分割検索要求を並列に処理可能という条件下で投入するので、検索要求がいずれかのデータベースサーバ装置に投入された後、当該データベースサーバ装置内で待ち状態に維持されることを回避でき、結果として全ての分割検索要求の処理時間の増大を抑止することができ、ひいては検索要求の処理時間を短くすることができる。
【0019】
【発明の実施の形態】
以下、本発明に係るデータベース検索プログラム、データベース検索方法及びデータベース検索装置のいくつかの実施の形態を説明する。なお、第2の実施の形態以降においては第1の実施の形態との相違点を説明するに止める。
【0020】
<発明の第1の実施の形態>
図1は、本発明に係るデータベース検索プログラムを使用する情報検索システムの概略構成図である。情報検索システム1は、検索サーバ装置10と、複数のデータベースサーバ装置21、22、23、…と、それらを接続するイントラネットあるいはインターネットのようなネットワーク30と、上記ネットワーク30に接続された複数のクライアント装置40とからなる。なお、図には簡単化のために一つのクライアント装置40しか図示していないが、実際には複数のクライアント装置を使用できる。
【0021】
データベースサーバ装置21には、データベース管理プログラム(DBMS)24とデータベース27が記憶されている。データベース管理プログラム24は、検索サーバ装置10から送信されるデータベースに対する検索命令をデータベース27に対して実行し、得られた検索結果を検索サーバ装置10に返信するプログラムである。同様に、データベースサーバ装置22にはデータベース管理プログラム25とデータベース28が記憶され、データベースサーバ装置23にはデータベース管理プログラム26とデータベース29が記憶されている。
【0022】
後に説明するように、検索サーバ装置10内には、本発明に係るデータベース検索プログラムの一つの実施の形態が使用され、当該プログラムと検索サーバ装置10により、本発明に係るデータベース検索方法の一つの実施の形態が使用され、検索サーバ装置10により本発明に係るデータベース検索装置に一つの実施の形態が実現される。なお、検索サーバ装置10は、複数のデータベースサーバ装置21、22、23に共通に一つ設けられているが、複数の検索サーバ装置が設けられてもよい。
【0023】
以下においては、各データベースサーバ装置21等内に記憶されたデータベース27等は、地図データベースであると仮定する。しかし、本発明は、そのようなデータベースに限定されるものではない。地図データベースは、例えば、特開2000−81839号明細書に記載されているように、一般に複数の層のデータからなり、かつ、地図上の領域は、複数の単位サイズのメッシュに区分され、メッシュ毎にそこに属する複数の層のデータが読み出し可能である。
【0024】
利用者は、地図データベースを利用するときには、クライアント装置40から、利用したい地図情報の種別、地図情報を利用したい領域を指定する情報、例えば、地番あるいは地域名を指定すると、データベース27、28又は29から当該地番を含む一つのメッシュに属する複数の層のデータが読み出され、あるいは、上記指定された地域名の地域を構成する複数のメッシュのそれぞれについて、それぞれのメッシュに属する複数の層の情報が出力され、これらに複数の層の情報は、合成されてクライアント装置の表示画面に表示される。
【0025】
以下では、簡単化のために、利用者が指定した検索要求は、一つのメッシュに属する地図情報の検索を要求した場合について説明する。利用者が指定した検索要求が複数のメッシュに属する地図情報の検索を要求する場合には、一つのメッシュに属する地図情報についての以下に述べる処理をメッシュの数だけ繰り返せばよい。なお、上記公開公報では、地図データベースに含まれた全ての層の情報のうち、出力させたい層を利用者が指定可能になっていているが、本実施の形態でもそのようにすることができる。
【0026】
本実施の形態では、地図データベースとして、複数の種類の地図データベースを使用すると仮定する。例えば、従来の技術で述べた住宅地図データベース、道路地図データベース、設備図データベース等である。更に、各地図データベースは、複数の層に対する複数の層別データからなると仮定する。各データベースサーバ装置には、複数の地図データベースのそれぞれの複数の層別データが記憶される。同じ地図データベースが複数のデータベースサーバ装置に記憶されていてもよいが、一部の地図データベースは、一部のデータベースサーバ装置には記憶されていなくてもよい。
【0027】
同じ地図データベースが異なるデータベースサーバ装置に記憶される場合でも、当該地図データベースを構成する複数の層別データのうち異なる組が、それらの複数のデータベースサーバ装置に記憶されてもよい。したがって、複数のデータベースサーバ装置21、22、23に記憶されるデータベース27、28、29は、そこに含まれている地図データベースの種類が一部異なってもよいが、同じものもあるという意味で不均一多重のデータベースである。更に、同じ地図データベースが複数のデータベースサーバ装置21等に記憶される場合でも、記憶される層別データがデータベースサーバ装置により異なっていてもよいという意味でも、不均一多重データベースである。
【0028】
本実施の形態では、このように複数の地図データベースが、不均一多重に複数のデータベースサーバ装置21等に記憶されていると仮定して以下の説明をするが、本実施の形態で使用する技術は、各データベースサーバ装置21等には、単一の地図データベースの異なる層の層別データが不均一多重に記憶されている場合にも同様に使用できる。
【0029】
いずれの地図データベースを多重で記憶するか、多重で記憶する地図データベースを構成する複数の層別データのうち、いずれの層別データを多重で記憶するかは、それぞれの地図データベースの利用頻度及びそれぞれの層別データの使用頻度により決めることができる。
【0030】
本実施の形態では、以下に詳細に説明するように、利用者からの検索要求を、それが要求するいずれかの地図データベースの複数の層別データの一つをそれぞれ要求する複数の分割検索要求に分割して、それぞれの分割検索要求を並列に処理する。その意味で、上記層別データは、検索要求の分割の単位となるデータであり、本明細書では、このようなデータの単位を分割単位データと呼ぶことにする。
【0031】
データベースサーバ装置21等は、マルチスレッド機能により複数の検索要求を一定の条件下で並列に処理可能になっている。分割単位データは、地図データベースの構成単位であり、かつ、少なくとも異なる分割単位データに関する複数の分割検索要求は複数のスレッドを用いて並列に処理可能であるものを分割単位データとする。
【0032】
検索サーバ装置10では、データベース検索プログラム50が記憶され、実行される。データベース検索プログラム50は、クライアント装置40との通信を行うクライアント装置通信部51と、クライアント装置40から出力された検索要求を受け付け、受け付けた検索要求を複数の分割検索要求に分割する検索要求受付分解部52と、各分割検索要求をいずれかのデータベースに投入する検索要求投入制御部53と、データベースへの分割検索要求の投入可能性を判断する投入可能性判断部54と、各データベースに対する分割検索要求の投入状況を監視するデータベース別投入状況監視部55と、データベースサーバ装置との通信を行うデータベース通信部56、利用者からの一つの検索要求から生成された複数の分割検索要求に対して複数のデータベースサーバ装置21等から出力された複数の検索結果データを結合して利用者のクライアント装置40に送信させる検索結果結合部57等のプログラム部分を含む。
【0033】
なお、検索サーバ装置10からデータベースサーバ装置21等へ分割検索要求を投入すると、データベースサーバ装置21等内のデータベース管理プログラム24が、当該分割検索要求を当該データベースサーバ装置21等に記憶されたデータベースに処理させるが、本明細書では、検索サーバ装置10からデータベースサーバ装置21等へ分割検索要求を投入することを、単に当該データベースサーバ装置21等に記憶されたデータベースへの分割検索要求の投入あるいは単にデータベースへの分割検索要求の投入と呼ぶことがある。
【0034】
更に、データベース検索プログラム50は、各データベースサーバ装置21等内に設けられたデータベース27等に含まれた分割単位データを示す分割単位データ配置情報60と、データベース別投入状況監視部55による監視により得られた各データベース別の分割検索要求の投入状況を示すデータベース別投入状況テーブル70と、同じ利用者から出力された検索要求から分割により生成された分割検索要求を登録するための共通キュー80と、同じ利用者から出力された検索要求から分割により生成された分割検索要求に対する複数の検索結果データ91の受信状況を管理するための検索結果管理テーブル90等の情報を含んでいる。
【0035】
図2は、分割単位データ配置情報60の例を示す図である。分割単位データ配置情報60は、各データベースサーバ装置21等内に設けられたデータベース27等に含まれた分割単位データを示す情報である。図において、データベース#フィールド601には、検索サーバ装置10により検索可能なデータベース27、28、29の番号DB#1、DB#2、DB#3が記憶されている。図には、各データベース27等の符号27等も括弧内に記載されている。分割単位データ配置状況記憶フィールド602は、各データベース27、28、29のそれぞれに、各分割単位データ#の分割単位データが配置されているか否かを示す。各分割単位データ#に対応して、○印が記憶されているか空白のままである。○印は、各データベース27、28、29に、対応する分割単位データが配置されていることを示す。
【0036】
図においては、分割単位データ#1は、データベース27、28、29のいずれにも含まれ、分割単位データ#2は、データベース28、29に含まれ、分割単位データ#3は、データベース27、29に含まれ、分割単位データ#4と#5は、データベース27、28に含まれている。分割単位データ#6と#8は、データベース28のみに含まれ、分割単位データ#7は、データベース27のみに含まれ、分割単位データ#9は、データベース29のみに含まれている。
【0037】
図2では、各分割単位データに対して優先度603が更に記憶されている。ここでは、各分割単位データに対応して優先度を当該分割単位データの多重度に逆比例して決められている。例えば図の例では、分割単位データ#1は、3個のデータベースで処理可能であるので、優先度は1/3とする。分割単位データ#2は2個のデータベースで処理可能であるので、優先度は1/2とする。分割単位データ#7は、1個のデータベースでしか処理可能でないので優先度は1/1とする。このような優先度は、同時刻に共通キュー80(図1)に登録された複数の分割検索要求がいずれかのデータベースに投入可能であるときに、そのデータベースに投入する一つの分割検索要求を選択する基準に使用することが可能である。
【0038】
図3は、本実施の形態で使用可能なデータベース別投入状況テーブル70の例を示す図である。データベース別投入状況テーブル70は、データベース別投入状況監視部55による監視により得られた各データベース別の分割検索要求の投入状況を示す。通常そうであるように、本実施の形態でも、各データベースサーバ装置21等は、受信した複数の検索要求(本実施の形態では分割検索要求)をそれぞれ異なるスレッドを用いて処理する。各データベースサーバ装置毎に、使用可能なスレッド数の閾値が決まっており、本実施の形態では、当該データベースサーバ装置に投入された分割検索要求に対するスレッドの総数が、上記閾値を越えないとき、それらの分割検索要求は並列に処理されると仮定している。なお、使用可能なスレッドの総数の閾値と、並列に処理可能なスレッドの総数の閾値が異なるときには、後者の閾値を使用する。したがって、本実施の形態では、スレッドの総数の閾値は、並列に処理可能なスレッドの総数の閾値である。
【0039】
データベース別投入状況テーブル70には、各データベース27、28、29に対応して当該データベースで並列に処理可能なスレッドの総数の閾値を記憶するフィールド701と、投入済み分割検索要求数を記憶するフィールド702と、対応するデータベースが分割検索要求の新規投入を禁止する状態にあるか否かを示す投入禁止フラグが記憶されるフィールド703とが設けられている。当該フラグは値が1のときには、投入禁止状態を示す。
【0040】
データベース別投入状況監視部55は、各データベース27等が記憶されているデータベースサーバ装置21等により定められた並列に処理可能なスレッドの総数の閾値をデータベース別投入状況テーブル70のフィールド701に初期値として記憶する。更に、検索要求投入制御部53により新たな分割検索要求がいずれかのデータベースに投入されたとき、当該データベースに対応するフィールド702内の投入済み分割検索要求数を1だけ増大する。
【0041】
更に、いずれかのデータベースサーバ装置21等において、投入済みのいずれかの分割検索要求の処理が終了したとき、当該データベースサーバ装置21等が検索結果データを検索サーバ装置10に送信する。検索サーバ装置10では、データベース通信部56が検索結果データを受信すると、データベース通信部56は、この検索結果データを検索結果結合部57に通知し、更に検索結果データの受信と送信元のデータベースサーバ装置の識別情報とを検索要求投入制御部53とデータベース別投入状況監視部55に通知する。データベース別投入状況監視部55は、この通知を受信すると、当該データベースサーバ装置に含まれたデータベースに対応する、フィールド702内の投入済み分割検索要求数を1だけ減少する。
【0042】
データベース別投入状況監視部55は、いずれかのデータベースに対するフィールド702内の投入済み分割検索要求数が変更されたときに、当該フィールド702内の投入済み分割検索要求数と同じデータベースに対するフィールド701内のスレッド総数の閾値とを比較し、フィールド702内の投入済み分割検索要求数がフィールド701内のスレッド総数の閾値と等しくなったとき、同じデータベースに対するフィールド703内の投入禁止フラッグを1に設定する。
【0043】
一方、フィールド702内の投入済み分割検索要求数がフィールド701内のスレッド総数の閾値以下になったときには、同じデータベースに対するフィールド703内の投入禁止フラッグを0に設定する。こうして、投入禁止フラグが0であるデータベースに対しては、新たな分割検索要求を投入することができ、更に当該新たな分割検索要求は、投入されると、同じデータベースに投入済みの複数の分割検索要求と並列に処理されることになる。
【0044】
通常のデータベースサーバ装置は、上記閾値を超える数の検索要求を受けたときには、受けた検索要求を当該データベースサーバ装置内の図示しない内部キューに登録する。しかし、本実施の形態では、データベースサーバ装置21等の内部に分割検索要求を待ち状態に維持することを回避するために、当該データベースサーバ装置21等により使用されているスレッドの総数が上記閾値に達したときには、検索要求投入制御部53は、当該データベースサーバ装置21等には新たな分割検索要求を投入しないようになっている。
【0045】
本実施の形態では、各データベースサーバ装置21等は、それが定めたスレッド総数の閾値を超えない範囲では、複数のスレッドを用いて複数の分割検索要求を並列に処理可能であると仮定している。したがって、本実施の形態では、各データベースサーバ装置21等に投入される複数の分割検索要求は、投入されると、既に投入済みの分割検索要求と並列に処理される。すなわち、検索要求投入制御部53は、新規分割検索要求をデータベースサーバ装置21等に投入するときには、当該分割検索要求は、当該データベースサーバ装置21等で処理可能であるという処理可能条件(すなわち、当該分割検索要求が要求する分割単位データが当該データベースサーバ装置21等に記憶されたデータベース27等に含まれている)と、当該新規の分割検索要求は、投入済みの分割検索要求と並列に処理されるという並列処理可能性条件を満すことを確認して投入されるようになっている。
【0046】
図4は、クライアント装置40の概略ブロック図である。クライアント装置40は、処理装置41、マウス等のポインティングデバイス及びキーボード等のデータ入力部を含む入力装置42と、CRT等の表示装置43を備え、処理装置41では、地図表示プログラム44とウェブブラウザプログラム45とが実行される。地図表示プログラム44は、検索制御処理部441と、地図情報表示処理部442等を含んでいる。クライアント装置40では、利用者は、検索制御処理部441により、検索すべき地図データベースの名称と、当該地図データベース内の表示されるべき地域を指定する情報を入力し、入力された情報は、検索制御処理部441により検索サーバ装置10に送信される。地図情報表示処理部442は、検索サーバ装置10から送信される一連の検索結果データを受信して、それぞれのデータが示す地図情報を生成して、それらの地図情報を重畳して表示装置43に表示させる。
【0047】
利用者により指示された検索要求は、以下のように処理される。検索サーバ装置10では、クライアント装置通信部51が、クライアント装置40から検索要求を受信すると、利用者に利用者識別番号(利用者ID)を割り当て、検索要求受付分解部52に受信された検索要求と利用者IDと検索要求を受信した時刻(要求受信時刻)を転送する。検索要求受付分解部52は、受信された検索要求を受け付け、要求登録番号を割り当て、受け付けた検索要求を検索結果管理テーブル90に登録する。検索結果管理テーブル90の内容は後に説明する。更に、検索要求受付分解部52は、当該検索要求を複数の分割検索要求に分解し、当該要求登録番号と、当該複数の分割検索要求と、利用者IDと、要求受付時刻とを共通キュー80に登録する。各分割検索要求は、検索対象とする分割単位データを指定する情報その他の検索に使用される情報を含んでいる。
【0048】
図5は、共通キュー80の例を示す図である。図において、801、802、803、…は、それぞれ一つの検索要求を分割して得られた複数の検索要求を記憶する領域であり、領域801、802、803、…の順に、受信時刻の古い検索要求に関する情報を記憶する。各領域801等には、要求登録番号を記憶するフィールド811と、検索要求を発行した利用者に割り当てられた利用者識別情報(図では単にID1、ID2、等で示している)を記憶するフィールド812と、複数の分割単位データに対応してそれぞれの分割単位データを要求する複数の分割検索要求を記憶するフィールド813と、複数の分割検索要求の元となる検索要求がクライアント通信部51により受信されたときの時刻を示す要求受信時刻を記憶するフィールド814とが含まれている。なお、要求受信時刻には、他の時刻、例えば、検索要求が検索要求受付分解部により複数の検索要求に分解され、それらの分割検索要求が共通キュー80に登録された時刻を使用してもよい。
【0049】
図では、第1の検索要求の利用者IDはID1であり、第2の検索要求の利用者IDはID2であることが分かる。フィールド813には、複数の分割単位データのうち分割検索要求がある分割単位データに対しては○印が記憶されている。第1の検索要求から分割単位データ#1、3、5、6に対する4つの分割検索要求が生成され登録されている。同様に、第2の検索要求から分割単位データ#2、3、4、6、8に対する5つの分割検索要求が生成され登録されている。
【0050】
図6は、検索要求投入制御部53の処理の一部の概略フローチャートである。図7は、検索要求投入制御部53の処理の他の部分の概略フローチャートである。検索要求投入制御部53では、まず、いずれかのデータベースサーバ装置21等に投入済みの分割検索要求の処理が終了したか否かがチェックされる(ステップS531)。いずれかのデータベースサーバ装置21等で投入済みの分割検索要求の処理が終了したときには、既に述べたように、検索結果が検索サーバ装置10に通知され、検索要求投入制御部53にも当該データベースサーバ装置21等からの検索結果の受信が通知されるので、検索要求投入制御部53は、上記受信の通知があったときに投入済みの分割検索要求の処理が終了したことを知ることができる。
【0051】
ステップS531においていずれかのデータベースに投入済みの分割検索要求の処理が終了していないと判断されたときには、処理はステップS537に移る。ステップS531においていずれかのデータベースに投入済みの分割検索要求の処理が終了したと判断されたときには、その終了に同期して、以下のようにして、共通キュー80にある複数の分割検索要求の中から、当該データベースに投入可能な分割検索要求を最も古い検索要求を優先して検出する。
【0052】
具体的には、共通キュー80にある最も古い分割検索要求を指定するために、例えば、最も古い要求登録番号811(図5)を引数に指定し、更に当該データベースとを引数に指定して投入可能性判断部54を呼び出し(ステップS532)、投入可能性判断部54により当該要求登録番号を有する分割検索要求が当該データベースに投入可能か否かを判断させる。
【0053】
投入可能性判断部54は、引数でデータベースと要求登録番号が指定された場合、当該要求登録番号を有する一つ又は複数の分割検索要求を共通キュー80から読み出し、複数の分割検索要求が読み出されたときには、当該複数の分割検索要求のうち引数で指定された当該データベースに対して投入可能な分割検索要求を検出する。ここで、投入可能な分割検索要求とは、当該分割検索要求が要求する分割単位データが上記引数で指定されたデータベースに含まれ、したがって当該分割検索要求が当該データベースで処理可能であるという処理可能条件を満たすものである。更に、当該データベースの投入禁止フラグ703(図3)がオフであることであり、したがって、当該分割検索要求は、当該データベースに投入しても、当該データベースに投入済みの他の分割検索要求と並列に処理可能であるという並列処理可能条件とを満たすことになる。
【0054】
投入可能性判断部54は、複数の分割検索要求が投入可能と判断したときには、それらの複数の投入可能な分割検索要求の一つをあらかじめ定めた基準で選択するようになっている。この選択基準は、例えば、図2に示された優先度603を使用することができる。すなわち、投入先のデータベースに含まれる複数の分割単位データのうちで最も優先度の高い分割単位データを要求する分割検索要求を選択すればよい。
【0055】
優先度の高い分割単位データほど、他のデータベースサーバ装置に含まれていないので、その分割単位データを要求する分割検索要求が他のデータベースで処理される可能性は、優先度の低い分割単位データより低い。したがって、投入可能と判断された複数の分割検索要求のうち、優先度が高い分割単位データを要求する分割検索要求を先に投入することが望ましいと推測される。なお、最も優先度の高い分割単位データを要求する分割検索要求が複数個あるときには、適当な方法でそれらの一つを選択すればよい。
【0056】
投入可能性判断部54は、検索要求投入制御部53から先に通知された要求登録番号と上記選択された一つの分割検索要求を識別する情報(例えば当該分割検索要求が要求する分割単位データの番号)と、検索要求投入制御部53から先に通知された投入先のデータベースの識別情報とを一緒に検索要求投入制御部53に通知するようになっている。
【0057】
検索要求投入制御部53では、ステップS533において、投入可能性判断部54により投入可能な分割検索要求が検出されたか否かを判断する。投入可能な分割検索要求が一つも検出されなかったときには、次に古い要求登録番号の分割検索要求が共通キュー80に登録されているかを判断し(ステップS534)、登録されている場合には、共通キュー80に登録されている当該次に古い要求登録番号を有する一つ又は複数の分割検索要求を処理対象に変更して(ステップS535)、それらの分割検索要求について上記ステップS532以降を繰り返させる。ステップS534において共通キュー80に当該次に古い要求登録番号の分割検索要求が登録されていないと判断された場合(ステップS534でNo)、処理は、ステップS537に移る。
【0058】
ステップS533において、投入可能性判断部54により投入可能な分割検索要求が検出されたと判断されたときには、投入可能性判断部54により通知された当該投入可能な分割検索要求を共通キュー80より取り出し、上記処理が終了したデータベースを記憶するデータベースサーバ装置21等に投入する(ステップS536)。その後処理はステップS537に移る。
【0059】
ステップS537では、新たな分割検索要求が共通キュー80に登録されたか否かを判断する。ここで、新たに登録された分割検索要求とは、検索要求投入制御部53により記憶されているチェック済み要求受信時刻以降の時刻にクライアント通信部51により受信され、分割により得られた複数の分割検索要求が共通キュー80に登録されている分割検索要求である。後に説明するように、検索要求投入制御部53は、共通キュー80に登録された分割検索要求について最も古く登録された分割検索要求から順にいずれかのデータベースに投入可能か否かをチェックする。上記チェック済み要求受信時刻は、検索要求投入制御部53により投入可能性をチェックさせた分割検索要求のうち、最新に共通キュー80に登録された分割検索要求がクライアント通信部51により受信された時刻である。検索要求投入制御部53が共通キュー80に新たに登録された分割検索要求の投入可能性をその後チェックするときには、上記時刻以降の要求受信時刻814(図5)を有する分割検索要求をチェックすればよい。
【0060】
ステップS537で新たな分割検索要求が共通キュー80に登録されていないと判断された場合には、処理はステップS531に移る。ステップS537において新たな分割検索要求が登録されていると判断された場合、チェック済み要求受信時刻として、当該新たに登録されていると判断された最も古い分割検索要求がクライアント通信部51により受信された時刻を記憶する(図7のステップS538)。その後、共通キュー80に新たに登録されていると判断された当該最も古い時刻に受信された分割検索要求の要求登録番号を引数に指定して投入可能性判断部54を呼び出し(ステップS539)、投入可能性判断部54により、その要求登録番号を有する分割検索要求がいずれかのデータベースに投入可能か否かを判断させる。同時に共通キュー80に登録された複数の分割検索要求がある場合には、投入可能性判断部54は、それぞれの分割検索要求がいずれかのデータベースに投入可能か否かを同時に判断する。
【0061】
投入可能性判断部54は、引数で要求登録番号が指定されてはいるが、ステップS532で呼び出されたときと異なり、投入先のデータベースが引数に指定されていない場合には、全てのデータベースから投入可能な状態にあるデータベースを検出し、それらの投入可能な状態にあるデータベースに投入可能な分割検索要求を選択する。
【0062】
すなわち、当該要求登録番号を有する一つ又は複数の分割検索要求を共通キュー80から読み出し、複数の分割検索要求が読み出されたときには、当該複数の分割検索要求のうちいずれかのデータベースに投入可能な分割検索要求を検出する。ここで、投入可能なデータベースとは、当該分割検索要求が要求する分割単位データを含んでいるデータベースであり(処理可能条件)、更に、当該データベースの投入禁止フラグ703(図3)がオフであること、すなわち、当該データベースが並列処理可能条件を満たすことである。
【0063】
ステップS532により呼び出された場合に説明したように、投入可能性判断部54は、複数の分割検索要求が投入可能と判断したときには、それらの複数の投入可能な分割検索要求の一つをあらかじめ定めた基準で選択する。この選択基準は、例えば、図2に示された優先度603を使用することができる。すなわち、優先度の高い分割単位データほど、他のデータベースサーバ装置に含まれていないので、その分割単位データを要求する分割検索要求は他のデータベースで処理される可能性が優先度の低い分割単位データよりも低い。したがって、投入可能と判断された複数の分割検索要求のうち、優先度が高い分割単位データを要求する分割検索要求を先に投入することが望ましいと推測される。なお、最も優先度の高い分割単位データを要求する分割検索要求が複数個あるときには、適当な方法でそれらの一つを選択すればよい。
【0064】
投入可能性判断部54は、検索要求投入制御部53から先に通知された要求登録番号と上記選択された一つの分割検索要求を識別する情報(例えば当該分割検索要求が要求する分割単位データの番号)と、投入可能と判断した投入先のデータベースの識別情報とを一緒に検索要求投入制御部53に通知するようになっている。
【0065】
検索要求投入制御部53では、投入可能性判断部54により投入可能な分割検索要求が検出されたか否かが判断される(ステップS540)。投入可能な分割検索要求が一つも検出されなかったときには、共通キュー80に新たに登録された次に古い要求登録番号を有する分割検索要求があるか否かが判断され(ステップS541)、登録されている場合には、共通キュー80に登録されている当該次に古い要求登録番号を有する複数の分割検索要求を処理対象に変更し(ステップS542)、その後、処理はステップS538に移る。
【0066】
ステップS538では、チェック済み要求受信時刻として、処理対象に変更された登録番号を有する分割検索要求の要求受信時刻814(図5)が記憶され、更に、処理対象に変更されたそれぞれの分割検索要求についてステップS539以降を繰り返される。なお、ステップS541において、共通キュー80に当該次に古い分割検索要求が登録されていないと判断された場合(ステップS541でNo)、処理は、ステップS531(図6)に移る。
【0067】
ステップS540において投入可能性判断部54により投入可能な分割検索要求が検出されたと判断されたときには、投入可能性判断部54により通知された当該投入可能な分割検索要求を共通キュー80より取り出し、当該投入可能性判断部54より通知される投入可能なデータベースを記憶するデータベースサーバ装置に投入する(ステップS543)。その後処理はステップS531に移る。
【0068】
こうして、既にいずれかのデータベースに投入済みの分割検索要求の処理が終了する毎に、投入待ちの分割検索要求から投入可能な分割検索要求が選択されて投入される。したがって、処理が終了したデータベースでは、既に投入された処理中の分割検索要求と並行して新たに投入される分割検索要求も処理されるので、当該データベースを記憶するデータベースサーバ装置の処理速度は低下することはない。しかも、当該データベースには一つの分割検索要求の処理が終了した後に新たに分割検索要求が投入されるので、その処理負荷は格段には増大しないことが分かる。
【0069】
また、新たにクライアント装置から検索要求が新たに受信され複数の分割検索要求が新たに共通キュー80に登録される毎に、それらの内の投入可能な分割検索要求が検出され、そのような分割検索要求があれば当該分割検索要求が適当なデータベースに投入される。このときにも投入条件として、投入先のデータベースに対する投入禁止フラグがオフであり、したがって、新たな分割検索要求を追加して投入しても、当該分割検索要求は既に投入済みの分割検索要求と並列に処理されるので、処理速度が低下しないことが期待される。
【0070】
図8は、いずれかの検索要求に対する検索結果管理テーブル90の例を示す図である。検索結果管理テーブル90は、検索要求受付分解部52によりいずれかの検索要求が受け付けられたときに、当該検索要求に対して検索要求受付分解部52により生成される。他の検索要求に対しても同様に検索結果管理テーブル90が生成されるが、図では一つの検索結果管理テーブル90のみを例示している。
【0071】
検索結果管理テーブル90には、利用者IDを記憶するフィールド901、要求登録番号を記憶するフィールド902、各分割単位データに対する分割検索要求の有無を表す要求フラグを記憶するフィールド903、分割検索要求の総数を記憶するフィールド904、各分割検索要求による検索が終了したか否かを示す完了フラグを記憶するフィールド905、未完了の分割検索要求の総数(未完了数)を記憶するフィールド906、検索が完了した分割検索要求により取得された検索結果データが記憶されている検索サーバ装置10のメモリのアドレス(検索結果データポインタ)を記憶するフィールド907等が設けられる。検索結果管理テーブル90の更新は、検索結果結合部57により管理される。
【0072】
検索結果管理テーブル90が検索要求受付分解部52により生成されたときには、上記フィールド901には、利用者IDが記憶され、上記フィールド902には、その検索要求に対して割り当てられた要求登録番号が記憶され、上記フィールド903では、当該検索要求から生成された複数の分割検索要求に対応するフラグが1に設定される。上記フィールド904には生成された分割検索要求の総数が記憶され、上記フィールド905には各分割検索要求に対する完了フラグの初期値として値0が記憶され、上記フィールド906には未完了数の初期値としてフィールド904の分割検索要求の総数が記憶される。上記フィールド907には、この時点では何も記憶されない。
【0073】
各分割検索要求に対する検索結果データ91には、同図(b)に示すように、分割検索要求を発行した利用者の識別情報(利用者ID)911と、分割検索要求が要求した分割単位データの番号912と、検索で得られたデータ914のデータ長913と、当該データ914とが含まれる。
【0074】
利用者ID(911)は、検索要求投入制御部53が、分割検索要求をいずれかのデータベースサーバ装置に投入するときに、その分割検索要求に対して共通キュー80に記憶されていた利用者IDが分割検索要求と一緒に投入され、投入先のデータベースサーバ装置21等は、検索で得られた検索結果データを検索サーバ装置10に戻すときに、検索結果データに上記利用者IDを付すようになっている。検索結果データ91内の分割単位データの番号912は、いずれかのデータベースサーバ装置に投入された分割検索要求内に含まれているものであり、投入先のデータベースサーバ装置は、検索で得られた検索結果データを検索サーバ装置10に戻すときに、検索結果データに上記分割単位データの番号912を付すようになっている。
【0075】
図9は、検索結果結合部57の処理の概略フローチャートである。まず、いずれかのデータベースからいずれかの分割検索要求が要求した検索に対する検索結果データが受信されたか否かをチェックする(ステップS571)。受信されていない場合には、同じステップS571を繰り返す。受信された場合には、当該検索結果データに付加された利用者IDに対する検索完了管理テーブル内の、当該検索結果データに付加されている分割単位データ#に対応して検索結果データポインタ907(図8)に、受信された検索結果データのアドレス(当該検索結果データが記憶されている、検索サーバ装置10内の図示しないメモリのアドレス)を記憶する(ステップS572)。同様に、分割単位データ#に対応する検索完了フラグ905をオンにし(ステップS573)、更に、上記テーブル内の未完了数906を1だけ減少する(ステップS574)。
【0076】
更に、未完了数906が0であるか否かが判定され(ステップS575)、未完了数906が0でないときには、処理はステップS571に戻り、新たな検索結果データの受信待ちになる。ステップS575において未完了数906が0であると判断されたときには、フィールド908に記憶された複数の検索結果データポインタを用いて複数の検索結果データ91、…を検索サーバ装置10内の図示しないメモリから読み出し、それらの検索結果データ91、…にフィールド901に記憶された利用者IDを付加してクライアント装置通信部51に出力し(ステップS576)、更に、当該検索結果管理テーブル90を削除し(ステップS577)、その後、処理はステップS571に戻る。
【0077】
クライアント装置通信部51は、出力された複数の検索結果データに付加された利用者IDに基づいて、送信先のクライアント装置40を決定し、そこに一連の検索結果データ91をまとめて送信する。クライアント装置40では、図4に示したように、地図情報表示処理部442が、上記一連の検索結果データを受信して、それぞれのデータが示す地図情報を生成して、それらの地図情報を重畳して表示装置43に表示させる。
【0078】
以上のようにして、複数のデータベースサーバ装置21等に不均一に多重に分散して記憶された複数の分割単位データに対する検索を要求する検索要求を複数の分割検索要求に分割し、各データベースサーバ装置21等の性能を落とさないという条件下で、可能な限り多くの分割検索要求を並列に処理させることが可能になり、検索要求自体の処理速度も低下しない。
【0079】
<発明の第2の実施の形態>
上記第1の実施の形態では、各データベースサーバ装置に対する投入可能なスレッドの総数の閾値以下のスレッドを使用する限り、複数の分割検索要求は並列に処理されると仮定した。しかし、実際のデータベースサーバ装置では、スレッドの総数の閾値を超えていなくても、投入しようとする分割検索要求と投入済みの分割検索要求との関係に依っては、前者は後者に対して並列に処理できない場合がある。
【0080】
例えば、投入しようとする後続の分割検索要求が要求する分割単位データが、投入済みのいずれかの先行する分割検索要求が使用している分割単位データと一致するときには、当該先行する分割検索要求によるその分割単位データの使用が終了するまでは、上記後続の分割検索要求を当該分割検索要求と並列に処理できないことがある。このため、上記後続の分割検索要求を投入すると、当該分割単位データが記憶されているデータベースサーバ装置内に設けられ待ちキューに登録されてしまう。
【0081】
したがって、本実施の形態では、投入可能性を判断するときに、投入先のデータベースサーバ装置により実施される並列処理可能性をより忠実に反映した、データベース検索プログラム、データベース検索方法及びデータベース検索装置を示す。より具体的には、本実施の形態では、投入済みの複数の先行する分割検索要求と、投入しようとする後続の分割検索要求の関係をチェックして、当該後続の分割検索要求が先行する分割検索要求と並列に処理可能であるかを判断可能にする。
【0082】
図10は、本実施の形態で使用可能なデータベース別投入状況テーブル70Aの例を示す図である。データベース別投入状況テーブル70Aには、図3に示されたデータベース別投入状況テーブル70と同様に、フィールド701から703が設けられ、更に、各データベースに対応して当該データベース内の分割単位データが使用中か否かを指示する分割単位データ使用中フラグを記憶するフィールド704が設けられている。ただし、フィールド702に記憶されたスレッド数の総数は、各データベースが同時に使用可能なスレッドの総数の閾値であり、その閾値以下のスレッドは並列に処理されるか否かは関係なく定めてよい。
【0083】
フィールド704には、投入済みのいずれかの分割検索要求が使用する分割単位データに対して値1が記憶される。データベース別投入状況監視部55(図1)は、検索要求投入制御部53により、いずれかの分割検索要求がいずれかのデータベースに投入されたときに、データベース別投入状況テーブル70A内の当該データベースに対応するフィールド703の当該分割検索要求が要求する分割単位データに対してフラグ1を記憶する。更に、いずれかのデータベースでいずれかの分割検索要求の処理が終了したときには、データベース別投入状況テーブル70A内の当該データベースに対応するフィールド703の当該分割検索要求が要求する分割単位データに対するフラグの値を0に変更する。
【0084】
本実施の形態では、投入可能性判断部54は、分割検索要求が以下の2つの条件を満たすとき、分割検索要求を投入可能と判断する。まず、第1の条件は、第1の実施の形態と同じく、投入しようとする分割検索要求が要求する分割単位データが投入先のデータベースに含まれていることである(処理可能条件)。更に、投入先のデータベースの並列処理可能条件をチェックする。この並列処理可能条件は2つの条件からなる。まず、第1の条件は、フィールド702内の投入済み分割検索要求数が、フィールド701のスレッドの総数の閾値を超えていないこと、したがって、フィールド703の投入禁止フラグが0であることである。すなわち、投入先データベースが、新たな分割検索要求を投入可能な状態にあることである。更に、第2の条件は、投入しようとする分割検索要求が要求する分割単位データが、データベース別投入状況テーブル70A内の、投入先のデータベースに対するフィールド704に記憶された使用中の分割単位データと一致しないことである。この条件が満たされると、投入しようとする分割検索要求が要求する分割単位データが、投入済みの分割検索要求が使用中の分割単位データと衝突しないので、投入しようとする分割検索要求は、投入済みの分割検索要求と並列に処理されることが分かる。
【0085】
このように投入可能性を判断することにより、単に使用中のスレッド数だけではなく、先行する分割検索要求と後続の投入しようとする分割検索要求について、それらが要求する分割単位データの衝突が発生しているか否かを判断することが可能になる。すなわち、投入先のデータベースサーバ装置が行う、並列処理可能条件を満たすか否かのチェックを投入可能性判断部54に行わせることにより、検索サーバ装置10がより正確に並列処理可能条件が満たすか否かを判断でき、各データベースサーバ装置21等の性能を落とさないで多数の分割検索要求を処理させることが可能になる。
【0086】
なお、各データベースサーバ装置で、新たな分割検索要求を新たなスレッドとして処理開始するか否かを決める場合に、処理中の分割検索要求により使用されている分割単位データと、処理を開始しようとする後続の分割検索要求が使用する分割単位データとの衝突の有無とは異なる条件を考慮する場合もある。例えば、分割検索要求によりある分割単位データが使用されると言っても、実際には、当該分割単位データが更に複数の部分領域に区分され、それらの部分領域の一つのみである場合がある。
【0087】
先行する分割検索要求と後続の分割検索要求が同じ分割単位データを要求すると言っても、当該分割単位データ内の異なる部分領域を要求する場合には、それらの分割検索要求は並列に処理可能とされる場合もある。このような場合には、データベース別投入状況テーブル70A内の分割単位データ使用中フラグ704には各分割単位データの複数の部分領域に対応して使用中か否かの状態を示すフラグを記憶させ、先行する分割検索要求と後続の分割検索要求が同じ分割単位データの同じ部分領域を要求するか否かによって、後続の分割検索要求を先行する分割検索要求と並列に処理可能であるか否かを判断するようにすればよい。
【0088】
<発明の第3の実施の形態>
以上の実施の形態では、検索結果結合部57により、同じ利用者からの検索要求から生成された複数の分割検索要求に対する複数の検索結果データが全て得られたことを検索結果結合部57により確認して、その後、それらの検索結果データは、まとめて要求元のクライアント装置40に転送された。
【0089】
本実施の形態では、上記複数の検索結果データをまとめないで、それぞれの検索結果データが得られる毎に、得られた検索結果データを要求元のクライアント装置に送信する、データベース検索プログラム、データベース検索方法及びデータベース検索装置を示す。
【0090】
すなわち、第1の実施の形態で使用した、検索結果結合部57、検索結果管理テーブル90を検索サーバ装置10上では使用しないで、いずれかのデータベースサーバ装置によりいずれかの検索結果データが得られる毎に、得られた検索結果データを当該データベースサーバ装置から要求元のクライアント装置に検索サーバ装置10を経由しないで直接送信させる。このために、検索サーバ装置10は、いずれかの分割検索要求をいずれかのデータベースサーバ装置に投入するときには、利用者IDとクライアント装置のIPアドレスを当該分割検索要求と一緒に当該データベースサーバ装置に送信する。
【0091】
いずれかのデータベースサーバ装置21等でいずれかの分割検索要求に対して検索結果データが得られたときには、当該データベースサーバ装置は、当該分割検索要求に対して受信したクライアント装置のIPアドレスを用いて当該検索結果データを要求元のクライアント装置にネットワーク30を介して送信するとともに、検索サーバ装置10に当該分割検索要求の処理を終えたことを通知する。
【0092】
検索サーバ装置10は、この通知を受けて、第1の実施の形態と同じく、新たな分割検索要求を当該データベースサーバ装置に投入することができる。クライアント装置40には、上記検索結果結合部57、検索結果管理テーブル90を設けて、上記検索結果結合部57により、得られた複数の検索結果データを監視させ、それらの検索結果データを地図情報表示処理部442(図4)により表示させればよい。
【0093】
【発明の効果】
以上述べたように、本発明によれば、新規に発生した検索要求を分割して得られる複数の分割検索要求を複数のデータベースサーバ装置により並列に処理させることができ、更に、各データベースサーバ装置には、新規分割検索要求を並列に処理可能という条件下で投入するので、検索要求がいずれかのデータベースサーバ装置に投入された後、当該データベースサーバ装置内で待ち状態に維持されることを回避でき、結果として全ての分割検索要求の処理時間の増大を抑止することができ、ひいては検索要求の処理時間を短くすることができる。
【図面の簡単な説明】
【図1】本発明に係るデータベース検索プログラムの一つの実施の形態を使用する情報検索システムの概略構成図である。
【図2】分割単位データ配置情報の例を示す図である。
【図3】データベース別投入状況テーブルの例を示す図である。
【図4】クライアント装置の概略ブロック図である。
【図5】共通キューの例を示す図である。
【図6】検索要求投入制御部の処理の一部の概略フローチャートである。
【図7】検索要求投入制御部の処理の他の部分の概略フローチャートである。
【図8】検索結果管理テーブルの例を示す図である。
【図9】検索結果結合部の処理の概略フローチャートである。
【図10】第2の実施の形態で使用可能なデータベース別投入状況テーブルの例を示す図である。
Claims (3)
- 複数のデータベースサーバ装置にそれぞれ記憶され、複数の分割単位データの異なる組合せからなる複数のデータべースにより構成された不均一多重データベースに対する、いずれかのクライアント装置から受信された検索要求を分割して、それぞれ前記複数の分割単位データの一つに対して検索を要求する複数の分割検索要求を生成し、
生成された複数の分割検索要求を、前記複数のデータベースサーバ装置に共通に設けられた共通キューに、それぞれの分割検索要求を生成する元となった検索要求の受信時刻の順序を識別できるように登録し、
前記共通キューに複数の分割検索要求が新たに登録される毎に、当該複数の分割検索要求を順次選択し、当該選択された分割検索要求を処理可能であるいう処理可能条件と、処理中の他の分割検索要求と並列に当該選択された分割検索要求を処理できるという並列処理可能条件とを満たす追加投入可能な一つ又は複数のデータベースサーバ装置を判別し、
前記判別により追加投入可能であると判別された一つのデータベースサーバ装置若しくは複数のデータベースサーバ装置の一つに前記選択された分割検索要求を追加投入し、
いずれかの分割検索要求の処理がいずれかのデータベースサーバ装置により終了したことに同期して、前記共通キューから、前記処理可能条件と前記並列処理可能条件とを満たす最も古い分割検索要求を選択して当該データベースサーバ装置に投入する、
ステップをコンピュータに実行させるようにプログラムされていることを特徴とするデータベース検索プログラム。 - 複数のデータベースサーバ装置にそれぞれ記憶され、複数の分割単位データの異なる組合せからなる複数のデータべースにより構成された不均一多重データベースに対する、いずれかの利用者により要求され、いずれかのクライアント装置から受信された検索要求を分割して、それぞれ前記複数の分割単位データの一つに対して検索を要求する複数の分割検索要求を生成し、
生成された複数の分割検索要求を、前記複数のデータベースサーバ装置に共通に設けられた共通キューに、それぞれの分割検索要求を生成する元となった検索要求の受信時刻の順序を識別できるように登録し、
前記共通キューに複数の分割検索要求が新たに登録される毎に、当該複数の分割検索要求を順次選択し、当該選択された分割検索要求を処理可能であるという処理可能条件と、処理中の他の分割検索要求と並列に当該選択された分割検索要求を処理できるという並列処理可能条件とを満たす追加投入可能な一つ又は複数のデータベースサーバ装置を判別し、
前記判別により追加投入可能であると判別された一つのデータベースサーバ装置若しくは複数のデータベースサーバ装置の一つに前記選択された分割検索要求を追加投入し、
いずれかの分割検索要求の処理がいずれかのデータベースサーバ装置により終了したことに同期して、前記共通キューから、前記処理可能条件と前記並列処理可能条件とを満たす最も古い分割検索要求を選択して当該データベースサーバ装置に投入する、
ステップを含むことを特徴とするデータベース検索方法。 - 複数のデータベースサーバ装置にそれぞれ記憶され、複数の分割単位データの異なる組合せ組合せからなる複数のデータべースにより構成された不均一多重データベースに対する、いずれかの利用者により要求され、いずれかのクライアント装置から受信された検索要求を分割して、それぞれ前記複数の分割単位データの一つに対して検索を要求する複数の分割検索要求を生成する手段と、
生成された複数の分割検索要求を、前記複数のデータベースサーバ装置に共通に設けられた共通キューに、それぞれの分割検索要求を生成する元となった検索要求の受信時刻の順序を識別できるように登録する手段と、
前記共通キューに複数の分割検索要求が新たに登録される毎に、当該複数の分割検索要求を順次選択し、当該選択された分割検索要求を処理可能であるという処理可能条件と、かつ、処理中の他の分割検索要求と並列に当該選択された分割検索要求を処理できるという並列処理可能条件とを満たす追加投入可能な一つ又は複数のデータベースサーバ装置を判別する手段と、
前記判別により追加投入可能であると判別された一つのデータベースサーバ装置若しくは複数のデータベースサーバ装置の一つに前記選択された分割検索要求を追加投入する手段と、
いずれかの投入された分割検索要求の処理がいずれかのデータベースサーバ装置により終了したことに同期して、前記共通キューから、前記処理可能条件と前記並列処理可能条件とを満たす最も古い分割検索要求を選択して当該データベースサーバ装置に投入する手段と、
を備えることを特徴とするデータベース検索装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002263396A JP4021287B2 (ja) | 2002-09-09 | 2002-09-09 | データベース検索プログラム、データベース検索方法及びデータベース検索装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002263396A JP4021287B2 (ja) | 2002-09-09 | 2002-09-09 | データベース検索プログラム、データベース検索方法及びデータベース検索装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004102631A JP2004102631A (ja) | 2004-04-02 |
JP4021287B2 true JP4021287B2 (ja) | 2007-12-12 |
Family
ID=32263126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002263396A Expired - Fee Related JP4021287B2 (ja) | 2002-09-09 | 2002-09-09 | データベース検索プログラム、データベース検索方法及びデータベース検索装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4021287B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7466244B2 (en) * | 2005-04-21 | 2008-12-16 | Microsoft Corporation | Virtual earth rooftop overlay and bounding |
US20060241859A1 (en) | 2005-04-21 | 2006-10-26 | Microsoft Corporation | Virtual earth real-time advertising |
CN102063512B (zh) * | 2005-04-21 | 2013-06-19 | 微软公司 | 虚拟地球 |
JP5161535B2 (ja) * | 2007-10-26 | 2013-03-13 | 株式会社東芝 | コーディネータサーバ及び分散処理方法 |
JP5395565B2 (ja) * | 2009-08-12 | 2014-01-22 | 株式会社日立製作所 | ストリームデータ処理方法及び装置 |
JP5514220B2 (ja) * | 2009-09-29 | 2014-06-04 | 株式会社東芝 | 検索装置、及びシステム |
JP5036791B2 (ja) * | 2009-11-19 | 2012-09-26 | Necアクセステクニカ株式会社 | データ処理システム、データ処理方法およびデータ処理プログラム |
JP2015045995A (ja) * | 2013-08-28 | 2015-03-12 | Kddi株式会社 | 仮想データベースシステム管理装置、管理方法及び管理プログラム |
US10311875B2 (en) | 2016-12-22 | 2019-06-04 | Soundhound, Inc. | Full-duplex utterance processing in a natural language virtual assistant |
JP6676098B2 (ja) * | 2018-05-16 | 2020-04-08 | キヤノンマーケティングジャパン株式会社 | 情報処理システム、情報処理装置、制御方法、及びプログラム |
-
2002
- 2002-09-09 JP JP2002263396A patent/JP4021287B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004102631A (ja) | 2004-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6438562B1 (en) | Parallel index maintenance | |
US7107323B2 (en) | System and method of file distribution for a computer system in which partial files are arranged according to various allocation rules | |
US7447693B2 (en) | Dynamic cluster database architecture | |
US9177019B2 (en) | Computer system for optimizing the processing of a query | |
US7644408B2 (en) | System for assigning and monitoring grid jobs on a computing grid | |
JP4327481B2 (ja) | データベースシステム、サーバ、問い合わせ投入方法及びデータ更新方法 | |
US20070022092A1 (en) | Stream data processing system and stream data processing method | |
CN107070645B (zh) | 比较数据表的数据的方法和系统 | |
US5448731A (en) | Method and apparatus for controlling the deferred execution of user requests in a data processing system | |
JP4021287B2 (ja) | データベース検索プログラム、データベース検索方法及びデータベース検索装置 | |
JPH09293006A (ja) | 並列データベースの分割方法及びその管理システム | |
US6549931B1 (en) | Distributing workload between resources used to access data | |
US6505217B1 (en) | Method and apparatus for file placement | |
JP2009037369A (ja) | データベースサーバへのリソース割当て方法 | |
Naylor et al. | Method of efficiently choosing a cache entry for castout | |
JPH08171573A (ja) | 図面データ分散配置装置 | |
US20050086430A1 (en) | Method, system, and program for designating a storage group preference order | |
US20210248116A1 (en) | Scalable querying for distributed systems | |
JP6961133B1 (ja) | 検索装置、検索方法、及び、検索プログラム | |
JPH09231180A (ja) | サーバ分割方法 | |
JPH11328280A (ja) | プロセスルールを定義し実行するワークフローシステム | |
CN116226081A (zh) | 数据库弹性伸缩方法、装置、电子设备及存储介质 | |
JPH09114784A (ja) | アクセス権評価装置 | |
JPH10312331A (ja) | データベースの動的アクセス方法 | |
JPH11249955A (ja) | バッファの動的管理方法およびその方法の各工程をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041213 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20050309 |
|
RD05 | Notification of revocation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7425 Effective date: 20050323 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070911 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070926 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101005 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |