JP2009151411A - Data retrieval device, system, program and data retrieval method - Google Patents
Data retrieval device, system, program and data retrieval method Download PDFInfo
- Publication number
- JP2009151411A JP2009151411A JP2007326825A JP2007326825A JP2009151411A JP 2009151411 A JP2009151411 A JP 2009151411A JP 2007326825 A JP2007326825 A JP 2007326825A JP 2007326825 A JP2007326825 A JP 2007326825A JP 2009151411 A JP2009151411 A JP 2009151411A
- Authority
- JP
- Japan
- Prior art keywords
- data
- search
- unit
- database
- management unit
- 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
Links
Images
Abstract
Description
この発明は、サーバ・クライアント構成によりデータベースを検索するデータ検索装置に関する。 The present invention relates to a data search apparatus for searching a database by a server / client configuration.
ログ専用データベースやメールアーカイブ用データベースは、大容量のデータを格納でき、可変長でサイズが非常に大きいデータ型が存在する。このようなデータベースを検索する場合、データベースをオープンしてからクローズするまでの間、データ検索装置(サーバ)のリソースを大量に消費する。
また、クライアント装置から検索結果の取得を要求されてから、データベースからデータを1件ずつ取得するようにすれば、データ検索装置のリソース消費を抑えることができるが、クライアントからの取得要求に対する応答が遅くなる。
In addition, if data is acquired from the database one by one after the client device is requested to acquire the search results, the resource consumption of the data search device can be suppressed, but a response to the acquisition request from the client is not received. Become slow.
この発明は、例えば、上記のような課題を解決するためになされたものであり、データ検索装置のリソースの消費を抑えるとともに、クライアント装置からの取得要求に、できるだけ速く応答できることを目的とする。 The present invention has been made, for example, in order to solve the above-described problems, and it is an object of the present invention to reduce resource consumption of a data search apparatus and respond to an acquisition request from a client apparatus as quickly as possible.
この発明にかかるデータ検索装置は、
クライアント装置からの要求によりデータベースを検索するデータ検索装置において、
データを記憶する記憶装置と、データを処理する処理装置と、データを送信する送信装置と、データを受信する受信装置と、データベース記憶部と、検索実行要求受信部と、データベース管理部と、データ変換部と、先読み管理部と、検索結果取得要求受信部と、検索結果送信部とを有し、
上記データベース記憶部は、上記記憶装置を用いて、上記データベースを記憶し、
上記検索実行要求受信部は、上記受信装置を用いて、上記データベースを検索する検索条件を表わすデータを含む検索実行要求を上記クライアント装置から受信し、
上記データベース管理部は、上記処理装置を用いて、上記検索実行要求受信部が受信した検索実行要求に含まれるデータが表わす検索条件に基づいて、上記データベース記憶部が記憶したデータベースから上記検索条件に合致するデータを検索し、上記処理装置を用いて、検索したデータを、上記データベース記憶部が記憶したデータベースから取得し、
上記データ変換部は、上記処理装置を用いて、上記データベース管理部が取得したデータを上記クライアント装置へ送信する形式に変換し、
上記先読み管理部は、上記記憶装置を用いて、上記データ変換部が変換したデータを記憶し、
上記検索結果取得要求受信部は、上記受信装置を用いて、上記クライアント装置が取得を要求するデータの取得要求数を表わすデータを含む検索結果取得要求を、上記クライアント装置から受信し、
上記検索結果送信部は、上記送信装置を用いて、上記検索結果取得要求受信部が受信した検索結果取得要求に含まれるデータが表わす取得要求数に基づいて、上記先読み管理部が記憶したデータから、上記取得要求数のデータを上記クライアント装置へ送信することを特徴とする。
A data search apparatus according to the present invention
In a data retrieval device that retrieves a database in response to a request from a client device,
Storage device for storing data, processing device for processing data, transmitting device for transmitting data, receiving device for receiving data, database storage unit, search execution request receiving unit, database management unit, data A conversion unit, a prefetch management unit, a search result acquisition request reception unit, and a search result transmission unit;
The database storage unit stores the database using the storage device,
The search execution request receiving unit receives a search execution request including data representing a search condition for searching the database from the client device using the receiving device,
The database management unit uses the processing device to change from the database stored in the database storage unit to the search condition based on the search condition represented by the data included in the search execution request received by the search execution request receiving unit. Search for matching data, and use the processing device to obtain the searched data from the database stored in the database storage unit,
The data conversion unit converts the data acquired by the database management unit into a format to be transmitted to the client device using the processing device,
The prefetch management unit stores the data converted by the data conversion unit using the storage device,
The search result acquisition request receiving unit receives, from the client device, a search result acquisition request including data representing the number of acquisition requests for data that the client device requests to acquire using the receiving device,
From the data stored in the prefetch management unit based on the number of acquisition requests represented by the data included in the search result acquisition request received by the search result acquisition request reception unit using the transmission device. The acquisition request count data is transmitted to the client device.
この発明にかかるデータ検索装置によれば、データベース管理部が検索したデータをすべて取得し、データ変換部が形式を変換して、先読み管理部が記憶するので、クライアント装置からの検索結果取得要求を待つことなく、データベースを閉じて、切り離すことができる。これにより、データ検索装置100の資源を開放し、有効活用することができるという効果を奏する。
また、データ変換部が形式を変換したデータを先読み管理部が記憶するので、先読み管理部がデータを記憶した記憶領域を、検索結果送信部がそのまま送信バッファとして使用することができ、クライアント装置からの検索結果取得要求に対する応答が速くなるという効果を奏する。
According to the data search device of the present invention, all the data searched by the database management unit is acquired, the data conversion unit converts the format, and the prefetch management unit stores it. Therefore, the search result acquisition request from the client device is received. You can close and disconnect the database without waiting. As a result, the resource of the
Further, since the prefetch management unit stores the data whose format has been converted by the data conversion unit, the storage area in which the prefetch management unit stores the data can be used as a transmission buffer by the search result transmission unit as it is. There is an effect that the response to the search result acquisition request becomes faster.
実施の形態1.
実施の形態1について、図1〜図8を用いて説明する。
Embodiment 1 FIG.
The first embodiment will be described with reference to FIGS.
図1は、この実施の形態におけるデータ検索システム800の全体構成の一例を示すシステム構成図である。 FIG. 1 is a system configuration diagram showing an example of the overall configuration of a data search system 800 in this embodiment.
データ検索システム800は、クライアント装置300、データ検索装置100を有する。クライアント装置300とデータ検索装置100とは、インターネット940などのネットワークを介して接続している。
The data search system 800 includes a
クライアント装置300は、アプリケーション部301、インターフェース部302を有する。クライアント装置300は、コンピュータである。
アプリケーション部301は、クライアント装置300が記憶したアプリケーションプログラムを実行することにより、様々な機能を提供する。アプリケーション部301は、インターフェース部302を介して、データ検索装置100が記憶しているデータベースにアクセスする。
インターフェース部302は、アプリケーション部301からデータ検索装置100へのアクセスを中継する。インターフェース部302は、アプリケーション部301からの要求にしたがい、データ検索装置100に対して、データベースの検索要求などを行う。
The
The
The
データ検索装置100は、サーバ装置101、データベース管理装置102、データベース記憶装置103を有する。
サーバ装置101は、クライアント装置300からの検索要求を受け付けたり、検索結果をクライアント装置300に返したりする。
データベース記憶装置103は、クライアント装置300からのアクセスを受けるデータベースを記憶する。
データベース管理装置102は、データベース記憶装置103が記憶したデータベースを管理する。データベース管理装置102は、サーバ装置101が受け付けた検索要求にしたがって、データベース記憶装置103が記憶したデータベースを検索したり、検索結果をサーバ装置101に返したりする。
なお、データ検索装置100は、物理的に一つの装置であってもよいし、サーバ装置101、データベース管理装置102、データベース記憶装置103がそれぞれ独立した装置であってもよい。
また、サーバ装置101とクライアント装置300とが物理的に一つの装置であってもよい。
The
The
The
The
The
Further, the
図2は、この実施の形態におけるデータ検索システム800におけるデータの流れの一例を示すシーケンス図である。 FIG. 2 is a sequence diagram illustrating an example of a data flow in the data search system 800 according to this embodiment.
最初に、クライアント装置300は、データ検索装置100に対して、検索実行要求510を送信する。検索実行要求510は、検索処理の実行を要求するデータであり、検索条件を表わすデータを含む。
データ検索装置100は、クライアント装置300が送信した検索実行要求510を受信し、要求された検索を実行する。検索終了後、データ検索装置100は、クライアント装置300に対して、検索ステータス610を送信する。検索ステータス610は、検索結果のステータスを通知するデータである。検索結果のステータスには、例えば、検索に成功したか失敗したかを表わすデータ、検索に失敗した場合には、失敗の状況(検索条件の文法エラー、指定されたデータベースを開けないなど)を表わすデータなどが含まれる。データ検索装置100は、クライアント装置300からの検索結果取得要求に備えて、検索結果の送信準備をする。
クライアント装置300は、データ検索装置100が送信した検索ステータス610を受信し、検索に成功したか否かなどを判断する。
First, the
The
The
検索に成功した場合、クライアント装置300は、データ検索装置100に対して、検索結果取得要求520を送信する。検索結果取得要求520は、検索されたレコードの内容を取得することを要求するデータであり、取得したいレコード数(以下「取得要求数」と呼ぶ。)を表わすデータを含む。
データ検索装置100は、クライアント装置300が送信した検索結果取得要求520を受信し、要求された数のレコードを検索結果620として送信する。その後、データ検索装置100は、送信後処理を行い、次の送信の準備をする。
クライアント装置300は、データ検索装置100が送信した検索結果620を受信し、検索されたレコードを取得する。
If the search is successful, the
The
The
検索されたレコード数が、取得要求数より多い場合には、クライアント装置300に送信していないレコードが残る。クライアント装置300は、複数回、検索結果取得要求520を送信することにより、検索されたすべてのレコードを取得できる。
1つのレコードに含まれるデータが大きい場合や検索されたレコードの数が多い場合、一回の送信で検索されたすべてのレコードを取得することはできないし、クライアント装置300の記憶容量が少ない場合には、一回で検索されたすべてのレコードを取得してしまうと、記憶しきれなくなってしまう。このため、クライアント装置300は、取得するレコード数を指定して、適切な数のレコードを取得し、順次処理していく。取得したレコードの処理が終わったら、クライアント装置300は、次の検索結果取得要求520を送信する。
If the number of retrieved records is greater than the number of acquisition requests, records that have not been transmitted to the
When the data included in one record is large or when the number of retrieved records is large, all the records retrieved by one transmission cannot be obtained, and the storage capacity of the
検索されたすべてのレコードの取得が終わった場合や、取得の途中で検索を終了したい場合、クライアント装置300は、データ検索装置100に対して、検索終了要求590を送信する。
データ検索装置100は、クライアント装置300が送信した検索終了要求590を受信し、クライアント装置300に対して、了解690を送信する。了解690は、検索終了要求590を受領したことを表わすデータである。データ検索装置100は、必要なら検索終了処理をする。
When the acquisition of all the searched records is completed or when it is desired to end the search in the middle of the acquisition, the
The
図3は、この実施の形態におけるサーバ装置101、データベース管理装置102、データベース記憶装置103、クライアント装置300の外観の一例を示す図である。
サーバ装置101、データベース管理装置102、データベース記憶装置103、クライアント装置300は、システムユニット910、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置901、キーボード902(Key・Board:K/B)、マウス903、FDD904(Flexible・Disk・Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット910は、コンピュータであり、ファクシミリ機932、電話器931とケーブルで接続され、また、ローカルエリアネットワーク942(LAN)、ゲートウェイ941を介してインターネット940に接続されている。
FIG. 3 is a diagram showing an example of the appearance of the
The
The system unit 910 is a computer, and is connected to the
図4は、この実施の形態におけるサーバ装置101、データベース管理装置102、データベース記憶装置103、クライアント装置300のハードウェア資源の一例を示す図である。
サーバ装置101、データベース管理装置102、データベース記憶装置103、クライアント装置300は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、通信装置915、表示装置901、キーボード902、マウス903、FDD904、CDD905、プリンタ装置906、スキャナ装置907、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。通信装置915は、送信装置及び受信装置の一例である。通信装置915、キーボード902、スキャナ装置907、FDD904などは、入力部、入力装置の一例である。
また、通信装置915、表示装置901、プリンタ装置906などは、出力部、出力装置の一例である。
FIG. 4 is a diagram illustrating an example of hardware resources of the
The
The
Further, the
通信装置915は、ファクシミリ機932、電話器931、LAN942等に接続されている。通信装置915は、LAN942に限らず、インターネット940、ISDN等のWAN(ワイドエリアネットワーク)などに接続されていても構わない。インターネット940或いはISDN等のWANに接続されている場合、ゲートウェイ941は不用となる。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
The
The
上記プログラム群923には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリになどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
The
The
In addition, the arrows in the flowcharts described in the following description of the embodiments mainly indicate input / output of data and signals. The data and signal values are the
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
In the description of the embodiments described below, what is described as “to part” may be “to circuit”, “to device”, and “to device”, and “to step” and “to”. “Procedure” and “˜Process” may be used. That is, what is described as “˜unit” may be realized by firmware stored in the
図5は、この実施の形態におけるデータ検索システム800を構成する各装置の機能ブロックの構成の一例を示すブロック構成図である。 FIG. 5 is a block configuration diagram showing an example of the functional block configuration of each device constituting the data search system 800 in this embodiment.
クライアント装置300は、検索実行要求送信部311、検索ステータス受信部312、検索結果取得要求送信部321、検索結果受信部322、検索終了要求送信部391、了解受信部392を有する。
検索実行要求送信部311は、通信装置915を用いて、データ検索装置100に対して、検索実行要求510を送信する。
検索ステータス受信部312は、通信装置915を用いて、データ検索装置100が送信した検索ステータス610を受信する。
検索結果取得要求送信部321は、通信装置915を用いて、データ検索装置100に対して、検索結果取得要求520を送信する。
検索結果受信部322は、通信装置915を用いて、データ検索装置100が送信した検索結果620を受信する。
検索終了要求送信部391は、通信装置915を用いて、データ検索装置100に対して、検索終了要求590を送信する。
了解受信部392は、通信装置915を用いて、データ検索装置100が送信した了解690を受信する。
The
The search execution
The search
The search result acquisition
The search
The search end
The
サーバ装置101は、検索実行要求受信部111、検索ステータス送信部112、検索結果取得要求受信部121、検索結果送信部122、データ変換部141、先読み管理部142、管理テーブル管理部147、検索終了要求受信部191、了解送信部192、先読み破棄部193を有する。
データベース管理装置102は、データベース管理部132を有する。
データベース記憶装置103は、データベース記憶部131を有する。
The
The
The
データベース記憶部131は、あらかじめ、磁気ディスク装置920を用いて、一つ以上のデータベースを記憶している。
The
検索実行要求受信部111は、通信装置915を用いて、クライアント装置300が送信した検索実行要求510を受信する。検索実行要求510には、データベース記憶部131が記憶したデータベースを検索する検索条件を表わすデータが含まれる。
検索実行要求受信部111は、CPU911を用いて、受信した検索実行要求510に含まれるデータが表わす検索条件を出力する。
The search execution
Using the
データベース管理部132は、CPU911を用いて、検索実行要求受信部111が出力した検索条件を入力する。
データベース管理部132は、CPU911を用いて、入力した検索条件に基づいて、データベース記憶部131が記憶したデータベースのうち、検索すべきデータベースを開く(オープンする)。
データベース管理部132は、CPU911を用いて、入力した検索条件に基づいて、開いたデータベースから、検索条件に合致するレコードを検索する。
データベース管理部132は、CPU911を用いて、検索結果(ステータス)を出力する。
The
The
The
The
検索ステータス送信部112は、CPU911を用いて、データベース管理部132が出力した検索結果(ステータス)を入力する。
検索ステータス送信部112は、CPU911を用いて、入力したステータスを表わすデータを含む検索ステータス610を生成する。
検索ステータス送信部112は、通信装置915を用いて、クライアント装置300に対して、生成した検索ステータス610を送信する。
The search
The search
The search
データベース管理部132は、CPU911を用いて、入力したデータに基づいて、開いたデータベースから、検索されたレコードをすべて取得する。なお、検索条件で送信すべきフィールドが指定される場合には、データベース管理部132は、レコードを構成するフィールドのうち、検索条件で指定されたフィールドだけを抽出して、検索されたすべてのレコードについて取得してもよい。
データベース管理部132は、CPU911を用いて、取得したレコードを出力する。
データベース管理部132は、CPU911を用いて、開いたデータベースを閉じる(クローズする)。
The
The
The
データ変換部141は、CPU911を用いて、データベース管理部132が出力したレコードを入力する。
データ変換部141は、CPU911を用いて、入力したレコードを、クライアント装置300に対して送信する送信形式に変換する。データ変換部141は、例えば、データをクライアント装置300に対して送信する順序に並べ替えたり、クライアント装置300に対して送信する文字コードに変換したり、クライアント装置300に対して送信するバイトオーダーに変換したりする。
データ変換部141は、CPU911を用いて、変換したレコード(以下「レコードデータ」と呼ぶ。)を出力する。
The
The
Using the
先読み管理部142は、CPU911を用いて、データ変換部141が出力したレコードデータを入力する。
先読み管理部142は、RAM914を用いて、入力したレコードデータを記憶する。
先読み管理部142は、あらかじめ、RAM914を用いて、レコードデータを記憶するための記憶領域(以下「先読みバッファ211」と呼ぶ。)を確保しておく。先読み管理部142は、あらかじめ確保した先読みバッファ211に、入力したレコードデータを記憶する。
先読み管理部142が確保する先読みバッファ211の大きさは、サーバ装置101が有するRAM914の容量などによっても異なるが、この実施の形態では、データ変換部141が出力したレコードデータすべてを記憶するのに十分な大きさを確保できるものとする。
先読み管理部142は、CPU911を用いて、先読みバッファ211内においてレコードデータを記憶した記憶領域の開始アドレスと、先読みバッファ211の先頭アドレスとの差(以下「オフセット」と呼ぶ。)、及び、先読みバッファ211内においてレコードデータを記憶した記憶領域の大きさ(以下「データ長」と呼ぶ。)を出力する。
The
The
The
Although the size of the
Using the
管理テーブル管理部147は、CPU911を用いて、先読み管理部142が出力したオフセット及びデータ長を入力する。
管理テーブル管理部147は、RAM914を用いて、入力したオフセット及びデータ長を記憶する。
管理テーブル管理部147は、あらかじめ、CPU911を用いて、オフセット及びデータ長を記憶するための記憶領域(以下「管理テーブル212」と呼ぶ。)を確保しておく。管理テーブル管理部147は、あらかじめ確保した管理テーブル212に、入力したオフセット及びデータ長を記憶する。
Using the
The management
The management
検索結果取得要求受信部121は、通信装置915を用いて、クライアント装置300が送信した検索結果取得要求520を受信する。検索結果取得要求520には、取得要求数を表わすデータが含まれている。
検索結果取得要求受信部121は、CPU911を用いて、受信した検索結果取得要求520に含まれるデータが表わす取得要求数を出力する。
The search result acquisition
Using the
検索結果送信部122は、CPU911を用いて、検索結果取得要求受信部121が出力した取得要求数を入力する。
検索結果送信部122は、CPU911を用いて、管理テーブル212に記憶されたオフセット及びデータ長を読み出す。
検索結果送信部122は、CPU911を用いて、読み出したオフセットに基づいて、先読みバッファ211内において送信すべき最初のレコードデータが記憶された記憶領域の開始アドレスを算出する。
検索結果送信部122は、CPU911を用いて、読み出したデータ長に基づいて、入力した取得要求数分のレコードデータ全体のデータ長を算出する。
検索結果送信部122は、通信装置915を用いて、算出した開始アドレス及びデータ長に基づいて、先読みバッファ211に記憶された取得要求数のレコードデータを検索結果620として、クライアント装置300に対して送信する。
なお、クライアント装置300に対してまだ送信していないレコードデータの数よりも多い取得要求数を指定された場合、検索結果送信部122は、通信装置915を用いて、まだ送信していないレコードデータを全部送信する。
また、1回に送信できるデータ長の最大値が決まっている場合、検索結果送信部122は、算出したデータ長が、1回に送信できるデータ長の最大値以下に収まるよう、送信するレコードデータの数を減らす。
したがって、検索結果送信部122が送信するレコードデータの数は、通常、取得要求数と等しいが、検索結果送信部122が取得要求数よりも少ない数のレコードデータを送信する場合もある。
The search
The search
The search
The search
The search
When the number of acquisition requests larger than the number of record data not yet transmitted to the
When the maximum value of the data length that can be transmitted at one time is determined, the search
Therefore, the number of record data transmitted by the search
検索終了要求受信部191は、通信装置915を用いて、クライアント装置300が送信した検索終了要求590を受信する。
了解送信部192は、検索終了要求受信部191が検索終了要求590を受信した場合に、通信装置915を用いて、クライアント装置300に対して了解690を送信する。
先読み破棄部193は、検索終了要求受信部191が検索終了要求590を受信した場合に、管理テーブル212に記憶されたオフセット及びデータ長を消去する。
The search end
When the search end
When the search end
図6は、この実施の形態におけるクライアント装置300とデータ検索装置100との間で送受信されるデータのデータ形式の一例を示す図である。
FIG. 6 is a diagram illustrating an example of a data format of data transmitted / received between the
コード部501は、データの種類(そのデータが、検索実行要求510であるか、検索ステータス610であるかなどの区別)を表わす部分である。
データ部502は、そのデータの種類に応じて、必要な情報を表わすデータを含む部分である。データの種類によっては、データ部502がない場合もある。
The
The
検索実行要求510は、コード部501が検索実行要求コード511であり、データ部502が検索条件データ512である。検索実行要求コード511は、そのデータが検索実行要求510であることを表わす。検索条件データ512は、検索条件を表わす。
In the
検索ステータス610は、コード部501が検索ステータスコード611であり、データ部502が検索ステータスデータ612である。検索ステータスコード611は、そのデータが検索ステータス610であることを表わす。検索ステータスデータ612は、検索結果のステータスを表わす。
In the
検索結果取得要求520は、コード部501が検索結果取得要求コード521であり、データ部502が取得要求数データ522である。検索結果取得要求コード521は、そのデータが検索結果取得要求520であることを表わす。取得要求数データ522は、取得要求数を表わす。
In the search
検索結果620は、コード部501が検索結果コード621である。検索結果コード621は、そのデータが検索結果620であることを表わす。
検索結果620のデータ部502は、データヘッダ622及び1以上のレコードデータ626を含む。データヘッダ622は、データ部502に含まれるレコードデータ626の数やサイズを表わすデータなどを含む。なお、検索結果コード621とデータヘッダ622とを合わせて、ヘッダデータ623と呼ぶ。
レコードデータ626は、1つのフィールドヘッダ624と1つのフィールドデータ625との組の1以上の繰返しからなる。フィールドヘッダ624は、フィールドデータ625の長さ(サイズ)を表わすデータなどを含む。フィールドデータ625は、データベース記憶部131が記憶したデータベースに記憶されたデータのうち、検索されたレコードの該当するフィールドに記憶されたデータ(を送信形式に変換したもの)である。
1つのレコードデータに含まれるフィールドの数やそれぞれのフィールドの名称は、検索条件で指定されるので、検索結果620は、これらの情報を含んでいなくてもよい。あるいは、データヘッダ622やフィールドヘッダ624が、フィールドの数やフィールド名を表わすデータを含んでもよい。
In the
The
The
Since the number of fields included in one record data and the name of each field are specified by the search condition, the
検索終了要求590は、コード部501が検索終了要求コード591であり、データ部502はない。検索終了要求コード591は、そのデータが検索終了要求590であることを表わす。
In the
了解690は、コード部501が了解コード691であり、データ部502はない。了解コード691は、そのデータが了解690であることを表わす。
In the
図7は、この実施の形態におけるデータ検索装置100がデータベースを検索する検索処理、及び、データ検索装置100が検索結果を送信する結果送信処理の流れの一例を示すフローチャート図である。
FIG. 7 is a flowchart showing an example of the flow of search processing in which the
検索処理は、検索実行要求受信部111が検索実行要求510を受信することにより開始する。
検索実行要求受信工程S411において、検索実行要求受信部111は、通信装置915を用いて、クライアント装置300が送信した検索実行要求510を受信する。検索実行要求受信部111は、受信した検索実行要求510に含まれる検索条件データ512が表わす検索条件を出力する。
The search process starts when the search execution
In the search execution request receiving step S <b> 411, the search execution
データベースオープン工程S412において、データベース管理部132は、CPU911を用いて、検索実行要求受信工程S411で検索実行要求受信部111が出力した検索条件に基づいて、データベース記憶部131が記憶したデータベースのなかから、検索対象となるデータベースを開く。
データ検索工程S413において、データベース管理部132は、CPU911を用いて、検索実行要求受信工程S411で検索実行要求受信部111が出力した検索条件に基づいて、データベースオープン工程S412で開いたデータベースから、検索条件に合致するレコードを検索する。
検索ステータス送信工程S414において、検索ステータス送信部112は、通信装置915を用いて、データ検索工程S413でデータベース管理部132がデータベースを検索した検索結果のステータスを表わす検索ステータスデータ612を含む検索ステータス610を、クライアント装置300に対して送信する。
In the database open step S412, the
In the data search step S413, the
In the search status transmission step S414, the search
データ取得工程S422〜繰返し工程S427の処理は、データ検索工程S413でデータベース管理部132が検索したレコードそれぞれについて繰り返す。
The processing from the data acquisition step S422 to the repetition step S427 is repeated for each record searched by the
データ取得工程S422において、データベース管理部132は、CPU911を用いて、データベースオープン工程S412で開いたデータベースから、データ検索工程S413で検索したレコードを、1件ずつ取得する。検索されたすべてのレコードを取得して、それ以上できる取得できるレコードが存在しない場合は、データベースクローズ工程S428へ進む。レコードを取得した場合は、データ変換工程S423へ進む。
In the data acquisition step S422, the
データ変換工程S423において、データ変換部141は、CPU911を用いて、データ取得工程S422でデータベース管理部132が取得したレコードを変換して、レコードデータ626を生成する。
バッファ書込工程S425において、先読み管理部142は、RAM914を用いて、データ変換工程S423でデータ変換部141が生成したレコードデータ626を、先読みバッファ211に書き込んで記憶する。
繰返し工程S427において、データ取得工程S422に戻る。
In the data conversion step S423, the
In the buffer writing step S425, the
In the repetition step S427, the process returns to the data acquisition step S422.
データベースクローズ工程S428において、データベース管理部132は、CPU911を用いて、データベースオープン工程S412で開いたデータベースを閉じる。
以上で、検索処理を終了する。
In the database closing step S428, the
This completes the search process.
結果送信処理は、検索結果取得要求受信部121が検索結果取得要求520を受信することにより開始する。
The result transmission process starts when the search result acquisition
検索結果取得要求受信工程S431において、検索結果取得要求受信部121は、通信装置915を用いて、クライアント装置300が送信した検索結果取得要求520を受信する。検索結果取得要求受信部121は、CPU911を用いて、受信した検索結果取得要求520に含まれる取得要求数データ522が表わす取得要求数を出力する。
In the search result acquisition request receiving step S431, the search result acquisition
検索結果送信工程S432において、検索結果送信部122は、CPU911を用いて、検索結果取得要求受信工程S431で検索結果取得要求受信部121が出力した取得要求数に基づいて、先読みバッファ211に記憶されたレコードデータ626から、検索結果620を生成する。検索結果送信部122は、通信装置915を用いて、生成した検索結果620を、クライアント装置300に対して送信する。
以上で、検索結果送信処理を終了する。
In the search result transmission step S432, the search
Thus, the search result transmission process ends.
図8は、この実施の形態におけるデータ変換部141、先読み管理部142、検索結果送信部122の動作を模式的に表わす図である。
FIG. 8 is a diagram schematically showing the operations of the
データ変換部141は、CPU911を用いて、レコードを変換し、検索結果620に含まれるレコードデータ626と同じ形式のレコードデータを生成する。すなわち、データ変換部141は、CPU911を用いて、クライアント装置300に対して送信すべきフィールドそれぞれについて、そのフィールドのデータの文字コードやバイトオーダーを変換してフィールドデータ625を生成し、生成したフィールドデータ625に基づいて、フィールドデータ625の長さなどを表わすデータを含むフィールドヘッダ624を生成する。データ変換部141は、CPU911を用いて、生成したフィールドヘッダ624、フィールドデータ625を結合して、レコードデータ626を生成する。
The
先読み管理部142は、RAM914を用いて、データ変換部141が生成したレコードデータ626を先読みバッファ211に記憶する。
先読みバッファ211は、先入れ先出し構造となっていて、先読み管理部142がレコードデータ626を先読みバッファ211に対して書き込みながら、検索結果送信部122がレコードデータ626を読み出して送信できる。
検索結果取得要求受信部121がクライアント装置300から検索結果取得要求520を受信しなければ、検索結果送信部122はレコードデータ626を送信しないが、検索結果送信部122がレコードデータ626を送信したかしないかに関わらず、データ変換部141は、検索されたすべてのレコードについて、順にレコードデータ626を生成し、生成されたレコードデータ626を先読み管理部142が先読みバッファ211に書き込んでいく。すなわち、クライアント装置300側からの要求を待つことなく、検索されたすべてのレコードについて、データ変換部141が送信形式に変換したデータを、先読み管理部142が先読みバッファ211に記憶する。
The
The
If the search result acquisition
データベース管理装置102において、検索のため、データベース記憶部131が記憶したデータベースを開いておくには、データベース内のテーブル管理やトランザクション管理をするため、メモリなどの資源が必要となる。特に、データベースに、可変長でサイズが非常に大きいデータ型が存在する場合、データベース管理装置102の資源を大量に消費する。
In the
この実施の形態において、データベース管理部132は、検索したすべてのレコードを取得したら、すぐにデータベースを閉じる。したがって、データベースを開くために消費されるデータベース管理装置102の資源をすぐに開放することができる。
In this embodiment, the
この実施の形態におけるデータ検索装置100は、クライアント装置300からの要求によりデータベースを検索するデータ検索装置100である。
データ検索装置100は、データを記憶する記憶装置(RAM914、磁気ディスク装置920)と、データを処理する処理装置(CPU911)と、データを送信する送信装置(通信装置915)と、データを受信する受信装置(通信装置915)と、データベース記憶部131と、検索実行要求受信部111と、データベース管理部132と、データ変換部141と、先読み管理部142と、検索結果取得要求受信部121と、検索結果送信部122とを有することを特徴とする。
上記データベース記憶部131は、上記記憶装置(磁気ディスク装置920)を用いて、上記データベースを記憶することを特徴とする。
上記検索実行要求受信部111は、上記受信装置(通信装置915)を用いて、上記データベースを検索する検索条件を表わすデータ(検索条件データ512)を含む検索実行要求510を上記クライアント装置300から受信することを特徴とする。
上記データベース管理部132は、上記処理装置(CPU911)を用いて、上記検索実行要求受信部111が受信した検索実行要求510に含まれるデータ(検索条件データ512)が表わす検索条件に基づいて、上記データベース記憶部131が記憶したデータベースから上記検索条件に合致するデータ(レコード)を検索し、上記処理装置(CPU911)を用いて、検索したデータ(レコード)を、上記データベース記憶部131が記憶したデータベースから取得することを特徴とする。
上記データ変換部141は、上記処理装置(CPU911)を用いて、上記データベース管理部132が取得したデータ(レコード)を上記クライアント装置300へ送信する形式に変換することを特徴とする。
上記先読み管理部142は、上記記憶装置(RAM914)を用いて、上記データ変換部141が変換したデータ(レコードデータ626)を記憶することを特徴とする。
上記検索結果取得要求受信部121は、上記受信装置(通信装置915)を用いて、上記クライアント装置300が取得を要求するデータ(レコードデータ626)の取得要求数を表わすデータ(取得要求数データ522)を含む検索結果取得要求520を、上記クライアント装置300から受信することを特徴とする。
上記検索結果送信部122は、上記送信装置(通信装置915)を用いて、上記検索結果取得要求受信部121が受信した検索結果取得要求520に含まれるデータ(取得要求数データ522)が表わす取得要求数に基づいて、上記先読み管理部142が記憶したデータ(レコードデータ626)から、上記取得要求数のデータ(レコードデータ626)を上記クライアント装置300へ送信することを特徴とする。
The
The
The
Using the receiving device (communication device 915), the search execution
The
The
The
The search result acquisition
The search
この実施の形態におけるデータ検索装置100によれば、データベース管理部132が検索したデータをすべて取得し、データ変換部141が形式を変換して、先読み管理部142が記憶するので、クライアント装置300からの検索結果取得要求520を待つことなく、データベースを閉じて、切り離すことができる。これにより、データベース管理装置102の資源を開放し、有効活用することができるという効果を奏する。
According to the
この実施の形態におけるデータ検索システム800(システム)は、クライアント装置300と、データ検索装置100とを有することを特徴とする。
上記クライアント装置300は、データを送信する送信装置(通信装置915)と、データを受信する受信装置(通信装置915)と、検索実行要求送信部311と、検索結果取得要求送信部321と、検索結果受信部322とを有することを特徴とする。
上記検索実行要求送信部311は、上記送信装置(通信装置915)を用いて、上記検索実行要求510を上記データ検索装置100へ送信することを特徴とする。
上記検索結果取得要求送信部321は、上記送信装置(通信装置915)を用いて、上記検索結果取得要求520を上記データ検索装置100へ送信することを特徴とする。
上記検索結果受信部322は、上記受信装置(通信装置915)を用いて、上記検索結果送信部122が送信したデータを受信することを特徴とする。
The data search system 800 (system) in this embodiment includes a
The
The search execution
The search result acquisition
The search
この実施の形態におけるデータ検索システム800によれば、クライアント装置300が検索結果をすべて受信するのではなく、取得を要求する数を指定して、データ検索装置100に対して検索結果の取得を要求できるので、クライアント装置300が検索結果を全件保持する必要がなく、少しずつ取得して少しずつ処理することができる。これにより、検索結果の数が多い場合や一つのデータが非常に大きな場合などでも、クライアント装置300の資源を圧迫するのを防ぐことができるという効果を奏する。
According to the data search system 800 in this embodiment, the
この実施の形態におけるデータ検索装置100は、コンピュータをデータ検索装置100として機能されるプログラムを、コンピュータが実行することより実現可能である。
The
この実施の形態におけるデータ検索装置100を実現するプログラムによれば、データベース管理部132が検索したデータをすべて取得し、データ変換部141が形式を変換して、先読み管理部142が記憶するので、クライアント装置300からの検索結果取得要求520を待つことなく、データベースを閉じて、切り離すことができるデータ検索装置100を実現することができる。これにより、データベース管理装置102として機能するコンピュータの資源を開放し、有効活用することができるという効果を奏する。
According to the program that implements the
この実施の形態におけるデータ検索装置100が、クライアント装置からの要求によりデータベースを検索するデータ検索方法は、データを記憶する記憶装置(RAM914、磁気ディスク装置920)と、データを処理する処理装置(CPU911)と、データを送信する送信装置(通信装置915)と、データを受信する受信装置(通信装置915)とを有するデータ検索装置100が、以下の工程を実行することを特徴とする。
上記受信装置(通信装置915)が、上記データベースを検索する検索条件を表わすデータ(検索条件データ512)を含む検索実行要求510を上記クライアント装置300から受信する。
上記処理装置(CPU911)が、受信した検索実行要求510に含まれるデータ(検索条件データ512)が表わす検索条件に基づいて、上記データベースから上記検索条件に合致するデータ(レコード)を検索する。
上記処理装置(CPU911)が、検索したデータ(レコード)を、上記データベースから取得する。
上記処理装置(CPU911)が、取得したデータ(レコード)を上記クライアント装置300へ送信する形式に変換する。
上記記憶装置(RAM914)が、変換したデータ(レコードデータ626)を記憶する。
上記受信装置(通信装置915)が、上記クライアント装置300が取得を要求するデータ(レコード)の取得要求数を表わすデータ(取得要求数データ522)を含む検索結果取得要求520を、上記クライアント装置300から受信する。
上記送信装置(通信装置915)が、受信した検索結果取得要求520に含まれるデータ(取得要求数データ522)が表わす取得要求数に基づいて、記憶したデータ(レコードデータ626)から、上記取得要求数のデータ(レコードデータ626)を上記クライアント装置300へ送信する。
A data search method in which the
The receiving device (communication device 915) receives from the client device 300 a
The processing device (CPU 911) searches the database for data (record) that matches the search condition based on the search condition represented by the data (search condition data 512) included in the received
The processing device (CPU 911) acquires the retrieved data (record) from the database.
The processing device (CPU 911) converts the acquired data (record) into a format to be transmitted to the
The storage device (RAM 914) stores the converted data (record data 626).
The receiving device (communication device 915) sends a search
Based on the number of acquisition requests indicated by the data (acquisition request count data 522) included in the received search
この実施の形態におけるデータ検索方法によれば、検索したデータをすべて取得し、形式を変換して、記憶するので、クライアント装置300からの検索結果取得要求520を待つことなく、データベースを閉じて、切り離すことができる。これにより、データベースを開いておくために必要な資源を開放し、有効活用することができるという効果を奏する。
According to the data search method in this embodiment, all the searched data is acquired, converted in format, and stored. Therefore, without waiting for the search
以上説明したデータ検索方法は、データベースにアクセスするデータベースクライアント(クライアント装置300)と、データベースクライアントからのアクセス要求(検索実行要求510など)を受けてデータを検索するデータベース管理部(データベース管理装置102)及びデータの格納領域を有するデータベースサーバ(サーバ装置101)とを有するデータ検索システム800(データベースシステム)を使用する。
先読みバッファ211は、データベースクライアント(クライアント装置300)からの検索実行要求510に対して、データベースサーバで全件先読みしたデータを、通信データとして使用可能にする配置で格納する。
管理テーブル212は、データベースサーバ(サーバ装置101)は、先読みバッファ211を通信データとして使用可能にする。
データベースサーバ(サーバ装置101)は、先読みしたデータを通信データ形式(送信形式)に変換して先読みバッファ211に格納すると共に、管理テーブル212を作成し、データベースクライアント(クライアント装置300)からの検索結果取得要求520で管理テーブル212により通信バッファアドレスを決定する。
The data retrieval method described above includes a database client (client device 300) that accesses a database, and a database management unit (database management device 102) that retrieves data in response to an access request (such as a search execution request 510) from the database client. And a data search system 800 (database system) having a database server (server apparatus 101) having a data storage area.
In response to a
The management table 212 enables the database server (server apparatus 101) to use the
The database server (server device 101) converts the prefetched data into a communication data format (transmission format) and stores it in the
以上説明したデータ検索方法によれば、クライアント(クライアント装置300)からの検索要求とは非同期にデータベースのデータを先読みし、データベースをクローズすることできる。これにより、クライアント(クライアント装置300)からの検索で、検索結果を最後まで取得せずに途中で放ったらかしにされたり、複数のクライアント(クライアント装置300)から検索要求が出されたりした場合であっても、データ検索装置100のリソース(資源)が逼迫しない。この効果は、特に、ログ専用データベースやメールアーカイブ用データベースなど、可変長でサイズが非常に大きいデータ型が存在し、検索に伴いデータベースのオープンからクローズまでサーバのリソースを大量に消費してしまうデータベースを検索する場合に顕著である。これにより、企業内部の情報漏洩問題や、個人情報保護法への対応などセキュリティ対策強化のため、大容量のデータを格納でき、かつ、形式の異なる多種多様なデータへの対応が可能なデータベースを運用することができる。
According to the data search method described above, the database data can be prefetched asynchronously with the search request from the client (client device 300), and the database can be closed. As a result, in the search from the client (client device 300), the search result is not obtained until the end, but it is left on the way, or a search request is issued from a plurality of clients (client device 300). However, the resources (resources) of the
以上説明したデータ検索システム800(データベースシステム)は、データベースにアクセスするデータベースクライアント(クライアント装置300)と、データベースクライアントからのアクセス要求(検索実行要求510など)を受けてデータを検索するデータベース管理部(データベース管理装置102)及びデータの格納領域を有するデータベースサーバ(サーバ装置101)とを有する。
データベースサーバ(サーバ装置101)は、データベースクライアント(クライアント装置300)からの検索実行要求510に対して、データベースサーバで全件先読みしたデータを、通信データとして使用可能にする配置で格納する先読みバッファ211と、
先読みバッファ211を通信データとして使用可能にする管理テーブル212と、
先読みしたデータを通信データ形式(送信形式)に変換して先読みバッファ211に格納すると共に、管理テーブル212を作成し、データベースクライアント(クライアント装置300)からの検索結果取得要求520で管理テーブル212により通信バッファアドレスを決定するバッファ管理部(検索結果送信部122)とを備える。
The data search system 800 (database system) described above includes a database client (client device 300) that accesses the database, and a database management unit (
In response to the
A management table 212 that enables the
The prefetched data is converted into a communication data format (transmission format) and stored in the
以上説明したデータ検索システム800によれば、通信バッファに1回に送信する予定の件数分のデータだけをデータベースから先読みするのではなく、最終データまで全てを先読みしておくことができる。これにより、可変長でサイズが非常に大きいデータ型が存在し、検索に伴いデータベースのオープンからクローズまでサーバのリソースを大量に消費するデータベースシステムにおいて、クライアント(クライアント装置300)からの検索要求(検索実行要求510)に対して全件先読み処理を可能となり、かつ、検索結果の転送性能を維持するために、先読みバッファ211を通信バッファとしても使用可能となる。
According to the data search system 800 described above, it is possible to prefetch all the data up to the final data instead of prefetching from the database only the data for the number of items scheduled to be transmitted to the communication buffer at a time. As a result, there is a data type of variable length and very large size, and in a database system that consumes a large amount of server resources from opening to closing of the database along with the search, a search request (search) from the client (client device 300) For all execution requests 510), it is possible to perform prefetch processing for all cases and to use the
実施の形態2.
実施の形態2について、図9〜図10を用いて説明する。
この実施の形態におけるデータ検索システム800のシステム構成、機能ブロック構成は、実施の形態1で説明したものと同様なので、ここでは説明を省略する。
Embodiment 2. FIG.
The second embodiment will be described with reference to FIGS.
Since the system configuration and functional block configuration of the data search system 800 in this embodiment are the same as those described in the first embodiment, description thereof is omitted here.
この実施の形態では、先読み管理部142が十分な大きさの先読みバッファ211を確保できない場合について説明する。
In this embodiment, a case where the
図9は、この実施の形態における先読み管理部142の詳細ブロックの構成及び先読みバッファ211などのデータ構造の一例を示す図である。
FIG. 9 is a diagram illustrating an example of a detailed block configuration of the
先読み管理部142は、先読みバッファ管理部143、先読みファイル管理部144を有する。
先読みバッファ管理部143は、先読みバッファ211に空きがあるか否かを判定し、先読みバッファ211に空きがあると判定した場合、RAM914を用いて、データ変換部141が生成したレコードデータ626を、先読みバッファ211の空き領域に記憶する。先読みバッファ211に空きがないと判定した場合、先読みバッファ管理部143は、磁気ディスク装置920を用いて、データ変換部141が生成したレコードデータ626を、先読みファイル221に記憶する。
The
The prefetch buffer management unit 143 determines whether or not the
先読みバッファ211及び先読みファイル221は、どちらもレコードデータ626を記憶するための記憶領域である。先読みバッファ211と先読みファイル221との違いは、先読みバッファ211がRAM914(第一の記憶装置)を用いて、まだクライアント装置300に対して送信していないレコードデータ626を記憶する記憶領域であるのに対して、先読みファイル221は、磁気ディスク装置920(第二の記憶装置)を用いて、まだ先読みバッファ211に書き込んでいないレコードデータ626を記憶する記憶領域である。広く知られているように、磁気ディスク装置920は、RAM914と比較して、データの書き込み及び読み出しにかかる時間が長い。また、RAM914は、磁気ディスク装置920と比較して、単位記憶容量当たりの単価が高い。このため、サーバ装置101に十分な容量のRAM914がなく、十分な大きさの先読みバッファ211を確保できない場合であっても、磁気ディスク装置920になら、十分な大きさの先読みファイル221を記憶することができる。
Both the
先読みファイル管理部144は、CPU911を用いて、先読みファイル221にまだ先読みバッファ211に書き込んでいないレコードデータ626が記憶されているか否かを判定する。また、先読みファイル管理部144は、CPU911を用いて、先読みバッファ211に空きがあるか否かを判定する。先読みファイル管理部144は、先読みファイル221にまだ先読みバッファ211に書き込んでいないレコードデータ626が記憶されていて、かつ、先読みバッファ211に空きがあると判定した場合に、先読みファイル221からレコードデータ626を読み出し、読み出したレコードデータ626を、RAM914を用いて、先読みバッファ211の空いている記憶領域に記憶する。
The prefetch
管理テーブル管理部147は、RAM914を用いて、先読みバッファ管理部143及び先読みファイル管理部144が先読みバッファ211に記憶したレコードデータ626のオフセット711及びデータ長712を、管理テーブル212に記憶する。
The management
データ変換部141が生成したレコードデータ626を、先読みバッファ管理部143が先読みバッファ211に記憶することにより、先読みバッファ211が一杯になる。先読みバッファ管理部143は、残りのレコードデータ626を先読みファイル221に記憶する。その後、先読みバッファ211に記憶されたレコードデータ626を検索結果送信部122が送信すると、先読みバッファ211に空きができる。先読みファイル管理部144は、先読みファイル221からレコードデータ626を読み出して、先読みバッファ211の空き領域に記憶する。
The prefetch buffer management unit 143 stores the
あらかじめ、先読みバッファ管理部143は、CPU911を用いて、RAM914の連続したアドレスを持つ記憶領域を確保して、先読みバッファ211とする。
先読みバッファ管理部143は、CPU911を用いて、先読みバッファ211を、環状に順序づけられた記憶領域の集合として管理する。すなわち、先読みバッファ管理部143は、先読みバッファ211内のある記憶領域を、その前のアドレスの記憶領域の次の記憶領域として管理し、先読みバッファ211の先頭の記憶領域を、先読みバッファ211の末尾の記憶領域の次の記憶領域として管理する。
In advance, the prefetch buffer management unit 143 uses the
Using the
先読みバッファ管理部143及び先読みファイル管理部144は、RAM914を用いて、先読みバッファ211の連続した1以上の記憶領域を使用して、レコードデータ626を記憶する。先読みバッファ管理部143及び先読みファイル管理部144は、CPU911を用いて、先読みバッファ211に記憶したレコードデータ626のオフセット711及びデータ長712を算出し、管理テーブル管理部147が、RAM914を用いて、管理テーブル212に記憶する。
先読みバッファ管理部143及び先読みファイル管理部144は、CPU911を用いて、管理テーブル212に記憶されたオフセット711及びデータ長712に基づいて、最後にレコードデータ626を記憶した記憶領域の最後のアドレス(またはオフセット)を算出する。また、先読みバッファ管理部143及び先読みファイル管理部144は、CPU911を用いて、管理テーブル212に記憶されたオフセット711及びデータ長712に基づいて、まだ検索結果送信部122が送信していない最初のレコードデータ626の最初のアドレス(またはオフセット)を算出する。先読みバッファ管理部143及び先読みファイル管理部144は、CPU911を用いて、算出した二つのアドレス(またはオフセット)に基づいて、先読みバッファ211の空き領域の大きさを算出する。先読みバッファ管理部143及び先読みファイル管理部144は、CPU911を用いて、次のレコードデータ626のデータ長を算出する。先読みバッファ管理部143及び先読みファイル管理部144は、CPU911を用いて、算出した空き領域の大きさと、算出したデータ長とを比較して、空き領域の大きさがデータ長よりも小さい場合に、先読みバッファ211に空きがないと判定する。
The prefetch buffer management unit 143 and the prefetch
Using the
検索結果送信部122は、検索結果620を送信した場合、CPU911を用いて、送信した検索結果620に含まれるレコードデータ626についてのオフセット711及びデータ長712を、管理テーブル212から削除する。これにより、先読みバッファ211のうち、既に送信したレコードデータ626を記憶している記憶領域を、先読みバッファ管理部143及び先読みファイル管理部144は空き領域として認識する。
When the search
図10は、この実施の形態におけるデータ検索装置100がデータベースを検索する検索処理、及び、データ検索装置100が検索結果を送信する結果送信処理の流れの一例を示すフローチャート図である。
なお、実施の形態1で説明した検索処理及び結果送信処理と共通する部分については、同一の符号を付し、ここでは説明を省略する。
FIG. 10 is a flowchart showing an example of the flow of search processing in which the
Note that portions common to the search processing and result transmission processing described in Embodiment 1 are denoted by the same reference numerals, and description thereof is omitted here.
検索処理において、データ変換工程S423が終了後、空き判定工程S424へ進む。
空き判定工程S424において、先読みバッファ管理部143は、CPU911を用いて、先読みバッファ211に空きがあるか否かを判定する。先読みバッファ211に空きがあると判定した場合、バッファ書込工程S425へ進む。先読みバッファ211に空きがないと判定した場合、ファイル書込工程S426へ進む。
In the search process, after the data conversion step S423 is completed, the process proceeds to the empty determination step S424.
In the empty determination step S424, the prefetch buffer management unit 143 uses the
バッファ書込工程S425において、先読みバッファ管理部143は、RAM914を用いて、データ変換工程S423でデータ変換部141が生成したレコードデータ626を、先読みバッファ211に記憶する。その後、繰返し工程S427へ進む。
In the buffer writing step S425, the prefetch buffer management unit 143 uses the
ファイル書込工程S426において、先読みバッファ管理部143は、磁気ディスク装置920を用いて、データ変換工程S423でデータ変換部141が生成したレコードデータ626を、先読みファイル221に記憶する。その後、繰返し工程S427へ進む。
In the file writing step S426, the prefetch buffer management unit 143 stores the
結果送信処理において、検索結果送信工程S432が終了後、空き判定工程S441へ進む。
空き判定工程S441において、先読みファイル管理部144は、CPU911を用いて、先読みバッファ211に空きがあるか否かを判定する。先読みバッファ211に空きがあると判定した場合、データ読込工程S442へ進む。先読みバッファ211に空きがないと判定した場合、結果送信処理を終了する。
データ読込工程S442において、先読みファイル管理部144は、CPU911を用いて、先読みファイル221に記憶されたレコードデータ626を1つ読み込む。先読みファイル221に記憶されたレコードデータ626をすべて読み込み、読み込めるレコードデータ626が残っていない場合は、結果送信処理を終了する。レコードデータ626を読み込んだ場合は、データ書込工程S443へ進む。
データ書込工程S443において、先読みファイル管理部144は、RAM914を用いて、データ読込工程S442で読み込んだレコードデータ626を、先読みバッファ211に記憶する。
繰返し工程S444において、空き判定工程S441に戻る。
In the result transmission process, after the search result transmission step S432 is completed, the process proceeds to the empty determination step S441.
In the empty determination step S441, the prefetch
In the data reading step S442, the prefetch
In the data writing step S443, the prefetch
In the repetition step S444, the process returns to the empty determination step S441.
この実施の形態におけるデータ検索装置100は、二以上の記憶装置(RAM914、磁気ディスク装置920)を有することを特徴とする。
上記記憶装置のうち第二の記憶装置(磁気ディスク装置920)は、上記記憶装置のうち第一の記憶装置(RAM914)と比較して、データの書き込み及び読み出しにかかる時間が長いことを特徴とする。
上記先読み管理部142は、先読みバッファ管理部143と、先読みファイル管理部144とを有することを特徴とする。
上記先読みバッファ管理部143は、上記第一の記憶装置(RAM914)を用いて、データを記憶する記憶領域(先読みバッファ211)を確保し、上記処理装置(CPU911)を用いて、確保した記憶領域に空きがあるか否かを判定し、確保した記憶領域に空きがあると判定した場合に、上記第一の記憶装置(RAM914)を用いて、上記データ変換部141が変換したデータ(レコードデータ626)を空いている記憶領域に記憶し、確保した記憶領域に空きがないと判定した場合に、上記第二の記憶装置(磁気ディスク装置920)を用いて、上記データ変換部141が変換したデータ(レコードデータ626)を(先読みファイル221に)記憶することを特徴とする。
上記先読みファイル管理部144は、上記処理装置(CPU911)を用いて、上記先読みバッファ管理部143が上記第二の記憶装置(磁気ディスク装置920)を用いて記憶したデータ(レコードデータ626)があるか否かを判定し、上記先読みバッファ管理部143が上記第二の記憶装置(磁気ディスク装置920)を用いて記憶したデータ(レコードデータ626)があると判定した場合に、上記先読みバッファ管理部143が確保した記憶領域(先読みバッファ211)に空きがあるか否かを判定し、上記先読みバッファ管理部143が確保した記憶領域(先読みバッファ211)に空きがあると判定した場合に、上記第一の記憶装置(RAM914)を用いて、上記先読みバッファ管理部143が上記第二の記憶装置(磁気ディスク装置920)を用いて記憶したデータ(レコードデータ626)を空いている記憶領域に記憶することを特徴とする。
上記検索結果送信部122は、上記送信装置(通信装置915)を用いて、上記先読み管理部142が上記第一の記憶装置(RAM914)を用いて記憶したデータ(レコードデータ626)を上記クライアント装置300へ送信することを特徴とする。
The
Of the storage devices, the second storage device (magnetic disk device 920) has a longer time for writing and reading data than the first storage device (RAM 914) of the storage devices. To do.
The
The prefetch buffer management unit 143 secures a storage area (prefetch buffer 211) for storing data using the first storage device (RAM 914) and secures a storage area using the processing device (CPU 911). The
The prefetch
The search
この実施の形態におけるデータ検索装置100によれば、データ変換部141が生成したレコードデータ626すべてを記憶できる十分な大きさの先読みバッファ211を先読み管理部142が確保できない場合であっても、先読み管理部142が、第二の記憶装置を用いて、先読みファイル221にレコードデータ626を記憶するので、クライアント装置300からの検索結果取得要求520を待つことなく、データベースを閉じて、切り離すことができる。これにより、データベース管理装置102の資源を開放し、有効活用することができるという効果を奏する。
According to the
なお、この実施の形態では、第一の記憶装置の一例としてRAM914、第二の記憶装置の一例として磁気ディスク装置920を用いる構成について説明したが、第一の記憶装置と第二の記憶装置との間に、第一の記憶装置のほうが読み書き時間が短く、第二の記憶装置のほうが大容量であるという関係であれば、他の組み合わせであってもよい。例えば、第一の記憶装置がキャッシュメモリで、第二の記憶装置がRAM914であってもよいし、第一の記憶装置がキャッシュメモリあるいはRAM914で、第二の記憶装置がUSB(Universal Serial Bus)メモリ、磁気ディスク装置920、光ディスク装置などであってもよい。
In this embodiment, the configuration using the
この実施の形態におけるデータ検索装置100は、更に、管理テーブル管理部147を有することを特徴とする。
上記先読み管理部142は、上記記憶装置(RAM914)を用いて、順序づけられた複数の記憶領域(先読みバッファ211)を確保し、上記記憶装置(RAM914)を用いて、上記データ変換部141が変換したデータ(レコードデータ626)を、確保した記憶領域(先読みバッファ211)に記憶することを特徴とする。
上記管理テーブル管理部147は、上記記憶装置(RAM914)を用いて、上記先読み管理部142がデータ(レコードデータ626)を記憶した記憶領域を表わすデータ(オフセット711、データ長712)を記憶することを特徴とする。
上記検索結果送信部122は、上記送信装置(通信装置915)を用いて、上記管理テーブル管理部147が記憶したデータ(オフセット711、データ長712)が表わす記憶領域に記憶されたデータ(レコードデータ626)を上記クライアント装置300へ送信することを特徴とする。
The data search
The
The management
The search
この実施の形態におけるデータ検索装置100によれば、先読み管理部142がデータを記憶した記憶領域を表わすデータを管理テーブル管理部147が管理テーブル212に記憶するので、検索結果送信部122は、管理テーブル212に基づいて、送信すべきデータが先読みバッファ211のどこに記憶されているかを知ることができる。これにより、検索結果送信部122は、先読みバッファ211を送信バッファとして利用することができるという効果を奏する。
According to the
なお、管理テーブル管理部147は、管理テーブル212に記憶するデータは、オフセット711及びデータ長712でなくてもよい。例えば、管理テーブル管理部147は、RAM914を用いて、空き領域の先頭アドレスを表わすデータ(書き込みポインタ)と、次に送信すべきデータの先頭アドレスを表わすデータ(読み出しポインタ)と、各レコードデータ626のデータ長712とを記憶し、オフセット711を記憶しなくてもよい。
The management
以上説明したデータ検索方法は、メモリ(RAM914)上の先読みバッファ211に格納できないデータ(レコードデータ626)を格納するための先読み用ファイル(先読みファイル221)を使用する。
The data search method described above uses a prefetch file (prefetch file 221) for storing data (record data 626) that cannot be stored in the
以上説明したデータ検索装置100は、メモリ(RAM914)上の先読みバッファ211に格納できないデータ(レコードデータ626)を格納するための先読み用ファイル(先読みファイル221)を備える。
The data search
実施の形態3.
実施の形態3について、図11〜図12を用いて説明する。
この実施の形態におけるデータ検索システム800のシステム構成、機能ブロック構成は、実施の形態1あるいは実施の形態2で説明したものと同様なので、ここでは説明を省略する。
Embodiment 3 FIG.
A third embodiment will be described with reference to FIGS.
Since the system configuration and functional block configuration of the data search system 800 in this embodiment are the same as those described in the first embodiment or the second embodiment, description thereof is omitted here.
この実施の形態では、検索結果送信部122が検索結果620を送信する動作の具体例について説明する。
In this embodiment, a specific example of an operation in which the search
先読み管理部142は、RAM914を用いて、先読みバッファ211を確保する。
先読み管理部142は、CPU911を用いて、確保した先読みバッファ211の最初から所定のバイト数(以下「ヘッダ長」と呼ぶ。)の記憶領域を空けて、ヘッダ記憶領域とする。先読み管理部142は、RAM914を用いて、ヘッダ記憶領域の次から順に、データ変換部141が生成したレコードデータ626を記憶する。
The
The
検索結果送信部122は、CPU911を用いて、クライアント装置300へ送信するデータに付加するヘッダデータ623を生成する。検索結果送信部122が生成するヘッダデータ623は、実施の形態1で説明したように、検索結果コード621とデータヘッダ622とを含む。また、検索結果送信部122が生成するヘッダデータ623の長さは、一定であり、ヘッダ長に等しい。
検索結果送信部122は、CPU911を用いて、管理テーブル管理部147が管理テーブル212に記憶したオフセット711及びデータ長712を読み込む。検索結果送信部122は、CPU911を用いて、読み込んだオフセット711に基づいて、クライアント装置300に対して送信する一番前のレコードデータ626の開始アドレスを算出する。
検索結果送信部122は、RAM914を用いて、算出した開始アドレスの前、ヘッダ長の記憶領域(以下「ヘッダ記憶領域721」と呼ぶ。)に、生成したヘッダデータ623を記憶する。
検索結果送信部122は、CPU911を用いて、読み込んだデータ長712に基づいて、クライアント装置300に対して送信する検索結果620全体の長さを算出する。
検索結果送信部122は、通信装置915を用いて、先読みバッファ211に記憶したヘッダデータ623と、ヘッダデータ623に続く記憶領域に記憶された1以上のレコードデータ626とを、クライアント装置300に対して送信する。
The search
Using the
Using the
The search
The search
図11は、この実施の形態における検索結果送信部122が検索結果620を送信する検索結果送信工程S432の流れの一例を示すフローチャート図である。
FIG. 11 is a flowchart showing an example of the flow of the search result transmission step S432 in which the search
ヘッダデータ生成工程S451において、検索結果送信部122は、CPU911を用いて、ヘッダデータ623を生成する。
送信位置算出工程S452において、検索結果送信部122は、CPU911を用いて、管理テーブル管理部147が管理テーブル212に記憶したオフセット711及びデータ長712を読み込む。検索結果送信部122は、CPU911を用いて、読み込んだオフセット711に基づいて、クライアント装置300に対して送信する一番前のレコードデータ626の開始アドレスを算出する。検索結果送信部122は、CPU911を用いて、算出した開始アドレスから、所定のヘッダ長を差し引いて、ヘッダ記憶領域721の開始アドレス(以下「送信位置731」と呼ぶ。)を算出する。
ヘッダデータ書込工程S453において、検索結果送信部122は、RAM914を用いて、先読みバッファ211のうち、送信位置算出工程S452で算出した送信位置731から始まるヘッダ記憶領域721に、ヘッダデータ生成工程S451で生成したヘッダデータを記憶する。
送信長さ算出工程S454において、検索結果送信部122は、CPU911を用いて、送信位置算出工程S452で読み込んだデータ長712に基づいて、クライアント装置300に対して送信するレコードデータ626のデータ長を合計する。検索結果送信部122は、合計したデータ長に、ヘッダ長を加えて、クライアント装置300に対して送信するレコードデータ626全体の長さ(以下「送信長さ732」と呼ぶ。)を算出する。
バッファ送信工程S455において、検索結果送信部122は、通信装置915を用いて、先読みバッファ211のうち、送信位置算出工程S452で算出した送信位置731から始まり、送信長さ算出工程S454で算出した送信長さ分の記憶領域を、そのまま送信バッファとして使用し、送信バッファに記憶されたデータを、検索結果620としてクライアント装置300に対して送信する。
In the header data generation step S451, the search
In the transmission position calculation step S452, the search
In the header data writing step S453, the search
In the transmission length calculation step S454, the search
In the buffer transmission step S455, the search
図12は、この実施の形態における先読みバッファ211などのデータ構造の一例を示す図である。
FIG. 12 is a diagram illustrating an example of a data structure of the
先読みバッファ211a〜211fは、先読みバッファ211のある時点での状態を表わす。
The
先読み管理部142は、CPU911を用いて、先読みバッファ211の先頭からヘッダ長の記憶領域を空けて、ヘッダ記憶領域721とする。先読み管理部142は、RAM914を用いて、ヘッダ記憶領域721の次から始まる記憶領域に、一番最初のレコードデータ626aを記憶する。
二番目以降のレコードデータ626b,626cについては、間を空けず、先読み管理部142は、RAM914を用いて、前のレコードデータ626a,626bの次から始まる記憶領域に、レコードデータ626b,626cをそれぞれ記憶する。先読みバッファ211aは、この時点における先読みバッファ211の状態である。
この例において、先読みバッファ211として確保した記憶領域が小さく、先読み管理部142は、次のレコードデータ626dを記憶しようとした際、CPU911を用いて、先読みバッファ211の空き領域722がレコードデータ626dのデータ長よりも小さいと判定したものとする。先読み管理部142は、磁気ディスク装置920を用いて、残りのレコードデータ626を、先読みファイル221に記憶する。なお、ヘッダ記憶領域721は、空き領域722には算入しない。
また、管理テーブル管理部147は、先読み管理部142が先読みバッファ211に記憶した三つのレコードデータ626a〜626cそれぞれに対応して、三組のオフセット711a〜711c、データ長712a〜712cを、RAM914を用いて管理テーブル212に記憶する。
Using the
For the second and
In this example, the storage area secured as the
Also, the management
検索結果取得要求受信部121が検索結果取得要求520を受信すると、検索結果送信部122は、CPU911を用いて、ヘッダデータ623aを生成する。ヘッダデータ623aは、検索結果送信部122がクライアント装置300へ送信するデータの先頭に付加するデータであり、実施の形態1で説明したように、検索結果コード621とデータヘッダ622とからなる。
検索結果送信部122は、CPU911を用いて、管理テーブル212に記憶されたオフセット711のうち、一番前のレコードデータ626aに対応するオフセット711aを読み出す。検索結果送信部122は、CPU911を用いて、読み出したオフセット711aからヘッダ記憶領域721の長さを差し引いて、送信位置731を算出する。
検索結果送信部122は、RAM914を用いて、算出した送信位置731から始まるヘッダ記憶領域721に、生成したヘッダデータ623aを記憶する。先読みバッファ211bは、この時点での先読みバッファ211の状態である。
検索結果送信部122は、CPU911を用いて、送信長さ732を算出する。この例において、検索結果取得要求受信部121が受信した検索結果取得要求520に含まれる取得要求数データ522が表わす取得要求数は、「2」であるとする。検索結果送信部122は、CPU911を用いて、管理テーブル212に記憶されたデータ長712のうち、一番前のレコードデータ626a及び二番目のレコードデータ626bにそれぞれ対応するデータ長712a,712bを読み込む。検索結果送信部122は、CPU911を用いて、読み込んだデータ長712a,712bを合計し、更に、ヘッダ記憶領域721の長さを加えて、送信長さ732を算出する。
When the search result acquisition
Using the
Using the
The search
検索結果送信部122は、通信装置915を用いて、算出した送信位置731及び送信長さ732に基づいて、先読みバッファ211を送信バッファとして使用し、送信位置731から始まる送信長さ732のデータを、検索結果620としてクライアント装置300に対して送信する。
The search
検索結果送信部122は、CPU911を用いて、送信したレコードデータ626a,626bに対応するオフセット711a,711b及びデータ長712a,712bを、管理テーブル212から削除する。
先読み管理部142は、CPU911を用いて、この時点で先読みバッファ211に記憶された一番前のレコードデータ626cに対応するオフセット711cを、管理テーブル212から読み込む。先読み管理部142は、CPU911を用いて、読み込んだオフセット711cの前で終わるヘッダ長の記憶領域をヘッダ記憶領域721とする。先読み管理部142は、ヘッダ記憶領域721の前の記憶領域を、空き領域723の最後であるとして、空き領域723の最後のアドレスを算出する。
また、先読み管理部142は、CPU911を用いて、この時点で先読みバッファ211に記憶された一番後ろのレコードデータ626cに対応するオフセット711c及びデータ長712cを、管理テーブル212から読み込む。先読み管理部142は、CPU911を用いて、読み込んだオフセット711cから後、データ長712cの記憶領域の次の記憶領域を、空き領域722の最初であるとして、空き領域722の最初のアドレスを算出する。
先読み管理部142は、CPU911を用いて、算出した空き領域722の最初のアドレスと、先読みバッファ211の最後のアドレスとから、空き領域722の大きさを算出し、先読みバッファ211の最初のアドレスと、空き領域723の最後のアドレスとから、空き領域723の大きさを算出する。
Using the
The
Also, the
Using the
先読み管理部142は、CPU911を用いて、先読みファイル221に記憶された次のレコードデータ626dを読み込む。先読み管理部142は、CPU911を用いて、読み込んだレコードデータ626dのデータ長と、算出した空き領域722の大きさとを比較して、空き領域722の大きさのほうが小さいので、空き領域722にはレコードデータ626dを記憶できないと判定する。次に、先読み管理部142は、CPU911を用いて、読み込んだレコードデータ626dのデータ長と、算出した空き領域723の大きさとを比較して、空き領域723の大きさのほうが大きいので、先読みバッファ211に空きがあると判定する。先読み管理部142は、RAM914を用いて、先読みバッファ211の空き領域723に、読み込んだレコードデータ626dを記憶する。先読み管理部142は、CPU911を用いて、算出した空き領域723の大きさから、レコードデータ626dのデータ長を差し引いて、残っている空き領域の大きさを算出する。
The
なお、先読み管理部142は、空き領域722の後に空き領域723が連続しているものとして、レコードデータ626dを2つに分割し、一部を空き領域722に記憶し、残りを空き領域723に記憶してもよい。
The
先読み管理部142は、CPU911を用いて、先読みファイル221に記憶された次のレコードデータ626eを読み込む。先読み管理部142は、CPU911を用いて、読み込んだレコードデータ626eのデータ長と、残っている空き領域の大きさとを比較して、空き領域の大きさのほうが大きいので、先読みバッファ211に空きがあると判定し、RAM914を用いて、先読みバッファ211の空き領域723のうち、前のレコードデータ626dの次から始まる記憶領域に、読み込んだレコードデータ626eを記憶する。先読み管理部142は、CPU911を用いて、残っている空き領域の大きさを算出する。先読みバッファ211dは、この時点での先読みバッファ211の状態である。
以下、同様にして、先読みバッファ211に空きがないと先読み管理部142が判定するか、先読みファイル221に記憶されたレコードデータ626が尽きるまで、先読み管理部142は、先読みファイル221からレコードデータ626を読み込み、先読みバッファ211の空き領域に記憶していく。
The
Similarly, until the
検索結果取得要求受信部121が検索結果取得要求520を受信すると、検索結果送信部122は、CPU911を用いて、ヘッダデータ623bを生成する。検索結果送信部122は、CPU911を用いて、管理テーブル管理部147が管理テーブル212に記憶したオフセット711のうち、この時点で一番前のレコードデータ626cに対応するオフセット711cを読み出し、CPU911を用いて、読み出したオフセット711cに基づいて、送信位置731を算出する。検索結果送信部122は、RAM914を用いて、算出した送信位置731から始まるヘッダ記憶領域721に、生成したヘッダデータ623bを記憶する。先読みバッファ211eは、この時点での先読みバッファ211の状態である。
検索結果送信部122は、CPU911を用いて、管理テーブル管理部147が管理テーブル212に記憶したデータ長712のうち、この時点で一番前のレコードデータ626cに対応するデータ長712cから始めて、取得要求数分のデータ長712c,712dを読み出し、CPU911を用いて、読み出したデータ長712c,712dに基づいて、送信長さ732を算出する。
When the search result acquisition
The search
検索結果送信部122は、通信装置915を用いて、算出した送信位置731及び送信長さ732に基づいて、先読みバッファ211を送信バッファとして使用し、送信位置731から始まる送信長さ732のデータを、検索結果620としてクライアント装置300に対して送信する。
検索結果送信部122は、CPU911を用いて、送信したレコードデータ626c,626dに対応するオフセット711c,711d及びデータ長712c,712dを、管理テーブル212から削除する。
以下、同様にして、送信により先読みバッファ211に空き領域が出来ると、先読み管理部142が先読みファイル221からレコードデータ626を読み込み、検索結果取得要求受信部121が検索結果取得要求520を受信すると、検索結果送信部122が先読みバッファ211を送信バッファとして検索結果620を送信することを繰り返す。
The search
Using the
Similarly, when an empty area is created in the
このように、先読みバッファ211にヘッダ記憶領域721を空けておき、送信時に、検索結果送信部122が、先読みバッファ211に空けておいたヘッダ記憶領域721に、ヘッダデータ623を書き込むことにより、先読みバッファ211をそのまま送信バッファとして使用して、送信をすることができる。
In this way, the
この実施の形態における先読み管理部142は、上記記憶装置(RAM914)を用いて、確保した記憶領域(先読みバッファ211)の最初から所定の大きさ(ヘッダ長)の記憶領域をヘッダ記憶領域721とし、上記データ変換部141が変換したデータ(レコードデータ626)を、上記ヘッダ記憶領域721の次の記憶領域から順に記憶することを特徴とする。
上記検索結果送信部122は、上記処理装置(CPU911)を用いて、上記クライアント装置300へ送信するデータに付加するヘッダデータ623を生成し、上記記憶装置(RAM914)を用いて、上記管理テーブル管理部147が記憶したデータ(オフセット711)が表わす記憶領域の前の所定の大きさ(ヘッダ長)の記憶領域(ヘッダ記憶領域721)に、生成したヘッダデータ623を記憶し、上記送信装置(通信装置915)を用いて、記憶したヘッダデータ623と、上記ヘッダデータ623を記憶した記憶領域に続く記憶領域に記憶されたデータ(レコードデータ626)とを上記クライアント装置300へ送信することを特徴とする。
In this embodiment, the
The search
この実施の形態におけるデータ検索装置100によれば、検索結果送信部122がヘッダデータ623を先読みバッファ211に書き込み、先読みバッファ211をそのまま送信バッファとして使用して、検索結果620をクライアント装置300に対して送信するので、検索結果取得要求受信部121が検索結果取得要求520を受信してから、検索結果送信部122が検索結果620を送信するまでにかかる時間が短くて済み、検索結果620の転送速度を速くすることができるという効果を奏する。
According to the
この実施の形態における先読み管理部142は、上記記憶装置(RAM914)を用いて、上記データ変換部141が変換したデータ(レコードデータ626)一つにつき一以上の連続した記憶領域を使って、上記データ変換部141が変換したデータ(レコードデータ626)を記憶することを特徴とする。
上記管理テーブル管理部147は、更に、上記記憶装置(RAM914)を用いて、上記先読み管理部142がそれぞれのデータ(レコードデータ626)を記憶した記憶領域の領域数(データ長712)を表わすデータを記憶することを特徴とする。
上記検索結果送信部122は、上記処理装置(CPU911)を用いて、上記管理テーブル管理部147が記憶したデータが表わす領域数(データ長712)に基づいて、上記クライアント装置300へ送信するデータ全体の長さ(送信長さ732)を算出し、上記送信装置(通信装置915)を用いて、算出した長さ(送信長さ732)に基づいて、上記記憶領域に記憶されたデータ(検索結果620)を上記クライアント装置300へ送信することを特徴とする。
The
The management
The search
この実施の形態におけるデータ検索装置100によれば、管理テーブル管理部147が管理テーブル212に記憶したデータ長712に基づいて、検索結果送信部122が送信長さ732を算出するので、先読みバッファ211をそのまま送信バッファとして使用することができるという効果を奏する。
According to the
以上説明したデータ検索装置100は、前記先読みバッファ211において、バッファの先頭に通信データのヘッダ(ヘッダデータ623)のサイズ分空きを作成し、通信データのデータ部(ボディ、レコードデータ626)を詰めて格納する。
In the
以上説明したデータ検索装置100は、前記管理テーブル212において、先読みした1レコードを先読みバッファ211に格納するごとに、オフセット711とデータ長712を格納する。
The data search
以上説明したデータ検索システム800(データベースシステム)は、データベースサーバ(データ検索装置100)とデータベースクライアント(クライアント装置300)とを有し、データベースサーバとデータベースクライアントとは、ネットワーク(インターネット940)を介して接続されている。データベースサーバ(データ検索装置100)はデータベース(データベース記憶部131)を有し、データベース(データベース記憶部131)へはデータベース管理部(データベース管理装置102)を経てアクセスされる。データベースクライアント(クライアント装置300)は、複数接続されていてもよい。また、データベースサーバとデータベースクライアントは、複数の装置からなるシステムであってもよいし、一つの装置であってもよいし、一つの装置の一部分であってもよい。
データベースクライアント(クライアント装置300)は、アプリケーション(アプリケーション部301)がデータベース(データベース記憶部131)にアクセスする際のクライアント側の機能を提供するシステムであり、データベースサーバ(データ検索装置100)との間でネットワーク(インターネット940)を介して検索要求(検索実行要求510)などを送信し、実行結果(検索ステータス610)や検索結果620を受信する。
データベースサーバ(データ検索装置100)は、データベースクライアント(クライアント装置300)からの要求を受信する受信部(通信装置915)、結果を送信する送信部(通信装置915)、受信や送信の制御を行う通信制御部(CPU911)、通信制御部がデータベース管理部(データベース管理装置102)を経て取得した検索結果を通信データ変換部(データ変換部141)で通信データ形式(送信形式)に変換して格納する先読みバッファ211、先読みバッファ211の1件ごとのオフセット711とデータ長712を格納する管理テーブル212、メモリ(RAM914)上の先読みバッファ211に格納できないデータ(レコードデータ626)を格納する先読み用ファイル(先読みファイル221)、先読みバッファ211と先読み用ファイル(先読みファイル221)、管理テーブル212を管理し、通信バッファを決定し、送信部に渡すバッファ管理部(データ変換部141、先読み管理部142、管理テーブル管理部147、検索結果送信部122)とを有する。
The data search system 800 (database system) described above includes a database server (data search apparatus 100) and a database client (client apparatus 300). The database server and the database client are connected via a network (Internet 940). It is connected. The database server (data search device 100) has a database (database storage unit 131), and the database (database storage unit 131) is accessed via a database management unit (database management device 102). A plurality of database clients (client devices 300) may be connected. Further, the database server and the database client may be a system composed of a plurality of devices, may be a single device, or may be a part of a single device.
The database client (client device 300) is a system that provides a client-side function when an application (application unit 301) accesses a database (database storage unit 131), and is connected to the database server (data search device 100). Then, a search request (search execution request 510) or the like is transmitted via the network (Internet 940), and an execution result (search status 610) or a
The database server (data search device 100) controls a reception unit (communication device 915) that receives a request from the database client (client device 300), a transmission unit (communication device 915) that transmits a result, and controls reception and transmission. The communication control unit (CPU 911) converts the search result acquired by the communication control unit through the database management unit (database management apparatus 102) into a communication data format (transmission format) by the communication data conversion unit (data conversion unit 141) and stores it.
アプリケーション(アプリケーション部301)は、データベースを検索し、検索結果を要求件数(取得要求数)分ずつ複数回に分けて最後まで取得する。データベースサーバ(データ検索装置100)のデータベース管理部132は、データベース(データベース記憶部131)から検索結果を1件ずつ取得するが、送信部(検索結果送信部122)は、複数件の検索結果(レコードデータ626)を送信することができる。また、データベースクライアント(クライアント装置300)からは、検索オープンを示す問い合わせ文(検索条件)を指定した検索実行要求510、指定した件数分検索結果を取得する検索結果取得要求520が複数回、検索クローズを示す検索終了要求590がデータベースサーバ(データ検索装置100)に送信される。
The application (application unit 301) searches the database, and acquires the search results by dividing the number of requests by the number of requests (the number of acquisition requests) into a plurality of times. The
データベースクライアント(クライアント装置300)から検索実行要求510が送信された場合、データベースサーバ(データ検索装置100)は、以下のように動作する。
受信部(検索実行要求受信部111)が、データベースクライアント(クライアント装置300)からの検索実行要求510を受信する。通信制御部(CPU911)は、バッファ管理部(先読み管理部142、管理テーブル管理部147)を呼び出し、先読みバッファ211、管理テーブル212をクリアし、先読み用ファイル(先読みファイル221)があれば削除する初期化処理を実行する。次に、通信制御部(CPU911)は、データベース管理部132に対して検索実行要求する。データベース管理部132から終了ステータスが返るので、送信部(検索結果送信部122)は、検索実行結果(検索ステータス610)としてデータベースクライアント(クライアント装置300)へ送信する。データベースクライアント(検索ステータス受信部312)は、結果をアプリケーション(アプリケーション部301)へ返し、ここで、クライアント側の検索実行要求処理は終了する。
When the
The receiving unit (search execution request receiving unit 111) receives the
データベースサーバ(データ検索装置100)は、続けて、検索結果の全件先読み処理を実行する。まず、通信制御部(CPU911)が、データベース管理部(データベース管理装置102)に対して検索結果取得要求する。データベース管理部132から返された検索結果(レコード)を、通信制御部(CPU911)がバッファ管理部(データ変換部141)に渡し、通信データ変換部(データ変換部141)により通信データ形式(送信形式)に変換する。
Subsequently, the database server (data search apparatus 100) executes a prefetch process for all search results. First, the communication control unit (CPU 911) issues a search result acquisition request to the database management unit (database management apparatus 102). The search result (record) returned from the
通信データ(検索結果620)は、固定長のヘッダ(ヘッダデータ623)及び可変長のボディ(レコードデータ626)から構成される。ヘッダには、ボディ長が含まれる。ボディ(レコードデータ626)は、更に固定長のボディヘッダ(フィールドヘッダ624)と可変長のデータ(フィールドデータ625)の繰り返しで構成される。ボディヘッダには、データ型やデータ長が含まれる。データ変換部141が、データベースから読み出した1件の検索結果(レコード)から、列数分のボディヘッダとデータを作成してボディ(レコードデータ626)を生成し、先読み管理部142が、先読みバッファ211へ格納する。検索結果の文字コード、バイトオーダーはオペレーティングシステムに依存するため、必要であれば、データ変換部141がボディ(レコードデータ626)を作成する際に変換する。検索結果から作成したボディ(レコードデータ626)は、先読み管理部142が先読みバッファ211に詰めて格納し、管理テーブル管理部147が1件ごとのオフセット711とデータ長712を管理テーブル212にセットする。実際に送信する際には、通信データのヘッダ部分(ヘッダデータ623)が必要になるため、1件目の検索結果は、ヘッダのサイズ分空けて配置する。なお、1件目以外は直前のデータをつぶしてヘッダ(ヘッダデータ623)を上書きできるため、間を空ける必要はない。また、検索結果の列(フィールド)のサイズが非常に大きい場合は、予め定めたり、アプリケーション(アプリケーション部301)から指定されたりした長さで列のデータを切ってボディのデータとしてセットしてもよい。
The communication data (search result 620) includes a fixed-length header (header data 623) and a variable-length body (record data 626). The header includes the body length. The body (record data 626) further includes a repetition of a fixed-length body header (field header 624) and variable-length data (field data 625). The body header includes a data type and a data length. The
先読み管理部142は、先読みバッファ211に空きがあれば、先読みバッファ211へ、空きがなければ、先読み用ファイル(先読みファイル221)へレコードデータ626を保存する。保存先へはボディを詰めて格納する。ただし、保存先の先頭レコードであれば、通信データのヘッダ部分(ヘッダデータ623)が必要になるため、先読み管理部142は、ヘッダのサイズ分を空けて、レコードデータ626を格納する。管理テーブル管理部147は、管理テーブル212へ保存先のオフセット711とデータ長712とを格納する。データベース管理部132から検索結果の最終レコードを取得したら、通信制御部(CPU911)がデータベース管理部132に対して検索終了要求し、データベース管理部132が検索クローズを実行して、処理を終了する。最終レコードまで取得していない場合は、以上の処理を繰り返す。
The
データベースクライアント(クライアント装置300)から検索結果取得要求520が送信された場合、データベースサーバ(データ検索装置100)は、以下のように動作する。
受信部(検索結果取得要求受信部121)が、データベースクライアント(クライアント装置300)からの検索結果取得要求520を受信する。検索実行要求510に対する検索結果を全件送信済みであれば、送信部(検索結果送信部122)が全件送信済みであることをデータベースクライアント(クライアント装置300)へ送信して、処理を終了する。全件の送信が完了していなければ、通信制御部(CPU911)はバッファ管理部(検索結果送信部122)を呼び出し、検索結果送信部122が、管理テーブル212から通信バッファ(先読みバッファ211)のオフセットを決定する。決定したオフセットが、通信バッファアドレスとなる。続けて、検索結果送信部122は、管理テーブル212から、要求件数分のデータ長712を加算して通信データのボディ長を求め、通信バッファ(先読みバッファ211)にヘッダ(ヘッダデータ623)を上書きする。送信部(検索結果送信部122)が通信バッファ(先読みバッファ211)の内容をデータベースクライアント(クライアント装置300)へ送信する。データベースクライアント(検索結果受信部322)は、取得結果(検索結果620)をアプリケーション(アプリケーション部301)へ渡し、ここで、クライアント側の1回の検索結果取得要求処理は終了する。
When the search
The receiving unit (search result acquisition request receiving unit 121) receives the search
データベースサーバ(データ検索装置100)は、続けて、先読みした内容の管理処理を実行する。まず、バッファ管理部(先読み管理部142)は、管理テーブル212から先読みバッファ211の空きをチェックする。先読みバッファ211にまとまった空きがない場合は処理を終了する。空きがある場合、先読み管理部142は、先読み用ファイル(先読みファイル221)の内容を先読みバッファ211へ保存する。先読み用ファイル(先読みファイル221)の内容を全て先読みバッファ211へ保存できた場合、先読み管理部142は、先読み用ファイル(先読みバッファ211)を削除し、処理を終了する。
なお、先読みバッファ211のまとまった空きを制御しやすくするために、連続したメモリ上にバッファを複数確保してもよい。その場合、検索結果は最初のバッファから順に格納し、データベースクライアント(クライアント装置300)へ送信し空になったバッファに先読み用ファイル(先読みファイル221)のデータを格納する。
Subsequently, the database server (data search apparatus 100) executes a prefetched content management process. First, the buffer management unit (prefetch management unit 142) checks the availability of the
Note that a plurality of buffers may be secured on a continuous memory in order to make it easy to control a group of prefetch buffers 211. In this case, the search results are stored in order from the first buffer, and the data of the prefetch file (prefetch file 221) is stored in the empty buffer that is transmitted to the database client (client device 300).
データベースクライアント(クライアント装置300)から検索終了要求590が送信された場合、データベースサーバ(データ検索装置100)は、以下のように動作する。
受信部(検索終了要求受信部191)が、データベースクライアント(クライアント装置300)からの検索終了要求590を受信する。通信制御部(CPU911)はバッファ管理部(先読み破棄部193)を呼び出し、先読みバッファ211、管理テーブル212を解放し、先読み用ファイル(先読みファイル221)があれば削除する。送信部(了解送信部192)は、終了ステータスを検索終了結果(了解690)としてデータベースクライアント(クライアント装置300)へ送信する。データベースクライアント(了解受信部392)は、結果をアプリケーション(アプリケーション部301)へ返し、検索処理は全て終了する。
When the
The receiving unit (search end request receiving unit 191) receives the
以上のように、クライアント(クライアント装置300)からの検索要求(検索実行要求510)に対する全件先読み処理を、通信バッファとしても使用可能なようにデータを配置した先読みバッファ211を使用して行うので、可変長でサイズが非常に大きいデータ型が存在し、検索に伴いデータベースのオープンからクローズまでサーバのリソースを大量に消費するデータベースシステムにおいて、データベースサーバの検索のためのリソースを早く解放でき、ハードウェア資源を有効に活用できる。また、検索結果の送信の都度、先読みバッファ211から通信データ形式に変換する必要がないため、検索結果の転送性能を維持することもできる。
As described above, all-read-ahead processing for a search request (search execution request 510) from a client (client device 300) is performed using the
実施の形態4.
実施の形態4について、図13〜図15を用いて説明する。
Embodiment 4 FIG.
The fourth embodiment will be described with reference to FIGS.
図13は、この実施の形態におけるデータ検索システム800を構成する各装置の機能ブロックの構成の一例を示すブロック構成図である。
なお、実施の形態1で説明したデータ検索システム800と共通する部分については、同一の符号を付し、ここでは説明を省略する。
FIG. 13 is a block configuration diagram showing an example of the functional block configuration of each device constituting the data search system 800 in this embodiment.
Note that portions common to the data search system 800 described in the first embodiment are denoted by the same reference numerals, and description thereof is omitted here.
クライアント装置300は、更に、明細取得要求送信部351、明細受信部352を有する。
明細取得要求送信部351は、通信装置915を用いて、データ検索装置100に対して明細取得要求550を送信する。明細取得要求550は、データベース記憶部131が記憶したデータベースから1件のレコードを取得することを要求するデータであり、取得するレコードを指す指示情報を表わすデータを含む。
明細受信部352は、通信装置915を用いて、データ検索装置100が送信した明細650を受信する。明細650は、明細取得要求に含まれる指示情報により指されたレコードのデータを含む。
The
The specification acquisition
The
サーバ装置101は、更に、明細取得要求受信部151、明細送信部152、明細変換部161、明細管理部162を有する。
The
明細取得要求受信部151は、通信装置915を用いて、クライアント装置300が送信した明細取得要求550を受信する。明細取得要求受信部151は、CPU911を用いて、受信した明細取得要求550に含まれるデータが表わす指示情報を出力する。
The specification acquisition
データベース管理部132は、CPU911を用いて、明細取得要求受信部151が出力した指示情報を入力する。データベース管理部132は、CPU911を用いて、入力した指示情報に基づいて、データベース記憶部131が記憶したデータベースのうち、指示情報により指されたレコードを含むデータベースを開く。データベース管理部132は、CPU911を用いて、開いたデータベースから、指示情報により指された1件のレコードを取得する。データベース管理部132は、CPU911を用いて、取得した1件のレコードを出力する。データベース管理部132は、CPU911を用いて、開いたデータベースを閉じる。
The
明細変換部161は、CPU911を用いて、データベース管理部132が出力した1件のレコードを入力する。明細変換部161は、データ変換部141と同様、CPU911を用いて、入力した1件のレコードを、クライアント装置300に対して送信する形式に変換する。明細変換部161は、CPU911を用いて、変換した送信形式のデータ(以下「明細データ」と呼ぶ。)を出力する。
The
明細管理部162は、CPU911を用いて、明細変換部161が出力した明細データを入力する。明細管理部162は、RAM914を用いて、あらかじめ、明細データを記憶する記憶領域(以下「明細バッファ213」と呼ぶ。)を確保しておく。明細管理部162は、RAM914を用いて、入力した明細データを、明細バッファ213に記憶する。
明細送信部152は、通信装置915を用いて、明細管理部162が明細バッファ213に記憶した明細データを、クライアント装置300に対して明細650として送信する。
The
The
データベースの1つのレコードに含まれるデータが大きい場合、データ検索時に、検索したレコードに含まれるデータをすべて取得しようとすると、データ検索装置100からクライアント装置300に対して送信するデータが膨大な量になってしまうので、検索結果としては、そのレコードを代表するデータのみを取得し、取得したデータに基づいて、更に詳しいデータを知りたいレコードを絞り込んで、絞り込んだレコードについて、詳細なデータを取得するという手順を踏む場合がある。
If the data contained in one record of the database is large, when attempting to acquire all the data contained in the retrieved record at the time of data retrieval, the amount of data transmitted from the
図14は、この実施の形態におけるデータ検索システム800を利用したログ管理システムにおいて、クライアント装置300が表示装置901を用いて表示する表示画面の一例を示す図である。
FIG. 14 is a diagram showing an example of a display screen displayed by the
検索条件入力画面850は、検索条件を入力するための画面であり、検索条件入力欄851、検索ボタン852を有する。
利用者が、検索条件入力欄851に検索条件を入力し、検索ボタン852を押すと、データ検索システム800は、検索を実行する。クライアント装置300は、検索結果画面860を生成して、表示装置901を用いて表示する。
The search
When the user inputs a search condition in the search
検索結果画面860は、検索結果を表示するための画面であり、検索結果表示欄861、全文表示ボタン862、次画面ボタン863、条件変更ボタン864を有する。
検索結果表示欄861は、検索されたレコードの要約を一行に表示し、一度に複数のレコードの要約を表示する領域である。
利用者が、検索結果表示欄861に表示されたレコードのいずれかを選択し、全文表示ボタン862を押すと、クライアント装置300は、全文表示画面870を生成して、表示装置901を用いて表示する。
また、利用者が、次画面ボタン863を押すと、クライアント装置300は、一度に表示しきれなかった次の複数のレコードの要約を表示する検索結果画面860を生成し、表示装置901を用いて表示する。
また、利用者が、条件変更ボタン864を押すと、クライアント装置300は、検索条件入力画面850を生成し、表示装置901を用いて表示する。
The
The search
When the user selects any of the records displayed in the search
When the user presses the
When the user presses the
全文表示画面870は、詳細な検索結果を表示するための画面であり、日時表示欄871、ログ表示欄872、戻るボタン873を有する。
日時表示欄871は、ログが記録された日付及び時刻を表示する領域である。
ログ表示欄872は、ログの内容を表示する領域である。
利用者が、戻るボタン873を押すと、クライアント装置300は、表示装置901を用いて、もとの検索結果画面860を表示する。
The full
The
The
When the user presses the
図15は、この実施の形態におけるクライアント装置300が、上述したログ管理システムを実現するログ管理処理の流れの一例を示すフローチャート図である。
FIG. 15 is a flowchart showing an example of the flow of log management processing in which the
検索条件入力画面表示工程S461において、クライアント装置300(検索条件入力画面生成部)は、CPU911を用いて、検索条件入力画面850を生成する。クライアント装置300(検索条件入力画面表示部)は、表示装置901を用いて、生成した検索条件入力画面850を表示する。
検索ボタン判定工程S462において、クライアント装置300(検索ボタン判定部)は、CPU911を用いて、検索ボタン852が押されたか否かを判定する。検索ボタン852が押されたと判定した場合、検索実行要求送信工程S471へ進む。検索ボタン852が押されていないと判定した場合、検索ボタン判定工程S462を繰り返す。
In the search condition input screen display step S461, the client device 300 (search condition input screen generation unit) uses the
In the search button determination step S462, the client device 300 (search button determination unit) uses the
検索実行要求送信工程S471において、クライアント装置300(検索実行要求生成部)は、CPU911を用いて、検索条件入力画面表示工程S461で表示した検索条件入力画面850の検索条件入力欄851に入力された検索条件に基づいて、検索実行要求510を生成する。また、クライアント装置300が生成する検索実行要求510には、検索されたレコードのうち、検索結果620として送信するデータを指定するデータが含まれる。この例において、クライアント装置300は、送信するデータとして、レコード番号、日時、本文(ただし先頭から所定の文字数のみ)の三つのフィールドを指定するデータを含む検索実行要求510を生成する。検索実行要求送信部311は、通信装置915を用いて、生成した検索実行要求510をデータ検索装置100に対して送信する。
In the search execution request transmission step S471, the client device 300 (search execution request generation unit) is input to the search
検索ステータス受信工程S472において、検索ステータス受信部312は、通信装置915を用いて、データ検索装置100が送信した検索ステータス610を受信する。
検索成否判定工程S473において、クライアント装置300(検索成否判定部)は、検索ステータス受信工程S472で検索ステータス受信部312が受信した検索ステータス610に基づいて、検索が成功したか失敗したかを判定する。検索が成功したと判定した場合、検索結果取得要求送信工程S481へ進む。検索が失敗したと判定した場合、検索条件入力画面表示工程S461に戻る。
In the search status reception step S472, the search
In the search success / failure determination step S473, the client device 300 (search success / failure determination unit) determines whether the search has succeeded or failed based on the
検索結果取得要求送信工程S481において、クライアント装置300(検索結果取得要求生成部)は、CPU911を用いて、検索結果取得要求520を生成する。この例において、クライアント装置300は、検索結果表示欄861に表示できる行数を取得要求数として、検索結果取得要求520を生成する。検索結果取得要求送信部321は、通信装置915を用いて、生成した検索結果取得要求520をデータ検索装置100に対して送信する。
In the search result acquisition request transmission step S <b> 481, the client device 300 (search result acquisition request generation unit) generates a search
検索結果受信工程S482において、検索結果受信部322は、通信装置915を用いて、データ検索装置100が送信した検索結果620を受信する。
検索結果画面表示工程S483において、クライアント装置300(検索結果画面生成部)は、CPU911を用いて、検索結果受信工程S482で検索結果受信部322が受信した検索結果620に基づいて、検索結果画面860を生成する。クライアント装置300(検索結果画面表示部)は、表示装置901を用いて、生成した検索結果画面860を表示する。
ボタン判定工程S484において、クライアント装置300(ボタン判定部)は、CPU911を用いて、全文表示ボタン862、次画面ボタン863、条件変更ボタン864のうち、いずれかのボタンが押されたかを判定する。全文表示ボタン862が押されたと判定した場合、明細取得要求送信工程S491へ進む。次画面ボタン863が押されたと判定した場合、検索結果取得要求送信工程S481に戻る。条件変更ボタン864が押されたと判定した場合、検索条件入力画面表示工程S461に戻る。
In the search result receiving step S <b> 482, the search
In the search result screen display step S483, the client device 300 (search result screen generation unit) uses the
In the button determination step S <b> 484, the client device 300 (button determination unit) uses the
明細取得要求送信工程S491において、クライアント装置300(明細取得要求生成部)は、CPU911を用いて、明細取得要求550を生成する。この例において、クライアント装置300は、検索結果画面表示工程S483で表示した検索結果画面860の検索結果表示欄861から選択されたレコードに基づいて、選択されたレコードのレコード番号を求め、求めたレコード番号を指示情報として、明細取得要求550を生成する。明細取得要求送信部351は、通信装置915を用いて、生成した明細取得要求550をデータ検索装置100に対して送信する。
In the detail acquisition request transmission step S491, the client device 300 (detail acquisition request generation unit) uses the
明細受信工程S492において、明細受信部352は、通信装置915を用いて、データ検索装置100が送信した明細650を受信する。
全文表示画面表示工程S493において、クライアント装置300(全文表示画面生成部)は、CPU911を用いて、明細受信工程S492で明細受信部352が受信した明細650に基づいて、全文表示画面870を生成する。クライアント装置300(全文表示画面表示部)は、表示装置901を用いて、生成した全文表示画面870を表示する。
戻るボタン判定工程S494において、クライアント装置300(戻るボタン判定部)は、CPU911を用いて、戻るボタン873が押されたか否かを判定する。戻るボタン873が押されたと判定した場合、検索結果画面表示工程S483に戻る。戻るボタン873が押されていないと判定した場合、戻るボタン判定工程S494を繰り返す。
In the specification receiving step S492, the
In the full text display screen display step S493, the client device 300 (full text display screen generation unit) uses the
In the return button determination step S494, the client device 300 (return button determination unit) uses the
以上のようなクライアント装置300の動作を受けて、データ検索装置100は、以下のように動作する。
In response to the operation of the
検索実行要求送信工程S471で検索実行要求送信部311が検索実行要求510を送信すると、データ検索装置100では、検索実行要求受信部111が検索実行要求510を受信し、データベース管理部132がデータベースを検索する。データベース管理部132は、検索されたレコードをデータベースから取得し、先読み管理部142が先読みバッファ211(あるいは先読みファイル221)にレコードデータ626を記憶する。
その後、検索結果取得要求送信工程S481で検索結果取得要求送信部321が検索結果取得要求520を送信すると、データ検索装置100では、検索結果取得要求受信部121が検索結果取得要求520を受信し、検索結果送信部122が先読みバッファ211を送信バッファとして使用して、検索結果620を送信する。
利用者が次画面ボタン863を押すたびに上記の動作を繰り返し、クライアント装置300は、検索されたすべてのレコードについての検索結果620を取得できる。
When the search execution
Thereafter, when the search result acquisition
Each time the user presses the
クライアント装置300が、検索されたすべてのレコードについての検索結果620を取得しないうちに、利用者が条件変更ボタン864を押して、検索条件入力画面850に戻り、新たな検索条件を入力して、検索ボタン852を押したとする。クライアント装置300は、新たな検索条件を表わす検索条件データ512を含む検索実行要求510を生成し、検索実行要求送信工程S471で検索実行要求送信部311が検索実行要求510を送信する。
データ検索装置100では、検索実行要求受信部111が新たな検索実行要求510を受信し、データベース管理部132がデータベースを検索する。データベース管理部132は、検索されたレコードをデータベースから取得し、先読み管理部142が先読みバッファ211(あるいは先読みファイル221)にレコードデータ626を記憶する。このとき、先読みバッファ211(あるいは先読みファイル221)に記憶されていた古い検索結果は上書きされて破棄される。
したがって、最後まで取得されなかった検索結果は、クライアント装置300が検索終了要求590を送信しなくても、サーバ装置101に残らず、サーバ装置101の資源を浪費することはない。
Before the
In the
Therefore, even if the
クライアント装置300が、検索されたすべてのレコードについての検索結果620を取得しないうちに、利用者が全文表示ボタン862を押したとする。クライアント装置300は、明細取得要求送信工程S491で明細取得要求送信部351が明細取得要求550を送信する。
データ検索装置100では、明細取得要求受信部151が明細取得要求550を受信し、データベース管理部132がデータベースを検索して、指示情報が指すレコードを取得する。明細管理部162が明細データを明細バッファ213に記憶し、明細送信部152が明細バッファ213を送信バッファとして使用して、明細650を送信する。
このとき、先読みバッファ211(あるいは先読みファイル221)の内容は、以前のまま保たれている。したがって、利用者が戻るボタン873を押して検索結果画面860に戻り、続きを見るために次画面ボタン863を押した場合、データ検索装置100は、前回の続きの検索結果620を送信する。
It is assumed that the user presses the full
In the
At this time, the contents of the prefetch buffer 211 (or the prefetch file 221) are kept as before. Therefore, when the user presses the
この例において、明細取得要求550に含まれるデータが表わす指示情報は、「レコード番号が何某番」のレコードを指す。別の見方をすれば、指示情報は、「レコード番号が何某番」のレコードを検索する検索条件であると見ることもできる。したがって、クライアント装置300は、明細取得要求550をデータ検索装置100に対して送信するのではなく、上記検索条件を表わす検索条件データ512を含む検索実行要求510をデータ検索装置100に対して送信しても、指定したレコードのデータを取得できる。
しかし、クライアント装置300が明細取得要求550ではなく検索実行要求510を送信すると、データ検索装置100は古い検索結果を破棄するので、利用者が検索結果画面860に戻って続きを見ようとした場合、もう一度データベースを検索する必要が生じる。
これに対して、クライアント装置300が明細取得要求550を送信した場合には、明細送信部152が明細バッファ213を送信バッファとして使用して、明細650を送信する。このため、先読みバッファ211には古い検索結果が保持され、利用者が検索結果画面860に戻って続きを見ようとした場合でも、もう一度データベースを検索する必要がない。
In this example, the instruction information represented by the data included in the
However, when the
On the other hand, when the
この実施の形態におけるデータ検索装置100は、更に、明細取得要求受信部151と、明細変換部161と、明細管理部162と、明細送信部152とを有することを特徴とする。
上記明細取得要求受信部151は、上記受信装置(通信装置915)を用いて、上記データベースから取得するデータ(レコード)を指す指示情報を表わすデータを含む明細取得要求550を上記クライアント装置300から受信することを特徴とする。
上記データベース管理部132は、上記処理装置(CPU911)を用いて、上記明細取得要求受信部151が受信した明細取得要求550に含まれるデータが表わす指示情報に基づいて、上記データベース記憶部131が記憶したデータベースから上記指示情報が指すデータ(レコード)を取得することを特徴とする。
上記明細変換部161は、上記処理装置(CPU911)を用いて、上記データベース管理部132が取得したデータを上記クライアント装置300へ送信する形式に変換することを特徴とする。
上記明細管理部162は、上記記憶装置(RAM914)を用いて、上記明細変換部161が変換したデータ(明細データ)を(明細バッファ213に)記憶することを特徴とする。
上記明細送信部152は、上記送信装置(通信装置915)を用いて、上記明細管理部162が(明細バッファ213に)記憶したデータ(明細データ)を上記クライアント装置300へ送信することを特徴とする。
The
The detail acquisition
The
The
The
The
この実施の形態におけるデータ検索装置100によれば、先読み管理部142が確保した記憶領域(先読みバッファ211)とは異なる記憶領域(明細バッファ213)に明細管理部162がデータ(明細データ)を記憶し、明細管理部162が記憶したデータを明細送信部152が送信するので、先読み管理部142が記憶したデータ(レコードデータ626)は、そのまま保持される。これにより、検索結果を保持したまま、ある検索の途中に別の検索を割り込ませることができるという効果を奏する。
According to the
以上説明したデータ検索方法は、検索結果を複数件一括して送信するための先読みバッファ211とは別に、検索結果を1件だけ送信するための明細用バッファ(明細バッファ213)を使用する。
The data search method described above uses a detail buffer (detail buffer 213) for transmitting only one search result, in addition to the
以上説明したデータ検索装置100は、検索結果を複数件一括して送信するための先読みバッファ211とは別に、検索結果を1件だけ送信するための明細用バッファ(明細バッファ213)を備える。明細用バッファ(明細バッファ213)は、バッファ管理部(先読み管理部142)に管理されない。
The data search
アプリケーション(アプリケーション部301)は、データベースを検索し、検索結果を1件取得する。例えば、行ごとにシーケンシャル番号が振られているテーブルをその番号で検索する場合などである。データベースクライアント(クライアント装置300)からは、指定したレコードのデータ全てを取得する明細レコード取得要求(明細取得要求550)がデータベースサーバ(データ検索装置100)に送信される。 The application (application unit 301) searches the database and acquires one search result. For example, this is the case where a table with a sequential number assigned to each row is searched by that number. From the database client (client device 300), a detail record acquisition request (detail acquisition request 550) for acquiring all data of the specified record is transmitted to the database server (data search device 100).
データベースクライアント(クライアント装置300)が明細レコード取得要求(明細取得要求550)を送信した場合、データベースサーバ(データ検索装置100)は、以下のように動作する。
受信部(明細取得要求受信部151)が、データベースクライアント(クライアント装置300)からの明細レコード取得要求(明細取得要求550)を受信する。通信制御部(CPU911)は、データベース管理部132に対してデータベースクライアント(クライアント装置300)から指定されたレコードを特定する問い合わせ文を作成し検索実行要求する。データベース管理部132から終了ステータスが返るので、通信制御部(CPU911)は、続けてデータベース管理部132に対して検索結果取得要求する。データベース管理部132から返された検索結果を通信制御部(CPU911)は、通信データ変換部(明細変換部161)に渡す。通信データ変換部(明細変換部161)は通信データ形式に変換後、明細管理部162が明細用バッファ(明細バッファ213)を確保し格納する。送信部(明細送信部152)は明細用バッファ(明細バッファ213)の内容をデータベースクライアント(クライアント装置300)へ送信し、明細用バッファ(明細バッファ213)を解放後、処理を終了する。
なお、データベースクライアント(クライアント装置300)から複数件の検索結果を自由な問い合わせ文で取得するため、検索実行要求510、検索結果取得要求520、検索終了要求590が送信された場合のデータベースサーバ(データ検索装置100)の動作は、実施の形態1〜実施の形態3で説明したものと同様である。
When the database client (client device 300) transmits a detail record acquisition request (detail acquisition request 550), the database server (data search device 100) operates as follows.
The receiving unit (detail acquisition request receiving unit 151) receives the detail record acquisition request (detail acquisition request 550) from the database client (client device 300). The communication control unit (CPU 911) creates an inquiry statement for specifying a record designated from the database client (client device 300) to the
Note that in order to acquire a plurality of search results from the database client (client device 300) as a free query, the database server (data) when a
例えば、アプリケーション(アプリケーション部301)が検索実行要求する際に、1画面分を検索結果の取得件数(取得要求数)とし、検索結果には非常にサイズが大きいデータが含まれるため、取得する検索結果の列の長さを指定する。クライアント装置300は、検索結果取得要求520で取得した結果をそのまま画面に一覧表示する。ユーザ(利用者)は、一覧で全体を見たい結果があった場合にその指示を行い、アプリケーションは、明細レコード取得要求を実行する。ユーザは、次の一覧画面を表示させたい場合にその指示を行い、アプリケーションは次の検索結果取得要求を実行する。
これにより、アプリケーションで検索結果を全件取得し、データ表示を制御する必要がなく、必要な分だけ取得することができる。したがって、サイズが非常に大きいデータ型が存在するデータベースでは、検索結果のサイズも非常に大きくなるが、クライアント(クライアント装置300)上に全てを保持しないので、通信部分の負荷が減り、クライアントのリソースを圧迫することもない。
For example, when an application (application unit 301) makes a search execution request, the number of search results to be acquired (the number of acquisition requests) is one screen, and the search results include very large data. Specifies the length of the result column. The
As a result, all the search results are acquired by the application, and it is not necessary to control the data display, and it is possible to acquire only the necessary amount. Therefore, in a database in which a data type having a very large size exists, the size of the search result also becomes very large. There is no pressure.
このように、明細レコード1件分のバッファを先読みバッファ211とは別に持つようにして、データベースに対する検索処理の一般的な一連の流れである、検索実行要求510、検索結果取得要求520、検索終了要求590の間に、別の検索を割り込ませられるようにしているので、アプリケーションが不必要に、非常に大きなデータ量の検索結果を保持しなくてすむ。
As described above, a buffer for one detail record is provided separately from the
100 データ検索装置、101 サーバ装置、102 データベース管理装置、103 データベース記憶装置、111 検索実行要求受信部、112 検索ステータス送信部、121 検索結果取得要求受信部、122 検索結果送信部、131 データベース記憶部、132 データベース管理部、141 データ変換部、142 先読み管理部、143 先読みバッファ管理部、144 先読みファイル管理部、147 管理テーブル管理部、151 明細取得要求受信部、152 明細送信部、161 明細変換部、162 明細管理部、213 明細バッファ、191 検索終了要求受信部、192 了解送信部、193 先読み破棄部、211 先読みバッファ、212 管理テーブル、221 先読みファイル、300 クライアント装置、301 アプリケーション部、302 インターフェース部、311 検索実行要求送信部、312 検索ステータス受信部、321 検索結果取得要求送信部、322 検索結果受信部、351 明細取得要求送信部、352 明細受信部、391 検索終了要求送信部、392 了解受信部、501 コード部、502 データ部、510 検索実行要求、511 検索実行要求コード、512 検索条件データ、520 検索結果取得要求、521 検索結果取得要求コード、522 取得要求数データ、550 明細取得要求、590 検索終了要求、591 検索終了要求コード、610 検索ステータス、611 検索ステータスコード、612 検索ステータスデータ、620 検索結果、621 検索結果コード、622 データヘッダ、623 ヘッダデータ、624 フィールドヘッダ、625 フィールドデータ、626 レコードデータ、650 明細、690 了解、691 了解コード、711 オフセット、712 データ長、721 ヘッダ記憶領域、722〜724 空き領域、731 送信位置、732 送信長さ、800 データ検索システム、850 検索条件入力画面、851 検索条件入力欄、852 検索ボタン、860 検索結果画面、861 検索結果表示欄、862 全文表示ボタン、863 次画面ボタン、864 条件変更ボタン、870 全文表示画面、871 日時表示欄、872 ログ表示欄、873 戻るボタン、901 表示装置、902 キーボード、903 マウス、904 FDD、905 CDD、906 プリンタ装置、907 スキャナ装置、910 システムユニット、911 CPU、912 バス、913 ROM、914 RAM、915 通信装置、920 磁気ディスク装置、921 OS、922 ウィンドウシステム、923 プログラム群、924 ファイル群、931 電話器、932 ファクシミリ機、940 インターネット、941 ゲートウェイ、942 LAN。 DESCRIPTION OF SYMBOLS 100 Data search apparatus, 101 Server apparatus, 102 Database management apparatus, 103 Database storage apparatus, 111 Search execution request reception part, 112 Search status transmission part, 121 Search result acquisition request reception part, 122 Search result transmission part, 131 Database storage part , 132 Database management unit, 141 Data conversion unit, 142 Prefetch management unit, 143 Prefetch buffer management unit, 144 Prefetch file management unit, 147 Management table management unit, 151 Detail acquisition request reception unit, 152 Detail transmission unit, 161 Detail conversion unit 162 Detail management unit, 213 Detail buffer, 191 Search end request receiving unit, 192 Acknowledgment transmission unit, 193 Prefetch discard unit, 211 Prefetch buffer, 212 Management table, 221 Prefetch file, 300 Client device, 3 DESCRIPTION OF SYMBOLS 1 Application part, 302 Interface part, 311 Search execution request transmission part, 312 Search status reception part, 321 Search result acquisition request transmission part, 322 Search result reception part, 351 Detailed acquisition request transmission part, 352 Detailed reception part, 391 Search end Request transmission unit, 392 Acknowledgment reception unit, 501 Code unit, 502 Data unit, 510 Search execution request, 511 Search execution request code, 512 Search condition data, 520 Search result acquisition request, 521 Search result acquisition request code, 522 Number of acquisition requests Data, 550 Detail acquisition request, 590 Search end request, 591 Search end request code, 610 Search status, 611 Search status code, 612 Search status data, 620 Search result, 621 Search result code, 622 Data header, 623 Header data, 624 field header, 625 field data, 626 record data, 650 specification, 690 OK, 691 OK code, 711 offset, 712 data length, 721 header storage area, 722-724 free area, 731 transmission position, 732 transmission length 800 data search system, 850 search condition input screen, 851 search condition input field, 852 search button, 860 search result screen, 861 search result display field, 862 full text display button, 863 next screen button, 864 condition change button, 870 Full text display screen, 871 Date / time display column, 872 Log display column, 873 Return button, 901 Display device, 902 Keyboard, 903 Mouse, 904 FDD, 905 CDD, 906 Printer device, 907 Scanner device, 910 system unit, 911 CPU, 912 bus, 913 ROM, 914 RAM, 915 communication device, 920 magnetic disk device, 921 OS, 922 window system, 923 program group, 924 file group, 931 telephone, 932 facsimile machine, 940 Internet 941 Gateway, 942 LAN.
Claims (9)
データを記憶する記憶装置と、データを処理する処理装置と、データを送信する送信装置と、データを受信する受信装置と、データベース記憶部と、検索実行要求受信部と、データベース管理部と、データ変換部と、先読み管理部と、検索結果取得要求受信部と、検索結果送信部とを有し、
上記データベース記憶部は、上記記憶装置を用いて、上記データベースを記憶し、
上記検索実行要求受信部は、上記受信装置を用いて、上記データベースを検索する検索条件を表わすデータを含む検索実行要求を上記クライアント装置から受信し、
上記データベース管理部は、上記処理装置を用いて、上記検索実行要求受信部が受信した検索実行要求に含まれるデータが表わす検索条件に基づいて、上記データベース記憶部が記憶したデータベースから上記検索条件に合致するデータを検索し、上記処理装置を用いて、検索したデータを、上記データベース記憶部が記憶したデータベースから取得し、
上記データ変換部は、上記処理装置を用いて、上記データベース管理部が取得したデータを上記クライアント装置へ送信する形式に変換し、
上記先読み管理部は、上記記憶装置を用いて、上記データ変換部が変換したデータを記憶し、
上記検索結果取得要求受信部は、上記受信装置を用いて、上記クライアント装置が取得を要求するデータの取得要求数を表わすデータを含む検索結果取得要求を、上記クライアント装置から受信し、
上記検索結果送信部は、上記送信装置を用いて、上記検索結果取得要求受信部が受信した検索結果取得要求に含まれるデータが表わす取得要求数に基づいて、上記先読み管理部が記憶したデータから、上記取得要求数のデータを上記クライアント装置へ送信する
ことを特徴とするデータ検索装置。 In a data retrieval device that retrieves a database in response to a request from a client device,
Storage device for storing data, processing device for processing data, transmitting device for transmitting data, receiving device for receiving data, database storage unit, search execution request receiving unit, database management unit, data A conversion unit, a prefetch management unit, a search result acquisition request reception unit, and a search result transmission unit;
The database storage unit stores the database using the storage device,
The search execution request receiving unit receives a search execution request including data representing a search condition for searching the database from the client device using the receiving device,
The database management unit uses the processing device to change from the database stored in the database storage unit to the search condition based on the search condition represented by the data included in the search execution request received by the search execution request receiving unit. Search for matching data, and use the processing device to obtain the searched data from the database stored in the database storage unit,
The data conversion unit converts the data acquired by the database management unit into a format to be transmitted to the client device using the processing device,
The prefetch management unit stores the data converted by the data conversion unit using the storage device,
The search result acquisition request receiving unit receives, from the client device, a search result acquisition request including data representing the number of acquisition requests for data that the client device requests to acquire using the receiving device,
From the data stored in the prefetch management unit based on the number of acquisition requests represented by the data included in the search result acquisition request received by the search result acquisition request reception unit using the transmission device. A data search device that transmits data of the number of acquisition requests to the client device.
上記先読み管理部は、上記記憶装置を用いて、順序づけられた複数の記憶領域を確保し、上記記憶装置を用いて、上記データ変換部が変換したデータを、確保した記憶領域に記憶し、
上記管理テーブル管理部は、上記記憶装置を用いて、上記先読み管理部がデータを記憶した記憶領域を表わすデータを記憶し、
上記検索結果送信部は、上記送信装置を用いて、上記管理テーブル管理部が記憶したデータが表わす記憶領域に記憶されたデータを上記クライアント装置へ送信する
ことを特徴とする請求項1に記載のデータ検索装置。 The data search apparatus further includes a management table management unit,
The prefetch management unit secures a plurality of ordered storage areas using the storage device, stores the data converted by the data conversion unit using the storage device in the secured storage area,
The management table management unit uses the storage device to store data representing a storage area in which the prefetch management unit stores data,
The search result transmission unit transmits data stored in a storage area represented by data stored in the management table management unit to the client device using the transmission device. Data retrieval device.
上記検索結果送信部は、上記処理装置を用いて、上記クライアント装置へ送信するデータに付加するヘッダデータを生成し、上記記憶装置を用いて、上記管理テーブル管理部が記憶したデータが表わす記憶領域の前の所定の大きさの記憶領域に、生成したヘッダデータを記憶し、上記送信装置を用いて、記憶したヘッダデータと、上記ヘッダデータを記憶した記憶領域に続く記憶領域に記憶されたデータとを上記クライアント装置へ送信する
ことを特徴とする請求項2に記載のデータ検索装置。 The prefetch management unit uses the storage device as a storage area of a predetermined size from the beginning of the secured storage area as a header storage area, and converts the data converted by the data conversion unit to the next of the header storage area. Store in order from the storage area,
The search result transmission unit generates header data to be added to data to be transmitted to the client device using the processing device, and uses the storage device to store a storage area represented by the data stored by the management table management unit The generated header data is stored in a storage area of a predetermined size before, and the stored header data and the data stored in the storage area subsequent to the storage area storing the header data using the transmission device are stored. The data search device according to claim 2, wherein the data is transmitted to the client device.
上記管理テーブル管理部は、更に、上記記憶装置を用いて、上記先読み管理部がそれぞれのデータを記憶した記憶領域の大きさを表わすデータを記憶し、
上記検索結果送信部は、上記処理装置を用いて、上記管理テーブル管理部が記憶したデータが表わす大きさに基づいて、上記クライアント装置へ送信するデータ全体の長さを算出し、上記送信装置を用いて、算出した長さに基づいて、上記記憶領域に記憶されたデータを上記クライアント装置へ送信する
ことを特徴とする請求項3に記載のデータ検索装置。 The prefetch management unit uses the storage device to store data converted by the data conversion unit using one or more continuous storage areas for each piece of data converted by the data conversion unit,
The management table management unit further stores data representing the size of the storage area in which the prefetch management unit stores the respective data using the storage device,
The search result transmission unit calculates the length of the entire data to be transmitted to the client device based on the size represented by the data stored in the management table management unit, using the processing device, The data search device according to claim 3, wherein the data search device transmits the data stored in the storage area to the client device based on the calculated length.
上記明細取得要求受信部は、上記受信装置を用いて、上記データベースから取得するデータを指す指示情報を表わすデータを含む明細取得要求を上記クライアント装置から受信し、
上記データベース管理部は、更に、上記処理装置を用いて、上記明細取得要求受信部が受信した明細取得要求に含まれるデータが表わす指示情報に基づいて、上記データベース記憶部が記憶したデータベースから上記指示情報が指すデータを取得し、
上記明細変換部は、上記処理装置を用いて、上記データベース管理部が取得した上記指示情報が指すデータを上記クライアント装置へ送信する形式に変換し、
上記明細管理部は、上記記憶装置を用いて、上記明細変換部が変換したデータを記憶し、
上記明細送信部は、上記送信装置を用いて、上記明細管理部が記憶したデータを上記クライアント装置へ送信する
ことを特徴とする請求項1乃至請求項4のいずれかに記載のデータ検索装置。 The data search apparatus further includes a detail acquisition request receiving unit, a detail converting unit, a detail managing unit, and a detail transmitting unit.
The specification acquisition request receiving unit receives, from the client device, a specification acquisition request including data representing instruction information indicating data acquired from the database, using the receiving device.
The database management unit further uses the processing device to execute the instruction from the database stored in the database storage unit based on instruction information represented by data included in the detail acquisition request received by the detail acquisition request receiving unit. Get the data pointed to by the information,
The detail conversion unit uses the processing device to convert the data indicated by the instruction information acquired by the database management unit into a format to be transmitted to the client device,
The detail management unit stores the data converted by the detail conversion unit using the storage device,
5. The data search device according to claim 1, wherein the specification transmission unit transmits the data stored in the specification management unit to the client device using the transmission device. 6.
上記記憶装置のうち第二の記憶装置は、上記記憶装置のうち第一の記憶装置と比較して、データの書き込み及び読み出しにかかる時間が長く、
上記先読み管理部は、先読みバッファ管理部と、先読みファイル管理部とを有し、
上記先読みバッファ管理部は、上記第一の記憶装置を用いて、データを記憶する記憶領域を確保し、上記処理装置を用いて、確保した記憶領域に空きがあるか否かを判定し、確保した記憶領域に空きがあると判定した場合に、上記第一の記憶装置を用いて、上記データ変換部が変換したデータを空いている記憶領域に記憶し、確保した記憶領域に空きがないと判定した場合に、上記第二の記憶装置を用いて、上記データ変換部が変換したデータを記憶し、
上記先読みファイル管理部は、上記処理装置を用いて、上記先読みバッファ管理部が上記第二の記憶装置を用いて記憶したデータがあるか否かを判定し、上記先読みバッファ管理部が上記第二の記憶装置を用いて記憶したデータがあると判定した場合に、上記先読みバッファ管理部が確保した記憶領域に空きがあるか否かを判定し、上記先読みバッファ管理部が確保した記憶領域に空きがあると判定した場合に、上記第一の記憶装置を用いて、上記先読みバッファ管理部が上記第二の記憶装置を用いて記憶したデータを空いている記憶領域に記憶し、
上記検索結果送信部は、上記送信装置を用いて、上記先読み管理部が上記第一の記憶装置を用いて記憶したデータを上記クライアント装置へ送信する
ことを特徴とする請求項1乃至請求項5のいずれかに記載のデータ検索装置。 The data search device has two or more storage devices,
Of the storage devices, the second storage device takes a longer time to write and read data than the first storage device of the storage devices,
The prefetch management unit includes a prefetch buffer management unit and a prefetch file management unit,
The prefetch buffer management unit secures a storage area for storing data using the first storage device, determines whether there is a free space in the secured storage area using the processing device, and secures it. When it is determined that there is an empty storage area, the data converted by the data conversion unit is stored in the empty storage area using the first storage device, and there is no empty storage area. If determined, the second storage device is used to store the data converted by the data converter,
The prefetch file management unit determines whether there is data stored by the prefetch buffer management unit using the second storage device using the processing device, and the prefetch buffer management unit uses the second prefetch buffer management unit. When it is determined that there is data stored using the storage device, it is determined whether there is an empty storage area secured by the prefetch buffer management unit, and the storage area secured by the prefetch buffer management unit is free If it is determined that there is, using the first storage device, the prefetch buffer management unit stores the data stored using the second storage device in a free storage area,
The search result transmission unit transmits data stored by the prefetch management unit using the first storage device to the client device using the transmission device. The data search device according to any one of the above.
上記クライアント装置は、データを送信する送信装置と、データを受信する受信装置と、検索実行要求送信部と、検索結果取得要求送信部と、検索結果受信部とを有し、
上記検索実行要求送信部は、上記送信装置を用いて、上記検索実行要求を上記データ検索装置へ送信し、
上記検索結果取得要求送信部は、上記送信装置を用いて、上記検索結果取得要求を上記データ検索装置へ送信し、
上記検索結果受信部は、上記受信装置を用いて、上記検索結果送信部が送信したデータを受信する
ことを特徴とするシステム。 A client device and the data search device according to any one of claims 1 to 6,
The client device includes a transmission device that transmits data, a reception device that receives data, a search execution request transmission unit, a search result acquisition request transmission unit, and a search result reception unit,
The search execution request transmission unit transmits the search execution request to the data search device using the transmission device,
The search result acquisition request transmission unit transmits the search result acquisition request to the data search device using the transmission device,
The search result receiving unit receives the data transmitted by the search result transmitting unit using the receiving device.
上記受信装置が、上記データベースを検索する検索条件を表わすデータを含む検索実行要求を上記クライアント装置から受信し、
上記処理装置が、受信した検索実行要求に含まれるデータが表わす検索条件に基づいて、上記データベースから上記検索条件に合致するデータを検索し、
上記処理装置が、検索したデータを、上記データベースから取得し、
上記処理装置が、取得したデータを上記クライアント装置へ送信する形式に変換し、
上記記憶装置が、変換したデータを記憶し、
上記受信装置が、上記クライアント装置が取得を要求するデータの取得要求数を表わすデータを含む検索結果取得要求を、上記クライアント装置から受信し、
上記送信装置が、受信した検索結果取得要求に含まれるデータが表わす取得要求数に基づいて、記憶したデータから、上記取得要求数のデータを上記クライアント装置へ送信する
ことを特徴とするデータ検索方法。 Data search in which a data search device having a storage device for storing data, a processing device for processing data, a transmission device for transmitting data, and a reception device for receiving data searches a database in response to a request from a client device In the method
The receiving device receives a search execution request including data representing a search condition for searching the database from the client device;
The processing device searches the database for data that matches the search condition based on the search condition represented by the data included in the received search execution request,
The processing device acquires the retrieved data from the database,
The processing device converts the acquired data into a format to be transmitted to the client device,
The storage device stores the converted data,
The receiving device receives a search result acquisition request including data representing the number of acquisition requests for data that the client device requests to acquire from the client device,
A data search method characterized in that the transmission device transmits data of the number of acquisition requests from the stored data to the client device based on the number of acquisition requests represented by data included in the received search result acquisition request. .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007326825A JP2009151411A (en) | 2007-12-19 | 2007-12-19 | Data retrieval device, system, program and data retrieval method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007326825A JP2009151411A (en) | 2007-12-19 | 2007-12-19 | Data retrieval device, system, program and data retrieval method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009151411A true JP2009151411A (en) | 2009-07-09 |
Family
ID=40920527
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007326825A Pending JP2009151411A (en) | 2007-12-19 | 2007-12-19 | Data retrieval device, system, program and data retrieval method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009151411A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110168521A (en) * | 2016-10-20 | 2019-08-23 | 日本电信电话株式会社 | Data processing equipment and data processing method |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04242458A (en) * | 1991-01-16 | 1992-08-31 | Nec Corp | Decentralized data base system |
JPH10124358A (en) * | 1996-10-15 | 1998-05-15 | Nec Corp | Cursor system sql statement processing method of rda server |
JPH11306053A (en) * | 1998-04-24 | 1999-11-05 | Hitachi Ltd | Data transfer method and information processor for executing the method |
JP2000339339A (en) * | 1999-05-31 | 2000-12-08 | Denso Corp | Device for retrieving information |
JP2004013758A (en) * | 2002-06-11 | 2004-01-15 | Nec Corp | Method and system for controlling record pre-reading, server computer and program for server |
-
2007
- 2007-12-19 JP JP2007326825A patent/JP2009151411A/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04242458A (en) * | 1991-01-16 | 1992-08-31 | Nec Corp | Decentralized data base system |
JPH10124358A (en) * | 1996-10-15 | 1998-05-15 | Nec Corp | Cursor system sql statement processing method of rda server |
JPH11306053A (en) * | 1998-04-24 | 1999-11-05 | Hitachi Ltd | Data transfer method and information processor for executing the method |
JP2000339339A (en) * | 1999-05-31 | 2000-12-08 | Denso Corp | Device for retrieving information |
JP2004013758A (en) * | 2002-06-11 | 2004-01-15 | Nec Corp | Method and system for controlling record pre-reading, server computer and program for server |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110168521A (en) * | 2016-10-20 | 2019-08-23 | 日本电信电话株式会社 | Data processing equipment and data processing method |
CN110168521B (en) * | 2016-10-20 | 2023-08-22 | 日本电信电话株式会社 | Data processing apparatus and data processing method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5220974B2 (en) | Apparatus and method for acceleration of hardware execution or operating system functions | |
JP4186602B2 (en) | Update data writing method using journal log | |
US8015146B2 (en) | Methods and systems for assisting information processing by using storage system | |
US20110119602A1 (en) | Web server, web browser and web system | |
JP5352491B2 (en) | Method and apparatus for thin provisioning volume backup and restore | |
JP2012519907A5 (en) | ||
JPH05181769A (en) | Document data managing system | |
WO2017117919A1 (en) | Data storage method and device | |
US20020178176A1 (en) | File prefetch contorol method for computer system | |
JP2008026986A (en) | Information browsing device, its control method and program | |
CN109947720A (en) | A kind of pre-reading method of files, device, equipment and readable storage medium storing program for executing | |
JP2002183088A5 (en) | ||
US7277991B2 (en) | Method, system, and program for prefetching data into cache | |
KR20060017816A (en) | Method and device for transferring data between a main memory and a storage device | |
JP5448428B2 (en) | Data management system, data management method, and data management program | |
US9342472B2 (en) | PRD (physical region descriptor) pre-fetch methods for DMA (direct memory access) units | |
JP2009151411A (en) | Data retrieval device, system, program and data retrieval method | |
US20020156943A1 (en) | Command issuing apparatus for high-speed serial interface | |
CN113326020A (en) | Cache device, cache, system, data processing method, device and medium | |
JP6199782B2 (en) | Computer system | |
TWI235921B (en) | System and method for effectively performing physical direct memory access operations | |
US7284075B2 (en) | Inbound packet placement in host memory | |
US5706512A (en) | Computer program product for queuing and retrieving data objects to and from a shared storage medium | |
US5706513A (en) | System and method for queuing an retrieving data objects to and from a shared storage medium | |
US20040193771A1 (en) | Method, apparatus, and system for processing a plurality of outstanding data requests |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101008 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120809 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120821 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120906 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121113 |