JP2013069213A - 検索要求処理装置 - Google Patents

検索要求処理装置 Download PDF

Info

Publication number
JP2013069213A
JP2013069213A JP2011208844A JP2011208844A JP2013069213A JP 2013069213 A JP2013069213 A JP 2013069213A JP 2011208844 A JP2011208844 A JP 2011208844A JP 2011208844 A JP2011208844 A JP 2011208844A JP 2013069213 A JP2013069213 A JP 2013069213A
Authority
JP
Japan
Prior art keywords
search
batch
request
search request
merging
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.)
Granted
Application number
JP2011208844A
Other languages
English (en)
Other versions
JP5799706B2 (ja
Inventor
Kiichi Yamada
樹一 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011208844A priority Critical patent/JP5799706B2/ja
Priority to US13/614,628 priority patent/US20130080463A1/en
Publication of JP2013069213A publication Critical patent/JP2013069213A/ja
Application granted granted Critical
Publication of JP5799706B2 publication Critical patent/JP5799706B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】負荷が高い場合でも検索処理の高いスループットを実現しつつ、レスポンス時間の増加を抑制することのできる検索要求処理装置を提供する。
【解決手段】クライアント端末から検索要求を受信すると、現在実行している一括検索に該検索要求を併合する場合としない場合のレスポンス時間を計算し、一括検索に該検索要求を併合したほうが有利な場合にのみ、一括検索に該検索要求を併合して検索処理を行う。あるいは、検索要求は必ず一括検索に併合するとし、一括検索のレスポンス時間が短くなるように、検索対象のデータのグループへの分割数を変更する。
【選択図】図5

Description

以下の実施形態は、検索要求を処理する検索要求処理装置に関する。
今日、情報のデジタル化が進み、従来紙媒体等で保管されていた文書が電子化され、データベースに格納されるようになってきた。文書を電子化することにより、文書の内容を機械で検索することができるようになり、情報検索の利便性が非常に高くなった。
従来のデータ検索で、多くのユーザがアクセスするデータベース10においては、処理すべき検索要求が多くなるが、それだけ検索結果を返送するレスポンス時間が多くかかってしまうという問題がある。
また、検索対象のデータを参照して、参照されたデータに対して複数の検索要求に基づく検索処理をまとめて行なう検索技術(一括検索技術)がある。
なお、多重度は、1度に処理が要求される検索要求の件数である。
一括検索を行なう従来の方法として、Aho-Corasick法文字列探索アルゴリズムの一種がある。これは、検索対象のデータのサイズに比例した時間で検索でき、検索キーワード(検索したい文字列)の数に依存しない高速な検索処理手法である。
一括検索のその他の情報については、例えば、以下のウェブサイトを参照されたい。
http://d.hatena.ne.jp/naoya/20090405/aho_corasick
http://ja.wikipedia.org/wiki/エイホ-コラシック法
従来技術には、受信したトランザクションを所定の条件が満たされるまでスタックしておき、この条件が満たされたら、スタックされていたトランザクションを一括して処理するものがある。
特開平3−105544号公報 特開2002−222194号公報
Alfred V. Aho, Margaret J. Corasick "Efficient String Matching: An Aid to Bibliographic Search", Comm. ACM, 1975
一括検索技術は、負荷が高い場合には、検索処理のレスポンス時間を一定値以下に保証しつつ高いスループットを実現する効率が良い技術である。しかし、検索処理のレスポンス時間が、一括検索処理時間の最大2倍と大きくばらつく。
1つの側面では、本発明は、レスポンス時間の増加を抑制することを目的とする。
以下の実施形態の一側面における検索要求処理装置は、検索対象のデータを格納するデータ格納部と接続された検索要求処理装置であって、クライアント端末からの検索要求を受信する要求受信部と、該検索対象のデータに対し一括検索を行う一括検索部と、現在行なっている該一括検索に新たに受信した該検索要求を併合して該一括検索を実行する場合と該検索要求を該一括検索に併合しないで該検索要求を待機させる場合についてレスポンス時間を計算し、併合する場合の方が併合しない場合よりも該レスポンス時間が短くなる場合に、該検索要求を該一括検索に併合する検索制御部とを備える。
以下の実施形態における別の側面の検索要求処理装置は、複数のグループに分割された検索対象のデータを格納するデータ格納部と接続された検索要求処理装置であって、クライアント端末からの検索要求を受信する要求受信部と、該検索対象のデータに対し一括検索を行う一括検索部と、現在行なっている該一括検索に新たに受信した該検索要求を併合して該一括検索を実行する場合についてレスポンス時間を計算し、該レスポンス時間が短くなるように、該複数のグループの分割数を変更する検索制御部とを備える。
1態様によれば、レスポンス時間の増加を抑制することができる。
従来のデータ検索要求の処理方式を説明する図である。 多くのアクセスが集中した場合のレスポンス時間の遅れを解消しようとする従来技術の一例を説明する図である。 一括検索におけるレスポンス時間について説明する図である。 本実施形態に従った検索要求処理装置を含むシステム構成図である。 本実施形態の一構成例に従った全体処理のフローチャートである。 データ構造図である。 要求受付け部の処理のフローチャートである。 検索制御部・一括検索実行部の処理のフローチャートである。 検索制御部・一括検索実行部の処理のフローチャートである。 本実施形態の別の構成例に従った、検索制御部、一括検索実行部の処理のフローチャートである。 本実施形態の別の構成例に従った、検索制御部、一括検索実行部の処理のフローチャートである。 区間数の決定方法を示した図である。 区間数の変化の様子を示した図である。 本実施形態をプログラムで実現する場合の、プログラムを実行するコンピュータのブロック構成図である。
まず、データ検索要求の処理方式について図1を用いて説明する。
データベース10に検索対象データが格納される。複数のユーザは、クライアント端末12より、自分の検索したい条件(1)〜(100)をそれぞれ設定し、検索要求を検索要求処理装置11に送信する。検索要求処理装置11は、データベース10内の検索対象データを検索条件に従って検索し、検索結果をクライアント端末12に返送する。この場合、検索要求処理装置11は、検索条件を1つずつ順番にしか処理できないので、検索条件(1)について検索処理している場合には、他のユーザが、検索条件(2)〜(100)を有する検索要求を送信しても、検索条件(1)の検索処理が終了するまで待たされることになる。したがって、多くのユーザがアクセスするデータベース10においては、処理すべき検索要求が多くなるが、それだけ検索結果を返送するレスポンス時間が多くかかってしまうという問題がある。
図1の右に示されたグラフは、横に検索要求件数、縦に検索時間をとって、検索時間のバラツキを示したものである。検索要求が1つずつしか処理できない場合には、検索要求が増えるに従い、検索時間が様々な要因で変化し、バラツキが多くなる。なお、多重度は、1度に処理が要求される検索要求の件数である。
図2は、多くのアクセスが集中した場合のレスポンス時間の遅れを解消しようとする一括検索技術の一例を説明する図である。
図2の技術は、アクセスが集中して負荷が高いとき(時間当たりに到着する検索要求の数が多いとき)でも、レスポンスの低下を防ぎ、高いスループットを実現しようとする技術である。
図2においては、検索要求処理装置11aは、複数のクライアント端末12から到着する検索要求を、それぞれ1つずつ順に処理するのではなく、複数の検索要求を併合して処理(検索)する(以降、一括検索と呼ぶ)。
これによって、検索対象データを参照する回数が、併合された検索要求の複数について1度だけとなり、負荷が高い場合でも一定のレスポンス時間で結果を返すことができる。
一括検索を行うため、一括検索中に到着する複数の検索要求の処理は、実行中の一括検索の後になる。一括検索が終了した後、溜まっている検索要求を併合して、次の一括検索処理を行う。
図2右側のグラフは、横に検索要求件数、縦に検索時間をとって、検索時間のバラツキを示したものである。一括検索においては、複数の検索要求をまとめて一括検索を行なうので、1つの検索要求の待ち時間が短く、検索要求が多くなっても、検索時間はそれほど大きく変わることなく処理することができる。
図3は、一括検索におけるレスポンス時間について説明する図である。
図3において、検索要求q1〜q6が順次、一括検索を行なう検索要求処理装置に入力されたとする。最初、検索要求q1が到着したので、検索要求q1の処理を開始する。そして、検索要求q1の処理が終了する前に、検索要求q2、q3が順番に到着する。すると、検索要求q1を処理している間は、他の検索要求は処理できないので、検索要求q2、q3は、検索要求q1の処理の終了まで待たされることになる。検索要求q1の処理が終わると、次に、検索要求q2、q3をまとめて一括検索処理する。この間に、検索要求q4〜q6が到着する。検索要求q2、q3の一括検索処理が終了すると、検索要求q4〜q6までをまとめて一括検索処理する。
今、検索要求q2に注目すると、検索要求q2が到着してから、検索要求q3との一括検索が始まるまでの待ち時間は、最大(q1の到着直後にq2が到着)の場合、検索要求q1の処理時間だけかかる。そして、検索要求q2、q3の一括検索が始まってから終了するまでの処理時間がレスポンスを得るまでにかかる。1つの検索要求の処理であろうと、一括検索の処理であろうと、データベースの検索対象データを一通り検索するのにかかる時間はほぼ同じであるので、検索要求q2のレスポンス時間は、最大の待ち時間と検索処理時間を加えて、最大、一括検索処理時間の2倍となる。
検索要求が到着するたびに、一括検索を一時停止し、到着した検索要求を実行中の一括検索処理に加える(全体の検索要求を併合しなおして一括検索する)方法が考えられる。この方法では、負荷が低い場合には、待ち時間の削減による、検索処理のレスポンス時間の減少と、検索処理のレスポンス時間のばらつきを無くすことができる。しかし、検索要求の数が増え、負荷が高くなると、一括検索処理の一時停止による時間が増加していき、負荷が高い場合の検索処理の平均レスポンス時間が増加してしまう。
本実施形態の一構成例においては、新たな検索要求が到着するたびに、一括検索処理へ追加(検索要求の併合)を常に行うのではなく、そのときの負荷に応じて、一括検索処理へ追加するかどうかを決める。
まず、一括検索処理の一時停止にかかる時間を計測する。そして、例えば、過去の一時停止時間から、今回の一時停止時間を予測(計算)する。一時停止時間の予測値として、例えば、過去の複数回の一時停止時間の平均値を用いる。次に、一括検索処理にかかる時間を計測する。そして、例えば、過去の一括検索時間から、実行中の一括検索が終了する時間を予測(計算)する。一括検索が終了する時間の予測値としても、例えば、過去の複数回の一括検索時間の平均値を用いる。
また、新たな検索要求が到着した場合に、一時停止時間の予測値と実行中の一括検索の終了時間の予測値から、この時点で一括検索処理を一時停止して一括検索処理に検索要求を追加したと仮定した場合の、実行中の検索要求のレスポンス時間の増加量を計算する(追加する場合の悪影響・デメリットを計算する)。更に、新たな検索要求が到着した場合に、一時停止時間の予測値と一括検索の終了時間の予測値から、この時点で一括検索処理を一時停止して一括検索処理に検索要求を追加したと仮定した場合の、今回到着した検索要求のレスポンス時間の減少量を計算する(追加する場合の効果・メリットを計算する)。
そして、両者から、この時点で一括検索処理を一時停止して一括検索処理に検索要求を追加した場合の全体のレスポンス時間の変化を計算する。レスポンス時間が減少するならば、実行中の一括検索処理を一時停止させ、到着した検索要求を一括検索処理に加える。レスポンス時間が増加するならば、到着した検索要求は一括検索処理に加えずに、実行を保留する(待たせる)。
以上のような本実施形態によって、検索処理の高いスループットと個々の検索処理の短いレスポンス時間のどちらを優先するかを、そのときの負荷に応じて自動的に計算して実現する。
これによれば、検索システムの利用者にとっては、検索レスポンス時間が削減され、検索レスポンスのばらつきが減少する。また、検索システムの運用側にとっては、検索レスポンス時間の削減にもかかわらず、負荷が高い場合の高いスループットが維持される。そして、検索システムを含む業務システムの設計者にとっては、検索システム自身が、そのときの負荷に応じて自動的に振舞いを変えることで、設計時の見積もりや検証のコストが減る。
あるいは、本実施形態の他の構成例としては、新たに到着した検索要求は必ず一括検索に併合するとし、一括検索を行なうデータの処理単位を、レスポンス時間が短くなるように設定することも可能である。検索対象のデータをグループ分けして、一括検索の処理単位をこのグループ単位とすることが可能であり、このグループへの分割数を、レスポンス時間がより短くなるように可変するというものである。
図4は、本実施形態に従った検索要求処理装置を含むシステム構成図である。
本実施形態の検索要求処理装置は、検索要求を受け付ける要求受付部20、検索結果をクライアント端末に返却する結果返却部21、検索処理の仕方の制御を行なう検索制御部22、一括検索を実行する一括検索実行部24からなり、これに、検索データを格納するデータ格納部23(データベース)を備えて、システムが構成される。
要求受付部20は、クライアント端末からの検索要求を受信し、検索要求キューに格納する。検索要求は、検索要求キューから取り出され、検索制御部22に送られる。検索制御部22は、要求受付部20から送られてきた、検索待機中の検索要求の集合を保持する。また、検索制御部22は、現在一括検索中の検索要求の集合も保持する。更に、検索制御部22は、データ格納部23に格納されている格納データの集合をグループに分割して、グループ単位で検索を実行させるために、各グループを検索区間としてIDを付し、検索要求とその検索要求の検索開始区間IDとの対応関係を保持する。
一括検索実行部24は、複数の検索要求を併合した一括検索用の検索要求を保持する。データ格納部23は、格納データの集合を保持すると共に、検索区間IDとその区間に含まれるデータの集合との対応関係を保持する。
図5は、本実施形態の一構成例に従った全体処理のフローチャートである。
検索は、いくつかの区間に分割された格納データ集合について1区間ずつ行い、かつ、全体を循環しながら一括検索処理を行う。
ステップS10において、新たな検索要求が到着したか否かを判断する。ステップS10の判断で、到着していないと判断された場合には、ステップS12に進む。ステップS10で、新たな検索要求が到着したと判断された場合、ステップS11で、その検索要求を検索待機中の検索要求集合に加える。
ステップS12において、検索待機中の検索要求を一括検索処理に加えた場合の、平均レスポンス時間の変化を計算する。平均レスポンス時間が減少すると判断された場合、ステップS13に進む。その他の場合には、ステップS15に進む。ステップS13で、検索待機中の検索要求集合内の検索要求を一括検索中の検索要求集合に移動して、ステップS14で、一括検索中の検索要求集合内の全ての検索要求を併合して、併合された検索要求を作成する。
ステップS15で、検索待機中の検索要求集合内の検索要求を移動したかどうかに関わらず、現在の併合された検索要求を用いて一括検索処理を一区間実施する。ステップS16で、検索が終了した検索要求があれば、一括検索中の検索要求集合からその検索要求を取り除き、ステップS10に戻る。
ステップS12で、平均レスポンス時間が減少しないため、待機中の要求を一括処理に加えないと判断された場合、検索待機中の検索要求集合に検索要求が増えていくが、一括検索処理が進むことにより、一括検索中の検索要求は減っていき最終的にはゼロになる。一括検索中の検索要求が減っていけば、検索待機中の検索要求を一括処理に加えることによるデメリットが減少するため、ステップS12で平均レスポンス時間が減少すると判断し、検索待機中の検索要求は、いずれは必ず一括検索処理される。
図6は、データ構造図である。
格納データ集合30は、データベース等、システムに格納されているデータそのものである。区間ID36は、格納データ集合30を複数のレコードごとにグループに分け、各グループを検索区間としてみたときの区間を特定する識別子である。一括検索中の検索要求集合31は、検索処理実行中の検索要求で、かつ、まだ検索処理が終了していない検索要求の集合を表す。区間IDとデータ集合の対応32は、格納データ集合30をグループに分類したそれぞれを示す区間IDと、その区間に分類されたデータの対応関係を表す。次の一括検索実施区間ID33は、レコードを先頭から順番に巡回しながら一括検索を行っている一括検索処理が、次に検索対象とする区間を表す。検索待機中の検索要求集合34は、一括検索処理に加えられるのを待っている検索要求を表す。検索要求と検索開始区間IDの対応35は、検索要求が一括検索要求に併合され、検索を開始した区間の区間IDとの対応を示す。
図7は、要求受付け部の処理のフローチャートである。
要求受付け部は、ステップS20において、利用者が使用するクライアント端末から検索要求を受信するまで待ち、受信した場合には、この要求を受付け、ステップS21において、検索要求キューに追加する。
図8A、Bは、検索制御部・一括検索実行部の処理のフローチャートである。
図8A、Bの処理は大きく、検索要求の取出し処理(S25〜S27)、検索要求の開始処理(S28〜S31)、一括検索の実行(S32〜S33)、検索要求の終了処理(S34〜S36)に分けられる。
ステップS25において、検索要求キューをチェックして、新たな検索要求がある場合は検索要求の取出し処理を実施する。すなわち、ステップS25で、検索要求キューが空であると判断された場合には、ステップS28に進む。ステップS25で、検索要求があると判断された場合には、ステップS26において、検索要求キュー内の検索要求を全て取り出し、ステップS27において、取り出した検索要求を検索待機中の検索要求集合へ加え、ステップS28に進む。
ステップS28において、検索待機中の検索要求集合を一括検索処理に加えるか否かの判定を行なう。加えない場合には、ステップS32に進む。検索待機中の検索要求を一括検索に加える場合は、実質的な検索要求の開始処理を実施する。
検索要求の開始処理では、新たな検索要求に対する情報が検索制御部の保持する情報に追加される。ステップS29において、検索待機中の検索要求集合内の検索要求を一括検索中の検索要求集合に移動する。ステップS30において、移動された検索要求に対しては、検索要求と検索実施区間IDの対応は、要求を受付けた時点での次の一括検索実施区間IDの示す区間に設定される。ステップS31において、一括検索実施中の検索要求集合に含まれる検索要求を、図2で示したような従来技術における検索要求の併合技術を適用して検索要求を併合する。
次に、一括検索処理が一区間実行される。ステップS32において、次の一括検索実施区間IDの示す格納データの区間に対して一括検索処理を実施する。ステップS33において、次の一括検索実施区間を次の区間に変更し、ステップS34に進む。ステップS34〜S36で、一括検索実行後、検索処理が終了した検索要求が存在すれば、検索要求の終了処理が行われる。
検索処理が終了したかどうかは、区間IDにより判断する。すなわち、ステップS34において、検索要求と検索開始区間IDの対応を参照し、検索開始区間が次の一括検索実施区間に一致するものがあるか否か判定する。検索処理が開始したときの区間IDは検索要求と検索開始区間IDの対応を参照することで得られる。そのため、この区間IDと次の一括検索実施区間IDが等しくなった場合、その検索要求にとっての一括検索処理が検索データを一巡したことになり、検索処理が終了したと判断できる。
ステップS34で、一致したものが無いと判断された場合には、ステップS25に戻る。ステップS34で、一致したものがある場合には、ステップS35において、一致する検索要求に対する検索結果を結果返却部へ送る。ここでは、検索結果を最後にまとめて結果返却部へ送っているが、一区間ごとの検索結果を結果返却部に送るようにしてもよい。結果の返却が終わったら、ステップS36において、その検索要求に対する情報を一括検索中の検索要求集合、検索要求と検索開始区間IDの対応から取り除き、ステップS25に戻る。
以下に、図8AのステップS28の判断手法を説明する。
ステップS28の判断は検索制御部が実行する。
検索制御部で行う、検索待機中の検索要求を一括検索処理に加えるかどうかの判定の一例を示す。
以下の説明で使用する記号の意味は以下の通りである。
M: 格納データ集合の区間の数 [ 個 ]
L: 全区間に対する一括検索処理時間 [ 秒 ]
qs: 「一括検索中の検索要求集合」内の検索要求の数[ 個 ]
qw: 「検索待機中の検索要求集合」内の検索要求の数[ 個 ]
ある区間の検索を開始しようとしているとき、検索待機中の検索要求をこの区間で開始させるのか(一括検索に加えるのか)、次の区間以降で加えるのかどちらが良いかを判定する。
(1)メリットの計算
次の区間以降ではなく、現在の区間で検索要求を一括検索要求の集合に加えるとしたときのメリットは、検索待機中の検索要求の待ち時間が、1区間分の検索処理にかかる時間だけ減少し、それによって検索レスポンス時間が減少することである。
この減少量の総和 B [秒×個] は、1区間分の検索処理にかかる時間をL1 [ 秒 ] とすると、
B = L1 × qw
となる。
1区間分の検索処理にかかる時間は、全区間に対する一括検索処理時間 L から、以下のように計算できる。
L1 = L / M
全区間に対する一括処理時間 Lは、過去の一括検索処理にかかった時間を計測し、平均するなどして求めたり、格納データ集合の量とハードウェアの性能から計算して求めるなどする方法がある。ハードウェアの性能とは、例えば、CPUのクロックの周波数や、1バイトの検索にかかるクロック数などであり、格納データ集合の量とは、格納データのバイト数などであり、これらから、全区間に対する一括処理時間を見積もることができる。
(2)デメリットの計算
次の区間以降ではなく、現在の区間で検索要求を一括検索要求の集合に加えるとしたときのデメリットは、一括検索処理に検索要求を加える処理に必要な時間だけ、一括検索実行中の検索要求集合内に含まれる検索要求の処理の停止時間が増加し、それによって検索レスポンス時間が増加することである。
一括検索処理に検索要求を加える処理にかかる時間、すなわち停止時間を S [ 秒 ] とすると、検索レスポンス時間の増加量の総和 C [秒×個] は、
C = S × qs
となる。
停止時間Sは、例えば、過去の停止時間(一括検索処理に加える処理に要する時間)を計測するなどして求めたりすることが出来る。
また、例えば、従来技術では、一括検索に加える処理に要する時間は、一括検索を行う検索要求の数に比例するので、この数を基に停止時間を計算することも出来る。
(3)判定
(1)と(2)で計算したメリットとデメリットを比較し、メリットの方が多ければ、検索待機中の検索要求集合を一括検索処理に加えればよい。
検索制御部で行う、検索待機中の検索要求を一括検索処理に加えるかどうかの判定とは別の構成例を以下に示す。
上記の構成例では、格納データ集合をいくつかに分割しておき、その都度、一括検索処理に加えるかどうかを判定していた。
別の構成例では、ある区間の一括検索処理が終了した都度、到着した検索要求を一括検索処理に常に追加するようにする一方で、格納データ集合の分割の方法(分割数)を動的に変える。これによって、区間毎に判断を行わなくても、一括検索処理への追加のタイミングを制御することが出来る。
図9A、Bは、本実施形態の別の構成例に従った、検索制御部、一括検索実行部の処理のフローチャートである。
ステップS40において、検索要求キューをチェックし、新たな検索要求がある場合は検索要求の取出し処理を実施する。新たな検索要求が無い場合には、ステップS45に進む。
ステップS41において、検索要求キュー内の検索要求を全て取り出し、取り出した検索要求は、ステップS42において、一括検索中の検索要求集合に加えられる。ステップS43において、取り出した検索要求に対する検索開始区間IDを次の一括検索実施区間IDに対応させて設定する。そして、ステップS44において、現在一括検索中の検索要求集合に含まれる検査要求が併合され、併合された検索要求を生成する。
加えられた検索要求があったかどうかに関わらず、ステップS45において、次の一括検索実施区間IDの示す区間に対して一括検索処理を一区間実行する。一括検索実行後、検索処理が終了した検索要求が存在すれば、検索要求の終了処理が行われる。ステップS46において、次の一括検索実施区間を次の区間に変更し、ステップS47に進む。ステップS47においては、検索要求と検索開始区間IDの対応を参照し、検索開始区間が次の一括検索実施区間に一致する検索要求があるか否かを判定する。
ステップS47で、一致するものが無いと判断された場合には、ステップS50に進む。ステップS47で、一致するものがあると判断された場合には、ステップS48において、一致する検索要求に対する検索結果を結果返却部へ送り、ステップS49において、一致する検索要求を一括検索中の検索要求集合から取り除く。
ステップS50において、一括検索処理が格納データについて一巡したか判定する。ステップS50で、まだ一巡していないと判断された場合には、ステップS40に戻る。ステップS50で、一巡したと判断された場合には、ステップS51において、区間と分割方法を変更し、区間IDと格納データ集合の対応を変更して、ステップS40に戻る。
本構成例が図8A、Bの例と異なる点は、定期的なタイミングで、区間の見直しを実施することである。図9A,Bのフローチャートは、一括検索処理を一巡するタイミングで区間の分割方法を見直しする例である。このタイミングで必要ならば区間の分割方法を変更する。
以下に、区間の見直し方法の一例を示す。
図10は、区間数の決定方法を、図11は、区間数の変化の様子を示した図である。
以下の説明において使用する記号の意味は以下の通りである。
M: 格納データ集合の区間の数 [ 個 ]
L: 全区間に対する一括検索処理時間 [ 秒 ]
Q: 一括検索処理を一巡する間に到着する検索要求の数[ 個 ]
ここでは、適切な区間の数 M を求めるのが目的である。
区間の数 Mの値は、一括検索処理の途中で新たな検索要求を加えることによるメリット(効果)とデメリット(悪影響)を比較することで決まる。
(1)一括検索処理に加えることによるメリット
メリットは、新たに到着する検索要求が、一括検索処理に加えられるまでの待ち時間が減少することである。
待ち時間の平均値は、1区間を一括検索処理する時間の2分の1に等しい。この平均値を w1 [秒] とすると、
w1 = L / ( M × 2 )
となり、区間の数 M に反比例する。Mを増やすほど待ち時間は減少するが、その減少量はだんだんと小さくなっていく。ここで、Mが2倍されているのは、待ち時間を2分の1にすることであるが、待ち時間は、全く待たない場合から、1区間を一括検索処理する全時間待つ場合がある。この待ち時間の分布はランダムであると考えられるから、平均として、1区間を一括検索処理する時間の半分を待ち時間とするのが適当と考えたものである。
一巡の一括検索処理(全ての区間に対する一括検索処理)全体におけるこの待ち時間の総和を W [秒×個] とすると、平均して
W = w1 × Q = Q × L / ( M × 2 )
となる。
(2)デメリット
デメリットは、区間の数 M を増やすことによる、一括検索処理の停止時間の増加である。したがって、一括検索処理の停止時間の総和を式で表す。
区間と区間の間での一回の停止時間を s1[ 秒 ]としたとき、全ての区間に対する一括処理における停止時間の総和 S[秒×個] (のべの停止時間)は
S = s1 × Q × M
となり、区間の数 M に比例して多くなる。
(3)判定
(1)と(2)で計算した待ち時間の総和と停止時間の総和の合計が最も小さくなるときの区間の数 M を求めればよい。図10は、横軸に区間の数、縦軸に時間をとって、上記メリットの式とデメリットの式と、これらの和の式のグラフを示したものである。図10において、待ち時間と停止時間の和が最小になる場合の区間の数Mが求めたい値である。Mについて、和の式を微分し、微分した式を0とおいて、Mについて式を整理する。
これを計算すると、
M = √( L/ ( 2 × s1) )
となる。
一括検索処理のアルゴリズムとしては、例えば、aho-corasick法を用いる場合、一括検索処理の途中で新たな検索要求を加える時間、すなわち停止時間s1は、一括検索処理に含まれる検索要求の数に依存して増加する。各検索要求の複雑さが同程度ならば、停止時間は、一括検索処理に含まれる検索要求の数に比例して増加する。
ある区間を一括検索処理しようとする検索要求の数は、平均的には、一括検索処理を一巡する間に到着する検索要求の数 Q に等しい(各検索要求は、どの区間から検索を開始したとしても、全ての区間を検索するまでは処理を終えないため)。よって、停止時間 s1 は、
s1 = Q × α
となる。ここでαは、検索要求1つにつきかかる停止時間を表す定数である。
過去に計測した一括検索処理時間 L と、停止時間 s1 を基にMを計算しなおす場合、過去と比較して負荷の変動(到着する検索要求の数 Q の増減)が見られる場合、一区間あたりの停止時間 s1 が 検索要求の数 Q に比例する性質を利用して、計測した停止時間s1 を補正することが出来る。
計測された停止時間を s1’ 、そのときの検索要求の数を Q’ とし、現在の検索要求の数を Q とすると、補正された後の停止時間 s1 は、
s1 = s1’ × Q / Q’
となる。
この値を基に区間の数 M を計算することで、負荷の変動に追随した区間の数の制御を行うことが出来る。
s1 を停止時間の総和 S の式に代入すると、
S = Q × α × Q × M
= α × Q2 × M
となる。
待ち時間の総和 W の式は変わらないため、これらから M を求めると(M の式に代入すると)、
M = √( L / ( 2 × Q × α) )
となり、 待ち時間と停止時間の総和が最も小さくなるときの区関の数 M は、Qが増えるほど小さくなる。図11には、横軸を区間の数、縦軸を各検索要求の処理時間として、負荷(一括検索処理を一巡する間に到着する検索要求の数Q)の増加と共に、Mが変化する様子を示している。図11によれば、負荷が増加するほど、Mの値が小さくなっているのが分かる。
図12は、本実施形態をプログラムで実現する場合の、プログラムを実行するコンピュータのブロック構成図である。
コンピュータ39は、バス40で相互に接続された、CPU41、ROM42、RAM43、ネットワークインタフェース44、記憶装置47、媒体ドライバ48、入出力装置50からなる。
ROM42には、コンピュータ39を動作させるのに基本的なBIOSなどのプログラムが格納される。CPU41は、ROM42からBIOSなどを読み込んで、コンピュータ39を動作させる。
RAM43には、実行すべきプログラムを、CPU41が実行可能なように展開する。RAM43には、プログラムの処理に必要となる作業領域が確保される。
記憶装置47は、ハードディスクなどであり、OSなどの基本的なプログラムから、本実施形態の処理を実現するプログラムなど様々なプログラムが格納される。記憶装置47に格納されたプログラムは、RAM43に展開されて、CPU41により実行される。本実施形態の処理を実行するプログラムは、この記憶装置47に格納することができる。
媒体ドライバ48は、CD−ROM,DVD、Blu−ray,フレキシブルディスク、ICメモリ等の可搬記録媒体49に格納されるプログラムを読み込む。本実施形態の処理を実行するプログラムは、可搬記録媒体49に格納されていてもよく、媒体ドライバ48によって可搬記録媒体49から読み込まれたプログラムは、RAM43に展開されて、CPU41により実行される。
入出力装置50は、キーボード、タブレットなどの入力装置と、ディスプレイ、プリンタ等の出力装置からなる。ユーザは、入力装置を使って入力操作を行い、プログラムによる処理結果を出力装置から得る。
ネットワークインタフェース44は、ネットワーク45を介して、コンピュータ39を情報提供者46の有するコンピュータやデータベース等と接続する。本実施形態のプログラムは、情報提供者46からネットワーク45を介してコンピュータ39に提供されてもよい。この場合、プログラムは、記憶装置47や可搬記録媒体49に一旦格納された後、RAM43に展開されてCPU41により実行されてもよい。または、情報提供者46の有するコンピュータ上で実行され、コンピュータ39からは、入出力装置50を用いたデータの入出力を行なうだけの実行形態でもよい。
10 データベース
11 検索要求処理装置
20 要求受付部
21 結果返却部
22 検索制御部
23 データ格納部
24 一括検索実行部
30 格納データ集合
31 一括検索中の検索要求集合
32 区間IDとデータ集合の対応
33 次の一括検索実施区間ID
34 検索待機中の検索要求集合
35 検索要求と検索開始区間IDの対応
36 区間ID
ことを特徴とするプログラム。

Claims (11)

  1. 検索対象のデータを格納するデータ格納部と接続された検索要求処理装置であって、
    クライアント端末からの検索要求を受信する要求受信部と、
    該検索対象のデータに対し一括検索を行う一括検索部と、
    現在行なっている該一括検索に新たに受信した該検索要求を併合して該一括検索を実行する場合と該検索要求を該一括検索に併合しないで該検索要求を待機させる場合についてレスポンス時間を計算し、併合する場合の方が併合しない場合よりも該レスポンス時間が短くなる場合に、該検索要求を該一括検索に併合する検索制御部と、
    を備えることを特徴とする検索処理装置。
  2. 前記検索対象のデータはグループに分割され、前記一括検索は、該グループを単位に実行されることを特徴とする請求項1に記載の検索処理装置。
  3. 前記一括検索は、前記検索対象のデータについて巡回的に行なうことを特徴とする請求項1に記載の検索処理装置。
  4. 前記一括検索に含まれる前記検索要求は、前記検索対象のデータについて検索が一巡した場合に、該一括検索から分離されることを特徴とする請求項3に記載の検索処理装置。
  5. 前記一括検索は、前記データ格納部から読み出したデータに対して、複数の検索要求に応じた検索を行なう処理である、
    ことを特徴とする請求項1〜4に記載の検索処理装置。
  6. 複数のグループに分割された検索対象のデータを格納するデータ格納部と接続された検索要求処理装置であって、
    クライアント端末からの検索要求を受信する要求受信部と、
    該検索対象のデータに対し一括検索を行う一括検索部と、
    現在行なっている該一括検索に新たに受信した該検索要求を併合して該一括検索を実行する場合についてレスポンス時間を計算し、該レスポンス時間が短くなるように、該複数のグループの分割数を変更する検索制御部と、
    を備えることを特徴とする検索要求処理装置。
  7. 前記分割数は、新たに到着する検索要求の数が多いほど、小さくなることを特徴とする請求項6に記載の検索要求処理装置。
  8. 検索対象のデータを格納するデータ格納部と接続された検索要求処理装置における処理方法であって、
    該検索要求処理装置は、
    クライアント端末からの検索要求を受信し、
    該検索対象のデータに対し一括検索を行い、
    現在行なっている該一括検索に新たに受信した該検索要求を併合して該一括検索を実行する場合と該検索要求を該一括検索に併合しないで該検索要求を待機させる場合についてレスポンス時間を計算し、
    併合する場合の方が併合しない場合よりも該レスポンス時間が短くなる場合に、該検索要求を該一括検索に併合する、
    ことを特徴とする処理方法。
  9. 複数のグループに分割された検索対象のデータを格納するデータ格納部と接続された検索要求処理装置における処理方法であって、
    該検索要求処理装置は、
    クライアント端末からの検索要求を受信し、
    該検索対象のデータに対し一括検索を行い、
    現在行なっている該一括検索に新たに受信した該検索要求を併合して該一括検索を実行する場合についてレスポンス時間を計算し、
    該レスポンス時間が短くなるように、該複数のグループの分割数を変更する、
    ことを特徴とする処理方法。
  10. 検索対象のデータを格納するデータ格納部と接続された検索要求処理装置に処理を実行させるプログラムであって、
    該検索要求処理装置に
    クライアント端末からの検索要求を受信させ、
    該検索対象のデータに対し一括検索を行わせ、
    現在行なっている該一括検索に新たに受信した該検索要求を併合して該一括検索を実行する場合と該検索要求を該一括検索に併合しないで該検索要求を待機させる場合についてレスポンス時間を計算させ、
    併合する場合の方が併合しない場合よりも該レスポンス時間が短くなる場合に、該検索要求を該一括検索に併合させる、
    ことを特徴とするプログラム。
  11. 複数のグループに分割された検索対象のデータを格納するデータ格納部と接続された検索要求処理装置に処理を実行させるプログラムであって、
    該検索要求処理装置に、
    クライアント端末からの検索要求を受信させ、
    該検索対象のデータに対し一括検索を行わせ、
    現在行なっている該一括検索に新たに受信した該検索要求を併合して該一括検索を実行する場合についてレスポンス時間を計算させ、
    該レスポンス時間が短くなるように、該複数のグループの分割数を変更させる、
JP2011208844A 2011-09-26 2011-09-26 検索要求処理装置 Active JP5799706B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011208844A JP5799706B2 (ja) 2011-09-26 2011-09-26 検索要求処理装置
US13/614,628 US20130080463A1 (en) 2011-09-26 2012-09-13 Searching apparatus, searching method, and recording medium storing searching program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011208844A JP5799706B2 (ja) 2011-09-26 2011-09-26 検索要求処理装置

Publications (2)

Publication Number Publication Date
JP2013069213A true JP2013069213A (ja) 2013-04-18
JP5799706B2 JP5799706B2 (ja) 2015-10-28

Family

ID=47912417

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011208844A Active JP5799706B2 (ja) 2011-09-26 2011-09-26 検索要求処理装置

Country Status (2)

Country Link
US (1) US20130080463A1 (ja)
JP (1) JP5799706B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018205839A (ja) * 2017-05-30 2018-12-27 キヤノン株式会社 情報処理システム、および制御方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10585568B1 (en) 2013-02-22 2020-03-10 The Directv Group, Inc. Method and system of bookmarking content in a mobile device
JP6107429B2 (ja) * 2013-05-30 2017-04-05 富士通株式会社 データベースシステム、検索方法およびプログラム
US11229861B2 (en) 2017-04-13 2022-01-25 Airrat Pty Ltd Sludge harvester improvements
US10956519B2 (en) * 2017-06-29 2021-03-23 Cisco Technology, Inc. Fine-grained encrypted access to encrypted information
US11586626B1 (en) * 2021-11-03 2023-02-21 International Business Machines Corporation Optimizing cloud query execution

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03105544A (ja) * 1989-09-20 1991-05-02 Hitachi Ltd オンライントランザクション処理システム
JPH0561919A (ja) * 1991-04-25 1993-03-12 Hitachi Ltd 多重データ検索方法および装置
JPH0660121A (ja) * 1992-03-19 1994-03-04 Hitachi Ltd 情報検索装置
JPH086829A (ja) * 1994-06-17 1996-01-12 Hitachi Ltd データベースの同時全件検索方法
JPH11203301A (ja) * 1998-01-09 1999-07-30 Canon Inc データベース参照装置
US20020099698A1 (en) * 2001-01-25 2002-07-25 Fujitsu Limited Pattern retrieving method, pattern retrieval apparatus, computer-readable storage medium storing pattern retrieval program, pattern retrieval system, and pattern retrieval program
US20090248652A1 (en) * 2008-04-01 2009-10-01 Makoto Iwayama System or program for searching documents
JP2010224699A (ja) * 2009-03-19 2010-10-07 Fujitsu Ltd 検索プログラム、検索サーバおよび検索方法

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0478006B1 (en) * 1984-08-22 1999-05-12 Hitachi, Ltd. Method and apparatus for searching data
JPH09198398A (ja) * 1996-01-16 1997-07-31 Fujitsu Ltd パターン検索装置
US7099871B2 (en) * 2001-05-04 2006-08-29 Sun Microsystems, Inc. System and method for distributed real-time search
JP4129819B2 (ja) * 2003-10-06 2008-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーション データベース検索システム及びその検索方法並びにプログラム
US8108375B2 (en) * 2003-10-30 2012-01-31 International Business Machines Corporation Processing database queries by returning results of a first query to subsequent queries
US8078483B1 (en) * 2003-12-16 2011-12-13 Ticketmaster Systems and methods for queuing access to network resources
US7761430B2 (en) * 2005-05-12 2010-07-20 Microsoft Corporation Verification of cross domain data system query results
JP4876438B2 (ja) * 2005-05-31 2012-02-15 株式会社日立製作所 コンポーネントソフトウェアの運用方法および運用基盤
US7774428B2 (en) * 2006-04-27 2010-08-10 International Business Machines Corporation Automatic response time measurement of LDAP server operations
US9323867B2 (en) * 2006-08-03 2016-04-26 Microsoft Technology Licensing, Llc Search tool using multiple different search engine types across different data sets
US20080104045A1 (en) * 2006-11-01 2008-05-01 Cohen Alain J Collectively enhanced semantic search
US8171047B2 (en) * 2007-08-07 2012-05-01 International Business Machines Corporation Query execution and optimization utilizing a combining network in a parallel computer system
US8015202B2 (en) * 2008-06-19 2011-09-06 International Business Machines Corporation Grouping predicted database queries
US8213308B2 (en) * 2008-09-11 2012-07-03 Juniper Networks, Inc. Methods and apparatus for defining a flow control signal related to a transmit queue
US20100082655A1 (en) * 2008-09-30 2010-04-01 Yahoo! Inc. Parallel execution of range query
US8447757B1 (en) * 2009-08-27 2013-05-21 A9.Com, Inc. Latency reduction techniques for partitioned processing
US8843508B2 (en) * 2009-12-21 2014-09-23 At&T Intellectual Property I, L.P. System and method for regular expression matching with multi-strings and intervals
US8239374B2 (en) * 2010-01-18 2012-08-07 Microsoft Corporation Collection of performance information for search queries executed in a tiered architecture
US8516147B2 (en) * 2010-02-26 2013-08-20 Simula Innovation Sa Data segmentation, request and transfer method
US9229946B2 (en) * 2010-08-23 2016-01-05 Nokia Technologies Oy Method and apparatus for processing search request for a partitioned index
US8510739B2 (en) * 2010-09-16 2013-08-13 International Business Machines Corporation Shared request grouping in a computing system
US8336051B2 (en) * 2010-11-04 2012-12-18 Electron Database Corporation Systems and methods for grouped request execution
US8924981B1 (en) * 2010-11-12 2014-12-30 Teradat US, Inc. Calculating priority indicators for requests in a queue
JP5678691B2 (ja) * 2011-01-28 2015-03-04 富士通株式会社 検索制御装置、検索制御プログラムおよび検索制御方法
US8868855B2 (en) * 2011-02-28 2014-10-21 Hewlett-Packard Development Company, L.P. Request management system and method for dynamically managing prioritized requests
JP5320433B2 (ja) * 2011-05-10 2013-10-23 株式会社日立ソリューションズ 統合検索装置、統合検索システム、統合検索方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03105544A (ja) * 1989-09-20 1991-05-02 Hitachi Ltd オンライントランザクション処理システム
JPH0561919A (ja) * 1991-04-25 1993-03-12 Hitachi Ltd 多重データ検索方法および装置
JPH0660121A (ja) * 1992-03-19 1994-03-04 Hitachi Ltd 情報検索装置
JPH086829A (ja) * 1994-06-17 1996-01-12 Hitachi Ltd データベースの同時全件検索方法
JPH11203301A (ja) * 1998-01-09 1999-07-30 Canon Inc データベース参照装置
US20020099698A1 (en) * 2001-01-25 2002-07-25 Fujitsu Limited Pattern retrieving method, pattern retrieval apparatus, computer-readable storage medium storing pattern retrieval program, pattern retrieval system, and pattern retrieval program
JP2002222194A (ja) * 2001-01-25 2002-08-09 Fujitsu Ltd パターン検索方法、パターン検索装置、パターン検索プログラムを記録したコンピュータ読み取り可能な記録媒体、パターン検索システムおよびパターン検索プログラム
US20090248652A1 (en) * 2008-04-01 2009-10-01 Makoto Iwayama System or program for searching documents
JP2009251686A (ja) * 2008-04-01 2009-10-29 Hitachi Ltd 文書検索装置
JP2010224699A (ja) * 2009-03-19 2010-10-07 Fujitsu Ltd 検索プログラム、検索サーバおよび検索方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018205839A (ja) * 2017-05-30 2018-12-27 キヤノン株式会社 情報処理システム、および制御方法
JP7098280B2 (ja) 2017-05-30 2022-07-11 キヤノン株式会社 情報処理システム、および制御方法

Also Published As

Publication number Publication date
JP5799706B2 (ja) 2015-10-28
US20130080463A1 (en) 2013-03-28

Similar Documents

Publication Publication Date Title
JP5799706B2 (ja) 検索要求処理装置
US10348815B2 (en) Command process load balancing system
US20060294049A1 (en) Back-off mechanism for search
CN108846749B (zh) 一种基于区块链技术的分片化的交易执行系统及方法
JP2011123817A (ja) ジョブ振分装置、ジョブ振分プログラム及びジョブ振分方法
US8171228B2 (en) Garbage collection in a cache with reduced complexity
US10346496B2 (en) Information category obtaining method and apparatus
WO2011102219A1 (ja) リアルタイムシステム用マルチコア向けタスク配置最適化システム、その方法及びそのプログラム
CN110134738B (zh) 分布式存储系统资源预估方法、装置
JP5938968B2 (ja) 情報処理装置、情報処理プログラム及び情報処理方法
JP2009223497A (ja) 管理マシン、管理システム、管理プログラム、および、管理方法
US8555290B2 (en) Apparatus and method for dynamic control of the number of simultaneously executing tasks based on throughput
JP2019079334A (ja) 情報処理装置、情報処理システムおよび情報処理方法
JP2018194882A (ja) 制御プログラム、制御方法、制御装置、及びデータベースサーバ
CN107357794B (zh) 优化键值数据库的数据存储结构的方法和装置
JP5678691B2 (ja) 検索制御装置、検索制御プログラムおよび検索制御方法
CN113568940A (zh) 数据查询的方法、装置、设备以及存储介质
CN109407970A (zh) 读写请求处理方法、装置及电子设备
CN115328898A (zh) 一种数据处理方法、装置、电子设备及介质
JPWO2015159336A1 (ja) 情報処理装置、流量制御パラメータ算出方法、およびプログラム
JP6285850B2 (ja) プロセスマイグレーション方法及びクラスタシステム
US9471374B2 (en) Request processing system, method and program product
JP2017107486A (ja) 処理リソース制御プログラム、処理リソース制御装置、および処理リソース制御方法
CN112395081A (zh) 一种资源在线自动回收方法、系统、服务器以及存储介质
CN111338916A (zh) 处理业务请求的方法、装置、电子设备和计算机可读介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140603

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150206

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150728

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150810

R150 Certificate of patent or registration of utility model

Ref document number: 5799706

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150