JP6036302B2 - 情報処理装置、情報処理システム、情報処理方法および情報処理プログラム - Google Patents
情報処理装置、情報処理システム、情報処理方法および情報処理プログラム Download PDFInfo
- Publication number
- JP6036302B2 JP6036302B2 JP2012554722A JP2012554722A JP6036302B2 JP 6036302 B2 JP6036302 B2 JP 6036302B2 JP 2012554722 A JP2012554722 A JP 2012554722A JP 2012554722 A JP2012554722 A JP 2012554722A JP 6036302 B2 JP6036302 B2 JP 6036302B2
- Authority
- JP
- Japan
- Prior art keywords
- key
- key range
- information processing
- query
- range
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
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)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
外部システムから入力されたクエリは、0以上のノードを経由して、該クエリから生成したキーが割り当てられたノードに送信される。クエリから複数のキーが生成される可能性があり、その場合、各キーが割り当てられたノードの全てに該クエリが送信される。経由されるノードの特定は、ルーティングプロトコルに依存する。あるキーが割り当てられたノードにクエリが送信されるとき、該キーは、該ノードの宛先キーと呼ばれる。
外部システムからデータが入力されると、ノードは、該データからキーを生成し、生成したキーが割り当てられたノードへ、データを転送する。よって、同じキーが生成されるデータとクエリとが、そのキーが割り当てられた同一のノードに送信される。各ノードがデータとクエリとの完全一致を判定する場合には、データを入力としてハッシュ関数により得られる値をキーとし、クエリで指定されるデータを入力としてハッシュ関数により得られる値をキーとする構成であればよい。これにより、完全一致するデータとクエリとが同一のノードに到達することとなる。
外部システムから入力されるクエリを、そのクエリを処理すべきノードにルーティングする方法が開示されている(例えば非特許文献1参照)。
非特許文献1に記載された技術は、例えば以下のように動作する。P2Pシステムの各ノードは、多次元の属性のそれぞれの値を示す属性値を、空間充填曲線を使って一次元のデータを示すキーにマッピングする。そしてクエリが入力されると、各ノードは、該クエリからある値を示すキーの集合であるキー範囲を生成する。次に、ノードは、該クエリが各キー範囲の最小キーが割り当てられたノードに送信されるように、該クエリの転送先のノードを決定する。そして該ノードは、その転送先のノードに該クエリを送信する。クエリは、0以上のノードを経由して、該キーが割り当てられたノードに送信される。クエリの転送先のノードは、クエリを受信し、受信したクエリを処理する。その処理の際、該ノードに割り当てられたキー範囲の最大値よりもクエリのキー範囲の最大値の方が大きい場合、該ノードはサクセッサ(successor)に受信したクエリを転送する。ノードのサクセッサとは、該ノードの割当キーが示すそれぞれの値の最大値に一を加えた値を示すキーが割り当てられたノードである。ノードがそのサクセッサにクエリを転送する処理は、クエリから生成されたキー範囲の最大値が該ノードに割り当てられたキー範囲の最大値よりも小さくなるまで繰り返される。
本発明の目的の一例は、大量のクエリを転送するときに冗長なクエリ転送を低減する情報処理装置、情報処理システム、情報処理方法および情報処理プログラムを提供することである。
本発明の一態様における情報処理システムは、少なくとも一つの情報処理装置を備え、当該情報処理装置は、ある値の範囲を特定するクエリを受け取り、当該クエリに含まれる値をそれぞれ示すキーを生成し、所定のキーの集合であるキー範囲を少なくとも一つ含むキー範囲群を生成するキー範囲生成部と、各情報処理装置が管理すべきキーの境界を示すキーを記憶する経路管理部と、キー範囲群を受け取り、当該キー範囲群に含まれるキー範囲毎に、キー範囲に含まれる所定のキーが示す値と前記経路管理部が記憶する各キーがそれぞれ示す値との大小関係に基づいて一のキーである宛先キーを特定し、当該キー範囲に含まれるキーを、前記宛先キーの値に基づいて識別される情報処理装置のノード識別子に関連付けられるキーの集合であるキー範囲グループに追加する、クエリ転送制御部と、を備え、前記クエリ転送制御部は、各キー範囲グループを、当該各キー範囲グループに関連付けられているノード識別子で識別される情報処理装置へそれぞれ転送する。
本発明の一態様における情報処理方法は、ある値の範囲を特定するクエリを受け取り、当該クエリに含まれる値をそれぞれ示すキーを生成し、所定のキーの集合であるキー範囲を少なくとも一つ含むキー範囲群を生成し、各装置が管理すべきキーの境界を示すキーを経路管理部に記憶し、キー範囲群を受け取り、当該キー範囲群に含まれるキー範囲毎に、キー範囲に含まれる所定のキーが示す値と前記経路管理部に記憶される各キーがそれぞれ示す値との大小関係に基づいて一のキーである宛先キーを特定し、当該キー範囲に含まれるキーを、前記宛先キーの値に基づいて識別される装置のノード識別子に関連付けられるキーの集合であるキー範囲グループに追加し、各キー範囲グループを、当該各キー範囲グループに関連付けられているノード識別子で識別される装置へそれぞれ転送する。
本発明の一態様における情報処理プログラムは、コンピュータに、ある値の範囲を特定するクエリを受け取り、当該クエリに含まれる値をそれぞれ示すキーを生成し、所定のキーの集合であるキー範囲を少なくとも一つ含むキー範囲群を生成する処理と、各装置が管理すべきキーの境界を示すキーを経路管理部に記憶する処理と、キー範囲群を受け取り、当該キー範囲群に含まれるキー範囲毎に、キー範囲に含まれる所定のキーが示す値と前記経路管理部に記憶される各キーがそれぞれ示す値との大小関係に基づいて一のキーである宛先キーを特定する処理と、当該キー範囲に含まれるキーを、前記宛先キーの値に基づいて識別される装置のノード識別子に関連付けられるキーの集合であるキー範囲グループに追加する処理と、各キー範囲グループを、当該各キー範囲グループに関連付けられているノード識別子で識別される装置へそれぞれ転送する処理と、を実行させる。
本発明の一態様における記録媒体は、コンピュータに、ある値の範囲を特定するクエリを受け取り、当該クエリに含まれる値をそれぞれ示すキーを生成し、所定のキーの集合であるキー範囲を少なくとも一つ含むキー範囲群を生成する処理と、各装置が管理すべきキーの境界を示すキーを経路管理部に記憶する処理と、キー範囲群を受け取り、当該キー範囲群に含まれるキー範囲毎に、キー範囲に含まれる所定のキーが示す値と前記経路管理部に記憶される各キーがそれぞれ示す値との大小関係に基づいて一のキーである宛先キーを特定する処理と、当該キー範囲に含まれるキーを、前記宛先キーの値に基づいて識別される装置のノード識別子に関連付けられるキーの集合であるキー範囲グループに追加する処理と、各キー範囲グループを、当該各キー範囲グループに関連付けられているノード識別子で識別される装置へそれぞれ転送する処理と、を実行させるための情報処理プログラムを格納する。
[第一の実施の形態]
図1は、本発明の第一の実施の形態における情報処理システム10の構成を示すブロック図である。
図1を参照すると、本発明の第一の実施の形態における情報処理システム10は、複数のノード100aないしノード100rを備える。ここで、ノード100aないしノード100rは、以下代表してノード100とも記載される。各ノード100は、少なくとも一つの他のノード100と通信可能に接続されている。
情報処理システム10は、空間充填曲線を使って多次元の属性を、ある値を示すキーにマッピングする。図2は、二次元の属性を示す例である。二次元の属性のそれぞれの属性値の組み合わせが、あるキー803にマッピングされる。例えば、図2において、二次元の属性からなる空間である属性空間804の少なくとも一部を示すクエリエリア805に含まれるある属性値の組み合わせ(xa,ya)が、あるキー803にマッピングされている。
図1において、情報処理システム10は、ノード100aからノード100rまでを備える。そして、それぞれのノード100に対して一次元のキー空間801の一部のキー範囲802が割り当てられている。
本明細書において、データは、複数の属性を含んでもよい。例えば、データは、位置情報として「緯度」属性と「経度」属性とを含んでもよい。属性は、属性の種別を識別する情報である属性名と、属性名に対する値(属性値)を含む。例えば、「緯度」属性は、属性名「緯度」と、属性値「北緯35度40分」とをそれぞれ含んでもよい。
本明細書において、クエリは、属性値の範囲を指定する情報であってもよい。例えば、クエリは、北緯35度30分から北緯35度50分まで、東経139度40分から東経139度50分までといったように各属性値の範囲を指定する情報であってもよい。「北緯35度40分、東経139度46分」というデータは、前述のクエリで指定される範囲に含まれる。よって該データは、前述のクエリ「北緯35度30分から北緯35度50分まで、東経139度40分から東経139度50分まで」に合致する。
次に、情報処理システム10が、空間充填曲線を使って、多次元の属性を一次元の情報を示すキーにマッピングする手順について説明する。
図3は、情報処理システム10が、空間充填曲線を使って、多次元の属性を一次元の情報を示すキーにマッピングする手順の一例を示す図である。
本例は、属性xと属性yとを含む二次元の属性が一次元の情報を示すキーにマッピングされる例である。まず、属性xの属性値範囲と属性yの属性値範囲とから、属性xサブキー範囲[011,101]と属性yサブキー範囲[00,01]が生成される。ここで、サブキーとは、キーを生成するために使用される値である。図3の例では、属性xのサブキーは、3ビットである。また属性yのサブキーは、2ビットである。本例において、属性xサブキー範囲に含まれるサブキー集合{011,100,101}と属性yサブキー範囲に含まれるサブキー集合{00,01}の全組み合わせについて、各ビットを交互に並べたビット列がキーである。例えば、「011」と「00」の各ビットが交互に並べられると、「00101」が生成される。以上の処理により、属性xの属性値範囲と属性yの属性値範囲から、2×3個(=6個)のキーが生成される。本明細書では、サブキーの組み合わせである、「011」と「00」と、からキーを生成することを、「(011,00)からキーを生成する」と表記する。上記のキー生成方法は例示であって、キー生成方法は、サブキー集合に含まれるビットの組み合わせに基づいてキーが生成される方法であればよい。
図4は、本発明の第一の実施の形態におけるノード100の構成を示すブロック図である。
図4を参照すると、本発明の第一の実施の形態におけるノード100は、キー範囲生成部101と、クエリ転送制御部102と、経路管理部103と、クエリ処理部104と、最小割当キー保持部105と、を備える。
キー範囲生成部101は、クエリを図示しない外部システムから受信する。そしてキー範囲生成部101は、該クエリから一または複数のキー範囲を含むキー範囲群のデータを生成する。キー範囲とは、キーがとりうる値の空間であるキー空間の一部の範囲である。あるキー範囲に含まれる各キーの値は、連続する値を示す。
キー範囲生成部101がクエリからキー範囲群を生成する方法として、非特許文献2が開示する手段が挙げられる。例えば、クエリとして、緯度の範囲と経度の範囲で表されるエリアが指定される場合、非特許文献2が開示する方法では、以下のように処理が行われる。まず、キー範囲生成部101は、緯度と経度で表すことができる全エリアに対して、そのエリアがクエリに完全に包含されるかどうかを検証する。包含されていなければ、キー範囲生成部101は、そのエリアを四等分する。四等分された各エリアに対して、一つのエリアがクエリとオーバーラップする場合に、キー範囲生成部101は、そのエリアをさらに四等分する。キー範囲生成部101は、以上のような処理を再帰的に行う。以上の処理が完了すると、キー範囲生成部101は、クエリに完全に包含されるエリアの集合と、クエリとオーバーラップしないエリアの集合と、を求めることができる。キー範囲生成部101は、クエリに完全に包含されるエリアに基づいて一つのキー範囲を生成することができる。非特許文献2が開示する手段は、分割されたエリアから連続したキーが生成されるように、複数の属性の属性値が空間充填曲線に基づいて一次元のキーに変換されていることが前提となる。
キー範囲生成部101は、生成した各キー範囲について、キー範囲を、自ノード100の割当キー範囲とオーバーラップするキー範囲と、オーバーラップしないキー範囲とに分割する。例えばキー範囲生成部101は、自ノード100の割当キー範囲の最小割当キーkに基づいて、k以上の値を示すキーのキー範囲と、k未満の値を示すキーのキー範囲とに分割する。つまり、キー範囲生成部101は、キー範囲[kmin,kmax]が自ノード100に割り当てられたキー範囲(割当キー範囲)の最小割当キーkとそのkより一小さい値を示すキーk−1とを含む場合に、以下の処理を行う。すなわちキー範囲生成部101は、キー範囲[kmin,kmax]を、二つのキー範囲[kmin,k−1]と[k,kmax]とに分割する。
キー範囲生成部101は、自ノード100が受信したクエリと、生成したキー範囲を含むキー範囲群と、をクエリ転送制御部102に渡す。
クエリ処理部104は、後述のクエリ転送制御部102からクエリを受け取り、受け取ったクエリを処理する。クエリ処理部104が行う処理は、情報処理システム10の応用方法によって異なる。例えば、情報処理システム10は、Publish/Subscribe型のシステムとして利用されうる。
Publish/Subscribe型のシステムでは、アプリケーションが、あらかじめデータの条件(データの条件とは、これまでの説明のクエリに相当する)をシステムに登録する。データの条件に合致するイベントが発生すると、そのイベントは、データの条件を登録したアプリケーションに通知される。イベントがシステムに入力されることは、Publishと呼ばれる。またデータの条件がシステムに登録されることは、Subscribeと呼ばれる。
本実施の形態において、例えばあらかじめ、ユーザがデータの条件(データ条件)を情報処理システム10に登録しておく。そしてデータ条件にマッチするデータが情報処理システム10に入力されたら、該データを、データ条件を登録した外部システムに通知する。この場合、データ条件とは、クエリに相当する。よってクエリ処理部104は、クエリをメモリ上に記憶し、データが入力されたときにクエリとデータとの合致判定をする機能手段を備える。その後、データがクエリ処理部104に入力されたら、クエリ処理部104は、メモリ上に保持しているクエリとの合致判定を行う。クエリ処理部104は、合致したと判定した場合に、所定の通知先にその旨を通知する。
経路管理部103は、キー(宛先キー)に対して、該キーが割り当てられたノードに到達するために、次の転送先であるノードのアドレス(ノードアドレス)を算出する。例えば、経路管理部103は、Chord(例えば、非特許文献3参照)などのルーティングプロトコルに基づいて、ノードアドレスを算出する。Chordは、宛先キーに最も近いキーが割り当てられたノードを次の転送先として特定するプロトコルである。
経路管理部103は、他のノード100との経路を示す情報(例えば、Chordであれば、Finger tableに相当する)を記憶する。図5は、経路管理部103が記憶する情報の一例である。この情報はフィンガーテーブル825とも呼ばれる。図5において、「start」は、自ノード100に対応付けられているキーが示す値に所定数だけ(例えば2i、ただしiは0以上の整数)加算した値を示すキーである。また、「int.」は、「start」のキーに対応するキー範囲を示す情報である。例えばキーの値がnであるキーに対応付けられているノードにおいて「start」は、n+2i(ただしiは0以上の整数)である。そしてこのキー「n+2i」に対応付けられている「int.」は、n+2i≦k<2i+1を満たすキーkの集合、すなわち、キーkのキー範囲である。「succ.」は、int.で示されている各キーに対応するノードのうちstartに対応付けられているキーの値に最も近いキーに対応付けられている他のノード100を示す識別子である。
キーはいずれかのノード100を識別できる情報であってもよい。また、キーは、ノード100を識別できる識別子、またはノードアドレスであってもよい。キーは、あるノードを識別できる識別子またはノードアドレスに一意に対応する情報であってもよい。
図5において、「int.」は、「succ.」で識別されるノードに対応付けられるキーの集合を示す情報であってもよい。また、「succ.」に含まれるノードの識別子は、ノードのノードアドレスであってもよい。
各ノード100は、この経路を示す情報を生成するために、自ノード100のノードアドレスと自ノードに割り当てられているキーとを他のノード100に通知する。経路管理部103は、通知される情報を元に他ノード100との経路を示す情報を生成し、その情報を記憶する。
最小割当キー保持部105は、他のノード100の最小割当キーを保持する。最小割当キー保持部105が保持する最小割当キー表の例が図6に示されている。図6に示される例は、ノード100bが保持する最小割当キー表806、ノード100jが保持する最小割当キー表807およびノード100qが保持する最小割当キー表808、である。図6を参照すると、ノード100bの最小割当キー保持部105は、ノードアドレスc、d、f、jに対して、それらのノードの最小割当キーが、それぞれ、kc−min、kd−min、kf−min、kj−minであることを記憶している。
経路管理部103が他ノード100との経路を示す情報を生成するときに、ノード100がノードアドレスを別のノード100に通知する処理を行う。該ノード100の最小割当キーは、その通知メッセージに含まれてもよい。最小割当キー保持部105は、経路管理部103が受け取った通知メッセージに含まれるノードアドレスと、最小割当キーとを対応付けて記憶する。これによって、経路管理部103が他ノード100との経路を示す情報を構築する際に、最小割当キー保持部105は、最小割当キー表を記憶することができる。
クエリ転送制御部102は、キー範囲生成部101、あるいは、他のノード100のクエリ転送制御部102からクエリとキー範囲群を受信する。そして、クエリ転送制御部102は、自ノードの割当キー範囲が、キー範囲群のいずれかとオーバーラップするか否かを検証する。すなわち、クエリ転送制御部102は、キー範囲群に含まれるキーの中に自ノードの割当キー範囲にも含まれるキーがあるか否かを検証する。
自ノードの割当キー範囲は、クエリ転送制御部102に記憶されていてもよい。あるいは、図7に示されるように、ノード100が、自ノードの割当キー範囲を記憶する割当キー範囲記憶部106を備えていてもよい。
クエリ転送制御部102は、自ノードの割当キー範囲が、キー範囲群のいずれかとオーバーラップすると判定した場合に、受信したクエリをクエリ処理部104に渡す。そしてクエリ転送制御部102は、キー範囲群から、割当キー範囲に完全に包含されるキー範囲を削除する。例えば、自ノードの割当キー範囲が[k1,k2]であり、キー範囲群のうちの一つのキー範囲が[kmin,kmax]であると仮定する。このとき、例えばk1≦kmin<kmax≦k2の場合が、『割当キー範囲に完全に包含されるキー範囲』の例に該当し、このキー範囲[kmin,kmax]は削除される。
またクエリ転送制御部102は、キー範囲群のうち、自ノードの割当キー範囲とオーバーラップするキー範囲を二つのキー範囲に分割する。そしてクエリ転送制御部102は、分割したキー範囲のうち、オーバーラップする部分を削除する。例えば自ノードの割当キー範囲に含まれるキーの中で最大値を示すキーである最大割当キーがkであると仮定する。そしてキー範囲[kmin,kmax]について、kmin<k≦kmaxなる関係が満たされるとき、クエリ転送制御部102は、キー範囲[kmin,kmax]を二つのキー範囲[kmin,k]と[k+1,kmax]に分割する。またクエリ転送制御部102は、キー範囲[kmin,k]を削除する。
クエリ転送制御部102は、一以上のキー範囲を含む集合であるキー範囲グループとそのキー範囲グループの送付先であるノードのノードアドレスとを対応付けた対を生成する。クエリ転送制御部102は、キー範囲群を構成する各キー範囲[kmin,kmax]について以降に示す処理を行う。
まずクエリ転送制御部102は、経路管理部103を参照し、kmaxに基づいて特定されるノードアドレス“addr”を取得する。次にクエリ転送制御部102は、ノードアドレス“addr”に対応付けられている最小割当キーkを最小割当キー保持部105から読み出す。
そしてクエリ転送制御部102は、キー範囲[kmin,kmax]のうち、読み出した最小割当キーkが示す値以上であり、kmaxが示す値以下である値を示すキー範囲[k,kmax]のキーを特定する。そしてクエリ転送制御部102は、この特定したキーをノードアドレス“addr”に送信するキー範囲グループに追加する。そしてクエリ転送制御部102は、残りのキー範囲[kmin,k−1]を新たに[kmin,kmax]とみなして前述の処理を繰り返し行う。
一方、クエリ転送制御部102は、読み出した最小割当キーkが示す値よりもkminが示す値のほうが小さいと判定した場合に、キー範囲[kmin,kmax]をノードアドレス“addr”に送信するキー範囲グループに含まれると特定する。もし、“addr”に対応するキー範囲グループがない場合、クエリ転送制御部102は、新たにキー範囲グループを生成し、そのキー範囲グループを“addr”に送信するキー範囲グループと特定する。
クエリ転送制御部102は、特定されたキー範囲グループ毎に、各キー範囲グループに対応付けられているノードアドレス“addr”で特定されるノード100へ、そのキー範囲グループを送信する。具体的には、クエリ転送制御部102は、生成した対毎に図8に示す構造のメッセージを生成する。このメッセージ809は、クエリ810と、キー範囲グループに含まれる各キー範囲811と、各キー範囲の最小キー812と最大キー813とを含む。最小キー812は、そのキー範囲に含まれるキーの中で最小値を示すキーである。また、最大キー813は、そのキー範囲に含まれるキーの中で最大値を示すキーである。
キー範囲生成部101と、クエリ転送制御部102と、経路管理部103と、クエリ処理部104とは、例えば、プログラム(情報処理プログラム)によって動作するCPUによって実現される。キー範囲生成部101と、クエリ転送制御部102と、経路管理部103と、クエリ処理部104とが、同一のCPUによって実現されてもよい。この場合、プログラムは、例えば、ノード100が備えるプログラム記憶装置107(図9参照)に記憶される。CPU108は、そのプログラムを読み込み、そのプログラムにしたがって、キー範囲生成部101と、クエリ転送制御部102と、経路管理部103と、クエリ処理部104として動作すればよい。
また、前述のプログラムのコードを記録した記録媒体(または記憶媒体)が、ノード100に供給され、ノード100が記録媒体に格納されたプログラムのコードを読み出し実行してもよい。すなわち、本発明は、第一の実施の形態におけるノード100が実行するためのソフトウェア(情報処理プログラム)を一時的に記憶するまたは非一時的に記憶する記録媒体110も含む。
最小割当キー保持部105は、例えば、ハードディスク109のような記憶装置によって実現される。
次に、本発明の第一の実施の形態におけるノード100の動作の一例について説明する。図10は、本発明の第一の実施の形態におけるノード100のキー範囲生成部101の動作の概要の一例を示すフローチャートである。
キー範囲生成部101は、図示しない外部システムからクエリを受け取る(ステップA1)。そして、キー範囲生成部101は、入力されたクエリからキー範囲1、キー範囲2、およびキー範囲3を含むキー範囲群を生成する(ステップA2)。
キー範囲生成部101は、生成した各キー範囲について以下の処理を行う。あるキー範囲が[kmin,kmax]であると仮定する。キー範囲[kmin,kmax]が自ノード100の割当キー範囲の最小割当キーkと、このkより一小さい値を示すキーk−1と、を含む場合、キー範囲生成部101は、以下の処理を実行する。すなわちキー範囲生成部101は、キー範囲[kmin,kmax]をkに基づいて二つに分割する(ステップA3)。具体的には、キー範囲生成部101は、キー範囲[kmin,kmax]を二つのキー範囲[kmin,k−1]と[k,kmax]に分割する。
キー範囲生成部101は、すべてのキー範囲について処理が行われたか否か判定する(ステップA4)。すべてのキー範囲について、処理が行われていない場合(ステップA4のNo)、キー範囲生成部101の処理は、ステップA3に戻る。すべてのキー範囲について、処理が行われた場合(ステップA4のYes)、キー範囲生成部101は次の処理を行う。すなわちキー範囲生成部101は、自ノード100が受信したクエリと、生成したキー範囲群とをクエリ転送制御部102に渡す(ステップA5)。
図11は、本発明の第一の実施の形態におけるノード100のクエリ転送制御部102の動作の概要の一例を示すフローチャートである。
クエリ転送制御部102は、キー範囲生成部101、または他のノード100のクエリ転送制御部102から少なくともクエリとキー範囲群とを含む情報を受け取る(ステップB1)。そしてクエリ転送制御部102は、受け取ったキー範囲群に含まれるいずれかのキー範囲が自ノード100の割当キー範囲とオーバーラップするか否か検証する(ステップB2)。
クエリ転送制御部102は、受け取ったキー範囲群に含まれるいずれかのキー範囲が自ノード100の割当キー範囲とオーバーラップすると判定した場合(ステップB2のYes)、クエリをクエリ処理部104に渡す(ステップB3)。そして、クエリ転送制御部102は、受け取ったキー範囲群に含まれる各キー範囲から、自ノード100の割当キー範囲に完全に包含されるキー範囲を削除する(ステップB4)。また、クエリ転送制御部102は、受け取ったキー範囲群に含まれる各キー範囲のうち、自ノード100の割当キー範囲とオーバーラップするキー範囲[kmin,kmax]を二つのキー範囲[kmin,k]と[k+1,kmax]に分割する。そして、クエリ転送制御部102は、キー範囲[kmin,k]を削除する(ステップB5)。ここで、kは自ノード100の最大割当キーである。
クエリ転送制御部102は、ステップB5の処理後、またはステップB2において受け取ったキー範囲群に含まれるいずれかのキー範囲が自ノード100の割当キー範囲とオーバーラップしないと判定した場合(ステップB2のNo)、以下の処理を行う。すなわちクエリ転送制御部102は、キー範囲グループとノードアドレスとを含む0以上の対を生成する(ステップB6)。ステップB6におけるクエリ転送制御部102の処理は、後で説明される。クエリ転送制御部102は、生成した各対について、クエリと、対の一方であるキー範囲グループとに基づいて図8に示される構造のメッセージを生成する。そしてクエリ転送制御部102は、生成したメッセージを対のもう一方であるノードアドレスで特定されるノードに送信する(ステップB7)。
図12は、本発明の第一の実施の形態におけるノード100のクエリ転送制御部102による前述ステップB6における処理の動作の概要の一例を示すフローチャートである。
クエリ転送制御部102は、これまでのステップにより生成されている各キー範囲[kmin,kmax]についてそれぞれ以下の処理を行う(ステップB601)。
クエリ転送制御部102は、キー範囲に含まれるキーの中で最大値を示すキーkmaxを経路管理部103に渡し、経路管理部103からそのkmaxに対応するノードアドレス“addr”を受け取る(ステップB602)。
次に、クエリ転送制御部102は、ノードアドレス“addr”に対応付けられている最小割当キーkを最小割当キー保持部105から読み出す(ステップB603)。
クエリ転送制御部102は、kminが示す値よりもkが示す値が大きいか否か判定する(ステップB604)。クエリ転送制御部102は、kmin<kであると判定した場合(ステップB604のYes)、キー範囲[kmin,kmax]を二つのキー範囲[kmin,k−1]と[k,kmax]に分割する(ステップB605)。
次に、クエリ転送制御部102は、キー範囲[k,kmax]をノードアドレス“addr”に対応するキー範囲グループに追加する。もし“addr”に対応するキー範囲グループがない場合、クエリ転送制御部102は、新たにキー範囲グループを生成し、該キー範囲グループを“addr”と関連付ける(ステップB606)。以降、クエリ転送制御部102は、キー範囲[kmin,k−1]を[kmin,kmax]と見なす(ステップB607)。そして、クエリ転送制御部102の処理は、ステップB602へ移行する。
一方、クエリ転送制御部102は、kmin<kでないと判定した場合(ステップB604のNo)、キー範囲[kmin,kmax]をノードアドレス“addr”に対応するキー範囲グループに追加する。もし“addr”に対応するキー範囲グループがない場合、クエリ転送制御部102は、新たにキー範囲グループを生成し、該キー範囲グループを“addr”と関連付ける(ステップB608)。
クエリ転送制御部102は、ステップB602−B608における処理をキー範囲毎に行う(ステップB609)。
図13は、第一の実施の形態におけるノード100bの動作の概要を示す具体例である。本例では、ノード100bが、キー範囲1(814)、キー範囲2(815)およびキー範囲3(818)に対応するクエリのサブスクライブを受け、それぞれ転送を行う。
キー範囲1(814)は、[k 1min,k 1max]と表される。そしてキー範囲1(814)は、ノード100qの割当キー範囲[kq−min,kq−max]に対して、kq−min<k 1min<k 1max<kq−maxという関係を満たす。また、キー範囲2(815)は、[k 2min,k 2max]と表される。そしてキー範囲2(815)は、ノード100mの割当キー範囲[km−min,km−max]および、ノード100nの割当キー範囲[kn−min,kn−max]に対して、次の関係をそれぞれ満たす。その関係とはすなわち、km−min<k 2min<km−max<kn−min<k 2max<kn−maxという関係である。また、キー範囲3(818)は、[k 3min,k 3max]と表される。またキー範囲3は、ノード100nの割当キー範囲[kn−min,kn−max]に対して、kn−min<k 3min<k 3max≦kn−maxという関係を満たす。
ノード100bのキー範囲生成部101は、受信したクエリからキー範囲群{キー範囲1,キー範囲2,キー範囲3}を生成する。ノード100bの最小割当キーkb−minとkb−min−1の両方を含むキー範囲は、キー範囲群の中にない。したがって、キー範囲生成部101によるキー範囲の分割はない。その後、ノード100bのキー範囲生成部101は、クエリ転送制御部102へ該クエリと、生成したキー範囲群{キー範囲1,キー範囲2,キー範囲3}とを渡す。
ノード100bのクエリ転送制御部102は、キー範囲生成部101からクエリとキー範囲群{キー範囲1,キー範囲2,キー範囲3}とを受け取る。ノード100bの割当キー範囲[kb−min,kb−max]とオーバーラップするキー範囲がキー範囲群には含まれていない。したがって、クエリは、クエリ処理部104に渡されない。
次にクエリ転送制御部102は、受け取ったキー範囲群に基づいてキー範囲グループとそのキー範囲グループを送信するノード100を識別できるノードアドレスとを対応付けた対を求める。ノード100bの最小割当キー保持部105は、例えば図6に示される最小割当キー表806を保持していると仮定する。
また経路管理部103は、Chordのルーティングアルゴリズムにしたがって、一のキーに対するノードアドレスを算出すると仮定する。この場合、経路管理部103は、自ノードから2i
(iは0以上の整数)ホップだけ離れたノードのノードアドレスを有する。例えば、ノード100bの経路管理部103は、ノード100c、ノード100e、ノード100fおよびノード100jのノードアドレスを管理する。また経路管理部103は、自身が管理するノードアドレスに対応付けてそれぞれに対応するキーの集合を記憶する。例えば、ノード100bの経路管理部103は、ノード100jのノードアドレスに対応付けて、ノード100jからノード100pまでの、およびノード100aの、それぞれの割当キー範囲に含まれるキーを記憶する。
ここで、キー範囲1について、k 1maxが、ノード100qの割当キー範囲に含まれている。また経路管理部103は、ノード100qの割当キー範囲に含まれるキーをノード100jのノードアドレスと対応付けて記憶している。よって、クエリ転送制御部102は、キー範囲1について経路管理部103を参照することにより、k 1maxに基づいて、ノード100jのノードアドレスを取得する。また、クエリ転送制御部102は、ノード100jのノードアドレスに基づいて、最小割当キー保持部105からノード100jの最小割当キーkj−minを取得する。
ここで、k 1min<kj−minが成り立たない。よってクエリ転送制御部102は、キー範囲1[k 1min,k 1max]をノード100jのノードアドレスに対応するキー範囲グループjに追加する。キー範囲2およびキー範囲3は、キー範囲1の場合と同様に、グループjに追加される。
次に、クエリ転送制御部102は、クエリとキー範囲グループj{キー範囲1,キー範囲2,キー範囲3}をノード100jのノードアドレスへ送信する。
ノード100jのクエリ転送制御部102は、ノード100bからクエリとキー範囲群{キー範囲1,キー範囲2,キー範囲3}とを受信する。ノード100jの割当キー範囲[kj−min,kj−max]とオーバーラップするキー範囲がキー範囲群には含まれていない。したがって、クエリは、クエリ処理部104に渡されない。
次にクエリ転送制御部102は、受け取ったキー範囲群に基づいてキー範囲グループとそのキー範囲グループを送信するノード100を識別できるノードアドレスとを対応付けた対を求める。ノード100jの最小割当キー保持部105は、例えば図6に示される最小割当キー表807を保持していると仮定する。
またノード100jの経路管理部103も、Chordのルーティングアルゴリズムにしたがって、一のキーに対するノードアドレスを算出すると仮定する。例えば、ノード100jの経路管理部103は、ノード100k、ノード100q、ノード100nおよびノード100bのノードアドレスを管理する。また経路管理部103は、自身が管理するノードアドレスに対応付けてそれぞれに対応するキーの集合を記憶する。例えば、ノード100jの経路管理部103は、ノード100qのノードアドレスに対応付けて、ノード100qおよびノード100mのそれぞれの割当キー範囲に含まれるキーを記憶する。
ここで、キー範囲1について、k 1maxが、ノード100qの割当キー範囲に含まれている。また経路管理部103は、ノード100qの割当キー範囲に含まれるキーをノード100qのノードアドレスと対応付けて記憶している。よって、クエリ転送制御部102は、キー範囲1について経路管理部103を参照することにより、k 1maxに基づいて、ノード100qのノードアドレスを取得する。また、クエリ転送制御部102は、ノード100qのノードアドレスに基づいて、最小割当キー保持部105からノード100qの最小割当キーkq−minを取得する。
ここで、k 1min<kq−minが成り立たない。よってクエリ転送制御部102は、キー範囲1[k 1min,k 1max]をノード100qのノードアドレスに対応するキー範囲グループqに追加する。
キー範囲2について、k 2maxが、ノード100nの割当キー範囲に含まれている。また経路管理部103は、ノード100nの割当キー範囲に含まれるキーをノード100nのノードアドレスと対応付けて記憶している。よって、クエリ転送制御部102は、キー範囲2について経路管理部103を参照することにより、k 2maxに基づいて、ノード100nのノードアドレスを取得する。また、クエリ転送制御部102は、ノード100nのノードアドレスに基づいて、最小割当キー保持部105からノード100nの最小割当キーkn−minを取得する。
ここで、k 1min<kn−minが成り立つ。よってクエリ転送制御部102は、キー範囲2[k 1min,k 1max]をキー範囲2−1(816)[k 2min,knmin−1]とキー範囲2−2(817)[kn−min,k 2max]とに分割する。そしてクエリ転送制御部102は、キー範囲2−2[kn−min,k 2max]をノード100nのノードアドレスに対応するキー範囲グループnに追加する。そして、クエリ転送制御部102は、キー範囲2−1[k 2min,kn−min−1]について、上述の処理と同様の処理を行う。
キー範囲2−1について、kn−min−1が、ノード100mの割当キー範囲に含まれている。また経路管理部103は、ノード100mの割当キー範囲に含まれるキーをノード100qのノードアドレスと対応付けて記憶している。よって、クエリ転送制御部102は、キー範囲2−1について経路管理部103を参照することにより、kn−min−1に基づいて、ノード100qのノードアドレスを取得する。また、クエリ転送制御部102は、ノード100qのノードアドレスに基づいて、最小割当キー保持部105からノード100qの最小割当キーkq−minを取得する。
ここで、k 2min<kq−minが成り立たない。よってクエリ転送制御部102は、キー範囲2−1[k 2min,kn−min−1]をノード100qのノードアドレスに対応するキー範囲グループqに追加する。
同様に、クエリ転送制御部102は、キー範囲3をノード100nのノードアドレスに対応するキー範囲グループnに追加する。クエリ転送制御部102が、キー範囲3をキー範囲グループnに追加する過程については、上述の例と類似している。したがって記述は省略される。
次に、クエリ転送制御部102は、クエリとキー範囲グループq{キー範囲1,キー範囲2−1}をノード100qのノードアドレスへ送信する。また、クエリ転送制御部102は、クエリとキー範囲グループn{キー範囲2−2,キー範囲3}をノード100nのノードアドレスへ送信する。
ノード100qのクエリ転送制御部102は、ノード100jからクエリとキー範囲群{キー範囲1,キー範囲2−1}を受信する。キー範囲1は、ノード100qの割当キー範囲に完全に包含される。したがってクエリ転送制御部102は、クエリをクエリ処理部104に渡し、キー範囲1をキー範囲群から削除する。そしてクエリ転送制御部102は、キー範囲群{キー範囲2−1}からキー範囲グループとノードアドレスの対を求める。以降の、キー範囲グループとノードアドレスとの対を求める処理についての説明は、省略される。
このような処理を行うことにより、最終的に、ノード100q、100m、100nのクエリ処理部104に所望のクエリが入力されるように、適切にクエリが転送される。
本実施の形態における情報処理システム10は、クエリから形成されるキー範囲群のうち、次の転送先のノードが同じであるキー範囲群をキー範囲グループにまとめる。そして情報処理システム10は、そのキー範囲グループを該ノードへ転送する。例えば図13を参照すると、ノード100bは、キー範囲1、キー範囲2およびキー範囲3を次の転送先ノードであるノード100jへまとめて転送する。一方非特許文献1に開示された技術は、ノード100bからノード100jへ、キー範囲毎に転送を行う。したがって、非特許文献1の技術によれば、ノード100bからノード100jへの通信が3回行われることになる。一方、本実施の形態の情報処理システム10において、ノード間を転送するクエリは、同じノードを二回以上経由しない。
情報処理システム10は、ステップB607において、キー範囲[kmin,k−1]を[kmin,kmax]と見なし、処理がステップB602へ戻る。この処理はキー範囲毎に繰り返される。よって、各ノードアドレスに高々一つのキー範囲グループが関連付けられる。一つの装置には高々一つのキー範囲グループとクエリとが送信される。つまり、ノード間を転送するクエリは、同じノードを二回以上経由しない。
このような冗長性の低減により、本実施の形態の情報処理システム10は、各ノードにおいて、クエリを転送するための処理負荷を低減させることができる。
また、本実施の形態における情報処理システム10は、クエリから生成された各キー範囲について、キー範囲に含まれる各キーから求められる転送先ノードが同じになるように、キー範囲を分割する。そして情報処理システム10は、分割されたキー範囲毎にキー範囲グループにまとめる。図13を参照すると、ノード100jは、キー範囲1、キー範囲2およびキー範囲3を受信する。そしてノード100jは、キー範囲2を、転送先がノード100qであるキー範囲2−1と、転送先がノード100nであるキー範囲2−2とに分割する。そして、ノード100jのクエリ転送制御部102は、キー範囲2−2と、同じく転送先がノード100nであるキー範囲3とを、キー範囲グループnとして一つのグループとして扱う。そしてクエリ転送制御部102は、そのキー範囲グループnをノード100nに転送する。一方、非特許文献1に開示された技術は、ノード100jからノード100qへのクエリの転送が二回行われる。さらに非特許文献1に開示された技術は、ノード100nに二回、同一のクエリが到達する。したがって、本実施の形態における情報処理システム10は、ノード100nに対して、キー範囲グループnが別経路にて二重に通知されることはなくなる。
このような冗長性の低減により、本実施の形態の情報処理システム10は、各ノードにおいて、クエリを転送するための処理負荷を低減することができる。
本実施の形態の情報処理システム10は、クエリ処理時の冗長な処理を低減できる。そして、本実施の形態の情報処理システム10は、大量のクエリを処理する場合、例えば非特許文献1に開示された技術と比べて、より高いパフォーマンスを得ることができる。
[第二の実施の形態]
図14は、本発明の第二の実施の形態におけるノード900の構成を示すブロック図である。
図14を参照すると、本発明の第二の実施の形態におけるノード900は、キー範囲生成部901と、クエリ転送制御部902と、経路管理部903と、を備える。ノード900は、データを処理するためのクエリを転送する。
キー範囲生成部901は、ある値の範囲を特定するクエリを受け取る。そしてキー範囲生成部901は、受け取ったクエリに含まれる値をそれぞれ示すキーを生成する。キーは少なくともある値を示す情報である。そしてキー範囲生成部901は、所定のキーの集合であるキー範囲を少なくとも一つ含むキー範囲群を生成する。
経路管理部903は、各装置が管理すべきキーの境界を示すキーを記憶する。
クエリ転送制御部902は、他のノード900またはキー範囲生成部901からキー範囲群を受け取る。そしてクエリ転送制御部902は、受け取ったキー範囲群に含まれるキー範囲毎に、以下の処理を行う。すなわちクエリ転送制御部902は、キー範囲に含まれる所定のキーを経路管理部903に渡す。経路管理部903はクエリ転送制御部902から受け取るキーが示す値と記憶している各キーがそれぞれ示す値との大小関係に基づいて一のキーである宛先キーを特定する。クエリ転送制御部902は、経路管理部903が特定する宛先キーを経路管理部903から受け取る。そしてクエリ転送制御部902は、対象のキー範囲に含まれるキーを、経路管理部903から受け取った宛先キーの値に基づいて識別される装置のノード識別子に関連付けられるキーの集合であるキー範囲グループに追加する。
またクエリ転送制御部902は、各キー範囲グループを、その各キー範囲グループに関連付けられているノード識別子で識別される装置へそれぞれ転送する。
キー範囲生成部901と、クエリ転送制御部902と、経路管理部903とは、例えば、プログラム(情報処理プログラム)によって動作するCPUによって実現される。キー範囲生成部901と、クエリ転送制御部902と、経路管理部903とが、同一のCPUによって実現されてもよい。この場合、プログラムは、例えば、ノード900が備えるプログラム記憶装置907(図15参照)に記憶される。CPU908は、そのプログラムを読み込み、そのプログラムにしたがって、キー範囲生成部901と、クエリ転送制御部902と、経路管理部903として動作すればよい。
また、前述のプログラムのコードを記録した記録媒体(または記憶媒体)が、ノード900に供給され、ノード900が記録媒体に格納されたプログラムのコードを読み出し実行してもよい。すなわち、本発明は、第一の実施の形態におけるノード900が実行するためのソフトウェア(情報処理プログラム)を一時的に記憶するまたは非一時的に記憶する記録媒体910も含む。
経路管理部903は、例えば、ハードディスク909のような記憶装置によっても実現される。
このような構成により、本実施の形態におけるノード900は、大量のクエリを処理するときに冗長なクエリ処理を低減することができる。
以上、これまで述べてきた各実施の形態は、本発明の好適な実施形態であり、上記実施の形態のみに本発明の範囲を限定するものではない。各実施の形態は、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
本発明の各実施の形態において、ノード100およびノード900は、情報処理装置またはその一部に備えられる。したがって、一つのノードが一つの情報処理装置から構成されてもよい。あるいは、一つのノードに、情報処理装置に含まれるメモリ、CPUおよびハードディスクなどの資源の少なくとも一部が割り当てられるように構成されてもよい。つまり、複数のノードが一つの情報処理装置から構成されてもよい。
上記の各実施の形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
ある値の範囲を特定するクエリを受け取り、当該クエリに含まれる値をそれぞれ示すキーを生成し、所定のキーの集合であるキー範囲を少なくとも一つ含むキー範囲群を生成するキー範囲生成部と、
各装置が管理すべきキーの境界を示すキーを記憶する経路管理部と、
キー範囲群を受け取り、当該キー範囲群に含まれるキー範囲毎に、
キー範囲に含まれる所定のキーが示す値と前記経路管理部が記憶する各キーがそれぞれ示す値との大小関係に基づいて一のキーである宛先キーを特定し、
当該キー範囲に含まれるキーを、前記宛先キーの値に基づいて識別される装置のノード識別子に関連付けられるキーの集合であるキー範囲グループに追加する、クエリ転送制御部と、
を備え、
前記クエリ転送制御部は、各キー範囲グループを、当該各キー範囲グループに関連付けられているノード識別子で識別される装置へそれぞれ転送する、情報処理装置。
(付記2)
付記1に記載の情報処理装置であって、
ノード識別子とキーとを対応付けて記憶する最小割当キー保持部を備え、
前記クエリ転送制御部は、受け取ったキー範囲群に含まれるキー範囲毎に、
前記宛先キーに基づいて識別される装置のノード識別子に対応付けられている一のキーを前記最小割当キー保持部から読み出し、
当該キー範囲に含まれるキーのうち前記一のキーが示す値と前記所定のキーが示す値との間の値を示すキーを、前記ノード識別子に関連付けられる一の集合であるキー範囲グループに追加する、情報処理装置。
(付記3)
付記2に記載の情報処理装置であって、
前記所定のキーは当該所定のキーを含むキー範囲に含まれるキーの中で最大値を示すキーである、情報処理装置。
(付記4)
付記3に記載の情報処理装置であって、
前記最小割当キー保持部は、ノード識別子と当該ノード識別子で識別される装置が管理すべきキーの中で最小値を示すキーである最小割当キーとを対応付けて記憶し、前記クエリ転送制御部は、受け取ったキー範囲群に含まれるキー範囲毎に、
前記キー範囲に含まれるキーのうち前記最小割当キーの値以上であり、前記所定のキーが示す値以下の値を示すキーを、前記ノード識別子に関連付けられる一の集合であるキー範囲グループに追加する、情報処理装置。
(付記5)
付記4に記載の情報処理装置であって、
前記クエリ転送制御部は、受け取ったキー範囲群に含まれるキー範囲毎に、前記キー範囲に含まれるキーであって、前記最小割当キーの値未満、または、前記所定のキーが示す値を超える値を示すキーを新たなキー範囲として特定する、情報処理装置。
(付記6)
付記1ないし5のいずれか1項に記載の情報処理装置であって、
前記経路管理部が記憶するキーは、対応する装置のノード識別子である、情報処理装置。
(付記7)
付記1ないし6のいずれか1項に記載の情報処理装置であって、
あるキーの集合を示す割当キー範囲を記憶する割当キー範囲記憶部と、
クエリを処理するクエリ処理部と、を備え、
前記クエリ転送制御部は、受け取ったキー範囲群に含まれるキー範囲毎に、
キー範囲を、前記割当キー範囲に重複するキーを含む第一のキー範囲と重複しないキーを含む第二のキー範囲とに分割し、前記第一のキー範囲を削除し、
前記クエリ処理部は、前記クエリ転送制御部が第一のキー範囲を削除した際にクエリを処理する、情報処理装置。
(付記8)
少なくとも一つの情報処理装置を備え、
当該情報処理装置は、
ある値の範囲を特定するクエリを受け取り、当該クエリに含まれる値をそれぞれ示すキーを生成し、所定のキーの集合であるキー範囲を少なくとも一つ含むキー範囲群を生成するキー範囲生成部と、
各情報処理装置が管理すべきキーの境界を示すキーを記憶する経路管理部と、キー範囲群を受け取り、当該キー範囲群に含まれるキー範囲毎に、
キー範囲に含まれる所定のキーが示す値と前記経路管理部が記憶する各キーがそれぞれ示す値との大小関係に基づいて一のキーである宛先キーを特定し、
当該キー範囲に含まれるキーを、前記宛先キーの値に基づいて識別される情報処理装置のノード識別子に関連付けられるキーの集合であるキー範囲グループに追加する、クエリ転送制御部と、
を備え、
前記クエリ転送制御部は、各キー範囲グループを、当該各キー範囲グループに関連付けられているノード識別子で識別される情報処理装置へそれぞれ転送する、情報処理システム。
(付記9)
付記8に記載の情報処理システムであって、
前記情報処理装置は、
ノード識別子とキーとを対応付けて記憶する最小割当キー保持部を備え、
前記クエリ転送制御部は、受け取ったキー範囲群に含まれるキー範囲毎に、
前記宛先キーに基づいて識別される装置のノード識別子に対応付けられている一のキーを前記最小割当キー保持部から読み出し、
当該キー範囲に含まれるキーのうち前記一のキーが示す値と前記所定のキーが示す値との間の値を示すキーを、前記ノード識別子に関連付けられる一の集合であるキー範囲グループに追加する、情報処理システム。
(付記10)
付記9に記載の情報処理システムであって、前記所定のキーは当該所定のキーを含むキー範囲に含まれるキーの中で最大値を示すキーである、情報処理システム。
(付記11)
付記10に記載の情報処理システムであって、
前記最小割当キー保持部は、ノード識別子と当該ノード識別子で識別される装置が管理すべきキーの中で最小値を示すキーである最小割当キーとを対応付けて記憶し、前記クエリ転送制御部は、受け取ったキー範囲群に含まれるキー範囲毎に、
前記キー範囲に含まれるキーのうち前記最小割当キーの値以上であり、前記所定のキーが示す値以下の値を示すキーを、前記ノード識別子に関連付けられる一の集合であるキー範囲グループに追加する、情報処理システム。
(付記12)
付記11に記載の情報処理システムであって、
前記クエリ転送制御部は、受け取ったキー範囲群に含まれるキー範囲毎に、前記キー範囲に含まれるキーであって、前記最小割当キーの値未満、または、前記所定のキーが示す値を超える値を示すキーを新たなキー範囲として特定する、情報処理システム。
(付記13)
付記8ないし12のいずれか1項に記載の情報処理システムであって、
前記経路管理部が記憶するキーは、対応する装置のノード識別子である、情報処理システム。
(付記14)
付記8ないし13のいずれか1項に記載の情報処理システムであって、
前記情報処理装置は、
あるキーの集合を示す割当キー範囲を記憶する割当キー範囲記憶部と、
クエリを処理するクエリ処理部と、を備え、
前記クエリ転送制御部は、受け取ったキー範囲群に含まれるキー範囲毎に、
キー範囲を、前記割当キー範囲に重複するキーを含む第一のキー範囲と重複しないキーを含む第二のキー範囲とに分割し、前記第一のキー範囲を削除し、
前記クエリ処理部は、前記クエリ転送制御部が第一のキー範囲を削除した際にクエリを処理する、情報処理システム。
(付記15)
ある値の範囲を特定するクエリを受け取り、当該クエリに含まれる値をそれぞれ示すキーを生成し、所定のキーの集合であるキー範囲を少なくとも一つ含むキー範囲群を生成し、
各装置が管理すべきキーの境界を示すキーを経路管理部に記憶し、
キー範囲群を受け取り、当該キー範囲群に含まれるキー範囲毎に、
キー範囲に含まれる所定のキーが示す値と前記経路管理部に記憶される各キーがそれぞれ示す値との大小関係に基づいて一のキーである宛先キーを特定し、
当該キー範囲に含まれるキーを、前記宛先キーの値に基づいて識別される装置のノード識別子に関連付けられるキーの集合であるキー範囲グループに追加し、
各キー範囲グループを、当該各キー範囲グループに関連付けられているノード識別子で識別される装置へそれぞれ転送する、情報処理方法。
(付記16)
付記15に記載の情報処理方法であって、
ノード識別子とキーとを対応付けて最小割当キー保持部に記憶し、
前記受け取ったキー範囲群に含まれるキー範囲毎に、
前記宛先キーに基づいて識別される装置のノード識別子に対応付けられている一のキーを前記最小割当キー保持部から読み出し、
当該キー範囲に含まれるキーのうち前記一のキーが示す値と前記所定のキーが示す値との間の値を示すキーを、前記ノード識別子に関連付けられる一の集合であるキー範囲グループに追加する、情報処理方法。
(付記17)
付記16に記載の情報処理方法であって、
前記所定のキーは当該所定のキーを含むキー範囲に含まれるキーの中で最大値を示すキーである、情報処理方法。
(付記18)
付記17に記載の情報処理方法であって、
前記最小割当キー保持部に、ノード識別子と当該ノード識別子で識別される装置が管理すべきキーの中で最小値を示すキーである最小割当キーとを対応付けて記憶し、前記受け取ったキー範囲群に含まれるキー範囲毎に、
前記キー範囲に含まれるキーのうち前記最小割当キーの値以上であり、前記所定のキーが示す値以下の値を示すキーを、前記ノード識別子に関連付けられる一の集合であるキー範囲グループに追加する、情報処理方法。
(付記19)
付記18に記載の情報処理方法であって、
前記受け取ったキー範囲群に含まれるキー範囲毎に、前記キー範囲に含まれるキーであって、前記最小割当キーの値未満、または、前記所定のキーが示す値を超える値を示すキーを新たなキー範囲として特定する、情報処理方法。
(付記20)
付記15ないし19のいずれか1項に記載の情報処理方法であって、
前記経路管理部に記憶されるキーは、対応する装置のノード識別子である、情報処理方法。
(付記21)
付記15ないし20のいずれか1項に記載の情報処理方法であって、
あるキーの集合を示す割当キー範囲を割当キー範囲記憶部に記憶し、
前記受け取ったキー範囲群に含まれるキー範囲毎に、
キー範囲を、前記割当キー範囲に重複するキーを含む第一のキー範囲と重複しないキーを含む第二のキー範囲とに分割し、前記第一のキー範囲を削除し、
前記クエリ転送制御部が第一のキー範囲を削除した際にクエリを処理する、情報処理方法。
(付記22)
コンピュータに、
ある値の範囲を特定するクエリを受け取り、当該クエリに含まれる値をそれぞれ示すキーを生成し、所定のキーの集合であるキー範囲を少なくとも一つ含むキー範囲群を生成する処理と、
各装置が管理すべきキーの境界を示すキーを経路管理部に記憶する処理と、
キー範囲群を受け取り、当該キー範囲群に含まれるキー範囲毎に、
キー範囲に含まれる所定のキーが示す値と前記経路管理部に記憶される各キーがそれぞれ示す値との大小関係に基づいて一のキーである宛先キーを特定する処理と、
当該キー範囲に含まれるキーを、前記宛先キーの値に基づいて識別される装置のノード識別子に関連付けられるキーの集合であるキー範囲グループに追加する処理と、各キー範囲グループを、当該各キー範囲グループに関連付けられているノード識別子で識別される装置へそれぞれ転送する処理と、を実行させるための情報処理プログラム。
(付記23)
付記22に記載の情報処理プログラムであって、
前記コンピュータに、
ノード識別子とキーとを対応付けて最小割当キー保持部に記憶する処理と、
前記受け取ったキー範囲群に含まれるキー範囲毎に、
前記宛先キーに基づいて識別される装置のノード識別子に対応付けられている一のキーを前記最小割当キー保持部から読み出す処理と、
当該キー範囲に含まれるキーのうち前記一のキーが示す値と前記所定のキーが示す値との間の値を示すキーを、前記ノード識別子に関連付けられる一の集合であるキー範囲グループに追加する処理と、を実行させるための情報処理プログラム。
(付記24)
付記23に記載の情報処理プログラムであって、
前記所定のキーは当該所定のキーを含むキー範囲に含まれるキーの中で最大値を示すキーである、情報処理プログラム。
(付記25)
付記24に記載の情報処理プログラムであって、
前記コンピュータに、
前記最小割当キー保持部に、ノード識別子と当該ノード識別子で識別される装置が管理すべきキーの中で最小値を示すキーである最小割当キーとを対応付けて記憶する処理と、
前記受け取ったキー範囲群に含まれるキー範囲毎に、
前記キー範囲に含まれるキーのうち前記最小割当キーの値以上であり、前記所定のキーが示す値以下の値を示すキーを、前記ノード識別子に関連付けられる一の集合であるキー範囲グループに追加する処理と、を実行させるための情報処理プログラム。
(付記26)
付記25に記載の情報処理プログラムであって、
前記コンピュータに、
前記受け取ったキー範囲群に含まれるキー範囲毎に、前記キー範囲に含まれるキーであって、前記最小割当キーの値未満、または、前記所定のキーが示す値を超える値を示すキーを新たなキー範囲として特定する処理を実行させるための情報処理プログラム。
(付記27)
付記22ないし26のいずれか1項に記載の情報処理プログラムであって、
前記経路管理部に記憶されるキーは、対応する装置のノード識別子である、情報処理プログラム。
(付記28)
付記22ないし27のいずれか1項に記載の情報処理プログラムであって、
前記コンピュータに、
あるキーの集合を示す割当キー範囲を割当キー範囲記憶部に記憶する処理と、
前記受け取ったキー範囲群に含まれるキー範囲毎に、
キー範囲を、前記割当キー範囲に重複するキーを含む第一のキー範囲と重複しないキーを含む第二のキー範囲とに分割し、前記第一のキー範囲を削除する処理と、前記クエリ転送制御部が第一のキー範囲を削除した際にクエリを処理する処理と、を実行させるための情報処理プログラム。
(付記29)
コンピュータに、
ある値の範囲を特定するクエリを受け取り、当該クエリに含まれる値をそれぞれ示すキーを生成し、所定のキーの集合であるキー範囲を少なくとも一つ含むキー範囲群を生成する処理と、
各装置が管理すべきキーの境界を示すキーを経路管理部に記憶する処理と、
キー範囲群を受け取り、当該キー範囲群に含まれるキー範囲毎に、
キー範囲に含まれる所定のキーが示す値と前記経路管理部に記憶される各キーがそれぞれ示す値との大小関係に基づいて一のキーである宛先キーを特定する処理と、
当該キー範囲に含まれるキーを、前記宛先キーの値に基づいて識別される装置のノード識別子に関連付けられるキーの集合であるキー範囲グループに追加する処理と、各キー範囲グループを、当該各キー範囲グループに関連付けられているノード識別子で識別される装置へそれぞれ転送する処理と、を実行させるための情報処理プログラムを格納した記録媒体。
この出願は、2011年1月25日に出願された日本出願特願2011−012946を基礎とする優先権を主張し、その開示の全てをここに取り込む。
100、900 ノード
101、901 キー範囲生成部
102、902 クエリ転送制御部
104 クエリ処理部
103、903 経路管理部
105 最小割当キー保持部
106 割当キー範囲記憶部
107、907 プログラム記憶装置
108、908 CPU
109、909 ハードディスク
110、910 記録媒体
801 キー空間
802 キー範囲
803 キー
804 属性空間
805 クエリエリア
806、807、808 最小割当キー表
809 メッセージ
810 クエリ
811 キー範囲
812 最小キー
813 最大キー
814 キー範囲1
815 キー範囲2
816 キー範囲2−1
817 キー範囲2−2
818 キー範囲3
825 フィンガーテーブル
Claims (10)
- 少なくとも一つの他の情報処理装置と通信可能に接続された情報処理装置であって、
属性値の範囲を特定するクエリに含まれる値をそれぞれ示すキーを生成し、所定のキーの集合であるキー範囲を少なくとも一つ含むキー範囲群を生成するキー範囲生成手段と、
前記他の情報処理装置の各々との経路を示すキーの情報を管理する経路管理手段と、
前記キー範囲生成手段又は前記他の情報処理装置からキー範囲群を受け取り、当該キー範囲群に含まれるキー範囲毎に、
キー範囲に含まれる所定のキーが示す値と前記経路管理手段が記憶する各キーがそれぞれ示す値との大小関係に基づいてクエリの送信先となる前記他の情報処理装置に対して割り当てられたキーである宛先キーを特定し、
当該キー範囲に含まれるキーを、前記宛先キーの値に基づいて識別される前記他の情報処理装置の識別子に関連付けられるキーの集合であるキー範囲グループに追加する、クエリ転送制御手段と、
を備え、
前記クエリ転送制御手段は、各キー範囲グループを、当該各キー範囲グループに関連付けられている識別子で識別される前記他の情報処理装置へそれぞれ転送する、情報処理装置。 - 請求項1に記載の情報処理装置であって、
前記識別子と前記情報処理装置に対して割当てられたキー範囲の最小値のキーである最小割当キーとを対応付けて記憶する最小割当キー保持手段を備え、
前記クエリ転送制御手段は、受け取ったキー範囲群に含まれるキー範囲毎に、
前記宛先キーに基づいて識別される前記他の情報処理装置の識別子に対応付けられている一のキーを前記最小割当キー保持手段から読み出し、
当該キー範囲に含まれるキーのうち前記一のキーが示す値と前記所定のキーが示す値との間の値を示すキーを、前記識別子に関連付けられる一の集合であるキー範囲グループに追加する、情報処理装置。 - 請求項2に記載の情報処理装置であって、
前記所定のキーは当該所定のキーを含むキー範囲に含まれるキーの中で最大値を示すキーである、情報処理装置。 - 請求項3に記載の情報処理装置であって、
前記クエリ転送制御手段は、受け取ったキー範囲群に含まれるキー範囲毎に、
前記キー範囲に含まれるキーのうち前記最小割当キーの値以上であり、前記所定のキーが示す値以下の値を示すキーを、前記識別子に関連付けられる一の集合であるキー範囲グループに追加する、情報処理装置。 - 請求項4に記載の情報処理装置であって、
前記クエリ転送制御手段は、受け取ったキー範囲群に含まれるキー範囲毎に、前記キー範囲に含まれるキーであって、前記最小割当キーの値未満、または、前記所定のキーが示す値を超える値を示すキーを新たなキー範囲として特定し、特定した前記キー範囲を前記識別子に対応する前期キー範囲グループに追加する、情報処理装置。 - 請求項1ないし5のいずれか1項に記載の情報処理装置であって、
前記経路管理手段が記憶するキーは、対応する他の情報処理装置の識別子である、情報処理装置。 - 請求項1ないし6のいずれか1項に記載の情報処理装置であって、
あるキーの集合を示す割当キー範囲を記憶する割当キー範囲記憶手段と、
クエリを処理するクエリ処理手段と、を備え、
前記クエリ転送制御手段は、受け取ったキー範囲群に含まれるキー範囲毎に、
キー範囲を、前記割当キー範囲に重複するキーを含む第一のキー範囲と重複しないキーを含む第二のキー範囲とに分割し、前記第一のキー範囲を削除し、
前記クエリ処理手段は、前記クエリ転送制御手段が第一のキー範囲を削除した際にクエリを処理する、情報処理装置。 - 少なくとも一つの情報処理装置を備え、
当該情報処理装置は、
属性値の範囲を特定するクエリに含まれる値をそれぞれ示すキーを生成し、所定のキーの集合であるキー範囲を少なくとも一つ含むキー範囲群を生成するキー範囲生成手段と、
通信可能に接続された少なくとも一つの他の情報処理装置の各々との経路を示すキーの情報を管理する経路管理手段と、
前記キー範囲生成手段又は前記他の情報処理装置からキー範囲群を受け取り、当該キー範囲群に含まれるキー範囲毎に、
キー範囲に含まれる所定のキーが示す値と前記経路管理手段が記憶する各キーがそれぞれ示す値との大小関係に基づいてクエリの送信先となる前記他の情報処理装置に対して割り当てられたキーである宛先キーを特定し、
当該キー範囲に含まれるキーを、前記宛先キーの値に基づいて識別される前記他の情報処理装置の識別子に関連付けられるキーの集合であるキー範囲グループに追加する、クエリ転送制御手段と、
を備え、
前記クエリ転送制御手段は、各キー範囲グループを、当該各キー範囲グループに関連付けられている識別子で識別される前記他の情報処理装置へそれぞれ転送する、情報処理システム。 - 属性値の範囲を特定するクエリに含まれる値をそれぞれ示すキーを生成し、所定のキーの集合であるキー範囲を少なくとも一つ含むキー範囲群を生成し、
通信可能に接続された少なくとも一つの他の情報処理装置の各々との経路を示すキーの情報を経路管理手段に記憶し、
前記生成されたキー範囲群又は前記他の情報処理装置から受け取ったキー範囲群に含まれるキー範囲毎に、
キー範囲に含まれる所定のキーが示す値と前記経路管理手段に記憶される各キーがそれぞれ示す値との大小関係に基づいてクエリの送信先となる前記他の情報処理装置に対して割り当てられたキーである宛先キーを特定し、
当該キー範囲に含まれるキーを、前記宛先キーの値に基づいて識別される前記他の情報処理装置の識別子に関連付けられるキーの集合であるキー範囲グループに追加し、
各キー範囲グループを、当該各キー範囲グループに関連付けられている識別子で識別される前記他の情報処理装置へそれぞれ転送する、情報処理方法。 - コンピュータに、
属性値の範囲を特定するクエリに含まれる値をそれぞれ示すキーを生成し、所定のキーの集合であるキー範囲を少なくとも一つ含むキー範囲群を生成する処理と、
通信可能に接続された少なくとも一つの他の情報処理装置の各々との経路を示すキーの情報を経路管理手段に記憶する処理と、
前記生成されたキー範囲群又は前記他の情報処理装置から受け取ったキー範囲群に含まれるキー範囲毎に、
キー範囲に含まれる所定のキーが示す値と前記経路管理手段に記憶される各キーがそれぞれ示す値との大小関係に基づいてクエリの送信先となる前記他の情報処理装置に対して割り当てられたキーである宛先キーを特定する処理と、
当該キー範囲に含まれるキーを、前記宛先キーの値に基づいて識別される前記他の情報処理装置の識別子に関連付けられるキーの集合であるキー範囲グループに追加する処理と、
各キー範囲グループを、当該各キー範囲グループに関連付けられている識別子で識別される前記他の情報処理装置へそれぞれ転送する処理と、を実行させるプログラム。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011012946 | 2011-01-25 | ||
| JP2011012946 | 2011-01-25 | ||
| PCT/JP2012/050647 WO2012102102A1 (ja) | 2011-01-25 | 2012-01-06 | 情報処理装置、情報処理システム、情報処理方法および情報処理プログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2012102102A1 JPWO2012102102A1 (ja) | 2014-06-30 |
| JP6036302B2 true JP6036302B2 (ja) | 2016-11-30 |
Family
ID=46580674
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2012554722A Active JP6036302B2 (ja) | 2011-01-25 | 2012-01-06 | 情報処理装置、情報処理システム、情報処理方法および情報処理プログラム |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20140019436A1 (ja) |
| JP (1) | JP6036302B2 (ja) |
| CN (1) | CN103329117A (ja) |
| WO (1) | WO2012102102A1 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9703816B2 (en) * | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010271798A (ja) * | 2009-05-19 | 2010-12-02 | Nippon Telegr & Teleph Corp <Ntt> | 分散データ管理装置及び方法及びプログラム |
| JP2010538552A (ja) * | 2007-09-26 | 2010-12-09 | 華為技術有限公司 | パケットルーティングの方法、システム、装置、及びバックアップリソースを選択する方法、システム |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5664172A (en) * | 1994-07-19 | 1997-09-02 | Oracle Corporation | Range-based query optimizer |
| US7167856B2 (en) * | 2001-05-15 | 2007-01-23 | Jonathan Keir Lawder | Method of storing and retrieving multi-dimensional data using the hilbert curve |
| JP4445509B2 (ja) * | 2007-03-20 | 2010-04-07 | 株式会社東芝 | 構造化文書検索システム及びプログラム |
| JP4277918B2 (ja) * | 2007-04-13 | 2009-06-10 | 日本電気株式会社 | データ検索装置、データ検索方法およびデータ検索用プログラム |
| US8176021B2 (en) * | 2008-06-02 | 2012-05-08 | Microsoft Corporation | Optimized reverse key indexes |
| CN101599886B (zh) * | 2008-06-05 | 2013-01-02 | 华为技术有限公司 | 分布式结构化网络中的查询方法、系统和设备 |
| US9298761B2 (en) * | 2009-04-30 | 2016-03-29 | Hewlett Packard Enterprise Development Lp | Adaptive merging in database indexes |
| US8892569B2 (en) * | 2010-12-23 | 2014-11-18 | Ianywhere Solutions, Inc. | Indexing spatial data with a quadtree index having cost-based query decomposition |
-
2012
- 2012-01-06 JP JP2012554722A patent/JP6036302B2/ja active Active
- 2012-01-06 US US13/977,309 patent/US20140019436A1/en not_active Abandoned
- 2012-01-06 WO PCT/JP2012/050647 patent/WO2012102102A1/ja not_active Ceased
- 2012-01-06 CN CN2012800064002A patent/CN103329117A/zh active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010538552A (ja) * | 2007-09-26 | 2010-12-09 | 華為技術有限公司 | パケットルーティングの方法、システム、装置、及びバックアップリソースを選択する方法、システム |
| JP2010271798A (ja) * | 2009-05-19 | 2010-12-02 | Nippon Telegr & Teleph Corp <Ntt> | 分散データ管理装置及び方法及びプログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| US20140019436A1 (en) | 2014-01-16 |
| WO2012102102A1 (ja) | 2012-08-02 |
| JPWO2012102102A1 (ja) | 2014-06-30 |
| CN103329117A (zh) | 2013-09-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI813743B (zh) | 在網路路由環境中的獨立資料儲存空間 | |
| JP6438719B2 (ja) | 通信システム、および、通信プログラム | |
| CN106164898B (zh) | 数据处理方法和装置 | |
| US10637794B2 (en) | Resource subscription method, resource subscription apparatus, and resource subscription system | |
| KR20150016309A (ko) | 팻-트리 라우팅에 기반하여 별개의 인피니밴드 서브넷들 사이에서 트래픽을 라우팅하기 위한 시스템 및 방법 | |
| JP5754504B2 (ja) | 管理装置、情報処理装置、情報処理システム及びデータ転送方法 | |
| US8819295B2 (en) | Information communication system, first information processing device, method for processing information, and computer readable storage medium | |
| JP6036302B2 (ja) | 情報処理装置、情報処理システム、情報処理方法および情報処理プログラム | |
| CN119182828B (zh) | 外网访问方法、装置、计算机设备、可读存储介质和产品 | |
| JP5949561B2 (ja) | 情報処理装置、情報処理システム、情報処理方法および情報処理プログラム | |
| JPWO2014126094A1 (ja) | 通信システム、通信方法、制御装置、制御装置の制御方法及びプログラム | |
| CN114731297A (zh) | 用于计算设备对等方匹配的消息限制的自组织网络组 | |
| CN114048270B (zh) | 区块链数据同步的方法和计算机可读存储介质 | |
| CN114363331B (zh) | 通信方法、系统、计算机设备和存储介质 | |
| WO2020054637A1 (ja) | 転送装置および転送方法 | |
| JP7848928B1 (ja) | データ記憶システム及び報酬保証方法 | |
| JP2009134341A (ja) | ピア検索方法および通信装置 | |
| WO2013027784A1 (ja) | データ処理装置、データ分散処理システム、データ処理方法およびプログラム記憶媒体 | |
| JP4624314B2 (ja) | データ管理装置 | |
| CN117014403A (zh) | 封包交换机及封包管理方法 | |
| CN116366706A (zh) | 跨链交互方法和区块链节点 | |
| JP2022035057A (ja) | 通信装置、情報処理方法及びプログラム | |
| JP2006146409A (ja) | ストレージデバイス選択方法、ゲートウェイ装置およびストレージシステム | |
| JP2018107646A (ja) | 経路制御装置及び経路制御方法 | |
| WO2012124448A1 (ja) | ルーティングテーブル生成装置、分散処理装置、分散処理システム、ルーティングテーブル生成方法、および、記憶媒体 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20141217 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160308 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160420 |
|
| 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: 20161004 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161017 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6036302 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |