JP2006113868A - データ分配方法、システム及びプログラム - Google Patents

データ分配方法、システム及びプログラム Download PDF

Info

Publication number
JP2006113868A
JP2006113868A JP2004301444A JP2004301444A JP2006113868A JP 2006113868 A JP2006113868 A JP 2006113868A JP 2004301444 A JP2004301444 A JP 2004301444A JP 2004301444 A JP2004301444 A JP 2004301444A JP 2006113868 A JP2006113868 A JP 2006113868A
Authority
JP
Japan
Prior art keywords
search
data
processing
processing unit
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004301444A
Other languages
English (en)
Inventor
Giyu Iijima
岐勇 飯島
Tadataka Matsubayashi
忠孝 松林
Shinya Yamamoto
伸也 山本
Yuichi Ogawa
祐一 小川
Masateru Yotsuya
雅輝 四ッ谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004301444A priority Critical patent/JP2006113868A/ja
Publication of JP2006113868A publication Critical patent/JP2006113868A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】 各コンピュータの処理性能に応じた適切なサイズのデータを分配し、そのデータを処理する際に各コンピュータの処理性能を最大限に活用できる様にすることが可能な技術を提供する。
【解決手段】 複数のコンピュータで処理されるデータを各コンピュータへ分配するデータ分配方法において、データの分配される各コンピュータの処理性能を取得して記憶装置に格納するステップと、複数のコンピュータに分配される各データのサイズを取得して記憶装置に格納するステップと、前記格納した処理性能及びデータサイズを記憶装置から読み出し、各コンピュータでの当該データの処理に必要な予想所要時間を、前記記憶装置から読み出した処理性能とデータサイズから算出し、算出した結果に基づきデータの分配先を決定するステップとを有するものである。
【選択図】図1

Description

本発明は複数のコンピュータで処理されるデータを各コンピュータへ分配するデータ分配技術に関し、特に大規模な文書データベース中の文書データを複数のコンピュータに分配し、指定した文字列の存在する文書データを高速に検索できる様にするデータ分配技術に適用して有効な技術に関するものである。
電子化された文書データの増大に伴い、大規模な文書データベースが構築される様になっている。これらの大規模な文書データベースから、指定された検索文字列(以下、検索タームと呼ぶ)が含まれる文書データを高速に探し出す文書検索技術が考案されており、この様な技術の一つとして、複数台の文書検索エンジンを用いた並列文書検索技術がある(例えば特許文献参照。以下、この技術を従来技術1と呼ぶ)。この従来技術1は複数の文書検索エンジンに文書データを分配し、検索することにより、高速な文書検索を実現する技術である。
また近年、新規のシステムを構築する際に、従来のシステムで利用していたコンピュータを有効に活用したいと言う要望があがる様になってきた。この様な要望に応え、並列文書検索技術を用いたシステム(以下、並列文書検索システムと呼ぶ)を構築する場合、従来のシステムで利用していた種々のコンピュータを用いてシステムを構築することが考えられる様になって来た。
しかし、コンピュータの性能は年々進歩するため、導入年次によってコンピュータの処理能力が異なっている。このため、従来のシステムで利用していたコンピュータを用いてシステムを構成する場合、システムを構成するコンピュータの性能が均一ではなくなっている。また、複数のコンピュータから構成された並列文書検索システムにおいて、検索タームを含む全ての文書データの集合(以下、検索結果と呼ぶ)を得る為には、全てのコンピュータの検索結果を収集・統合し、一つの検索結果にまとめる必要がある。
しかし、構成するコンピュータの性能が不均一な環境で、同一の長さのデータを同件数だけ、それぞれのコンピュータが処理している場合、高性能なものと低性能なものでは、高性能なものの方が早く検索処理を終える。このため、最終的な検索結果を得る為には、低性能なコンピュータの処理が終わるまで待つ必要がある。この結果、高性能なコンピュータは処理をしない時間ができ、コンピュータの持つ処理能力を最大限には活用できない。
なお、全コンピュータの処理能力を有効に活用する為に、高性能なコンピュータが、より多数のデータを処理する様にデータを分配する技術がある(例えば非特許文献1参照。以下、この技術を従来技術2と呼ぶ)。
以上説明した様に、従来技術1と従来技術2を組み合わせることにより、構成するコンピュータの性能が不均一な並列文書検索システムにおいて、高性能なコンピュータの処理をしない時間を減らすことができ、高性能なコンピュータの処理能力を活用することができる。
特開平8−137734号公報 P2Pにおける効率的な負荷分散方式の提案、1K-1、情報処理学会第66回全国大会、2004
並列文書検索システムでは文書単位でコンピュータに文書データを分配しており、1件の文書データを途中で切断して分配することはできないが、その処理対象である文書データのサイズ(以下、文書データサイズと呼ぶ)は1件毎、それぞれ異なるため、コンピュータが処理する文書データサイズの合計は、文書データの件数に必ずしも比例するとは限らない。
上記の性質のため、従来技術1と従来技術2を組み合わせることにより文書データの件数に基づいて文書データを分配した場合、文書データ量を各コンピュータの処理能力に応じた適切なサイズにすることはできず、また文書データを途中で切断して各コンピュータの文書データ量を調整することもできない。このため、各コンピュータはその処理能力を最大限に発揮することが困難という問題があった。
本発明の目的は上記問題を解決し、各コンピュータの処理性能に応じた適切なサイズのデータを分配し、そのデータを処理する際に各コンピュータの処理性能を最大限に活用できる様にすることが可能な技術を提供することにある。
本発明の他の目的は各コンピュータの処理性能に応じた適切なサイズのデータを分配し、そのデータをインデクス処理する際に各コンピュータの処理性能を最大限に活用できる様にすることが可能な技術を提供することにある。
本発明の他の目的は各コンピュータの全処理能力に対する所定の処理性能に応じた適切なサイズのデータを分配し、そのデータを処理する際に各コンピュータの所定の処理性能を最大限に活用できる様にすることが可能な技術を提供することにある。
本発明の他の目的は並列文書検索システムに追加したコンピュータ(以下、追加コンピュータと呼ぶ)の処理性能に応じた適切なサイズのデータを追加コンピュータに移動して、追加コンピュータを含む複数のコンピュータへのデータの再分配を効率的に行うことが可能な技術を提供することにある。
本発明は、複数のコンピュータで処理されるデータを各コンピュータへ分配するデータ分配システムにおいて、分配データのデータサイズに応じた予想所要時間が各コンピュータでできるだけ均等となる様に分配先を決定するものである。
本発明では、複数のコンピュータで並列検索処理により検索される文書データ等のデータを各コンピュータへ分配する際に、そのデータが分配される各コンピュータへサンプルデータを送信してそのサンプルデータ検索時の処理性能を取得して記憶装置に格納し、また複数のコンピュータに分配される各データのサイズを取得して記憶装置に格納する。
そして、前記格納した各コンピュータの処理性能と、分配されるデータのデータサイズとを記憶装置から読み出して、あるデータをコンピュータに分配した場合の当該データの処理に必要な予想所要時間を、前記記憶装置から読み出した処理性能とデータサイズから算出し、その予想所要時間の最も小さいコンピュータを当該データの分配先とする。次のデータの分配先を決定する際には、そのデータの処理に必要な予想所要時間を分配先決定済みデータの予想所要時間に加算して前記と同様に分配先を決定し、算出した結果に基づきデータの分配先を決定する処理を行う。
本発明によれば、各コンピュータの処理性能に応じた適切なサイズのデータを分配し、そのデータを処理する際に各コンピュータの処理性能を最大限に活用できる様にすることが可能である。
(実施形態1)
以下に複数のコンピュータでの並列検索処理により全文検索される文書データを各コンピュータへ分配する実施形態1のデータ分配システムについて説明する。
図1は本実施形態の文書検索システムの概略構成を示す図である。図1に示す様に本実施形態の登録制御サーバ101は、登録サーバ制御処理部120と、サーチサーバ検索性能取得処理部121と、登録制御処理部122と、文書データサイズ取得処理部123と、登録サーチサーバ決定処理部124と、文書データ分配処理部125とを有している。
登録サーバ制御処理部120は、サーチサーバ検索性能取得処理部121或いは登録制御処理部122を呼び出して、登録制御サーバ101の処理全体を制御する処理部である。サーチサーバ検索性能取得処理部121は、データが分配されるサーチサーバ105の検索性能143を取得してディスク113内のサーチサーバ管理テーブル133に格納する処理部である。
登録制御処理部122は、文書データサイズ取得処理部123、登録サーチサーバ決定処理部124及び文書データ分配処理部125を呼び出し、文書データ137のサーチサーバ105への登録処理を制御する処理部である。
文書データサイズ取得処理部123は、複数のサーチサーバ105に分配される文書データ137の文書データサイズ141を取得してディスク113内の文書データ管理テーブル132に格納する処理部である。
登録サーチサーバ決定処理部124は、前記格納した検索性能143及び文書データサイズ141をディスク113から読み出し、ある文書データを分配されたサーチサーバでの当該文書データの処理に必要な予想所要時間をディスク113から読み出した検索性能143と文書データサイズ141から算出し、各サーチサーバでの予想所要時間ができるだけ均等となる様に文書データ137の分配先を決定する登録先決定処理部である。文書データ分配処理部125は、各サーチサーバに対するサーチサーバ別登録文書リスト136を作成し、文書登録コマンドと共に各サーチサーバに送信する処理部である。
登録制御サーバ101を登録サーバ制御処理部120、サーチサーバ検索性能取得処理部121、登録制御処理部122、文書データサイズ取得処理部123、登録サーチサーバ決定処理部124及び文書データ分配処理部125として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
図1に示した、本実施形態の文書検索システムは、登録制御サーバ101、記憶装置102、文書検索クライアント103、後述する検索制御サーバ104、後述するサーチサーバ105及びこれらを接続するネットワーク106によって構成される。
登録制御サーバ101は、CPU111、主メモリ112、ディスク113、ディスプレイ114、キーボード115、ネットワークボード116及びこれらを接続するシステムバス117から構成される。ディスプレイ114はシステムの実行状態等を表示する為に使用され、ネットワークボード116はネットワーク106を介して他のサーバと通信する為に使用される。
主メモリ112上には、登録サーバ制御処理部120、サーチサーバ検索性能取得処理部121、登録制御処理部122、文書データサイズ取得処理部123、登録サーチサーバ決定処理部124、文書データ分配処理部125を備え、またワークエリア126が確保される。
ワークエリア126には、登録対象である文書データの実体に関する位置情報(url:uniform resource locatorやファイルパス)を格納する登録対象文書データ位置リスト134、各サーチサーバ105毎の検索処理を実行した際の予想検索所要時間を格納する予想検索所要時間管理テーブル135及び各サーチサーバ105毎の登録対象となる文書データの実体の位置情報を格納したサーチサーバ別登録文書リスト136が格納される。
ディスク113上には、性能取得用サンプルデータ131、文書データ管理テーブル132及びサーチサーバ管理テーブル133が格納される。文書データ管理テーブル132には、各文書データの文書データサイズ141及び登録先サーチサーバ142が保持され、サーチサーバ管理テーブル133には、各サーチサーバの検索性能143及び割り当て済みサイズ144が保持される。
登録サーバ制御処理部120は、サーチサーバ検索性能取得処理部121或いは登録制御処理部122を呼び出す構成をとり、登録制御処理部122は、文書データサイズ取得処理部123、登録サーチサーバ決定処理部124及び文書データ分配処理部125を呼び出す構成をとる。また記憶装置102は、文書データ137を格納する。
以上が、実施形態1における文書検索システムを実現する基本的な構成である。なお、図1では、文書検索クライアント103が1台の構成を示したが、文書検索クライアントは2台以上の構成をとることもできる。また、サーチサーバ105が2台の構成を示したが、サーチサーバは1台或いは3台以上の構成をとることもできる。
各サーチサーバ105のネットワーク106上の位置は、文書検索システムの管理者が予め作成したシステム定義に格納される(図1には示していない)。システム定義は記憶装置102に格納されるものとしても良いし、登録制御サーバ101及び検索制御サーバ104にそれぞれ格納されるものとしても良い。
更に、入力装置としてキーボード115を用いる構成を示したが、マウスや音声入力機器等、その他の入力装置であっても良いし、ネットワーク106に接続された、他のコンピュータ(図1には示していない)の入力装置から入力される構成をとることもできる。また、ディスク113は磁気ディスクであっても良いし、不揮発性メモリであっても良い。
更に、記憶装置102はネットワークに直結するネットワークアタッチトストレージ(Network Attached Storage)の構成で示したが、他のコンピュータ(図1には示していない)のディスクでも良いし、ストレージエリアネットワーク(Storage Area Network)を用いる構成をとることもできる。
次に、本実施形態の登録制御サーバ101における文書登録処理の手順について説明する。
図2は本実施形態の登録サーバ制御処理部120の処理内容を示す図である。図2では、登録サーバ制御処理部120の処理内容をPAD(Problem Analysis Diagram)図で表している。
登録サーバ制御処理部120は、図1に示すキーボード115からのコマンドを受け付けると、まず、コマンドがサーチサーバ管理情報取得コマンドであるか文書データ登録の命令であるかを判定する。そして、コマンドがサーチサーバ管理情報取得コマンドである場合はステップ202を、コマンドが文書データ登録コマンドである場合はステップ203からステップ204を実行する(ステップ201)。
サーチサーバ管理情報取得コマンドを受け付けた場合に実行されるサーチサーバ管理情報の取得処理では、図1に示すサーチサーバ検索性能取得処理部121を起動し、図1に示す各サーチサーバ105の検索所要時間を取得し、検索性能143としてサーチサーバ管理テーブル133に格納する(ステップ202)。
また、文書データ登録コマンドを受け付けた場合に実行される文書データの登録処理では、まず、登録対象となる文書の位置情報をキーボード115から受け付け、登録対象文書データ位置リスト134としてワークエリア126に格納する(ステップ203)。そして、図1に示す登録制御処理部122を起動し、文書の登録処理を行う(ステップ204)。
以上が、登録サーバ制御処理部120の処理手順である。
図3は本実施形態のサーチサーバ検索性能取得処理部121の処理内容を示す図である。次に、図2のステップ202で登録サーバ制御処理部120により起動されるサーチサーバ検索性能取得処理部121の処理手順について、図3を用いて説明する。
サーチサーバ検索性能取得処理部121は、まず、システム定義に位置が格納されたサーチサーバ105を図1に示すサーチサーバ管理テーブル133に登録する(ステップ310)。
次に、サーチサーバ管理テーブル133に登録されている全てのサーチサーバ105について、ステップ302からステップ307までに示す一連の処理を繰り返し実行する(ステップ301)。
まず、性能取得コマンドをサーチサーバ105に送信し(ステップ302)、サーチサーバ105から送信される性能取得用サンプルデータ131の送信要求を待つ(ステップ303)。そして、サーチサーバ105からの性能取得用サンプルデータ131の送信要求を受け付け、サーチサーバ105に図1に示す性能取得用サンプルデータ131を送信し(ステップ304)、サーチサーバ105からの検索所要時間の返信を待つ(ステップ305)。
その後、サーチサーバ105から検索所要時間を取得し、これと性能取得用サンプルデータ131のサイズに基づき、検索性能143を算出する(ステップ306)。最後に、上記ステップ306で算出された検索性能143をサーチサーバ管理テーブル133に格納する(ステップ307)。
以上が、サーチサーバ検索性能取得処理部121の処理手順である。なお、図3では、サーチサーバ105の一台一台について送受信を繰り返す処理を示したが、複数台のサーチサーバ105に対して一度にブロードキャストする処理方法をとることもできる。
また、図3では、性能取得用サンプルデータ131を用いたベンチマークにより検索性能143を算出するものとしたが、既に算出された値を検索性能143として取得しても良いし、検索システムの管理者がカタログに基づき、或いは意図を持って入力した値を検索性能143として取得しても良いし、各サーチサーバ105に定義されている検索性能143を取得しても良いし、或いは、サーチサーバ105のCPUの演算速度、ディスクの読み込み速度及びバスの転送速度等に基づき検索性能143を算出するものとしても良い。
図4は本実施形態の登録制御処理部122の処理内容を示す図である。次に、図2のステップ204で登録サーバ制御処理部120により起動される登録制御処理部122の処理手順について、図4を用いて説明する。
登録制御処理部122は、まず、文書データサイズ取得処理部123を起動し、図2で説明した登録対象文書データ位置リスト134に基づき、図1に示す各文書データ137のサイズを取得し、文書データサイズ141として文書データ管理テーブル132に格納する(ステップ401)。
次に、図1に示す登録サーチサーバ決定処理部124を起動し、各文書データ137の登録先となるサーチサーバ105を決定し、登録先サーチサーバ142として文書データ管理テーブル132に格納する(ステップ402)。
そして、図1に示す文書データ分配処理部125を起動し、各サーチサーバ105に対するサーチサーバ別登録文書リスト136を作成し、文書登録コマンドと共に各サーチサーバ105に送信する(ステップ403)。
以上が、登録制御処理部122の処理手順である。
図5は本実施形態の文書データサイズ取得処理部123の処理内容を示す図である。次に、図4のステップ401で登録制御処理部122により起動される文書データサイズ取得処理部123の処理手順について、図5を用いて説明する。
文書データサイズ取得処理部123は、図1に示すワークエリア126に格納された登録対象文書データ位置リスト134が指定する全ての文書データ137について、ステップ502及びステップ503を繰り返し実行する(ステップ501)。
登録対象文書データ位置リスト134で指定された登録対象となる文書データ137のデータサイズを取得する(ステップ502)。そして、上記ステップ502で取得したデータサイズを文書データサイズ141として文書データ管理テーブル132に格納する(ステップ503)。
以上が、文書データサイズ取得処理部123の処理手順である。なお、図5では、記憶装置102上の文書データ137のデータサイズを取得するものとしたが、文書データ137のデータサイズが既に取得され、文書データサイズ141として格納されている場合には、その値を用いるものとしても良い。
図6は本実施形態の登録サーチサーバ決定処理部124の処理内容を示す図である。次に、図4のステップ402で登録制御処理部122により起動される登録サーチサーバ決定処理部124の処理手順について、図6を用いて説明する。
登録サーチサーバ決定処理部124は、図1に示す文書データ管理テーブル132に登録されている全ての文書データ137について、ステップ602からステップ606までに示す一連の処理を繰り返し実行する(ステップ601)。
まず、文書データ管理テーブル132から文書データサイズ141を取得する(ステップ602)。
次に、図1に示すワークエリア126に格納した予想検索所要時間管理テーブル135を初期化し、図1に示すサーチサーバ管理テーブル133に登録されている全てのサーチサーバ105について、ステップ604の処理を繰り返し実行する(ステップ603)。
すなわち、取得した文書データサイズ141、割り当て済みサイズ144(各サーチサーバ105に既に割り当てられた文書データのサイズの合計の値)及び検索性能143から予想検索所要時間を算出し、予想検索所要時間管理テーブル135に格納する(ステップ604)。
そして、予想検索所要時間が最小であるサーチサーバ105を該文書データに対する登録先サーチサーバ142として決定し、文書データ管理テーブル132に格納する(ステップ605)。
最後に、サーチサーバ管理テーブル133から取得した割り当て済みサイズ144に、文書データサイズ141を加算し、新たな割り当て済みサイズ144としてサーチサーバ管理テーブル133に格納する(ステップ606)。
以上が、登録サーチサーバ決定処理部124の処理手順である。なお、図6に示したステップ601では、処理対象とする文書データの順番には言及していないが、任意の順番で文書データを処理した場合、データサイズが、既に処理された文書データのデータサイズに対して大きい文書データを最後に登録すると、該文書データを登録したサーチサーバの割り当て済みサイズ144が他のサーチサーバと比べて大きくなる場合があり得る。
この様な分配を防ぐ為に、ステップ601の前に、文書データ管理テーブル132内の各データを文書データサイズ141に基づく降順に並び替えるステップ(ステップ600)を加え、ステップ602からステップ606までの処理を文書データサイズ141の降順に実行するものとしても良い。
図7は本実施形態の文書データ分配処理部125の処理内容を示す図である。次に、図4のステップ402で登録制御処理部122により起動される文書データ分配処理部125の処理手順について、図7を用いて説明する。
文書データ分配処理部125は、図1に示す文書データ管理テーブル132に登録されている全ての文書データ137について、ステップ702からステップ704までに示す一連の処理を繰り返し実行する(ステップ701)。
まず、文書データ管理テーブル132から登録先サーチサーバ142を取得する(ステップ702)。次に、登録対象文書データ位置リスト134から、文書データの位置情報を取得する(ステップ703)。そして、登録先サーチサーバ142に対応するサーチサーバ別登録文書リスト136に、該文書データの位置情報を追加する(ステップ704)。
最後に、全てのサーチサーバ105に、文書登録コマンドと対応するサーチサーバ別登録文書リスト136を送信する(ステップ706)。
以上、図7を用いて説明したのが文書データ分配処理部125の処理手順であり、図2〜図7を用いて説明したのが登録制御サーバ101における文書登録処理の手順である。
次に、本実施形態の文書検索システムによる検索処理について説明する。
図8は本実施形態のサーチサーバ105の概略構成を示す図である。まず、図1に示したサーチサーバ105の構成について、図8を用いて説明する。
サーチサーバ105は、CPU801、主メモリ802、ディスク803、ネットワークボード804及びこれらを接続するシステムバス805から構成される。
主メモリ802上には、サーチサーバ制御処理部810、データ登録制御処理部811、データ検索制御処理部812、性能取得処理部813、登録制御情報取得処理部814、データ読込処理部815、データ登録処理部816、検索条件取得処理部817、データ検索処理部818及び検索結果送信処理部819を備えると共に、ワークエリア820が確保される。
ワークエリア820には、検索開始時刻831及び検索終了時刻832が格納され、ディスク803上には、サーチサーバ105が検索する範囲のデータとして検索対象データ830が格納される。
サーチサーバ制御処理部810は、データ登録制御処理部811、データ検索制御処理部812及び性能取得処理部813を呼び出す構成をとる。またデータ登録制御処理部811は、登録制御情報取得処理部814、データ読込処理部815及びデータ登録処理部816を呼び出す構成をとり、データ検索制御処理部812は、検索条件取得処理部817、データ検索処理部818及び検索結果送信処理部819を呼び出す構成をとる。
以上がサーチサーバ105の構成である。なお、ディスク803は磁気ディスクであっても良いし、不揮発性メモリであっても良い。また、検索対象データ830はディスク803上に格納するものとしたが、主メモリ802上に格納しても良い。主メモリ802は一般にディスク803よりも高速であり、主メモリ802上に検索対象データ830を格納することで、読み込み速度が向上し、検索速度が向上する効果が得られる。
次に、検索処理の手順について説明する。
図9は本実施形態のサーチサーバ制御処理部810の処理内容を示す図である。まず、サーチサーバ制御処理部810の処理手順について、図9を用いて説明する。
サーチサーバ制御処理部810は、図8に示すネットワークボード804を介してコマンドを受け付けると、まず、コマンドが性能取得コマンドであるか、文書登録コマンドであるか、或いは文書検索コマンドであるかを判定する。
そして、コマンドが性能取得コマンドである場合はステップ902を、コマンドが文書登録コマンドである場合はステップ903を、コマンドが文書検索コマンドである場合はステップ904を実行する(ステップ901)。
以下のステップは、ステップ901におけるコマンドの判定結果に応じて実行する。
すなわち、性能取得コマンドの場合には、図8に示す性能取得処理部813を起動し、検索所要時間を取得し、それに基づき検索性能を算出し、図8に示す登録制御サーバ101に送信する(ステップ902)。
また、文書登録コマンドの場合には、図8に示すデータ登録制御処理部811を起動し、受信したサーチサーバ別登録文書リスト136で指定された文書データ137を、図8に示す検索対象データ830として登録する(ステップ903)。
また、文書検索コマンドの場合には、図8に示すデータ検索制御処理部812を起動し、検索処理を実行し、検索結果を図8に示す文書検索クライアント103に送信する(ステップ904)。
以上が、サーチサーバ制御処理部810の処理手順である。
図10は本実施形態の性能取得処理部813の処理内容を示す図である。次に、図9のステップ902でサーチサーバ制御処理部810により起動される性能取得処理部813の処理手順について、図10を用いて説明する。
性能取得処理部813は、まず、図8に示す登録制御サーバ101に、図1に示す性能取得用サンプルデータ131を要求し(ステップ1001)、登録制御サーバ101からの性能取得用サンプルデータ131を受信する(ステップ1002)。
そして、図8に示すデータ登録制御処理部811を起動し、性能取得用サンプルデータ131を登録する(ステップ1003)。ここで、検索開始時刻831を図8に示すワークエリア820に格納する(ステップ1004)。
その後、図8に示すデータ検索制御処理部812を起動し、検索処理を実行する(ステップ1005)。そして、検索を終了した時点で、検索終了時刻832をワークエリア820に格納する(ステップ1006)。
最後に、検索開始時刻831と検索終了時刻832から検索所要時間を算出し、登録制御サーバ101に送信する(ステップ1007)。
以上が、性能取得処理部813の処理手順である。
図11は本実施形態のデータ登録制御処理部811の処理内容を示す図である。次に、図9のステップ903でサーチサーバ制御処理部810により起動されるデータ登録制御処理部811の処理手順について、図11を用いて説明する。
データ登録制御処理部811は、まず、図8に示す登録制御情報取得処理部814を起動し、図8に示すネットワークボード804を介して取得したサーチサーバ別登録文書リスト136より、登録する文書データ137の位置情報を取得する(ステップ1101)。
次に、図8に示すデータ読込処理部815を起動し、図8に示す文書データ137を読み込み、図8に示すワークエリア820に格納する(ステップ1102)。最後に、図8に示すデータ登録処理部816を起動し、ワークエリア820に格納された文書データ137を図8に示す検索対象データ830として格納する(ステップ1103)。
以上が、データ登録制御処理部811の処理手順である。
図12は本実施形態のデータ検索制御処理部812の処理内容を示す図である。次に、図9のステップ904でサーチサーバ制御処理部810により起動されるデータ検索制御処理部812の処理手順について、図12を用いて説明する。
データ検索制御処理部812は、まず、図8に示す検索条件取得処理部817を起動し、図8に示す文書検索クライアント103或いは図8に示す性能取得処理部813から送信された検索条件を取得する(ステップ1201)。次に、図8に示すデータ検索処理部818を起動し、図8に示す検索対象データ830に対する検索処理を実行する(ステップ1202)。
以上が、データ検索制御処理部812の処理手順である。なお、検索処理の結果は、データ検索制御処理部812を呼び出した処理部に受け渡す。更に、具体的なスキャン方法は、与えられた検索タームでテキストデータ全体を文字列探索することによって、検索タームが記述されている文書のみを検索結果として出力する基本的なスキャン方法を利用しても良いし、他のスキャン方法を利用しても良い。
以上、図12を用いて説明したのが検索処理の手順についての説明であり、図8〜図12を用いて説明したのが本実施形態の文書検索システムによる検索処理についての説明である。
図13は本実施形態のシステム管理画面の例を示す図である。ここで、本実施形態の文書検索システムにおいて、図1で説明した登録制御サーバ101のディスプレイ114に表示されるシステム管理画面について、図13を用いて具体的に説明する。
本図に示した例は、初期状態画面1311、性能取得状態画面1312、文書登録準備状態画面1314及び文書登録終了状態画面1313である。
まず、システム管理画面に共通する構成要素について説明する。
システム管理画面であるの初期状態画面1311〜文書登録準備状態画面1314は、性能取得コマンド実行ボタン1301、文書登録コマンド実行ボタン1302、登録文書位置情報入力部1303、登録ファイル決定ボタン1304、登録ファイル一覧表示部1306及びサーチサーバ管理テーブル表示部1307から構成される。
性能取得コマンド実行ボタン1301が押下された場合には、サーチサーバ管理テーブル表示部1307に各サーチサーバの検索性能が出力され、文書登録コマンド実行ボタン1302が押下された場合には、登録ファイル一覧表示部1306に表示された文書データが登録され、サーチサーバ管理テーブル表示部1307に各サーチサーバの割り当て済みサイズが出力される。
なお、サーチサーバ管理テーブル表示部1307に各サーチサーバの検索性能が表示されていない場合、或いは登録ファイル一覧表示部1306に一件の文書データも表示されていない場合は、文書登録コマンド実行ボタン1302が押下されても何も起こらない。
登録文書位置情報入力部1303には、図1に示すキーボード115から受け付けた文書データの位置情報が表示され、登録ファイル決定ボタン1304が押下された場合には、登録文書位置情報入力部1303上に表示されている文書データの位置情報が登録ファイル一覧表示部1306に移動される。なお、登録文書位置情報入力部1303に何も入力されていない場合は、登録ファイル決定ボタン1304が押下されても何も起こらない。
登録ファイル一覧表示部1306には、登録する文書データの位置情報が表示される。サーチサーバ管理テーブル表示部1307には、サーチサーバ管理テーブル133に格納されている情報が表示される。
以上が、システム管理画面の初期状態画面1311〜文書登録準備状態画面1314に共通する構成要素についての説明である。
次に各画面の遷移について、まず、初期状態画面1311から性能取得状態画面1312への遷移について説明する。
初期状態画面1311において、性能取得コマンド実行ボタン1301が押下されると、サーチサーバ検索性能取得処理部121が実行され、性能取得状態画面1312が表示される。
性能取得状態画面1312においては、サーチサーバ検索性能取得処理部121の実行結果により、各サーチサーバの検索性能が取得され、サーチサーバ管理テーブル表示部1307aとして表示される。
サーチサーバ管理テーブル表示部1307aでは、サーチサーバ1の検索性能は45MB/s、サーチサーバ2の検索性能は15MB/s、サーチサーバ3の検索性能は30MB/sであることが表されている。
以上が、初期状態画面1311から性能取得状態画面1312への遷移についての説明である。
次に、性能取得状態画面1312から文書登録準備状態画面1314への遷移について説明する。
性能取得状態画面1312において、登録ファイル一覧表示部1306には、システム管理者によって登録文書位置情報入力部1303から入力される。入力された情報は、登録ファイル決定ボタン1304により受け付けられた登録ファイル一覧表示フォームに表示される(登録ファイル指定操作1321)。
文書登録準備状態画面1314における登録ファイル一覧表示部1306aは、文書Aから文書Eまでの文書が既に受け付けられた状態を表している。また、文書登録準備状態画面1314においては、登録文書位置情報入力部1303aに、システム管理者によって位置情報である“http://docs/文書F”が入力されている状態を表している。
ここで、登録ファイル決定ボタン1304が押下された場合には、登録文書位置情報入力部1303aに、登録文書位置情報入力部1303aに入力されている“http://docs/文書F”が登録対象文書の位置情報として受け付けられる。
以上が、性能取得状態画面1312から文書登録準備状態画面1314への遷移についての説明である。
次に、文書登録準備状態画面1314から文書登録終了状態画面1313への遷移について説明する。
文書登録準備状態画面1314において、文書登録コマンド実行ボタン1302が押下されると、登録制御処理部122が実行され、文書登録終了状態画面1313が表示される。
文書登録終了状態画面1313では、サーチサーバ管理テーブル表示部1307bには、各サーチサーバの割り当て済みサイズが表示されており、サーチサーバ1の割り当て済みサイズは50KB、サーチサーバ2の割り当て済みサイズは16KB、サーチサーバ3の割り当て済みサイズは30KBであることを表している。
文書登録終了状態画面1313の登録文書位置情報入力部1303及び登録ファイル一覧表示部1306は、内容がクリアされ、初期状態に戻されている。
以上が、文書登録準備状態画面1314から文書登録終了状態画面1313への遷移についての説明であり、システム管理画面についての説明である。
図14は本実施形態のサーチサーバ検索性能取得処理部121の処理例を示す図である。次に、サーチサーバ検索性能取得処理部121の具体的な処理の例を、図14を用いて説明する。
本図に示した例は、3つのサーチサーバ105の検索性能を取得する場合における、図3で説明したサーチサーバ検索性能取得処理部121の処理の流れ(登録制御サーバ101側の処理)と、各サーチサーバの、性能取得コマンドの受信から検索所要時間送信までの処理である、図9で説明したサーチサーバ制御処理部810と図10で説明した性能取得処理部813の処理の流れ(各サーチサーバ105側の処理)である。
まず、登録制御サーバ101側の処理として、性能取得コマンドを各サーチサーバ105に送信すると(ステップ302)、各サーチサーバ105側の処理として、性能取得コマンドを受信する(ステップ901)ことにより性能取得処理部813を起動し、登録制御サーバ101に対して、性能取得用サンプルデータ131の送信要求を送信する(ステップ1001)。
そして、登録制御サーバ101側の処理として、性能取得用サンプルデータ131の送信要求を受信すると、サーチサーバ105に、性能取得用サンプルデータ131を送信し(ステップ304)、各サーチサーバ105側の処理として、性能取得用サンプルデータ131を受信すると(ステップ1002)、それぞれ性能取得処理を実行して、取得した検索所要時間を登録制御サーバ101に送信する(ステップ1007)。
図14の例においては、サイズが90MBである性能取得用サンプルデータ131を用いて性能取得を行ったことを表しており、この結果、得られた各サーチサーバの検索所要時間1401は、サーチサーバ1の検索所要時間は2秒、サーチサーバ2の検索所要時間は6秒、サーチサーバ3の検索所要時間は3秒であることを表している(本図ではサーチサーバ105側のフローは1つのみ示しているが、各サーチサーバ毎に1つのフローがある)。
登録制御サーバ101は、受信(ステップ305)した各サーチサーバの検索所要時間1401を基に、各サーチサーバの検索性能を算出する(ステップ306)。本図に示した例では、性能取得用サンプルデータ131のサイズである90MBを各サーチサーバ105の検索所要時間で割ることにより検索性能を算出しており、サーチサーバ1の検索性能は45MB/s、サーチサーバ2の検索性能は15MB/s、サーチサーバ3の検索性能は30MB/sと算出されていることを表している。
そして、ステップ306で算出された各サーチサーバの検索性能1402をサーチサーバ管理テーブル133に格納する(ステップ307)。
以上が、サーチサーバ検索性能取得処理部121の具体的な処理の例の説明である。
図15は本実施形態の文書データサイズ取得処理部123の処理例を示す図である。次に、文書データサイズ取得処理部123の具体的な処理の例を、図15を用いて説明する。
文書データサイズ取得処理部123は、主メモリ112上に格納されている登録対象文書データ位置リスト134で示された記憶装置102上の文書のサイズを取得し、文書データ管理テーブル132に格納する。
図15の例においては、登録対象文書データ位置リスト134の一行目の情報である“http://doc/文書A”は、記憶装置102上の文書Aを指しており、そのデータサイズは11KBであるため、文書データ管理テーブル132に、登録文書である「文書A」と、その文書データサイズ「11KB」が格納される。同様に、文書Bから文書Jまでのデータサイズを取得し、文書データ管理テーブル132に格納する。
以上が、文書データサイズ取得処理部123の具体的な処理の例の説明である。
次に、登録サーチサーバ決定処理部124の具体的な処理の例を説明する。
図16は本実施形態の一つ目の文書の登録先サーチサーバを決定する場合の具体例を示す図である。最初に、一つ目の文書の登録先サーチサーバを決定する場合の具体例を、図16を用いて説明する。
まず、文書データ管理テーブル132から、文書データサイズを取得する(ステップ602)。図16の例においては、文書Dのデータサイズ15KBを取得している。
次に、サーチサーバ管理テーブル133から取得された各サーチサーバの検索性能及び割り当て済みサイズと文書データサイズ1601に基づき、各サーチサーバにおける予想検索所要時間を算出する(ステップ604)。
図16の例においては、各サーチサーバは、割り当てサイズを持っていないため、文書Dの15KBをそのまま対象として予想検索所要時間を算出しており、サーチサーバ1の予想検索所要時間は0.3ミリ秒、サーチサーバ2の予想検索所要時間は1.0ミリ秒、サーチサーバ3の予想検索所要時間は0.5ミリ秒と算出されることを表している。
ステップ604で算出した各サーチサーバの予想検索所要時間の中で、予想検索所要時間が最小であるサーチサーバを選択し、該サーチサーバを文書Dの登録先サーチサーバとして、文書データ管理テーブル132に格納する(ステップ605)。
図16の例においては、文書Dの登録先サーチサーバを予想検索所要時間が0.3ミリ秒であり、最小であるサーチサーバ1とし、文書データ管理テーブル132に格納している。
ステップ605で選択されたサーチサーバに対応する割り当て済みサイズに対し、文書Dのデータサイズを加え、サーチサーバ管理テーブル133に格納する(ステップ606)。
図16の例においては、サーチサーバ1の割り当て済みサイズに対し、文書Dのデータサイズ15KBだけ増加した例を表している。
以上が、一つ目の文書の登録先サーチサーバを決定する場合の具体例の説明である。
図17は本実施形態の二つ目の文書の登録先サーチサーバを決定する場合の具体例を示す図である。続いて、二つ目の文書の登録先サーチサーバを決定する場合の具体例を、図17を用いて説明する。
まず、文書Eの文書データサイズ1701を取得する(ステップ602)。図17の例では、文書Eのデータサイズとして13KBを取得している。
次に、ステップ604において、サーチサーバ管理テーブル133に格納されている各サーチサーバの検索性能及び割り当て済みサイズと、文書データサイズ1701に基づき、各サーチサーバの予想検索所要時間を算出する。
図17の例においては、サーチサーバ1が、既に割り当てサイズ15KBを持っているため、文書Eの13KBと合わせ、合計28KBを対象とした場合の予想検索所要時間0.6ミリ秒が算出され、サーチサーバ2及びサーチサーバ3は、割り当てサイズを持っていないため、文書Eの13KBを対象とした場合の予想検索所要時間として、それぞれ1.0ミリ秒、0.5ミリ秒が算出されることを表している。
この結果、予想検索所要時間が最小となるサーチサーバ3が、文書データ管理テーブル132の文書Eの登録先サーチサーバとして格納される(ステップ605)。そして、サーチサーバ3の割り当て済みサイズは、文書Eのデータサイズである13KBが加えられ、サーチサーバ管理テーブル133に格納される(ステップ606)。
以上、図17を用いて説明したのが二つ目の文書の登録先サーチサーバを決定する場合の具体例である。なお、三つ目以降の文書の登録先サーチサーバを決定する場合も、二つ目の文書の登録先サーチサーバを決定する場合の処理と同様である。
また、文書データの追加登録の場合も、図17で説明した二つ目の文書の登録先サーチサーバを決定する場合の処理と同様であり、本実施形態において、新たな文書データを追加登録する場合、図1に示す登録制御サーバ101が文書登録コマンドを受け付け、図2で説明した登録サーバ制御処理部120において文書データ登録を実行し、登録サーバ制御処理部120の処理において、文書データ管理テーブル132は新たに追加する文書データのみで作成する。
図1では文書データ管理テーブル132をディスク113に格納するとしたが、ワークエリア126に保持しても良いし、ディスク113上に格納している場合、処理が終了した後、追加する文書データのみで作成した文書データ管理テーブルを、既存の文書データ管理テーブルとマージしても良い。
以上が、新たな文書データを追加登録する為の処理手順についての説明である。
次に、本実施形態の文書検索システムの文書検索を実現する構成及び処理手順について説明する。
図18は本実施形態の検索制御サーバ104の概略構成を示す図である。まず、検索制御サーバ104の構成について図18を用いて説明する。
検索制御サーバ104は、CPU1801、主メモリ1802、ネットワークボード1803及びこれらを接続するシステムバス1804から構成される。
主メモリ1802上には検索制御処理部1810、検索要求取得処理部1811、検索要求配信処理部1812、検索結果収集処理部1813、検索結果統合処理部1814及び検索結果送信処理部1815を備えると共に、ワークエリア1820が確保され、ワークエリア1820には、各サーチサーバ105から取得する検索結果である中間検索結果1830及び、それらをマージしたものである検索結果1831が格納される。
また、検索制御処理部1810は、検索要求取得処理部1811、検索要求配信処理部1812、検索結果収集処理部1813、検索結果統合処理部1814及び検索結果送信処理部1815を呼び出す構成をとる。
以上が、検索制御サーバ104の構成の説明である。
図19は本実施形態の検索制御処理部1810の処理概要を示す図である。次に、検索制御処理部1810の処理手順について図19を用いて説明する。
検索制御処理部1810は、まず、検索要求取得処理部1811を起動し、検索条件を検索制御処理部1810の要求元である文書検索クライアント103から受信した検索条件を取得する(ステップ1901)。
次に、検索要求配信処理部1812を起動し、文書検索システムに属する全てのサーチサーバ105について、ステップ1903に示す処理を繰り返し実行し(ステップ1902)、サーチサーバ105に検索条件を送信する(ステップ1903)。
次に、検索結果収集処理部1813を起動し、サーチサーバ105からの検索結果を受け付け、それを中間検索結果1830としてワークエリア1820に格納する(ステップ1904)。
そして、検索結果統合処理部1814を起動し、中間検索結果1830をマージし、検索結果1831としてワークエリア1820に格納する(ステップ1905)。
最後に、検索結果送信処理部1815を起動し、ワークエリア1820に格納された検索結果1831を文書検索クライアント103に送信する(ステップ1906)。
以上、図19を用いて説明したのが検索制御処理部1810の処理手順であり、図18及び図19を用いて説明したのが実施形態1における文書検索システムの文書検索を実現する構成及び処理手順である。
本実施形態に示した登録制御サーバ101では、文書データ管理テーブル132とサーチサーバ管理テーブル133は、ディスク113上に格納するものとしたが、登録制御サーバ101における文書登録処理の終了時にそれらを破棄するものとし、ディスク113ではなくワークエリア126に保持しても良い。文書データ管理テーブル132とサーチサーバ管理テーブル133をワークエリア126に保持することにより、ディスク113が必要とするサイズを減らす効果が得られる。
以上説明した様に、本実施形態に示した文書検索システムによれば、図6で説明した登録サーチサーバ決定処理部124において各サーチサーバの処理性能と各文書データのサイズに応じて各コンピュータに割り当てる文書データを決定することにより、各サーチサーバはそれぞれの性能を最大限に発揮することができる様になる。それによって、文書検索システム全体としての検索速度を向上する効果が得られる。
この結果、文書検索システム全体として検索速度が向上し、検索者は、ストレスなく検索結果を得ることができる様になる。
以上説明した実施形態においては、文書データの初期登録を例に、本実施形態の文書検索システムについて説明したが、新たな文書データを追加登録する為の処理手順で説明した様に、本実施形態で示した構成において、既に文書データが登録された状態に対し、新たな文書データを追加登録することも可能である。
また、以上説明した実施形態においては、文書データ1件ずつについて登録先サーチサーバを決定する処理について説明したが、予め構成する文書データのサイズの合計の比率が、各サーチサーバの性能の比率と等しくなるグループを作成し、それら文書データのグループを各サーチサーバに割り当てる構成をとることとしても良い。
以上説明した様に本実施形態のデータ分配システムによれば、分配データのデータサイズに応じた予想所要時間が各コンピュータでできるだけ均等となる様に分配先を決定するので、各コンピュータの処理性能に応じた適切なサイズのデータを分配し、そのデータを処理する際に各コンピュータの処理性能を最大限に活用できる様にすることが可能である。
(実施形態2)
以下に複数のコンピュータでの並列検索処理によりインデクス検索される文書データを各コンピュータへ分配する実施形態2のデータ分配システムについて説明する。
前記の様に実施形態1においては、全文検索を用いた文書検索システムの例により説明したが、本発明の適用対象は、検索方法を全文検索に限定されるものではなく、例えば特開昭64−35627号公報に開示される様なインデクス検索であっても良い。
インデクス検索を用いた文書検索システムにおいては、検索条件で指定された検索タームに関するインデクスだけを読み出すため、検索所要時間は検索タームに関するインデクスのサイズに比例する。
従って、割り当て済みサイズ144ではなく、検索タームに関するインデクスのサイズを各サーチサーバ間で均一にすることにより、本発明をインデクス検索を用いた文書検索システムに適用することができる。
以下、各サーチサーバ間において、読み出すインデクスのサイズを均一にする手段を有する第2の実施形態について説明する。
図20は本実施形態の登録制御サーバ101の概略構成を示す図である。図20に示す様に本実施形態の登録制御サーバ101は、インデクスサイズ算出処理部2002と、登録サーチサーバ決定処理部2003とを有している。
インデクスサイズ算出処理部2002は、検索対象としてシステムに登録するデータについて予め定められた監視インデクスサイズを算出してディスク113内の文書データ管理テーブル132aに格納する処理部である。
登録サーチサーバ決定処理部2003は、ディスク113に格納した検索性能143、監視インデクスサイズ2010及び検索頻度2013を記憶装置から読み出し、あるデータを分配されたサーチサーバ105での当該データのインデクス処理に必要な予想所要時間をディスクから読み出した検索性能143、監視インデクスサイズ2010及び検索頻度2013から算出し、算出した結果に基づきデータの分配先を決定する登録先決定処理部である。
登録制御サーバ101をインデクスサイズ算出処理部2002及び登録サーチサーバ決定処理部2003として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
本実施形態では、各サーチサーバ105が読み出すインデクスのサイズを均一にする為に、各文書データの予め定められたタームに関するインデクスのサイズを算出し、それらのインデクスサイズを各サーチサーバ105毎に管理することとする。
なお本実施形態において、該タームに関するインデクスのサイズが管理される対象となるタームを監視インデクスと呼び、そのタームが文書検索システムに対して検索タームとして入力された実績に基づく値を検索頻度2013と呼ぶ。検索頻度2013は該タームが入力された実績が多ければ多いほど大きな値となり、この値の大きいタームを監視インデクスとして用いる。
本実施形態と実施形態1は、登録制御サーバ101の主メモリ112上の登録制御処理部122aとディスク113上に格納するデータが異なり、図20に示す様に、登録制御処理部122aには、文書データサイズ取得処理部123の代わりにインデクスサイズ算出処理部2002が、登録サーチサーバ決定処理部124の代わりにインデクスサイズを利用することとした登録サーチサーバ決定処理部124aが加わると共に、ディスク113上には監視インデクス管理テーブル2012が加わり、更に、ディスク113上の文書データ管理テーブル132aには文書データサイズ141の代わりに監視インデクスサイズ2010が、サーチサーバ管理テーブル133aには割り当て済みサイズ144の代わりに監視インデクスサイズ2011が格納される。
監視インデクス管理テーブル2012には各監視インデクスに対応する検索頻度2013が格納される。なお、検索頻度2013は検索システムの管理者が用意した検索ログ等から算出するものとしても良いし、検索制御サーバ104が記憶装置102に検索ログを出力し、その検索ログから算出するものとしても良いし、検索システムの管理者が任意の値を検索頻度2013として入力するものとしても良い。
また、本実施形態のサーチサーバ検索性能取得処理部121は、文書データが分配されるサーチサーバ105の性能取得用サンプルデータ131でインデクス検索を行った場合の検索性能143を取得してディスク113内のサーチサーバ管理テーブル133に格納するものとする。
図21は本実施形態の登録制御処理部122aの処理内容を示す図である。次に、本実施形態における登録制御処理部122aの処理手順について、図21を用いて説明する。
登録制御処理部122aは、まず、図20に示すインデクスサイズ算出処理部2002を起動し、図20に示す登録対象文書データ位置リスト134と図20に示す監視インデクス管理テーブル2012に基づき、該文書データから各監視インデクスを作成した場合のサイズを算出し、監視インデクスサイズ2011として図20に示す文書データ管理テーブル132aに格納する(ステップ2101)。
次に、図20に示すインデクスサイズを利用することとした登録サーチサーバ決定処理部124aを起動し、該文書データ137の登録先となるサーチサーバ105を決定し、登録先サーチサーバ142として図20に示す文書データ管理テーブル132aに格納する(ステップ2102)。
そして、図4で説明したステップ403を実行する。
以上が、登録制御処理部122aの処理手順である。
図22は本実施形態のインデクスサイズ算出処理部2002の処理内容を示す図である。次に、図21のステップ2101で登録制御処理部122aにより起動されるインデクスサイズ算出処理部2002の処理手順について、図22を用いて説明する。
インデクスサイズ算出処理部2002は、まず、全ての文書データ137について、ステップ2202からステップ2204までに示す一連の処理を繰り返し実行する(ステップ2201)。
すなわち、図20に示すディスク113に格納された監視インデクス管理テーブル2012に登録されている全ての監視インデクスであると定められたタームについて、ステップ2203の処理を繰り返し(ステップ2202)、該文書データから監視インデクスを作成した場合のインデクスのサイズを算出する(ステップ2203)。そして、算出した各監視インデクスに対するインデクスのサイズを監視インデクスサイズ2010として図20に示す文書データ管理テーブル132aに格納する(ステップ2204)。
以上が、インデクスサイズ算出処理部2002の処理手順である。
図23は本実施形態の登録サーチサーバ決定処理部124aの処理内容を示す図である。次に、図21のステップ2101で登録制御処理部122aにより起動されるインデクスサイズを利用することとした登録サーチサーバ決定処理部124aの処理手順について、図23を用いて説明する。
まず、図20に示す監視インデクス管理テーブル2012から、全ての監視インデクスの検索頻度2013を取得する(ステップ2301)。
次に、全ての文書データ137について、ステップ2303からステップ2307までに示す一連の処理を繰り返し実行する(ステップ2302)。
すなわち、図20に示す文書データ管理テーブル132から各監視インデクスの監視インデクスサイズ2010を取得し(ステップ2303)、全てのサーチサーバについて、ステップ2305の処理を繰り返し実行して(ステップ2304)、取得した該文書の監視インデクスサイズ2010と各サーチサーバ105の監視インデクスサイズ2011の和、検索性能143及び検索頻度2013に基づいて予想検索所要時間を算出し、図20に示す予想検索所要時間管理テーブル135に格納する(ステップ2305)。
そして、予想検索所要時間が最小であるサーチサーバ105を該文書データに対する登録先サーチサーバ142として決定し、文書データ管理テーブル132に格納する(ステップ2306)。
最後に、サーチサーバ管理テーブル133から取得した監視インデクスサイズ2011と該文書の監視インデクスサイズ2010の和を、新たな監視インデクスサイズ2011としてサーチサーバ管理テーブル133に格納する(ステップ2307)。
以上が、インデクスサイズを利用することとした登録サーチサーバ決定処理部124aの処理手順である。
図24は本実施形態のインデクスサイズ算出処理部2002及び登録サーチサーバ決定処理部124aの具体的な処理の流れを示す図である。ここで、インデクス検索の文書検索システムにおける、インデクスサイズ算出処理部2002及び登録サーチサーバ決定処理部124aの具体的な処理の流れについて、図24を用いて説明する。
まず、インデクスサイズ算出処理部2002の処理において、登録対象文書のデータ位置134、監視インデクス管理テーブル2012及びデータ位置で指定される文書データ137を取得し、該文書データに対するインデクスを作成した場合の、監視インデクスサイズを算出する(ステップ2203)。
図24の例においては、監視インデクス管理テーブル2012から取得したインデクスサイズを監視するタームである監視インデクスは「水溶」「溶液」「溶性」の3つであることを表している。
また、文書データ位置情報“http://docs/文書K”で指定された、記憶装置102上の文書Kの内容は、「水溶液の性質について説明する。水溶液は水溶性の物体を水に溶かした液体であり、例えば水溶性の物体である食塩の水溶液は一般に塩水と呼ばれる。水溶液は水を足すことにより希釈され、また、水の蒸発により、水溶液は…」であることを表している。
文書Kの中には「水溶」は7回、「溶液」は5回、「溶性」は2回現れており、インデクスは対象となる文字が1回出現する毎にサイズが増加するため、文書Kの監視インデクスサイズ2401は「水溶」では56Bytes、「溶液」では40Bytes、「溶性」では16Bytesとなることを表している(文書Kの監視インデクスサイズ2401)。なお、図24の検索頻度2013は、説明の便宜上整数で表現しているが、実際には所定検索回数あたりの監視インデクスの検索回数の割合で表されるものとする。
次に、ステップ2305を実行し、各監視インデクスの検索頻度、各監視インデクスサイズ及び検索性能から、各サーチサーバの予想検索所要時間を数1により算出する。
Figure 2006113868
以下、数1を説明する。
Tは該サーチサーバの予想検索所要時間を、nは監視インデクスの総数を、Fiはi番目の監視インデクスの検索頻度を、Pは該サーチサーバの検索性能を、Viは該文書データからi番目の監視インデクスを作成した場合の監視インデクスサイズを、SViは該サーチサーバに格納されているi番目の監視インデクスの監視インデクスサイズを表している。
全ての監視インデクスに関して、該文書データから作成される監視インデクスサイズと該サーチサーバに格納されている監視インデクスサイズの和に、該監視インデクスの検索頻度を掛け合わせ、得られた結果を全てのiに渡って合計し、該サーチサーバの検索性能で割った値を予想検索所要時間とする。
以上が、数1の説明である。
図24の例においては、サーチサーバ1の予想検索所要時間は7マイクロ秒、サーチサーバ2の予想検索所要時間は20マイクロ秒、サーチサーバ3の予想検索所要時間は10マイクロ秒であることを表している。
このため、最小の予想検索所要時間をもつサーチサーバ1が、文書Kの登録先サーチサーバ142として文書データ管理テーブル132aに格納される(ステップ2306)と共に、サーチサーバ1の監視インデクスサイズには文書Kの監視インデクスサイズが加算され、サーチサーバ1の監視インデクスサイズは「水溶」は56Bytes、「溶液」は40Bytes、「溶性」は16Bytesとして、サーチサーバ管理テーブル133aに格納される(ステップ2307)。
以上が、インデクスサイズ算出処理部2002及び登録サーチサーバ決定処理部124aの具体的な処理の流れの説明である。なお、2つ目以降のタームの登録先サーチサーバの決定処理も上記説明と同じ流れである。
以上説明した様に、本実施形態に示した構成によれば、インデクス検索の文書検索システムにおいて、図22で説明したインデクスサイズ算出処理部2002において各文書データのインデクスを作成した場合のインデクスサイズを算出し、図23で説明したインデクスサイズを利用することとした登録サーチサーバ決定処理部124aにおいて各サーチサーバの処理性能と各文書データのインデクスサイズに応じて各コンピュータに割り当てる文書データを決定することにより、各サーチサーバがそれぞれの性能を最大限に発揮できる様になる。それによって、文書検索システム全体としての検索速度を向上する効果が得られる。
この結果、文書検索システム全体として検索速度が向上し、検索者は、ストレスなく検索結果を得ることができる様になる。
以上説明した様に本実施形態のデータ分配システムによれば、分配データのインデクスサイズに応じた予想所要時間が各コンピュータでできるだけ均等となる様に分配先を決定するので、各コンピュータの処理性能に応じた適切なサイズのデータを分配し、そのデータをインデクス処理する際に各コンピュータの処理性能を最大限に活用できる様にすることが可能である。
(実施形態3)
以下に分配対象のコンピュータを追加して文書データの再分配を行う実施形態3のデータ分配システムについて説明する。
前記説明した実施形態1及び実施形態2は、いずれもサーチサーバ数を固定した文書検索システムである。しかし、例えば、図1に示す文書検索システムにおいて、検索性能を向上させる為にサーチサーバ105の数を増やす場合等がある。
この様な場合において、単に新規のサーチサーバ105を追加しただけでは、そのサーチサーバ105には担当する文書データが割り振られていないので、その処理性能を活用できず、文書検索システム全体として検索速度を向上する効果が得られないため、文書データ137を各サーチサーバ105への割り当て直す必要がある。
ここで、実施形態1に示した構成を用いて改めて文書データ137を全てのサーチサーバ105へ再度割り振ることにすれば、新規に追加したサーチサーバ105の処理性能を活用することができ、従って文書検索システム全体として検索速度を向上する効果が得られるが、その場合、処理対象となる文書のサイズが膨大であると、登録処理に時間がかかるという問題がある。
例えば、1日500件の記事が10年分登録された文書検索システムを想定すると、該文書検索システムには180万件の記事が格納されており、該文書検索システムの検索性能を向上する為にサーチサーバを追加する際には、記事1件の登録処理を平均0.5秒で終了したと仮定しても、90万秒、すなわち10日かかることになり、この期間を短縮する為には、サーチサーバ追加時に処理対象とされる文書データ137の数を削減することが必要になる。
以下、サーチサーバ追加時に処理対象とされる文書データ137の数を削減する本実施形態について説明する。
まず、本実施形態の概要を説明する。
本実施形態では、文書の元データは図1に示す記憶装置102等の様な外部の記憶装置に格納されている事を前提とし、まず、既にサーチサーバ105に登録されている文書データの中から、新規に追加されたサーチサーバ2510に移される文書データ137を決定し、既存のサーチサーバ105から削除する。
次に、新規に追加されたサーチサーバ2510の分担とされる文書データ137を外部の記憶装置から読み込む。
これにより、サーチサーバ追加時に処理対象とされる読み込む文書データ137の数を削減することが可能となり、サーチサーバを追加する際にかかる時間を短縮することができる。
以上が本実施形態の概要である。
本実施形態と実施形態1(図1)の構成では、登録制御サーバ101の構成及び新規追加サーチサーバ2510がネットワーク106上に接続されている点が異なり、他の構成要素は実施形態1と同様である。新規追加サーチサーバ2510は、サーチサーバ105と同一の構成をとるが、本実施形態では両者を区別して説明する。
図25は本実施形態の登録制御サーバ101aの概略構成を示す図である。まず、実施形態1に示した登録制御サーバ101と異なる登録制御サーバ101aの構成について、図25を用いて説明する。
図25に示した登録制御サーバ101aは、図1で説明した登録制御サーバ101と、主メモリ112上に格納されるプログラムの構成、ワークエリア126上に格納される値とディスク113上に格納されるテーブルの構成が異なっており、主メモリ112上には、登録サーバ制御処理部120の代わりに登録サーバ制御処理部120aを有すると共に、ワークエリア126には、サーチサーバ別登録文書リスト136、サーチサーバ別削除文書リスト2523、追加検索性能比率リスト2805が格納され、また、ディスク113の文書データ管理テーブル132bには元登録先サーチサーバ2522が、サーチサーバ管理テーブル133bには移動データ量2521が格納される。
また、本図には記載していないが、図1に示すディスプレイ114に表示するシステム管理画面1311(図13)に、サーチサーバ登録コマンド実行ボタンを追加する。サーチサーバ追加コマンド実行ボタンを押下することにより、サーチサーバ管理テーブル表示部1307に、新規追加サーチサーバ2510の情報が追加され、割り当て済みサイズが変化する。
以上が、登録制御サーバ101aの構成の説明である。
次に、本実施形態におけるサーチサーバ追加処理の手順について説明する。
図26は本実施形態の登録サーバ制御処理部120aの処理内容を示す図である。図26は登録サーバ制御処理部120aの処理手順を表している。
登録サーバ制御処理部120aは、図2で説明した登録サーバ制御処理部120が受け付けるサーチサーバ管理情報取得コマンド及び文書データ追加コマンドに加え、サーチサーバ追加コマンドを受け付け、サーチサーバ追加処理としてステップ2601及びステップ2602の処理を行う。
登録サーバ制御処理部120aがサーチサーバ追加コマンドを受け取ると、まず、図25に示すサーチサーバ検索性能取得処理部121を起動し、全ての新規追加サーチサーバ2510の性能をサーチサーバ管理テーブル133に格納する(ステップ2601)。
そして、図25に示すデータ移動制御処理部2502を起動し、新規追加サーチサーバ2510に対する文書追加処理と、既存のサーチサーバ105の中で新規追加サーチサーバ2510に移動することとした文書データ137に対する文書削除処理を実行する。(ステップ2602)。
以上が、登録サーバ制御処理部120aの処理手順である。
図27は本実施形態のデータ移動制御処理部2502の処理内容を示す図である。次に、図26のステップ2602で登録サーバ制御処理部120aに起動されるデータ移動制御処理部2502の処理手順について、図27を用いて説明する。
データ移動制御処理部2502は、まず、図25に示す移動データ量決定処理部2503を起動し、新規追加サーチサーバ2510の性能に応じた量の移動データ量を算出し、サーチサーバ管理テーブル133に格納する(ステップ2701)。
次に、図25に示すデータ移動先決定処理部2504を起動し、移動データ量に応じて、既存のサーチサーバ105から移動する文書データを決定し、文書データ管理テーブル132に格納する(ステップ2702)。
最後に、図25に示すデータ移動実行処理部2505を起動し、新規追加サーチサーバ2510には文書登録コマンドと対応するサーチサーバ別登録文書リスト136を、既存のサーチサーバ105には文書削除コマンドと対応するサーチサーバ別削除文書リスト2523を送信する(ステップ2703)。
以上が、データ移動制御処理部2502の処理手順である。なお、サーチサーバ105はサーチサーバ別削除文書リスト2523を受け付けると、図8に示す検索対象データ830の中から、サーチサーバ別削除文書リスト2523で指定された文書データを削除する手段を有しているものとする。
図28は本実施形態の移動データ量決定処理部2503の処理内容を示す図である。次に、図27のステップ2701でデータ移動制御処理部2502に起動される移動データ量決定処理部2503の処理手順について、図28を用いて説明する。
移動データ量決定処理部2503は、まず、新規追加サーチサーバ2510の検索性能143の合計を、全てのサーチサーバの検索性能の合計で割った値を、追加検索性能比率リスト2805としてワークエリア126に格納する(ステップ2801)。
次に、図25に示すサーチサーバ管理テーブル133bにおいて割り当て済みサイズ144が設定されている全ての既存のサーチサーバ105についてステップ2804を繰り返し実行し(ステップ2803)、図25に示す該サーチサーバの割り当て済みサイズ144とステップ2801で算出した追加検索性能比率リスト2805を掛け合わせた値を、該サーチサーバの移動データ量2521として図25に示すサーチサーバ管理テーブル133bに格納する(ステップ2804)。
以上が、移動データ量決定処理部2503の処理手順である。
図29は本実施形態のデータ移動先決定処理部2504の処理内容を示す図である。次に、図27のステップ2702でデータ移動制御処理部2502に起動されるデータ移動先決定処理部2504の処理手順について、図29を用いて説明する。
データ移動先決定処理部2504は、まず、図25に示す文書データ管理テーブル132bに登録されている全ての文書データ137についてステップ2902の処理を繰り返し実行する(ステップ2901)。
次に、該文書データの文書データサイズ141が、登録先サーチサーバ142の移動データ量2521より小さい場合は、ステップ2903からステップ2905までに示す一連の処理を実行する(ステップ2902)。
まず、該文書データを図25に示すサーチサーバ別削除文書リスト2523に追加し(ステップ2903)、該文書データに対する登録先サーチサーバ142を、元登録先サーチサーバ2522とする(ステップ2904)。そして、元登録先サーチサーバ2522で指定されたサーチサーバの割り当て済みサイズ144と移動データ量2521を、文書データサイズ141に基づき更新する(ステップ2905)。
次に、サーチサーバ別削除文書リスト2523に登録され文書データについてステップ2907からステップ2910までに示す一連の処理を繰り返し実行する(ステップ2906)。
まず、文書データサイズ141と新規追加サーチサーバ2510の割り当て済みサイズ144から全ての新規追加サーチサーバ2510の予想検索所要時間を算出し、図1に示す予想検索所要時間管理テーブル135に格納する(ステップ2907)。そして、予想検索所要時間が最小である新規追加サーチサーバ2510を該文書データに対する登録先サーチサーバ142として決定し、文書データ管理テーブル132bに格納する(ステップ2908)。
また、該文書データをサーチサーバ別登録文書リスト136に追加して(ステップ2909)、図25に示すサーチサーバ管理テーブル133bから取得した割り当て済みサイズ144に、文書データサイズ141を加算し、新たな割り当て済みサイズ144としてサーチサーバ管理テーブル133bに格納する(ステップ2910)。
以上、図29を用いて説明したのがデータ移動先決定処理部2504の処理手順であり、図25〜図29を用いて説明したのが本実施形態におけるサーチサーバ追加処理の手順について説明である。
図30は本実施形態の移動データ量決定処理部2503の具体的な処理の例を示す図である。次に、移動データ量決定処理部2503の具体的な処理の例を、図30を用いて説明する。
まず、新規追加サーチサーバ2510の検索性能3102を取得し、サーチサーバ管理テーブル133に格納する(ステップ2602)。
図30の例では、新規追加サーチサーバであるサーチサーバ4の検索性能が30MB/sとしてサーチサーバ管理テーブル133Kに格納されていることを表している。
次に、新規追加サーチサーバの検索性能143の合計を、全てのサーチサーバの検索性能の合計で割った値を、追加検索性能比率リスト2805とする(ステップ2802)。
図30の例では、サーチサーバ管理テーブル133Kから各サーチサーバの検索性能を取得し、新規追加サーチサーバの検索性能143の合計が30MB/s、全てのサーチサーバの検索性能の合計が120MB/sとなり、30MB/sを120MB/sで割った値を追加検索性能比率3101として、0.25を算出することを表している。
次に、各サーチサーバの割り当て済みサイズ144及び追加検索性能比率リスト2805に基づき、既存の各サーチサーバの移動データ量2521を算出し、サーチサーバ管理テーブル133に格納する(ステップ2804)。
図30の例では、0.25と算出した追加検索性能比率3101と各サーチサーバの割り当て済みサイズ144を掛け合わせることによって、移動データ量2521を算出し、この結果として、サーチサーバ管理テーブル133Lに、サーチサーバ1の移動データ量22.5GB、サーチサーバ2の移動データ量7.5GB及びサーチサーバ3の移動データ量15GBが格納されることを表している。
以上が、移動データ量決定処理部2503の具体的な処理の例の説明である。
図31は本実施形態のデータ移動先決定処理部2504の具体的な処理の例を示す図である。次に、データ移動先決定処理部2504の具体的な処理の例を、図31を用いて説明する。
まず、登録された文書データの中から、新規追加サーチサーバに登録する文書データを決定し、サーチサーバ別削除文書リスト2523を作成する(ステップ2903)。
図31の例では、文書データ管理テーブル132K及びサーチサーバ管理テーブル133Lを入力として読み込み、サーチサーバ105毎に、移動する文書データを決定し、サーチサーバ1に登録された文書の中で移動する文書データをサーチサーバ別削除文書リスト2523Aに、サーチサーバ2に登録された文書の中で移動する文書データをサーチサーバ別削除文書リスト2523Bに加えることを表している。
次に、文書データ管理テーブル132bをサーチサーバ別削除文書リスト2523に合わせて更新する(ステップ2904)。
図31の例では、サーチサーバ別削除文書リスト2523A及びサーチサーバ別削除文書リスト2523Bを入力として読み込み、新規追加サーチサーバに登録する文書データに関する元登録先サーチサーバを文書データ管理テーブル132Lに格納しており、文書Aはサーチサーバ1から新規追加サーチサーバに、文書Bはサーチサーバ2から新規追加サーチサーバに移動することを表している。
次に、サーチサーバ管理テーブル133bをサーチサーバ別削除文書リスト2523に合わせて更新する(ステップ2905)。
図31の例では、サーチサーバ別削除文書リスト2523A及びサーチサーバ別削除文書リスト2523Bを入力として読み込み、新規追加サーチサーバに登録する文書データのデータサイズの分だけ割り当て済みサイズ及び移動データ量を減らし、サーチサーバ管理テーブル133Mに格納しており、サーチサーバ1は割り当て済みサイズが67.5GBになり、サーチサーバ2は割り当て済みサイズが22.5GBになり、サーチサーバ3は割り当て済みサイズが45GBになったことを表している。
そして、サーチサーバ別削除文書リスト2523で指定された文書データの登録先となるサーチサーバを決定し、サーチサーバ別登録文書リスト136を作成する(ステップ3112)。なお、ステップ3112は図29で説明したステップ2906〜ステップ2910と同一の処理を表している。
図31の例では、サーチサーバ別削除文書リスト2523A及びサーチサーバ別削除文書リスト2523Bを入力として読み込み、新規追加サーチサーバ2510から登録先サーチサーバ142を決定する。
そして、これに基づいて、サーチサーバ別登録文書リスト136を作成する。また、登録先サーチサーバ142に指定されたサーチサーバの割り当て済みサイズ144と該文書データのデータサイズの和を、新たな割り当て済みサイズ144としてサーチサーバ管理テーブル133Nに格納すると共に、該文書データの登録先サーチサーバ142を文書データ管理テーブル132Mに格納する。
以上が、データ移動先決定処理部2504の具体的な処理の例の説明である。
以上説明した、本実施形態に示した構成によれば、本実施形態の文書検索システムにおいて、図28で説明した移動データ量決定処理部2503により既存のサーチサーバに登録されている文書データの中から新規追加サーチサーバに移動する文書データを決定し、図29で説明したデータ移動先決定処理部2504により新規追加サーチサーバに移動データ量決定処理部2503で決定した文書データのみを読み込む様にすることにより、サーチサーバ追加時に処理対象とされる文書データ137の数を削減することが可能となり、その結果としてサーチサーバを追加する際にかかる時間を短縮する効果を得ることができる。
すなわち、サーチサーバを追加する際にかかる時間を、本実施形態を用いることにより、実施形態1を用いる場合の25%に削減することができ、例えば、先に説明した10年分の新聞記事を蓄積した文書検索システムにおいては、10日要していた登録時間を約3日にすることができる。
以上説明した様に本実施形態のデータ分配システムによれば、既存コンピュータに残すサイズと追加コンピュータに移動するサイズとの比率が、既存コンピュータと追加コンピュータとの処理性能の比率とできるだけ等しくなる様に移動するデータを決定するので、追加コンピュータの処理性能に応じた適切なサイズのデータを追加コンピュータに移動して、追加コンピュータを含む複数のコンピュータへのデータの再分配を効率的に行うことが可能である。
なお、本実施形態において、文書データサイズとコンピュータの処理性能に応じて文書データを追加コンピュータに分配する方法について説明したが、実施形態2に説明したインデクスサイズとコンピュータの処理性能に応じて文書データを分配する方法と組合わせることにより、本実施形態をインデクス検索を用いた文書検索システムに適用しても良い。
(実施形態4)
以下に全処理能力の所定の割合に相当する処理性能に応じて文書データを分配する実施形態4のデータ分配システムについて説明する。
前記説明した実施形態では、いずれも各コンピュータの全ての処理能力を検索処理に割り振ることを前提として説明したが、検索システム以外の処理のアプリケーションを処理しているコンピュータを、サーチサーバとしても利用したい場合があり得る。
この場合、実施形態1に示した構成を用いて、該コンピュータをサーチサーバとしてシステム定義に書き加えることで、アプリケーションを処理しているコンピュータをサーチサーバとしても利用することができるが、該コンピュータ本来の処理能力に対して、全文検索システムに利用できる処理能力が半分以下である場合等は、検索所要時間が予想した時間の倍以上かかることになる。
例えば、給与計算アプリケーションを処理するコンピュータが、サーチサーバをも兼ねている場合において、全処理能力の8割を給与計算アプリケーションに、残りの2割を全文検索システムに割り振っているとし、このとき、該サーチサーバにコンピュータ本来の処理能力に基づいた文書データを担当させたとすれば、該サーチサーバは2割の力で10割分の処理をする事になるため、該コンピュータの検索レスポンスが低下し、文書検索システム全体の検索速度が低下することになる。
この文書検索システム全体の検索速度が低下を防ぐ為には、各コンピュータに、それぞれが全文検索システムに対して優先的に割り振ることのできる処理能力の割合(以下、検索処理利用割合と呼ぶ)に応じてデータを分配する必要がある。
以下、検索処理利用割合を利用したデータサイズ分配手段を有する本実施形態について説明する。
まず、本実施形態の概要を説明する。
本実施形態では、各コンピュータが検索処理にのみ処理能力を割り振るのではなく、他のアプリケーションにも割り振っていることを想定し、各コンピュータの処理能力を取得する際に、該コンピュータの全性能を特定の処理に注ぎ込んだ際の処理能力ではなく、予め定めた割合の能力だけを注ぎ込んだ状態における処理性能を取得することとしている。
以上が、本実施形態の概要についての説明である。
図32は本実施形態の登録制御サーバ101の概略構成を示す図である。図32に示す本実施形態の構成と実施形態1の構成(図1)では、主メモリ112上に格納されるプログラムの構成とディスク113上に格納されるテーブルの構成が異なっており、主メモリ上のサーチサーバ検索性能取得処理部121の代わりに検索処理利用割合を利用する様にしたサーチサーバ検索性能取得処理部121cを有すると共に、ディスク113上のサーチサーバ管理テーブル133cに対して新たに検索処理利用割合3202を格納する。
なお、検索処理利用割合3202には、予め文書検索システムの管理者が入力した任意の値を検索処理利用割合3202として取得するものとしても良いし、該コンピュータにおける他のアプリケーションのCPU利用率から、全文検索システムに利用できる処理能力の割合を算出した値を検索処理利用割合3202として取得するものとしても良い。
次に、本実施形態における登録制御サーバ101におけるサーチサーバ管理情報取得処理の手順について説明する。
図33は本実施形態の登録サーバ制御処理部120cの処理内容を示す図である。まず、登録サーバ制御処理部120cの処理手順を、図33を用いて説明する。
登録サーバ制御処理部120cの処理手順は、図2で説明した登録サーバ制御処理部120の処理手順と、ステップ3301のみが異なる。
図32に示す様に本実施形態では、検索処理利用割合を利用する様にしたサーチサーバ検索性能取得処理部121cを起動し、各サーチサーバ105に対して設定された検索処理利用割合3202と各サーチサーバ105の検索所要時間を取得し、検索性能143としてサーチサーバ管理テーブル133に格納する(ステップ3301)。
以上が、ステップ3301の説明であり、登録サーバ制御処理部120の処理手順についての説明である。
図34は本実施形態のサーチサーバ検索性能取得処理部121cの処理内容を示す図である。次に、図33のステップ3301で登録サーバ制御処理部120cにより起動される、検索処理利用割合を利用する様にしたサーチサーバ検索性能取得処理部121cの処理手順について、図34を用いて説明する。
検索処理利用割合を利用する様にしたサーチサーバ検索性能取得処理部121cの処理手順は、ステップ3401のみが、図3で説明したサーチサーバ検索性能取得処理部121の処理手順と異なるため、ステップ3401のみを説明する。
図1に示すサーチサーバ105から取得した検索所要時間により、性能取得用サンプルデータ131のサイズを割った値に、図32に示すサーチサーバ105の検索処理利用割合3202を掛け合わせた値を検索性能143として算出する(ステップ3401)。
以上がステップ3401の説明であり、サーチサーバ検索性能取得処理部121cの処理手順についての説明である。そして図33及び図34を用いて説明したのが、本実施形態における登録制御サーバ101におけるサーチサーバ管理情報取得処理の手順である。
図35は本実施形態のサーチサーバ検索性能取得処理部121cの具体的な処理例を示す図である。次に、検索処理利用割合を利用する様にしたサーチサーバ検索性能取得処理部121cのステップ3401に関する具体的な処理の例を、図35を用いて説明する。
検索処理利用割合を利用する様にしたサーチサーバ検索性能取得処理部121cでは、性能取得用サンプルデータ131のサイズ、各サーチサーバの検索所要時間1401及び検索処理利用割合3202に基づき、検索性能143を算出する(ステップ3401)。
本図に示した例では、性能取得用サンプルデータ131のサイズである90MBを各サーチサーバ105の検索所要時間1401で割り、この値に検索処理利用割合3202を掛け合わせることにより、検索性能143を算出している。サーチサーバ1の検索所要時間1401は2秒、検索処理利用割合3202は0.2であり、90MBを2秒で割り、0.2を掛けあわせることにより、検索性能9MB/sが算出されている事を表している。
また、サーチサーバ2及び3の検索処理利用割合3202は1.0であり、検索所要時間1401はそれぞれ6秒と3秒であるため、サーチサーバ2の検索性能143は15MB/s、サーチサーバ3の検索性能143は30MB/sと算出されていることを表している。
以上が、検索処理利用割合を利用する様にしたサーチサーバ検索性能取得処理部121cのステップ3401に関する具体的な処理の例についての説明である。
図36は本実施形態のシステム管理画面の例を示す図である。ここで、本実施形態の文書検索システムにおいて、図1で説明した登録制御サーバ101のディスプレイ114に表示されるシステム管理画面について、図36を用いて具体的に説明する。
該システム管理画面は、図13で説明したシステム管理画面に、優先度設定用スライドバー3601が加わったものである。優先度設定用スライドバー3601は、各サーチサーバに対する検索処理利用割合3202を設定する為の入力インタフェースであり、図36の例では、各サーチサーバ毎に一つのスライドバーを表示することを表している。
また、サーチサーバが追加され、サーチサーバ管理テーブル表示部1307に新たなサーチサーバが表示された場合、サーチサーバ毎に一つのスライドバーを追加し、サーチサーバが削減され、サーチサーバ管理テーブル表示部1307からサーチサーバが削除された場合、削除されたサーチサーバ毎に一つのスライドバーを削除する。
優先度設定用スライドバー3601、マウス等で左右に動かすことで検索処理利用割合3202を設定でき、スライドバーを左端に設定すれば検索処理利用割合3202は1.0に、スライドバーを右端に設定すれば検索処理利用割合3202は0に設定される。
以上が、検索処理利用割合3202の設定の説明であり、システム管理画面の具体的な説明である。
以上説明した本実施形態に示した構成によれば、本実施形態の文書検索システムにおいて、図34で説明した検索処理利用割合を利用する様にしたサーチサーバ検索性能取得処理部121cにより、各サーチサーバの処理性能を取得する際に、各サーチサーバの全性能を特定の処理に注ぎ込んだ際の処理性能ではなく、予め定めた割合の能力だけを注ぎ込んだ状態における処理性能を取得することにより、検索以外のアプリケーションの処理を並行して実行するコンピュータに対しても適切なデータサイズを分配することができる様になる。それによって、文書検索システム全体としての検索速度を向上する効果が得られる。
この結果、文書検索システム全体として検索速度が向上し、検索者は、ストレスなく検索結果を得ることができる様になる。
図35に示した具体例と同じ条件において、実施形態1を用いた場合、サーチサーバ1の検索性能は45MB/s、サーチサーバ2の検索性能143は15MB/s、サーチサーバ3の検索性能143は30MB/sとして算出され、例えば、180MBの文書データならば、サーチサーバ1には90MB、サーチサーバ2には30MB、サーチサーバ3には60MBを割り振られる。
この場合、サーチサーバ2及びサーチサーバ3は2秒で検索処理を終えるが、サーチサーバ1は検索処理に10秒かかり、文書検索システム全体としての検索処理は10秒となる。
これに対し、本実施形態を用いることにより、サーチサーバ1の検索性能は9MB/s、サーチサーバ2の検索性能143は15MB/s、サーチサーバ3の検索性能143は30MB/sとして算出され、サーチサーバ1には30MB、サーチサーバ2には50MB、サーチサーバ3には100MBを割り振られる。
この場合、サーチサーバ1からサーチサーバ3は3.3秒で検索処理を終え、文書検索システム全体としての検索処理も3.3秒となる。
すなわち、文書検索システム全体としての検索処理時間を、本実施形態を用いることにより、実施形態1を用いる場合の33%に削減することができると共に、同じコンピュータシステムを使って、単位時間当たりに3倍の量の検索要求に応えられる様になる。
以上説明した様に本実施形態のデータ分配システムによれば、分配データのデータサイズ及び所定の処理性能に応じた予想所要時間が各コンピュータでできるだけ均等となる様に分配先を決定するので、各コンピュータの全処理能力に対する所定の処理性能に応じた適切なサイズのデータを分配し、そのデータを処理する際に各コンピュータの所定の処理性能を最大限に活用できる様にすることが可能である。
以上説明した本発明の実施形態1〜4では、いずれも文書検索システムを例に説明したが、検索対象が文書データである必要はなく、例えば、繰り返し構造を含むXMLを格納したDBの様に、同じ構造でも、1件毎にデータサイズの異なる場合、本発明を適用することにより、各コンピュータの性能を最大限に発揮し、システム全体のスループットを向上させることができる。
また、以上説明した実施形態1〜4では、いずれも各種プログラムを各サーバの主メモリ上に格納する構成で説明したが、各種プログラムの格納先は、光磁気ディスク装置等他の二次記憶装置に格納する構成であっても構わない。また、CD−ROM等の可搬型の媒体に格納し、これらを必要に応じてCD−ROMドライブ(図示せず)から読み出す構成であっても構わない。
また、以上説明した実施形態1〜4は、いずれも登録制御サーバ101、記憶装置102、検索制御サーバ104、サーチサーバ105を別々のコンピュータシステムとして説明したが、これらの内の複数を一つのコンピュータシステムに格納することも可能である。
実施形態1の文書検索システムの概略構成を示す図である。 実施形態1の登録サーバ制御処理部120の処理内容を示す図である。 実施形態1のサーチサーバ検索性能取得処理部121の処理内容を示す図である。 実施形態1の登録制御処理部122の処理内容を示す図である。 実施形態1の文書データサイズ取得処理部123の処理内容を示す図である。 実施形態1の登録サーチサーバ決定処理部124の処理内容を示す図である。 実施形態1の文書データ分配処理部125の処理内容を示す図である。 実施形態1のサーチサーバ105の概略構成を示す図である。 実施形態1のサーチサーバ制御処理部810の処理内容を示す図である。 実施形態1の性能取得処理部813の処理内容を示す図である。 実施形態1のデータ登録制御処理部811の処理内容を示す図である。 実施形態1のデータ検索制御処理部812の処理内容を示す図である。 実施形態1のシステム管理画面の例を示す図である。 実施形態1のサーチサーバ検索性能取得処理部121の処理例を示す図である。 実施形態1の文書データサイズ取得処理部123の処理例を示す図である。 実施形態1の一つ目の文書の登録先サーチサーバを決定する場合の具体例を示す図である。 実施形態1の二つ目の文書の登録先サーチサーバを決定する場合の具体例を示す図である。 実施形態1の検索制御サーバ104の概略構成を示す図である。 実施形態1の検索制御処理部1810の処理概要を示す図である。 実施形態2の登録制御サーバ101の概略構成を示す図である。 実施形態2の登録制御処理部122aの処理内容を示す図である。 実施形態2のインデクスサイズ算出処理部2002の処理内容を示す図である。 実施形態2の登録サーチサーバ決定処理部124aの処理内容を示す図である。 実施形態2のインデクスサイズ算出処理部2002及び登録サーチサーバ決定処理部124aの具体的な処理の流れを示す図である。 実施形態3の登録制御サーバ101aの概略構成を示す図である。 実施形態3の登録サーバ制御処理部120aの処理内容を示す図である。 実施形態3のデータ移動制御処理部2502の処理内容を示す図である。 実施形態3の移動データ量決定処理部2503の処理内容を示す図である。 実施形態3のデータ移動先決定処理部2504の処理内容を示す図である。 実施形態3の移動データ量決定処理部2503の具体的な処理の例を示す図である。 実施形態3のデータ移動先決定処理部2504の具体的な処理の例を示す図である。 実施形態4の登録制御サーバ101の概略構成を示す図である。 実施形態4の登録サーバ制御処理部120cの処理内容を示す図である。 実施形態4のサーチサーバ検索性能取得処理部121cの処理内容を示す図である。 実施形態4のサーチサーバ検索性能取得処理部121cの具体的な処理例を示す図である。 実施形態4のシステム管理画面の例を示す図である。
符号の説明
101…登録制御サーバ、102…記憶装置、103…文書検索クライアント、104…検索制御サーバ、105…サーチサーバ、106…ネットワーク、111…CPU、112…主メモリ、113…ディスク、114…ディスプレイ、115…キーボード、116…ネットワークボード、117…システムバス、126…ワークエリア、131…性能取得用サンプルデータ、132…文書データ管理テーブル、133…サーチサーバ管理テーブル、134…登録対象文書データ位置リスト、135…予想検索所要時間管理テーブル、136…サーチサーバ別登録文書リスト、137…文書データ、141…文書データサイズ、142…登録先サーチサーバ、143…検索性能、144…割り当て済みサイズ、120…登録サーバ制御処理部、121…サーチサーバ検索性能取得処理部、122…登録制御処理部、123…文書データサイズ取得処理部、124…登録サーチサーバ決定処理部、125…文書データ分配処理部、801…CPU、802…主メモリ、803…ディスク、804…ネットワークボード、805…システムバス、810…サーチサーバ制御処理部、811…データ登録制御処理部、812…データ検索制御処理部、813…性能取得処理部、814…登録制御情報取得処理部、815…データ読込処理部、816…データ登録処理部、817…検索条件取得処理部、818…データ検索処理部、819…検索結果送信処理部、820…ワークエリア、830…検索対象データ、831…検索開始時刻、832…検索終了時刻、1301…性能取得コマンド実行ボタン、1302…文書登録コマンド実行ボタン、1303…登録文書位置情報入力部、1304…登録ファイル決定ボタン、1306…登録ファイル一覧表示部、1307…サーチサーバ管理テーブル表示部、1311…初期状態画面、1312…性能取得状態画面、1313…文書登録終了状態画面、1314…文書登録準備状態画面、1321…登録ファイル指定操作、1401…検索所要時間、1402…検索性能、1601…文書データサイズ、1701…文書データサイズ、1801…CPU、1802…主メモリ、1803…ネットワークボード、1804…システムバス、1810…検索制御処理部、1811…検索要求取得処理部、1812…検索要求配信処理部、1813…検索結果収集処理部、1814…検索結果統合処理部、1815…検索結果送信処理部、1820…ワークエリア、1830…中間検索結果、1831…検索結果、2010…監視インデクスサイズ、2011…監視インデクスサイズ、2012…監視インデクス管理テーブル、2013…検索頻度、2002…インデクスサイズ算出処理部、2003…登録サーチサーバ決定処理部、2401…監視インデクスサイズ、2502…データ移動制御処理部、2503…移動データ量決定処理部、2504…データ移動先決定処理部、2505…データ移動実行処理部、2510…新規追加サーチサーバ、2521…移動データ量、2522…元登録先サーチサーバ、2523…サーチサーバ別削除文書リスト、2805…追加検索性能比率リスト、3101…追加検索性能比率、3102…検索性能、3202…検索処理利用割合、3601…優先度設定用スライドバー。

Claims (12)

  1. 複数のコンピュータで処理されるデータを各コンピュータへ分配するデータ分配方法において、
    データの分配される各コンピュータの処理性能を取得して記憶装置に格納するステップと、複数のコンピュータに分配される各データのサイズを取得して記憶装置に格納するステップと、前記格納した処理性能及びデータサイズを記憶装置から読み出し、各コンピュータでの当該データの処理に必要な予想所要時間を、前記記憶装置から読み出した処理性能とデータサイズから算出し、算出した結果に基づきデータの分配先を決定するステップとを有することを特徴とするデータ分配方法。
  2. 複数のコンピュータで処理されるデータを各コンピュータへ分配するデータ分配方法において、
    データの分配される各コンピュータの処理性能を取得して記憶装置に格納するステップと、検索対象としてシステムに登録するデータについて予め定められた監視インデクスサイズを算出して記憶装置に格納するステップと、前記格納した処理性能、インデクスサイズ及び監視インデクスの処理頻度を記憶装置から読み出し、各コンピュータでの当該データのインデクス処理に必要な予想所要時間を、前記記憶装置から読み出した処理性能、インデクスサイズ及び処理頻度から算出し、算出した結果に基づきデータの分配先を決定するステップとを有することを特徴とするデータ分配方法。
  3. 各コンピュータでの予想所要時間がほぼ均等又は均等となる様にデータの分配先を決定することを特徴とする請求項1または請求項2のいずれかに記載されたデータ分配方法。
  4. 当該コンピュータの全処理能力を用いるものとして前記処理性能を取得して記憶装置に格納することを特徴とする請求項1乃至請求項3のいずれか1項に記載されたデータ分配方法。
  5. 当該コンピュータの全処理能力の所定割合を用いるものとして前記処理性能を取得して記憶装置に格納することを特徴とする請求項1乃至請求項3のいずれか1項に記載されたデータ分配方法。
  6. テストデータに対する処理時間を測定して記憶装置に格納し、その処理時間の値から前記処理性能を算出することを特徴とする請求項1乃至請求項5のいずれか1項に記載されたデータ分配方法。
  7. 前記格納したデータサイズを記憶装置から読み出し、そのデータサイズの降順にデータの分配先を決定することを特徴とする請求項1乃至請求項6のいずれか1項に記載されたデータ分配方法。
  8. データの分配されるコンピュータを追加する場合に、前記格納した既存コンピュータの処理性能を記憶装置から読み出して既存コンピュータと追加コンピュータとの処理性能の比率を算出し、既存コンピュータに残すサイズと追加コンピュータに移動するサイズとの比率が前記算出した処理性能の比率とできるだけ等しくなる様に移動するデータを決定することを特徴とする請求項1乃至請求項7のいずれか1項に記載されたデータ分配方法。
  9. 複数のコンピュータで処理されるデータを各コンピュータへ分配するデータ分配システムにおいて、
    データの分配される各コンピュータの処理性能を取得して記憶装置に格納する性能取得処理部と、複数のコンピュータに分配される各データのサイズを取得して記憶装置に格納するデータサイズ取得処理部と、前記格納した処理性能及びデータサイズを記憶装置から読み出し、各コンピュータでの当該データの処理に必要な予想所要時間を、前記記憶装置から読み出した処理性能とデータサイズから算出し、算出した結果に基づきデータの分配先を決定する登録先決定処理部とを備えることを特徴とするデータ分配システム。
  10. 複数のコンピュータで処理されるデータを各コンピュータへ分配するデータ分配システムにおいて、
    データの分配される各コンピュータの処理性能を取得して記憶装置に格納する性能取得処理部と、検索対象としてシステムに登録するデータについて予め定められた監視インデクスサイズを算出して記憶装置に格納するインデクスサイズ算出処理部と、前記格納した処理性能、インデクスサイズ及び監視インデクスの処理頻度を記憶装置から読み出し、各コンピュータでの当該データのインデクス処理に必要な予想所要時間を、前記記憶装置から読み出した処理性能、インデクスサイズ及び処理頻度から算出し、算出した結果に基づきデータの分配先を決定する登録先決定処理部とを備えることを特徴とするデータ分配システム。
  11. 複数のコンピュータで処理されるデータを各コンピュータへ分配するデータ分配方法をコンピュータに実行させる為のプログラムにおいて、
    データの分配される各コンピュータの処理性能を取得して記憶装置に格納するステップと、複数のコンピュータに分配される各データのサイズを取得して記憶装置に格納するステップと、前記格納した処理性能及びデータサイズを記憶装置から読み出し、各コンピュータでの当該データの処理に必要な予想所要時間を、前記記憶装置から読み出した処理性能とデータサイズから算出し、算出した結果に基づきデータの分配先を決定するステップとをコンピュータに実行させることを特徴とするプログラム。
  12. 複数のコンピュータで処理されるデータを各コンピュータへ分配するデータ分配方法をコンピュータに実行させる為のプログラムにおいて、
    データの分配される各コンピュータの処理性能を取得して記憶装置に格納するステップと、検索対象としてシステムに登録するデータについて予め定められた監視インデクスサイズを算出して記憶装置に格納するステップと、前記格納した処理性能、インデクスサイズ及び監視インデクスの処理頻度を記憶装置から読み出し、各コンピュータでの当該データのインデクス処理に必要な予想所要時間を、前記記憶装置から読み出した処理性能、インデクスサイズ及び処理頻度から算出し、算出した結果に基づきデータの分配先を決定するステップとをコンピュータに実行させることを特徴とするプログラム。
JP2004301444A 2004-10-15 2004-10-15 データ分配方法、システム及びプログラム Pending JP2006113868A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004301444A JP2006113868A (ja) 2004-10-15 2004-10-15 データ分配方法、システム及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004301444A JP2006113868A (ja) 2004-10-15 2004-10-15 データ分配方法、システム及びプログラム

Publications (1)

Publication Number Publication Date
JP2006113868A true JP2006113868A (ja) 2006-04-27

Family

ID=36382337

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004301444A Pending JP2006113868A (ja) 2004-10-15 2004-10-15 データ分配方法、システム及びプログラム

Country Status (1)

Country Link
JP (1) JP2006113868A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2750019A2 (en) 2012-12-27 2014-07-02 Fujitsu Limited Storage controller selecting system, storage controller selecting method, and storage controller selecting program
KR101573112B1 (ko) * 2013-02-18 2015-12-01 단국대학교 산학협력단 데이터 분배 방법 및 장치
KR101906970B1 (ko) 2011-06-20 2018-12-06 삼성전자주식회사 분산 처리를 이용한 핵산 서열의 분석 방법 및 장치, 핵산 서열 분석을 위한 분산 처리 시스템

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101906970B1 (ko) 2011-06-20 2018-12-06 삼성전자주식회사 분산 처리를 이용한 핵산 서열의 분석 방법 및 장치, 핵산 서열 분석을 위한 분산 처리 시스템
EP2750019A2 (en) 2012-12-27 2014-07-02 Fujitsu Limited Storage controller selecting system, storage controller selecting method, and storage controller selecting program
US9003066B2 (en) 2012-12-27 2015-04-07 Fujitsu Limited Storage controller selecting system, storage controller selecting method, and recording medium
KR101573112B1 (ko) * 2013-02-18 2015-12-01 단국대학교 산학협력단 데이터 분배 방법 및 장치

Similar Documents

Publication Publication Date Title
US10831562B2 (en) Method and system for operating a data center by reducing an amount of data to be processed
US6321265B1 (en) System and method for enforcing politeness while scheduling downloads in a web crawler
Chandrasekar et al. A novel indexing scheme for efficient handling of small files in hadoop distributed file system
US9389995B2 (en) Optimization of Map-Reduce shuffle performance through snuffler I/O pipeline actions and planning
CN108694195B (zh) 一种分布式数据仓库的管理方法及系统
US10664452B2 (en) Parallel processing of large data files on distributed file systems with dynamic workload balancing
JP2016515228A (ja) 低レイテンシデータアクセス用のデータストリーム分割
US20220215053A1 (en) Efficient and scalable time-series data storage and retrieval over a network
US20150363442A1 (en) Index merge ordering
US10860584B2 (en) Method and system for performing inner-joins on a sharded data set
Mohandas et al. Improving Hadoop performance in handling small files
Ting et al. Constructing a cloud computing based social networks data warehousing and analyzing system
US20160203032A1 (en) Series data parallel analysis infrastructure and parallel distributed processing method therefor
CN110909072B (zh) 一种数据表建立方法、装置及设备
JP2006113868A (ja) データ分配方法、システム及びプログラム
CN116306867A (zh) 图数据采样、图神经网络训练方法及系统、设备和介质
JP2006134191A (ja) 文書検索方法およびそのシステム
CN110908780A (zh) 调度平台的任务梳理方法、装置、设备及存储介质
Gu et al. Exploring data parallelism and locality in wide area networks
Kumar et al. A framework for weblog data analysis using hive in hadoop framework
CN113297226A (zh) 数据存储方法、数据读取方法、装置、电子设备及介质
CN111782588A (zh) 一种文件读取方法、装置、设备和介质
Ancy et al. Locality based data partitioning in Map reduce
US20220121500A1 (en) System and methods for subdividing an unknown tree for execution of operations by multiple compute engines
US11429676B2 (en) Document flagging based on multi-generational complemental secondary data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060816

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080212

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080909

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081107

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090303