JP2008165293A - データ検索装置、デバイス管理装置、データ検索方法、およびコンピュータプログラム - Google Patents

データ検索装置、デバイス管理装置、データ検索方法、およびコンピュータプログラム Download PDF

Info

Publication number
JP2008165293A
JP2008165293A JP2006350998A JP2006350998A JP2008165293A JP 2008165293 A JP2008165293 A JP 2008165293A JP 2006350998 A JP2006350998 A JP 2006350998A JP 2006350998 A JP2006350998 A JP 2006350998A JP 2008165293 A JP2008165293 A JP 2008165293A
Authority
JP
Japan
Prior art keywords
data
search
unit
item
hash
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.)
Withdrawn
Application number
JP2006350998A
Other languages
English (en)
Inventor
Yuuki Dogo
勇樹 堂後
Hideaki Ogata
英昭 緒方
Naoki Tagata
直樹 田方
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2006350998A priority Critical patent/JP2008165293A/ja
Publication of JP2008165293A publication Critical patent/JP2008165293A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】利用できる資源が場合によって異なる状況下で、できるだけ高速に検索を行う。
【解決手段】他の処理を実行しつつ、N個(Nは2以上の整数)の単位データとそれら単位データにそれぞれ対応づけられたデータとを含むデータ集合の中から1個の対象データを検索して、その対象データに対応づけられたデータを取得する際に、次の処理を行う。(a)実行中の他の処理であって検索に使用できるハードウェア資源の一部を使用する処理に基づいて、ハードウェア資源のうち検索のために利用可能なものの量を決定する。(b)その条件下で検索に要する予想時間を、利用可能なハードウェア資源の量に基づいて、複数の検索法について決定する。(c)予想時間に基づいて複数の検索法の中から一つの検索法を決定する。(d)決定された検索法を使用して、データ集合の中から対象データを検索して、対象データに対応づけられたデータを取得する。
【選択図】図2

Description

この発明は、利用できる資源が場合によって異なる状況下で行う検索に関する。
従来より、ネットワークに接続されたプリンタサーバに対して、同じくネットワークに接続されたクライアントコンピュータから印刷要求を行って、印刷を行う技術が存在する。
特開2001−282657号公報
また、そのような環境下において、定期的に、または所定の条件が満たされた場合に、クライアントコンピュータが、プリンタサーバからプリンタのステータス情報を取得することがある。たとえば、クライアントコンピュータが、あるプリンタが保持している「処理すべき印刷ジョブ」の情報を取得する場合などである。そのような場合には、プリンタサーバは、プリンタのステータス情報に関するテーブルを検索して、必要な情報を取得し、クライアントコンピュータにその値を送信する。
クライアントコンピュータによるステータス情報の要求から、プリンタサーバによるステータス情報の返信までの時間は、できるだけ短いことが好ましい。そのためには、ステータス情報に関するテーブルの検索は、できるだけ高速に行うことが好ましい。
一方、プリンタサーバは、あるクライアントコンピュータからステータス情報の送信を要求されていると同時に、他のクライアントコンピュータから印刷処理を要求されている場合がある。印刷処理にはメモリが大量に使用される。このため、並行して印刷処理を行っている場合には、ステータス情報に関するテーブルの検索は、できるだけ少ない量のメモリを使用して行うことが好ましい。
しかし、従来の技術においては、上記の問題は考慮されておらず、検索方法は一つに固定されていた。このような問題は、プリンタサーバに限らず、メモリなどの利用できる資源の量が場合によって異なる状況下で検索を行う場合に、同様に存在する。
本発明は、利用できる資源が場合によって異なる状況下で、できるだけ高速に検索を行うことを目的とする。
上記目的を少なくとも一部を達成するために、本発明は、他の処理を実行しつつ、N個(Nは2以上の整数)の単位データとそれら単位データにそれぞれ対応づけられたデータとを含むデータ集合の中から1個の対象データを検索して、その対象データに対応づけられたデータを取得する際に、以下の処理を行う。すなわち、(a)実行中の他の処理であって検索に使用できるハードウェア資源の一部を使用する処理に基づいて、ハードウェア資源のうち検索のために利用可能なハードウェア資源の量を決定する。(b)利用可能な量のハードウェア資源を利用する場合に検索に要すると予想される予想時間を、利用可能なハードウェア資源の量に基づいて、複数の検索法について決定する。そして、(c)予想時間に基づいて複数の検索法の中から一つの検索法を決定する。その後、(d)対象データに対応づけられたデータを取得するために、決定された検索法を使用して、データ集合の中から対象データを検索する。
このような態様とすれば、利用可能な量のハードウェア資源に応じて、他の検索法に比べて短時間で検索を行うことができる可能性が高い検索法を選択して、検索を行うことができる。その結果、利用できる資源が場合によって異なる状況下で、高速に検索を行うことができる。
なお、ハードウェア資源は、検索および他の処理に使用することができるメモリとすることができる。
また、一態様において、複数の検索法は、線形検索法を含む。線形検索法についての予想時間TLは、以下の式に基づいて計算することが好ましい。
TL=(N/2)×uL
ここで、uLは、単位データが対象データであるか否かを決定するのに要すると予想される時間である。このような態様とすれば、線形検索法の予想時間を正確に計算することができる。
また、データ集合が、一定の方法で各単位データからそれぞれ得られる値の大きさの順で複数の単位データおよびそれらに対応づけられたデータの組合せを保持している場合には、複数の検索法は、二分検索法と線形検索法とを行う合成検索法を含むことが好ましい。この合成検索法においては、まず、(e)利用可能なハードウェア資源を利用して、上記の一定の方法で各単位データから得られる値の大きさに基づいて二分検索法を実行して、データ集合に含まれるN個の単位データの中から、対象データを特定するための線形検索法を開始する位置を決定する。そして、(f)決定された位置について、線形検索法を実行する。
このような合成検索法についての予想時間TBは、以下の式に従って計算することが好ましい。
Figure 2008165293
なお、Rは、二分検索において対象データとの間で値の比較を行う比較対象の単位データの数であって、利用可能な量のハードウェア資源を利用して位置情報を保持することができる比較対象の単位データの数である。uBは、比較対象の単位データと対象データとの間で値の大小関係を決定するのに要すると予想される時間である。uLは、単位データが対象データであるか否かを決定するのに要すると予想される時間である。このような態様とすれば、上記の合成検索法の予想時間を正確に計算することができる。
複数の検索法は、ハッシュ検索法を含むことが好ましい。ハッシュ検索法においては、まず、(g)単位データに所定のハッシュ関数を適用して得られるハッシュ値に対応する場所に、データ集合における各単位データの格納場所を表すデータを格納することにより、ハッシュテーブルを作成する。なお、ハッシュテーブルは、メモリ内に格納することができる。そして、(h)ハッシュテーブル中のある場所であって、対象データにハッシュ関数を適用して得られるハッシュ値に対応する場所に格納されている上記の格納位置を表すデータを、取得する。
そして、予想時間を決定する際には、ハッシュテーブルの生成と、以下の式によるハッシュ検索法についての予想時間THの計算と、を行うことが好ましい。また、対象データに対応づけられたデータを取得する際には、ハッシュ値に対応する場所に格納されている上記の格納位置を表すデータを取得することが好ましい。
TH=Hc+{(N/2)×uL×(k/N)}
なお、Hcは、対象データにハッシュ関数を適用してハッシュ値を得るのに要すると予想される時間である。kは、ハッシュテーブルの生成の際に生じた衝突の回数である。uLは、単位データが対象データであるか否かを決定するのに要すると予想される時間である。このような態様とすれば、ハッシュ検索法の予想時間を正確に計算することができる。
また、本発明の一態様として、所定のネットワーク環境下で、デバイスの状態を表す状態データを取得して、ネットワークを介してクライアントコンピュータに送信する際に、以下のような処理を行うデバイス管理装置も好ましい。この環境においては、デバイスが接続されているデバイス管理装置と、そのデバイスを使用するクライアントコンピュータとが、ネットワークで接続されている。
デバイスとデバイス管理装置との少なくとも一方は、参照データベースを有している。この参照データベースは、デバイスの状態を表す複数の状態データと、他のデータベースにおいて状態データが格納されている場所を表すアクセス経路データと、の少なくとも一方を、それぞれ項目データと対応づけて格納しているデータベースである。そして、参照データベースは、一定の方法で各項目データから得られる値の大きさの順で、項目データならびに対応づけられた状態データおよびアクセス経路データの組合せを格納しているデータベースである。
予想時間決定部は、クライアントコンピュータからの状態データの要求に応じて、参照データベースからの1個の項目データの検索について、予想時間を計算する。検索部は、その1個の項目データに対応づけられた状態データとアクセス経路データの少なくとも一方を取得するために、上記の決定された検索法を使用して、参照データベースの中から対象データとしての1個の項目データを検索する。
デバイス管理装置は、さらに、(1)検索部がアクセス経路データを取得した場合に、取得したアクセス経路データに基づいて他のデータベースから状態データを取得する状態データ取得部と、(2)検索部と状態データ取得部との少なくとも一方が取得した状態データをクライアントコンピュータに送信する状態データ送信部と、を備える。このような態様とすれば、短時間で参照データベースを検索して状態データを取得し、クライアントコンピュータに送信することができる。
参照データベースが、所定の条件が満たされた場合に更新される場合には、以下のような処理を行うことが好ましい。なお、所定の条件とは、たとえば、デバイスの状態が変化した場合、あらかじめ定められた時刻が到来した場合、前回の更新からあらかじめ定められた時間が経過した場合、それらの条件の2個以上が満たされた場合、などである。
上記の態様においては、検索部は、決定された検索法によるデータ集合の検索によって、クライアントコンピュータからの要求に対応する状態データおよび状態データのアクセス経路データがいずれも得られなかった場合には、値の大きさの順に、参照データベースの先頭の項目データから線形検索法を実行する。このような態様とすれば、参照データベースが更新され、目的とする状態データやアクセス経路情報の格納位置が変化した場合にも、参照データベースから目的とする状態データやアクセス経路情報を取得することができる。
なお、本発明は、種々の形態で実現することが可能であり、例えば、データ検索方法およびデータ検索装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
A.実施例:
A1.システムの概略構成
図1は、ネットワークシステムの概略構成を示す図である。ネットワークNTには、クライアントコンピュータ100a,100b,100cと、プリンタサーバ200とが接続されている。そして、プリンタサーバ200には、プリンタ300が接続されている。なお、図1では、3台のクライアントコンピュータと1台のプリンタサーバを示したが、ネットワークNTには、任意の数のクライアントコンピュータおよびプリンタサーバを接続することができる。クライアントコンピュータ100a,100b,100cを区別せずにクライアントコンピュータに言及する場合には、クライアントコンピュータ100と表記する。
プリンタ300は、クライアントコンピュータ100からの指示に基づいて、印刷用紙に印刷を行うことができる。また、プリンタ300は、電話回線PLを通じて外部にFAXを送信することができる。さらに、プリンタ300は、電話回線PLを通じて外部からFAXを受信して、受信した信号に基づいて画像データを生成し、クライアントコンピュータ100に送信することができる。プリンタ300は、印刷機能以外にも上記の各機能を奏するが、本明細書では、「プリンタ」と呼ぶ。
プリンタサーバ200は、プリンタ300を管理するサーバである。具体的には、プリンタサーバ200は、クライアントコンピュータ100a,100b,100cからの要求に従って、プリンタ300を制御して印刷やFAXの送信などの特定の機能を発揮させる。また、プリンタサーバ200は、クライアントコンピュータ100a,100b,100cからの要求に従って、プリンタ300のステータス情報をクライアントコンピュータ100a,100b,100cに送信する。
A2.データベース:
プリンタ300は、複数のデバイス情報データベースDIDと、参照データベースRDと、それらを管理するデータベース管理部310と、を有している。図1においては、デバイス情報データベースを「デバイス情報DB」と表記し、参照データベースを「参照DB」と表記する。そして、データベース管理部を「DB管理部」と表記する。
複数のデバイス情報データベースDIDは、(a)印刷用紙の残量やプリンタ300において発生しているトラブルに関する情報である「プリンタ情報」、(b)どのクライアントコンピュータがいつ、プリンタ300のどの機能を使用したかを表す「ログ情報」、(c)プリンタ300を使用する権利があるのはどのクライアントコンピュータであるかを表す「ユーザ情報」、(d)プリンタ300の各機能に関してどのような設定がなされているかを表す「設定情報」等を格納している。図1では、それらの各情報を表す具体的な「項目」として「ACC」、「ATC」、「CUS」等を例示している。また、各情報の内容は数値や文字列で表される。
複数のデバイス情報データベースDIDには、MIB(Management Information Base)と呼ばれる統一規格に沿ったものと、プリンタメーカが独自に設定した方式によるものとがある。
参照データベースRDは、複数のデバイス情報データベースDIDが有する各項目、およびそれらの項目の値を格納している。なお、参照データベースRDは、項目の値に代えて、デバイス情報データベースDID中でその項目の値が格納されている場所を示す「アクセス経路情報」を格納していることもある。
本実施例では、複数種類の形式のデータベースを含む複数のデバイス情報データベースDIDが有する項目の中の、クライアントコンピュータ100から値の送信を要求される可能性のある項目のデータを、一つの参照データベースRDにまとめて格納している。このため、プリンタサーバ200およびプリンタ300は、クライアントコンピュータ100からのステータス情報の要求に対して、簡易な仕組みを使用して迅速に応答することができる。
参照データベースRDが保持する各項目はアルファベットで表される。図1では、各情報の「項目」として「ACC」、「ATC」、「CUS」等を例示している。しかし、実際には、各項目はより多くの文字データで表される。また、項目名のデータと、項目名に対応づけられた値またはアクセス経路情報のデータは、一連の情報として格納される。たとえば、項目名のデータと、項目名に対応づけられた値またはアクセス経路情報のデータは、「ACCESS_CTRL_CURRENT_IP_ALLOW id="access=DB1;subject=ACCESS_CTRL_CURRENT;item=ACCESS_CTRL_IP_ALLOW;index=0;type=BOOL" /」のように表される。このうち、前半の「ACCESS_CTRL_CURRENT_IP_ALLOW」が項目名であり、それに続く「id="access=DB1;subject=ACCESS_CTRL_CURRENT;item=ACCESS_CTRL_IP_ALLOW;index=0;」がアクセス経路情報である。
各項目および各項目に対応づけられた値(またはアクセス経路情報)は、項目のアルファベットの順に参照データベースRD内に保持されている。すなわち、参照データベースRDに格納された各項目の値は、参照データベースRD内のデータの先頭からのオフセット値によって、その格納場所を特定することができる。そのオフセット値は、項目名のアルファベット順の順位が遅いほど大きくなる。たとえば、項目ACCのデータ(項目名と値)の格納位置を表すオフセット値は、00(16進数)である。項目ATCのデータの格納位置を表すオフセット値は、0Fである。項目CUSのデータの格納位置を表すオフセット値は、10である。
データベース管理部310は、デバイス情報データベースDIDおよび参照データベースRDが格納している各項目の値を更新する。また、プリンタサーバ200またはクライアントコンピュータ100からの要求に応じて、デバイス情報データベースDIDおよび参照データベースRDが格納している項目の値を、プリンタサーバ200またはクライアントコンピュータ100に送信する。
デバイス情報データベースDID内の項目の値を更新し、それに応じて、参照データベースRDが格納している各項目の値を更新する場合には、データベース管理部310は、以下のような処理を行う。すなわち、デバイス情報データベースDID内の項目Aの値を更新した場合、データベース管理部310は、参照データベースRD内において対応する項目Aのデータが格納されていた部分は、無意味な値、たとえば、スペースなどで上書きする。そして、参照データベースRDの末尾に、新たに項目名Aとその値のデータを付加する。このような処理を行うことで、参照データベースRDにおいては、更新後の新たな値は、順に参照データベースRDの末尾に付加される。言い換えれば、各項目の値が変化した場合には、その項目は、参照データベースRD内のそれまでの格納位置よりも後ろの位置に新たな値とともに格納される。
また、デバイス情報データベースDID内の項目の値を削除した場合には、データベース管理部310は、参照データベースRD内の対応する項目のデータ(項目およびその値またはアクセス経路)を削除する。デバイス情報データベースDIDが、たとえば、「プリンタ300が処理すべき印刷ジョブ」の項目を有していた場合、ある印刷ジョブが終了すると、その印刷ジョブの項目は、デバイス情報データベースDIDから削除される。そして、それに応じて参照データベースRD内の「プリンタ300が処理すべき印刷ジョブ」の項目のデータも削除される。そして、削除された項目よりも後ろの位置に格納されていた各項目のデータは、参照データベースRD内においてソートされ、それまでの格納位置より前の位置に格納される。
プリンタサーバ200は、内部保持テーブルITを保持しているメモリ220と、内部保持テーブルITを管理するテーブル管理部210とを有している。なお、メモリ220には、内部保持テーブルITが格納されるほか、プリンタ300の印刷の処理やFAXの送信処理、さらには、後述する内部保持テーブルIT、参照データベースRD等の内部に含まれるデータの検索の処理にも使用される。
内部保持テーブルITは、参照データベースRDが保持している項目のうちの一部の項目と、その項目の値の参照データベースRD内におけるオフセット値を格納している。オフセット値は、参照データベースRD内において、それらの項目に対応づけられている値(またはアクセス経路情報)が格納されている場所を表すオフセット値である(図1の右下参照)。たとえば、項目「ACC」のオフセット値は、00である。項目「CUS」のオフセット値は、10である(図1左側中段参照)。内部保持テーブルITは、後に説明する検索法の決定において、二分検索法と線形検索法を用いる合成検索法が選択された場合に、生成される。
内部保持テーブルITが格納している項目は、クライアントコンピュータ100がプリンタの状態を確認するのに必要な情報に関する項目である。各項目および各項目に対応づけられたオフセット値は、項目のアルファベットの順で内部保持テーブルIT内に保持されている。項目のアルファベットの順とは、具体的には、アルファベットのコードの大きさの順である。
A3.参照データベースRDにおける項目の検索:
図2は、プリンタサーバ200が、クライアントコンピュータ100からの要求を受けて、プリンタ300のステータス情報に関する特定の項目の値(ステータス情報)を送信する手順を示すフローチャートである。ステップS10では、プリンタサーバ200は、クライアントコンピュータ100a〜100cのうち、たとえば、クライアントコンピュータ100aから、プリンタ300のステータス情報に関する特定の項目の送信の要求を受ける。
ステップS20では、プリンタサーバ200のテーブル管理部210は、ステータス情報を獲得する際に参照データベースRD内の検索に利用できるハードウェア資源の量を計算する。具体的には、参照データベースRD内の検索に利用できるメモリ220の量を計算する。プリンタサーバ200は、たとえば、クライアントコンピュータ100bから印刷要求を受けている場合には、その印刷の処理のためにメモリ220の一部を使用する。よって、そのような場合には、印刷の処理に必要なメモリの量を考慮して、検索に利用できるメモリの量が計算される。このステップS20の処理は、テーブル管理部210の機能部としての資源量決定部211が行う(図1参照)。
ステップS30では、テーブル管理部210は、参照データベースRD内の検索の際に使用できる複数の検索法について、検索に要すると考えられる時間(以下「予想検索時間」という)を計算する。予想検索時間は、ステップS20で決定したメモリ量と、参照データベースRDが保持している項目の数と、に基づいて計算される。参照データベースRD内おける検索の際に使用できる検索法としては、(a)線形検索法、(b)二分検索法と線形検索法を用いる合成検索法、(c)ハッシュ検索法、がある。各検索法と、各検索法の予想検索時間の計算については、後に説明する。このステップS30の処理は、テーブル管理部210の機能部としての予想時間決定部212が行う(図1参照)。
ステップS40では、テーブル管理部210は、予想検索時間が最も短い検索法を、使用する検索法として決定する。このステップS40の処理は、テーブル管理部210の機能部としての検索法決定部213が行う(図1参照)。
ステップS50では、決定された検索法を用いて参照データベースRDを検索する際に、参照データベースRD内において検索を開始する位置(以下、「検索開始位置」という)を決定する。検索開始位置の決定方法については、後に説明する。このステップS50の処理は、テーブル管理部210の機能部としての検索部214が行う。
ステップS60では、テーブル管理部210は、参照データベースRD内のその検索開始位置から順に、参照データベースRD内の項目について、クライアントコンピュータ100からの要求を受けた項目と一致するか否かを検討する。そして、クライアントコンピュータ100からの要求を受けた項目と一致する項目を特定し、その項目の値、またはアクセス経路を得る(図1参照)。なお、ステップS60の処理の詳細については、後にさらに説明する。このステップS60の処理は、テーブル管理部210の機能部としての検索部214が行う。
ステップS70では、ステップS60で参照データベースRDから項目の値が得られたか、アクセス経路が得られたかが判定される。項目の値が得られた場合には、プリンタサーバ200は、ステップS90において、その値をクライアントコンピュータ100aに送信する。このステップS90の処理は、テーブル管理部210の機能部としての状態データ送信部217が行う(図1参照)。
ステップS60で参照データベースRDからアクセス経路が得られた場合には、処理はステップS80に進む。ステップS80では、プリンタサーバ200は、そのアクセス経路の情報に基づいてデバイス情報データベースDIDからその項目の値を得る。このステップS80の処理は、テーブル管理部210の機能部としての状態データ取得部216が行う(図1参照)。その後、ステップS90で、得られた値をクライアントコンピュータ100aに送信する。
図3は、図2のステップS60において、参照データベースRDから値またはアクセス経路を得る際の処理を示すフローチャートである。ステップS310では、図2のステップS50で得られた検索開始位置から順に、参照データベースRD内の項目について、クライアントコンピュータ100からの要求を受けた項目と一致するか否かを検討する。具体的には、クライアントコンピュータ100aから受け取った要求に格納されていた項目名と、それぞれの場所に格納されている項目名とを照合する。クライアントコンピュータ100aから要求された項目名と一致する項目があった場合、または、参照データベースRD内の末尾の項目までの検討が終了した場合には、処理はステップS320に進む。
参照データベースRDにおける各項目の格納場所は、ステータスの変化とともに変動することがある。すなわち、参照データベースRDに値が格納されている項目に対応する項目の値が、デバイス情報データベースDIDにおいて変化した場合には、上述のように、新たな値は、その項目名とともに参照データベースRDの末尾に付加される。すなわち、参照データベースRDにおける各項目およびその値は、当初の格納場所よりも後ろに位置に格納されている場合がある。
本実施例においては、ステップS310のような処理を行うことで、目的とする項目の値が更新され、参照データベースRDにおける項目のデータの格納場所がより後ろの位置に変化した場合にも、目的とする項目の値またはアクセス経路を得ることができる。
ステップS320では、テーブル管理部210は、目的とする項目名と一致する項目があったか否かを判定する。目的とする項目名と一致する項目があった場合には、処理はステップS360に進む。目的とする項目名と一致する項目がなかった場合には、処理はステップS330に進む。
ステップS330では、参照データベースRDの先頭から末尾に向かって、順に各項目について、参照データベースRD内の各項目名がクライアントコンピュータ100aから受け取った要求に格納されていた項目名と一致するか否かを検討する。クライアントコンピュータ100aから要求された項目名と一致する項目があった場合、または、参照データベースRD内の末尾の項目までの検討が終了した場合には、処理はステップS340に進む。
参照データベースRDにおける各項目の格納場所は、ステータスの変化とともに前に変動することもある。たとえば、「プリンタ300が処理すべき印刷ジョブ」などの、デバイス情報データベースDID内の項目の値が削除された場合には、参照データベースRD内の対応する項目のデータも削除される。そして、削除された項目よりも後ろの位置に格納されていた各項目のデータは、参照データベースRD内においてソートされ、それまでの格納位置より前の位置に格納される。
本実施例においては、ステップS330のような処理を行うことで、参照データベースRDにおける項目のデータの格納場所がより前の位置に変化した場合にも、目的とする項目の値またはアクセス経路を得ることができる。
ステップS340では、クライアントコンピュータ100aから受け取った要求に格納されていた項目名と一致する項目名があったか否かが検討される。クライアントコンピュータ100aから受け取った要求に格納されていた項目名と一致する項目名があった場合には、処理はステップS360に進む。クライアントコンピュータ100aから受け取った要求に格納されていた項目名と一致する項目名がなかった場合には、処理はステップS350に進む。
ステップS350では、テーブル管理部210は、クライアントコンピュータ100aに「エラー」を返信する。そして、図2および図3の処理を終了する。なお、このステップS350の処理は、テーブル管理部210の機能部としての状態データ送信部217が行う(図1参照)。
ステップS360では、テーブル管理部210の機能部としての状態データ取得部216は、目的とする項目の値またはアクセス経路を取得する。その値またはアクセス経路は、ステップS310またはステップS330でクライアントコンピュータ100aから要求された項目名と一致すると判断された項目の場所に格納されている。そして、参照データベースRDを参照するステップS60の処理を終える(図2参照)。
A4.予想検索時間の計算:
以下では、図2のステップS50で使用できる各検索法、およびステップS30における各検索法の予想検索時間の計算について説明する。
(1)線形検索法:
「線形検索法」とは、先頭データから順番に目的のデータであるか否かを検討する方法である。線形検索法による検索においては、参照データベースRD内の各項目について、先頭順に、クライアントコンピュータ100から値の送信を要求された項目名と一致するか検討される。すなわち、図2のステップS40において線形検索法が選択された場合には、ステップS50においては、参照データベースRDの先頭の項目の位置が「検索開始位置」とされる。
線形検索法における予想検索時間TLは、以下の計算式で得られる。なお、以下の式は、平均的には、参照データベースRDが保持する全項目のうちの中央の順位の位置で、クライアントコンピュータ100から値の送信を要求された項目名と一致する項目が発見されると考えることができる、という推定に基づいている。
TL=(N/2)×uL ・・・ (1)
ここで、Nは、参照データベースRDが有する項目の数である。uLは、ある項目がクライアントコンピュータ100から値の送信を要求された項目名と一致するか否かを検討するのに要する時間である。
(2)二分検索法と線形検索法による合成検索法:
二分検索法と線形検索法による合成検索法においては、まず、参照データベースRDおよび内部保持テーブルITの検索に利用できる量のメモリ(図2のステップS20参照)を使って、内部保持テーブルITを対象として二分検索を行う。その結果、参照データベースRDに含まれるN個の項目の中から、目的とする項目を特定するための線形検索を行うべき対象が限定される。そして、まず、限定された項目について、参照データベースRDを対象として前述の線形検索を行う。すなわち、図2のステップS40において合成検索法が選択された場合には、ステップS50においては、参照データベースRD内の限定された項目の中の先頭の項目の位置が「検索開始位置」とされる。以下でより具体的に説明する。
図4は、合成検索法の例を示す図である。図の左端には、内部保持テーブルITの例を示している。内部保持テーブルITは、項目のアルファベット順に各項目と、参照データベースRD内における格納位置を表すオフセット値と、を有している。図4では、参考のために、各項目の先頭からの順番を左端に示す。
二分検索において、1回目の検討では、内部保持テーブルITの項目のうち、中央の順位にある項目のデータを参照する。ここでは、内部保持テーブルITは16個の項目を有しているため、1回目の検索では、8番目の項目が参照される。なお、図4中、「1回目参照先」という表示の下に丸を表示して、8番目の項目を明示する。
そして、クライアントコンピュータ100から値の送信を要求された項目と、その中央の順位の項目との大小関係を検討する。具体的には、両項目名のアルファベットのコードを、項目名の先頭から順に比較する。そして、そのコードの大小関係に基づいて、項目名の大小関係を決定する。クライアントコンピュータ100から送信を要求された項目名が、参照先の項目名以下であれば、検討対象を参照先の項目以前の範囲R21に限定する。クライアントコンピュータ100から送信を要求された項目名が、参照先の項目名よりも大きければ、検討対象を参照先の項目よりも後ろの範囲R22に限定する。ここでは、クライアントコンピュータ100から送信を要求された項目名が、参照先の項目名以下であったものとする。その結果、実線で示す範囲R21に含まれる項目が検討対象とされる。そして、破線で示す範囲R22に含まれる項目は検討対象からはずされる。
2回目の検討では、範囲R21の中央の順位にある項目を参照する。ここでは、内部保持テーブルITの項目中で4番目の項目が参照される。図4中、「2回目参照先」という表示の下に丸を表示して、4番目の項目を明示する。なお、1回目の検討で範囲R22が選ばれた場合には、範囲R22の中央の順位にある項目が参照される。その場合の参照先である12番目の項目も、同様に「2回目参照先」という表示の下において丸を表示して明示する。
2回目の検討でも、その参照先の項目とクライアントコンピュータ100から送信を要求された項目名の大小が検討される。2回目の検討の結果では、クライアントコンピュータ100から送信を要求された項目名が、参照先の項目名よりも大きかったものとする。その結果、検討対象は、参照先の項目よりも後ろの範囲R32(図4中で実線で示す)に限定される。3回目以降の検討も同様に行われる。
すなわち、「二分検索」とは、あらかじめ昇順(または降順)で整列しておいたデータに対して、検索範囲の中央値Vcと探索したい値Vtの大小関係を比較して、Vt<Vcなら前半(データが降順に整列されている場合は後半)のデータを新たな検索範囲とし、Vt>Vcなら後半(データが降順に整列されている場合は前半)のデータを新たな検索範囲として、検索範囲を設定し直し、再度、中央値との比較を行う、という処理を繰り返すことによって、目的のデータを探し出す検索法である。
二分検索では、あらかじめ潜在的な参照先のデータのアドレスを記憶しておく必要がある。潜在的な参照先は、1回目の検討では、内部保持テーブルITの全項目のうちの中央の順位にある項目である。2回目の検討では、潜在的な参照先は、内部保持テーブルITの全項目のうちの1/4と3/4の順位にある2個の項目である。3回目の検討では、潜在的な参照先は、内部保持テーブルITの全項目のうちの1/8,3/8,5/8,7/8の順位にある4個の項目である。以下、同様にしてあらかじめ記憶しておくべき潜在的な参照先の個数は増大する。
よって、項目の大小の検討を1回行う場合には、あらかじめ記憶しておくべき潜在的な参照先の合計数は1個である。検討を2回行う場合には、あらかじめ記憶しておくべき潜在的な参照先の合計数は3個である。検討を3回行う場合には、あらかじめ記憶しておくべき潜在的な参照先の合計数は7個である。以下、同様にしてあらかじめ記憶しておくべき潜在的な参照先の合計数Rは増大する。Rは以下の式で表される。なお、iは、二分検索において検討を行う回数である。
R=2i−1 ・・・ (2)
あらかじめ記憶しておくことができる潜在的な参照先の個数Rの上限は、図2のステップS20で決定された検索のために利用可能なメモリの容量によって制限される。
たとえば、一つの参照先の項目のアドレスを記憶するのにuMだけの量のメモリが必要である場合、あらかじめ記憶しておくことができる潜在的な参照先の個数Rは、以下の条件を満たす必要がある。ここで、SMは、検索に使用することができるメモリの量である(図2のステップS20参照)。
R≦SM/uM ・・・ (3)
たとえば、図4の例では、あらかじめ記憶しておくことができる潜在的な参照先の個数Rは、7個であったとする。その結果、二分検索における検討は3回目までしか行うことはできない。しかし、3回の検討によって、検討対象の項目は、内部保持テーブルITの全項目のうちの1/8の範囲R43の項目に限定される。具体的には、検討対象の項目は、5番目と6番目の項目にまで限定される。
その結果、限定された検討対象である内部保持テーブルITの5番目と6番目の項目のうちの先頭の項目に対応する参照データベースRDの項目が、図2のステップS50において、検索開始位置とされる。そして、ステップS60において、その内部保持テーブルITの5番目の項目に対応する参照データベースRDの項目から、参照データベースRDを対象に線形検索が実行される。すなわち、内部保持テーブルITの5番目の項目に対応する参照データベースRDの項目から順に、参照データベースRDが有する各項目について、クライアントコンピュータ100から送信を要求された項目名と一致するか否かが検討される。
なお、二分検索を行っている間に参照データベースRDの内容に変更がなければ、内部保持テーブルITの5番目の項目に対応する参照データベースRDの項目から、内部保持テーブルITの6番目の項目に対応する参照データベースRDの項目までの間に、クライアントコンピュータ100から送信を要求された項目名と一致する項目が存在するはずである。
図3のステップS310においては、限定された検討対象(ここではR43の範囲に含まれる5番目と6番目の項目)の範囲中にクライアントコンピュータ100から送信を要求された項目名と一致する項目がなかった場合には、テーブル管理部210は、参照データベースRDの先頭の項目から順に線形検索を行う。このような処理を行うことで、参照データベースRD内に格納された項目のデータの格納位置が前にずれた場合にも、目的とする項目のデータを得ることができる。
上記式(2)より、図2のステップS20で決定された、制限されたメモリのもとで実行可能な検討の回数iは、以下の式で表される。
Figure 2008165293
よって、i回目までの検討に要する時間t2は、以下の式で表される。なお、uBは、二分検索において1回の検討に要する時間である。
Figure 2008165293
一方、二分検索によって限定される参照データベースRDの検討対象の項目数wは、式(2)を考慮すると、以下の式で表されると期待できる。ここで、Nは、参照データベースRDが保持する全項目の数である。なお、内部保持テーブルITが保持する項目は、参照データベースRDが保持する全項目のうちの一部の項目である。以下の式は、内部保持テーブルITが保持している項目は、参照データベースRDが保持する全項目の中からほぼ均等な間隔をあけて取り出された項目である、という推定に基づいている。
w=N/2i
=N/(R+1)・・・ (6)
よって、二分検索によって限定された検討対象を線形検索で検索するのに要する時間tLは、以下の式で表される。なお、以下の式は、平均的には、項目の範囲wのうちの中央の順位の位置で、クライアントコンピュータ100から値の送信を要求された項目名と一致する項目が発見されると考えることができる、いう想定に基づいている。
tL=uL×w/2
=uL×N/2(R+1)・・・ (7)
式(5)および式(7)より、合成検索に要する時間TBは、以下の式で表される。
Figure 2008165293
なお、Rが100以上の値(たとえば127)である場合や、200以上の値(たとえば255)である場合であるなど、Rが1に対して十分大きい場合には、上記の式(8)は、以下の式で置き換えることができる。
Figure 2008165293
(3)ハッシュ検索法:
「ハッシュ検索法」は、(a)あらかじめ項目データに対してハッシュ関数を適用して得られたハッシュ値の番地に、項目データに対応づけられたデータを格納することによってハッシュテーブルを生成しておき、(b)検索の際には、目的とする項目データに同じハッシュ関数を適用して得られたハッシュ値の番地を参照して、目的の項目データに対応づけられたデータを得る方法である。
本実施例においては、あらかじめ項目名にハッシュ関数を適用して得た数値(ハッシュ値)に対応する格納位置にその項目のデータ(値またはアクセス経路)を格納しているハッシュテーブルHTを作成する。そして、検索の際には、ハッシュテーブルHT中の、検索目標である項目名にハッシュ関数を適用して得られたハッシュ値に対応する格納位置を、ステップS50において、検索開始位置とする。以下でより具体的に説明する。
図5は、参照データベースRDが有する各項目およびそのオフセット値の例と、参照データベースRDから生成されたハッシュテーブルHTの例とを示す図である。ここでは、AからZまでの項目を有する参照データベースRDを例として示している。図2のステップS30で、ハッシュ検索法の予想検索時間を決定する際には、参照データベースRDからハッシュテーブルHTが生成される。なお、参照データベースRDが有する各項目のデータのオフセット値は、参照データベースRDが有する各項目に基づいてハッシュテーブルを作成する際に、得ることができる。
具体的には、参照データベースRDの各項目名にハッシュ関数h(x)を適用して、得られたハッシュ値(「キー」ともいう)の番地に各項目のデータの先頭からのオフセット値(図1参照)を格納する。ハッシュ関数h(x)は、たとえば、「項目名のアルファベットのコードを足し合わせ、下からm桁(mは2以上の整数)を取得する関数」ph(x)に基づいて生成することができる。たとえば、ph(x)によって得られた値を、内部保持テーブルITが保持している項目の数Nで割って得られた余りをハッシュ値(キー)とすることができる。なお、ハッシュ関数h(x)は、できるだけ各項目名について異なる値を出力するものであることが好ましい。そして、ハッシュ値の分布範囲はできるだけ0〜(N−1)に近いことが好ましい。
たとえば、項目名「B」(図5の左側に示す参照データベースRDのオフセット値の表参照)にハッシュ関数h(x)を適用するとハッシュ値「1」が得られるとする。すると、ハッシュテーブルHTの番地「1」に項目「B」のオフセット値「0F」が格納される(図5のハッシュテーブルHT参照)。
また、項目名「C」と「D」(図5の内部保持テーブルIT参照)にハッシュ関数h(x)を適用するといずれもハッシュ値「2」が得られるとする。このように、異なる対象にハッシュ関数を適用して同じハッシュ値(キー)が得られる現象を「衝突」という。
本実施例では、衝突が発生した場合には、衝突が生じた項目のオフセット値のうち最小のものをハッシュ値の番地に格納する。たとえば、項目「C」のオフセット値は「10」であり、項目「D」のオフセット値は「1F」である(図5の内部保持テーブルIT参照)。このため、ハッシュテーブルHTの番地「2」には、小さい方の「10」が格納される。同様に、項目「F」と「G」についても衝突が生じ、同じ発出「0」が得られるため、ハッシュテーブルHTの番地「0」には、小さい方のオフセット値「2F」が格納される。
図2のステップS40でハッシュ検索法が選択された場合には、以下のような処理が行われる。すなわち、図2のステップS50では、テーブル管理部210の機能部としての検索部214は、まず、クライアントコンピュータ100から値の送信を要求された項目にハッシュ関数h(x)を適用してハッシュ値を得る。そして、ハッシュテーブルHTのその値の番地を参照して、対応づけられたオフセット値を得る。参照データベースRD中において、そのオフセット値に対応する項目が、ステップS50における検索開始値とされる。
ここで、たとえば、クライアントコンピュータ100から項目「D」の値の送信を要求された場合には、ハッシュテーブルHTから得られるオフセット値は項目「D」のオフセット値ではなく、項目「C」のオフセット値である(図5参照)。しかし、図3のステップS310においては、参照データベースRD内のそのオフセット値で表される位置に項目「D」のデータがない場合には、そこから順に参照データベースRD内を線形検索する。ハッシュテーブルHTを生成する際に衝突が生じたときには、衝突が生じた番地には、最も小さいオフセット値が格納される。このため、図3のステップS310のような処理が行われることで、参照データベースRDを参照する際、最終的には、目的とする項目「D」の値またはアクセス経路を得られる可能性が高い。
ハッシュテーブルHTにおいて衝突が生じる確率Pは、以下の式で得られる。ここで、kは、ハッシュテーブルHTを生成する際に生じた衝突の回数である。Nは、参照データベースRDが有する項目の数である。なお、kは、ハッシュテーブルを生成する際に、テーブル管理部210の予想時間決定部212がカウントする。
P=k/N ・・・ (10)
一方、衝突が生じた場合等に行われる線形検索(図3のステップS310およびS330参照)に要する時間は、{(N/2)×uL}と推定できる。なお、uLは、ある項目がクライアントコンピュータ100から値の送信を要求された項目名と一致するか否かを検討するのに要する時間である。
よって、クライアントコンピュータ100から値の送信を要求された項目にハッシュ関数h(x)を適用してハッシュ値を得るのに要すると予想される時間をHcとすると、ハッシュ検索法の予想検索時間THは、以下の式で得ることができる。
TH=Hc+{(N/2)×uL×P}
=Hc+{(N/2)×uL×(k/N)} ・・・ (11)
(4)まとめ:
以上で説明したように、線形検索法については、式(1)によって、予想検索時間TLが得られる。合成検索法については、式(8)または式(9)によって、予想検索時間TBが得られる。そして、ハッシュ検索法については、式(11)によって、予想検索時間TLが得られる。図2のステップS30では、これらの式に基づいて各検索法の予想検索時間を得る。このような方法で各検索法の予想検索時間を得ることで、限られたメモリ内でもっとも早く検索を行うことができる検索法を選択して、検索を行うことができる(図2のステップS40およびS50参照)。
なお、図2のステップS30では、最終的にステップS50でハッシュ検索法を使用するか否かによらず、ハッシュテーブルHT(図5参照)を生成する。予想検索時間TLを計算する際に正確な衝突確率Pを得るためには、あらかじめ衝突回数kが得られていることが好ましいためである。
A5.本実施例の効果:
以上で説明したネットワークシステムにおいては、クライアントコンピュータ100aからステータス情報を要求された場合に、あらかじめ検索に使用できるメモリと、検索対象の項目数と、に基づいて検索に要する時間を計算し、最も検索に要する時間が短い検索方法を決定して、検索を行っている。このため、システムの状況に応じて動的に検索方法を決定できる。その結果、システムの状況に最も適した検索方法を使用して、短時間でクライアントコンピュータ100aから要求されたステータス情報を返信することができる。
B.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
B1.変形例1:
上記実施例では、参照データベースRDは、プリンタ300が保持していた。しかし、参照データベースRDは、プリンタサーバ200が保持することもできる。また、ネットワークに接続された他のデバイスが参照データベースRDを保持し、プリンタサーバ200がネットワークNTを介して参照する態様とすることもできる。
B2.変形例2:
上記実施例においては、プリンタサーバ200の内部保持テーブルITは、プリンタ300が保持している参照データベースRDの項目のうち、一部の項目とその項目に対応する値(またはアクセス経路)を有していた。しかし、内部保持テーブルITは、参照データベースRDの項目のすべての項目とその項目に対応する値(またはアクセス経路)を有していてもよい。
なお、内部保持テーブルITは、あらかじめ、たとえば、プリンタサーバ200の電源がONとなったときに生成することができる。また、プリンタサーバ200の電源がONとなった後、最初にクライアントコンピュータ100から状態データの要求があったときに生成することもできる。
B3.変形例3:
上記実施例では、検索法は、線形検索法と、二分検索法および線形検索法による合成検索法と、ハッシュ検索法であった。しかし、検索法には他の検索法を含んでもよい。
B4.変形例4:
線形検索法は、ほとんどすべての条件下で他の検索法よりも必要とするメモリの量が小さい。このため、図2のステップS20において計算された使用できるメモリの量が所定値以下である場合には、自動的に線形検索を行うような態様とすることも好ましい。
B5.変形例5:
上記実施例では、検索に使用できるメモリの容量に基づいて予想検索時間を決定している。しかし、検索などの処理を行うのに要する時間を決定する際には、他のハードウェア資源の量を考慮する態様とすることもできる。たとえば、複数のCPUを並列に使用して処理を行う場合には、その処理に要する時間は、その処理に使用することができるCPUの数に基づいて決定することができる。なお、複数の仮想CPUを使用する場合も同様である。
B6.変形例6:
上記実施例では、ネットワークに接続されたプリンタサーバ200と、そのプリンタサーバ200に接続されたプリンタ300について説明した。しかし、本発明は、他の技術に適用することもできる。本発明は、たとえば、音楽データ、動画データ、静止画データ、文書データ等のデータを蓄積しているデータベースであって、複数のクライアントが利用できるデータベースにおいて、クライアントが目的とするデータを検索する技術に適用することもできる。すなわち、本発明は、使用可能な資源の量が動的に変化する環境下で検索を行う、任意の検索システムについて適用することができる。
B7.変形例7:
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。例えば、テーブル管理部210、データベース管理部310(図1参照)の機能の一部を他のホストコンピュータが実行するようにすることもできる。
このような機能を実現するコンピュータプログラムは、フロッピディスクやCD−ROM等の、コンピュータ読み取り可能な記録媒体に記録された形態で提供される。ホストコンピュータは、その記録媒体からコンピュータプログラムを読み取って内部記憶装置または外部記憶装置に転送する。あるいは、通信経路を介してプログラム供給装置からホストコンピュータにコンピュータプログラムを供給するようにしてもよい。コンピュータプログラムの機能を実現する時には、内部記憶装置に格納されたコンピュータプログラムがホストコンピュータのマイクロプロセッサによって実行される。また、記録媒体に記録されたコンピュータプログラムをホストコンピュータが直接実行するようにしてもよい。
この明細書において、ホストコンピュータとは、ハードウェア装置とオペレーションシステムとを含む概念であり、オペレーションシステムの制御の下で動作するハードウェア装置を意味している。コンピュータプログラムは、このようなホストコンピュータに、上述の各部の機能を実現させる。なお、上述の機能の一部は、アプリケーションプログラムでなく、オペレーションシステムによって実現されていても良い。
なお、この発明において、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスクやCD−ROMのような携帯型の記録媒体に限らず、各種のRAMやROM等のコンピュータ内の内部記憶装置や、ハードディスク等のコンピュータに固定されている外部記憶装置も含んでいる。
ネットワークシステムの概略構成を示す図。 プリンタサーバ200が、クライアントコンピュータ100からの要求を受けて、ステータス情報を送信する手順を示すフローチャート。 図2のステップS60において、参照データベースRDから値またはアクセス経路を得る際の処理を示すフローチャート。 合成検索法の例を示す図。 参照データベースRDが有する各項目およびそのオフセット値の例と、参照データベースRDから生成されたハッシュテーブルHTの例とを示す図。
符号の説明
100a,100b,100c…クライアントコンピュータ
200…プリンタサーバ
210…テーブル管理部
211…資源量決定部
212…予想時間決定部
213…検索法決定部
214…検索部
216…状態データ取得部
217…状態データ送信部
220…メモリ
300…プリンタ
310…データベース管理部
DID…デバイス情報データベース
HT…ハッシュテーブル
IT…内部保持テーブル
NT…ネットワーク
PL…電話回線
RD…参照データベース

Claims (11)

  1. 他の処理を実行しつつ、N個(Nは2以上の整数)の単位データと前記単位データにそれぞれ対応づけられたデータとを含むデータ集合の中から1個の対象データを検索して、前記対象データに対応づけられたデータを取得するデータ検索装置であって、
    実行中の前記他の処理であって前記検索に使用できるハードウェア資源の一部を使用する処理に基づいて、前記ハードウェア資源のうち前記検索のために利用可能な前記ハードウェア資源の量を決定する資源量決定部と、
    前記利用可能な量の前記ハードウェア資源を利用する場合に前記検索に要すると予想される予想時間を、前記利用可能な前記ハードウェア資源の量に基づいて、複数の検索法について決定する予想時間決定部と、
    前記予想時間に基づいて前記複数の検索法の中から一つの検索法を決定する検索法決定部と、
    前記対象データに対応づけられたデータを取得するために、前記決定された検索法を使用して、前記データ集合の中から前記対象データを検索する検索部と、を含むデータ検索装置。
  2. 請求項1記載のデータ検索装置であって、
    前記ハードウェア資源は、前記検索および前記他の処理に使用することができるメモリである、データ検索装置。
  3. 請求項2記載のデータ検索装置であって、
    前記複数の検索法は、線形検索法を含み、
    前記予想時間決定部は、前記線形検索法についての予想時間TLを、
    TL=(N/2)×uL
    で計算し、
    uLは、前記単位データが前記対象データであるか否かを決定するのに要すると予想される時間である、データ検索装置。
  4. 請求項3記載の方法であって、
    前記データ集合は、一定の方法で前記各単位データからそれぞれ得られる値の大きさの順で前記複数の単位データおよび前記対応づけられたデータの組合せを保持しており、
    前記複数の検索法は、
    前記利用可能な前記ハードウェア資源を利用して、前記値の大きさに基づいて二分検索法を実行して、前記データ集合に含まれる前記N個の単位データの中から、前記対象データを特定するための線形検索法を開始する位置を決定し、前記決定された位置に基づいて前記線形検索法を実行する合成検索法を含み、
    前記予想時間決定部は、前記合成検索法についての予想時間TBを、
    Figure 2008165293
    で計算し、
    Rは、二分検索において前記対象データとの間で前記値の比較を行う比較対象の単位データの数であって、前記利用可能な量の前記ハードウェア資源を利用して位置情報を保持することができる比較対象の単位データの数であり、
    uBは、前記比較対象の単位データと前記対象データとの間で前記値の大小関係を決定するのに要すると予想される時間であり、
    uLは、前記単位データが前記対象データであるか否かを決定するのに要すると予想される時間である、データ検索装置。
  5. 請求項3記載のデータ検索装置であって、
    前記データ集合は、一定の方法で前記各単位データからそれぞれ得られる値の大きさの順で前記複数の単位データおよび前記対応づけられたデータの組合せを保持しており、
    前記複数の検索法は、
    前記単位データに所定のハッシュ関数を適用して得られるハッシュ値に対応する場所に、前記データ集合における前記各単位データの格納位置を表すデータを格納することにより、ハッシュテーブルを作成し、
    前記ハッシュテーブル中の場所であって、前記対象データに前記ハッシュ関数を適用して得られるハッシュ値に対応する場所に格納されている前記格納位置を表すデータを取得する、ハッシュ検索法を含み、
    前記予想時間決定部は、
    前記ハッシュテーブルの作成を行い、
    前記ハッシュ検索法についての予想時間THを、
    TH=Hc+{(N/2)×uL×(k/N)}
    で計算し、
    前記検索部は、前記ハッシュ値に対応する場所に格納されている前記格納位置を表すデータの取得を実行し、
    Hcは、前記対象データに前記ハッシュ関数を適用して前記ハッシュ値を得るのに要すると予想される時間であり、
    kは、前記ハッシュテーブルの生成において生じた衝突の回数であり、
    uLは、前記単位データが前記対象データであるか否かを決定するのに要すると予想される時間である、データ検索装置。
  6. 請求項1ないし4のいずれかに記載のデータ検索装置を備えるデバイス管理装置であって、前記デバイス管理装置に接続されたデバイスの状態を表す状態データを取得して、ネットワークを介してクライアントコンピュータに送信するデバイス管理装置であり、
    前記デバイスと前記デバイス管理装置との少なくとも一方は、参照データベースを有しており、
    前記参照データベースは、
    前記デバイスの状態を表す複数の状態データと、他のデータベースにおいて前記状態データが格納されている場所を表すアクセス経路データと、の少なくとも一方を、それぞれ項目データと対応づけて格納しているデータベースであって、
    一定の方法で前記各項目データから得られる値の大きさの順で、前記項目データならびに前記対応づけられた前記状態データおよび前記アクセス経路データの組合せを格納しているデータベースであり、
    前記予想時間決定部は、前記クライアントコンピュータからの前記状態データの要求に応じて、前記参照データベースからの1個の項目データの検索について、前記予想時間を計算し、
    前記検索部は、前記1個の項目データに対応づけられた前記状態データと前記アクセス経路データの少なくとも一方を取得するために、前記決定された検索法を使用して、前記参照データベースの中から前記対象データとしての1個の項目データを検索し、
    前記デバイス管理装置は、さらに、
    前記検索部が前記アクセス経路データを取得した場合に、前記取得した前記アクセス経路データに基づいて前記他のデータベースから前記状態データを取得する状態データ取得部と、
    前記検索部と前記状態データ取得部との少なくとも一方が取得した前記状態データを前記クライアントコンピュータに送信する状態データ送信部と、を備えるデバイス管理装置。
  7. 請求項6記載のデバイス管理装置であって、
    前記参照データベースは、所定の条件が満たされた場合に更新され、
    前記検索部は、前記決定された検索法による前記データ集合の検索によって、前記クライアントコンピュータからの要求に対応する前記状態データおよび前記状態データの前記アクセス経路データがいずれも得られなかった場合には、前記値の大きさの順に、前記参照データベースの先頭の項目データから線形検索法を実行する、デバイス管理装置。
  8. 他の処理を実行しつつ、N個(Nは2以上の整数)の単位データと前記単位データにそれぞれ対応づけられたデータとを含むデータ集合の中から1個の対象データを検索して、前記対象データに対応づけられたデータを取得する方法であって、
    (a)実行中の前記他の処理であって前記検索に使用できるハードウェア資源の一部を使用する処理に基づいて、前記ハードウェア資源のうち前記検索のために利用可能な前記ハードウェア資源の量を決定する工程と、
    (b)前記利用可能な量の前記ハードウェア資源を利用する場合に前記検索に要すると予想される予想時間を、前記利用可能な前記ハードウェア資源の量に基づいて、複数の検索法について決定する工程と、
    (c)前記予想時間に基づいて前記複数の検索法の中から一つの検索法を決定する工程と、
    (d)前記対象データに対応づけられたデータを取得するために、前記決定された検索法を使用して、前記データ集合の中から前記対象データを検索する工程と、を含む方法。
  9. 他の処理を実行しつつ、N個(Nは2以上の整数)の単位データと前記単位データにそれぞれ対応づけられたデータとを含むデータ集合の中から1個の対象データを検索して、前記対象データに対応づけられたデータを取得する処理をコンピュータに実行させるコンピュータプログラムであって、
    実行中の前記他の処理であって前記検索に使用できるハードウェア資源の一部を使用する処理に基づいて、前記ハードウェア資源のうち前記検索のために利用可能な前記ハードウェア資源の量を決定する機能と、
    前記利用可能な量の前記ハードウェア資源を利用する場合に前記検索に要すると予想される予想時間を、前記利用可能な前記ハードウェア資源の量に基づいて、複数の検索法について決定する機能と、
    前記予想時間に基づいて前記複数の検索法の中から一つの検索法を決定する機能と、
    前記対象データに対応づけられたデータを取得するために、前記決定された検索法を使用して、前記データ集合の中から前記対象データを検索する機能と、を
    前記コンピュータに実行させるコンピュータプログラム。
  10. 請求項9記載のコンピュータプログラムであって、
    前記データ集合は、一定の方法で前記各単位データからそれぞれ得られる値の大きさの順で前記複数の単位データおよび前記対応づけられたデータの組合せを保持しており、
    前記複数の検索法は、
    前記利用可能な前記ハードウェア資源を利用して、前記値の大きさに基づいて二分検索法を実行して、前記データ集合に含まれるN個の単位データの中から、前記対象データを特定するための線形検索法を開始する位置を決定し、
    前記決定された位置に基づいて前記線形検索法を実行する合成検索法を含み、
    前記予想時間を決定する機能は、前記合成検索法についての予想時間TBを、
    Figure 2008165293
    で計算する機能を含み、
    Rは、二分検索において前記対象データとの間で前記値の比較を行う比較対象の単位データの数であって、前記利用可能な量の前記ハードウェア資源を利用して位置情報を保持することができる比較対象の単位データの数であり、
    uBは、前記比較対象の単位データと前記対象データとの間で前記値の大小関係を決定するのに要すると予想される時間であり、
    uLは、前記単位データが前記対象データであるか否かを決定するのに要すると予想される時間である、コンピュータプログラム。
  11. 請求項9記載のコンピュータプログラムであって、
    前記データ集合は、一定の方法で前記各単位データからそれぞれ得られる値の大きさの順で前記複数の単位データおよび前記対応づけられたデータの組合せを保持しており、
    前記複数の検索法は、
    前記単位データに所定のハッシュ関数を適用して得られるハッシュ値に対応する場所に、前記データ集合における前記各単位データの格納位置を表すデータを格納することにより、ハッシュテーブルを作成し、
    前記ハッシュテーブル中の場所であって、前記対象データに前記ハッシュ関数を適用して得られるハッシュ値に対応する場所に格納されている前記格納位置を表すデータを取得するハッシュ検索法を含み、
    前記予想時間を決定する機能は、
    前記ハッシュテーブルを作成する機能と、
    前記ハッシュ検索法についての予想時間THを、
    TH=Hc+{(N/2)×uL×(k/N)}
    で計算する機能と、を含み、
    前記対象データに対応づけられた前記データを取得する機能は、前記ハッシュ値に対応する場所に格納されている前記g格納位置を表すデータを、取得する機能を含み、
    Hcは、前記対象データに前記ハッシュ関数を適用して前記ハッシュ値を得るのに要すると予想される時間であり、
    kは、前記ハッシュテーブルの生成において生じた衝突の回数であり、
    uLは、前記単位データが前記対象データであるか否かを決定するのに要すると予想される時間である、コンピュータプログラム。
JP2006350998A 2006-12-27 2006-12-27 データ検索装置、デバイス管理装置、データ検索方法、およびコンピュータプログラム Withdrawn JP2008165293A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006350998A JP2008165293A (ja) 2006-12-27 2006-12-27 データ検索装置、デバイス管理装置、データ検索方法、およびコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006350998A JP2008165293A (ja) 2006-12-27 2006-12-27 データ検索装置、デバイス管理装置、データ検索方法、およびコンピュータプログラム

Publications (1)

Publication Number Publication Date
JP2008165293A true JP2008165293A (ja) 2008-07-17

Family

ID=39694764

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006350998A Withdrawn JP2008165293A (ja) 2006-12-27 2006-12-27 データ検索装置、デバイス管理装置、データ検索方法、およびコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP2008165293A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009157421A1 (ja) 2008-06-25 2009-12-30 ユニ・チャーム株式会社 吸収性物品の製造方法
JP2013186890A (ja) * 2012-03-05 2013-09-19 Nhn Business Platform Corp データベースミドルウェアを用いたデータ管理システム及びその方法
JP2016509310A (ja) * 2013-02-01 2016-03-24 シンボリック アイオー コーポレーション 格納されたデータにおける冗長削減
JP2017010444A (ja) * 2015-06-25 2017-01-12 日本電気株式会社 通信装置、送信方法、及び、プログラム
US10061514B2 (en) 2015-04-15 2018-08-28 Formulus Black Corporation Method and apparatus for dense hyper IO digital retention
US10120607B2 (en) 2015-04-15 2018-11-06 Formulus Black Corporation Method and apparatus for dense hyper IO digital retention
US10133636B2 (en) 2013-03-12 2018-11-20 Formulus Black Corporation Data storage and retrieval mediation system and methods for using same
US10572186B2 (en) 2017-12-18 2020-02-25 Formulus Black Corporation Random access memory (RAM)-based computer systems, devices, and methods
US10725853B2 (en) 2019-01-02 2020-07-28 Formulus Black Corporation Systems and methods for memory failure prevention, management, and mitigation
US10789137B2 (en) 2013-02-01 2020-09-29 Formulus Black Corporation Fast system state cloning

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009157421A1 (ja) 2008-06-25 2009-12-30 ユニ・チャーム株式会社 吸収性物品の製造方法
JP2013186890A (ja) * 2012-03-05 2013-09-19 Nhn Business Platform Corp データベースミドルウェアを用いたデータ管理システム及びその方法
JP2016509310A (ja) * 2013-02-01 2016-03-24 シンボリック アイオー コーポレーション 格納されたデータにおける冗長削減
US10789137B2 (en) 2013-02-01 2020-09-29 Formulus Black Corporation Fast system state cloning
US10133636B2 (en) 2013-03-12 2018-11-20 Formulus Black Corporation Data storage and retrieval mediation system and methods for using same
US10061514B2 (en) 2015-04-15 2018-08-28 Formulus Black Corporation Method and apparatus for dense hyper IO digital retention
US10120607B2 (en) 2015-04-15 2018-11-06 Formulus Black Corporation Method and apparatus for dense hyper IO digital retention
US10346047B2 (en) 2015-04-15 2019-07-09 Formulus Black Corporation Method and apparatus for dense hyper IO digital retention
US10606482B2 (en) 2015-04-15 2020-03-31 Formulus Black Corporation Method and apparatus for dense hyper IO digital retention
JP2017010444A (ja) * 2015-06-25 2017-01-12 日本電気株式会社 通信装置、送信方法、及び、プログラム
US10572186B2 (en) 2017-12-18 2020-02-25 Formulus Black Corporation Random access memory (RAM)-based computer systems, devices, and methods
US10725853B2 (en) 2019-01-02 2020-07-28 Formulus Black Corporation Systems and methods for memory failure prevention, management, and mitigation

Similar Documents

Publication Publication Date Title
JP2008165293A (ja) データ検索装置、デバイス管理装置、データ検索方法、およびコンピュータプログラム
KR100932803B1 (ko) 원자적으로 갱신되는 중앙 캐시 메모리를 위한 방법 및 시스템
US9251156B2 (en) Information processing devices, method, and recording medium with regard to a distributed file system
JP4559158B2 (ja) データにアクセスするための方法及びシステム
US7444596B1 (en) Use of template messages to optimize a software messaging system
US11080265B2 (en) Dynamic hash function composition for change detection in distributed storage systems
JP2009217306A (ja) 印刷システム、プリンタ、サーバ、コンピュータプログラム及び印刷方法
US20200342005A1 (en) Property grouping for change detection in distributed storage systems
JPWO2004111876A1 (ja) 検索条件を再利用する検索システムおよび方法
JP2010277467A (ja) 分散データ管理システム、データ管理装置、データ管理方法、およびプログラム
CN108111598B (zh) 云盘数据的下发方法、装置及存储介质
US8819036B2 (en) Computer product, search method, search apparatus, and node
US8918383B2 (en) Vector space lightweight directory access protocol data search
KR20170006742A (ko) 소프트웨어 라우터, 그 소프트웨어 라우터에서의 라우팅 테이블 검색 방법 및 라우팅 엔트리 갱신 방법
US11055274B2 (en) Granular change detection in distributed storage systems
US7159019B2 (en) Information collection apparatus and method
KR100611983B1 (ko) 파일 검색 방법 및 시스템
US9147011B2 (en) Searching method, searching apparatus, and recording medium of searching program
JP3791280B2 (ja) プリンタサーバ
JP2008234204A (ja) 文書検索装置、文書検索方法および文書検索プログラム
JPH1139324A (ja) 分散型情報検索方法及びシステム及び分散型情報検索プログラムを格納した記憶媒体
JP4197679B2 (ja) 印刷制御装置及び印刷制御方法
JP2011048746A (ja) 端末装置、会議資料共有システム、及びプログラム
JP2005215903A (ja) 情報処理システム
US20020107845A1 (en) Electronic component data sheet retrieving apparatus and electronic component data sheet retrieving method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090618

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20100531