JP2008234563A - Overlay management device, overlay management system, overlay management method, and program for managing overlay - Google Patents
Overlay management device, overlay management system, overlay management method, and program for managing overlay Download PDFInfo
- Publication number
- JP2008234563A JP2008234563A JP2007076664A JP2007076664A JP2008234563A JP 2008234563 A JP2008234563 A JP 2008234563A JP 2007076664 A JP2007076664 A JP 2007076664A JP 2007076664 A JP2007076664 A JP 2007076664A JP 2008234563 A JP2008234563 A JP 2008234563A
- Authority
- JP
- Japan
- Prior art keywords
- logical identifier
- search
- data
- peer
- identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、オーバレイネットワークに配置された各端末で共有するデータを管理するオーバレイ管理装置、オーバレイ管理システム、オーバレイ管理方法およびオーバレイ管理用プログラムに関し、特に多次元情報を、均一かつ連続性を保持しつつ論理識別子を算出できるオーバレイ管理装置、オーバレイ管理システム、オーバレイ管理方法およびオーバレイ管理用プログラムに関する。 The present invention relates to an overlay management apparatus, an overlay management system, an overlay management method, and an overlay management program for managing data shared by terminals arranged in an overlay network, and in particular, maintains multi-dimensional information uniformly and continuously. The present invention relates to an overlay management apparatus, an overlay management system, an overlay management method, and an overlay management program that can calculate a logical identifier.
オーバレイネットワークとは、既存のリンクを用いて、その上位層における目的に応じて仮想的なリンクを形成し構成するネットワークである。すなわち、コンピュータネットワークの下位層のトポロジーとは関係なく構築された上位層のネットワークをオーバーレイ・ネットワークと呼ぶ。例えば、IPネットワークのトポロジーとは無関係に構築されたP2P(Peer to Peer)ネットワークなどを指す。 An overlay network is a network that uses an existing link to form and configure a virtual link according to the purpose in the upper layer. That is, an upper layer network constructed regardless of the lower layer topology of the computer network is called an overlay network. For example, it refers to a P2P (Peer to Peer) network constructed irrespective of the topology of the IP network.
オーバレイネットワークの技術を利用すると、センターサーバ(中央サーバ)を用いることなく、複数のピア(ノードともいう)に分散してデータを保持させることにより、広域でデータを共有するデータベースを実現することができる。特に、連想配列(ハッシュテーブル)を実現する手法として、分散ハッシュテーブル(Distributed Hash Table:DHT)がある。オーバレイネットワーク上で分散ハッシュテーブルを構築することで膨大なデータを高速に検索可能となる。 By using overlay network technology, a database that shares data over a wide area can be realized by distributing data to a plurality of peers (also referred to as nodes) without using a center server (central server). it can. In particular, as a technique for realizing an associative array (hash table), there is a distributed hash table (DHT). By constructing a distributed hash table on the overlay network, it becomes possible to search a huge amount of data at high speed.
分散ハッシュテーブルの概要について説明する。まず、オーバレイネットワーク上に複数のピアが存在しているものとする。ピアが保持しているコンテンツの名前(キーワード)はハッシュ関数を使用してハッシュ値に変換される(数値化される)。例えば、ピアがAという名前のコンテンツを持っている場合は、Aはハッシュ値hash(A)に変換される。 An overview of the distributed hash table will be described. First, it is assumed that a plurality of peers exist on the overlay network. The name (keyword) of the content held by the peer is converted into a hash value (digitized) using a hash function. For example, if the peer has content named A, A is converted to a hash value hash (A).
ピアがオーバレイネットワークに参加するときに、ピアはランダムなノードID(Node_ID)を決定し保持する。そして、ピアがAという名前のコンテンツを持っている場合、そのピアはNode_ID=hash(A)であるピア(ノード)にAのハッシュ値{hash(A)}と自身のIPアドレス{IP_Adress}の組である{hash(A),IP_Adress}を通知して登録する。仮に、Node_ID=hash(A)となるピアがなければ、hash(A)に一番近いNode_IDであるピアが{hash(A),IP_Adress}を登録することになる。ユーザ(検索者)が例えばCという名前のコンテンツを欲しい場合、Node_ID=hash(C)であるピアに問い合わせれば、それを所有しているピアのIPアドレスがわかることになる。 When a peer joins an overlay network, the peer determines and maintains a random node ID (Node_ID). If the peer has the content named A, the peer sends a hash value {hash (A)} of A and its own IP address {IP_Address} to a peer (node) whose Node_ID = hash (A). A set {hash (A), IP_Address} is notified and registered. If there is no peer with Node_ID = hash (A), the peer with Node_ID closest to hash (A) registers {hash (A), IP_Address}. If a user (searcher) wants content such as C, for example, if the user makes an inquiry to a peer having Node_ID = hash (C), the IP address of the peer that owns the content can be known.
なお、分散ハッシュテーブルには、Chord(円状)、CAN(N次元トーラス)、Kademlia、P−Grid(2分木)、Tapestry,Pastry(Plaxtonアルゴリズム)という手法が存在する。分散ハッシュテーブルの中でも最も一般的なChordについては後述する。 In the distributed hash table, there are methods such as Chord (circle), CAN (N-dimensional torus), Kademlia, P-Grid (binary tree), Tapestry, Pastry (Platton algorithm). The most common Chord among the distributed hash tables will be described later.
このような構成によれば、センターサーバがなくても高速にコンテンツを検索することができ、そのコンテンツを所有するピアのIPアドレスを見つけることができる。 According to such a configuration, the content can be searched at high speed without a center server, and the IP address of the peer that owns the content can be found.
オーバレイネットワークを利用した従来技術が以下に示す特許文献に開示されている。 Conventional techniques using an overlay network are disclosed in the following patent documents.
特許文献1に記載されたシステムでは、端末が自端末の物理的情報を収集して公開し、他端末の物理的情報を収集し、収集した物理的情報にもとづいてピアごとの信頼度を計算し、信頼度に応じて接続管理を行い、ネットワークトポロジを決定し、トラヒック変動を検知して接続を変更する技術が開示されている。 In the system described in Patent Document 1, the terminal collects and discloses the physical information of its own terminal, collects the physical information of other terminals, and calculates the reliability for each peer based on the collected physical information. A technique is disclosed in which connection management is performed according to reliability, a network topology is determined, a traffic change is detected, and a connection is changed.
特許文献2には、未参加ノードが、オーバレイネットワークに参加している複数の参加ノードからの返信パケットにもとづいて、返信パケットを返信した参加ノードと自己との間の通信経路における通信負荷に関する情報を取得し、取得した情報にもとづいてネットワーク的に近い参加ノードを選定して、その参加ノードに対して参加要求を行ってオーバレイネットワークに参加する構成が開示されている。 Patent Document 2 discloses information relating to a communication load on a communication path between a participating node that has returned a reply packet based on reply packets from a plurality of participating nodes that participate in the overlay network. A configuration is disclosed in which a node that is close to the network is selected based on the acquired information, and a participation request is made to the participating node to participate in the overlay network.
また、特許文献3には、オーバレイネットワークが複数のゾーンを有するように形成され、一のノードと他のノードとの間の通信経路における通信負荷が所定範囲の場合には、一のノードと他のノードとをオーバレイネットワークにおいて同一のゾーンに所属するように配置させる構成が開示されている。 Further, in Patent Document 3, when an overlay network is formed to have a plurality of zones and the communication load on a communication path between one node and another node is within a predetermined range, one node and another Are arranged so as to belong to the same zone in the overlay network.
ところで、ユーザは、多次元属性の検索条件にもとづいてデータ検索を行うことも考えられる。例えば、コンピュータのCPUスピードという属性とメモリサイズという属性の検索条件にもとづいてデータ検索を実行するような場合である。しかし、上記の特許文献1〜3にはオーバレイネットワーク上の通信負荷を軽減する技術が開示されているが、多次元属性(複数属性)のデータ検索を実現する技術については開示されていない。 By the way, it is conceivable that the user performs a data search based on a search condition of a multidimensional attribute. For example, a data search is executed based on a search condition of an attribute called a CPU speed of a computer and an attribute called a memory size. However, the above Patent Documents 1 to 3 disclose a technique for reducing the communication load on the overlay network, but do not disclose a technique for realizing multidimensional attribute (multiple attribute) data search.
本発明の目的は、上記のような課題を解決するためになされたものであり、多次元属性のデータ検索を効率よく高速に実行することができるオーバレイ管理装置、オーバレイ管理システム、オーバレイ管理方法およびオーバレイ管理用プログラムを得ることを目的とする。 An object of the present invention has been made to solve the above-described problems, and is an overlay management apparatus, an overlay management system, an overlay management method, and an overlay management apparatus capable of efficiently and rapidly performing multidimensional attribute data retrieval. The purpose is to obtain an overlay management program.
以上の目的を達成するため、本発明によるオーバレイ管理装置は、オーバレイネットワーク上に配置され、他の装置と共有するデータを管理するオーバレイ管理装置であって、複数属性のデータを一次元の値に変換する一次元化手段と、一次元化手段によって一次元化された値に対して、値の分布情報を含む関数を適用して論理識別子を生成する識別子生成手段と、オーバレイネットワーク上の各装置に対する論理識別子の割り当てにもとづいて、識別子生成手段にて生成された論理識別子を管理する他の装置を特定する管理装置特定手段と、管理装置特定手段によって特定された他の装置にデータを登録する処理を実行するデータ登録手段とを備えたことを特徴とする。 In order to achieve the above object, an overlay management apparatus according to the present invention is an overlay management apparatus that is arranged on an overlay network and manages data shared with other apparatuses. One-dimensional means for conversion, identifier generating means for generating a logical identifier by applying a function including value distribution information to the value one-dimensionalized by the one-dimensional means, and each device on the overlay network Based on the assignment of the logical identifier to the management device specifying means for specifying another device that manages the logical identifier generated by the identifier generating means, and for registering data in the other device specified by the management device specifying means Data registration means for executing processing is provided.
複数属性の検索条件を一次元の値の集合に変換する検索条件一次元化手段と、検索条件一次元化手段によって一次元化された値の集合内の要素に対して、値の分布情報を含む関数を適用して論理識別子の範囲の集合を生成する識別子範囲生成手段と、識別子範囲生成手段にて生成された論理識別子の範囲の集合を他の装置に検索要求として転送することによりデータの検索を行う検索要求転送手段とを備えていてもよい。この構成によれば、複数属性からなる1つのデータを1つの装置に登録する場合において、特定の装置に検索要求の転送負荷が集中するのを防止することができる。 A search condition one-dimensionalization means for converting a search condition of multiple attributes into a one-dimensional value set, and value distribution information for elements in the set of values one-dimensionalized by the search condition one-dimensionalization means An identifier range generation unit that generates a set of logical identifier ranges by applying a function including the data identifier by transferring the set of logical identifier ranges generated by the identifier range generation unit to another apparatus as a search request. Search request transfer means for performing a search may be provided. According to this configuration, when one piece of data having a plurality of attributes is registered in one device, it is possible to prevent the transfer load of search requests from being concentrated on a specific device.
オーバレイネットワーク上の各装置に対する論理識別子の割り当てにもとづいて、論理識別子の範囲の集合を分割する論理識別子範囲分割手段を備え、検索要求転送手段は、論理識別子範囲分割手段によって分割された論理識別子の範囲の集合を他の装置に検索要求として転送することによりデータの検索を行うように構成されていてもよい。この構成によれば、検索範囲の広い場合にも検索要求のホップ数が増加しないようにすることができ、その結果、高速な検索、通信負荷の軽減なども図ることができる。 Logical identifier range dividing means for dividing a set of logical identifier ranges based on logical identifier assignment to each device on the overlay network, and the search request transfer means includes logical identifier range dividing means for dividing the logical identifier range divided by the logical identifier range dividing means. Data may be searched by transferring a set of ranges to another device as a search request. According to this configuration, even when the search range is wide, the number of search request hops can be prevented from increasing, and as a result, high-speed search and reduction of communication load can be achieved.
一次元化手段または検索条件一次元化手段は、空間充填曲線を用いて複数属性のデータを一次元の値または値の集合に変換し、識別子生成手段または識別子範囲生成手段は、空間充填曲線にて一次元化された値または値の集合を均一化する空間充填曲線分布関数を適用して一次元化された値または値の集合から論理識別子またはその範囲の集合を生成するように構成されていてもよい。この構成によれば、検索要求(検索メッセージ)を転送する論理識別子の範囲を狭くすることができるとともに(例えば、図18に示すようにx属性とy属性をともに満たす要素数に検索メッセージを伝播させることができる)、オーバレイネットワーク上の各装置にデータ管理負荷が集中しないようにすることができる。 The one-dimensionalization means or the search condition one-dimensionalization means converts the data of a plurality of attributes into a one-dimensional value or a set of values using a space filling curve, and the identifier generation means or the identifier range generation means converts the data into a space filling curve. Applying a space-filling curve distribution function that equalizes the one-dimensionalized value or set of values to generate a logical identifier or a set of ranges from the one-dimensionalized value or set of values. May be. According to this configuration, the range of the logical identifier for transferring the search request (search message) can be narrowed (for example, the search message is propagated to the number of elements satisfying both the x attribute and the y attribute as shown in FIG. 18). It is possible to prevent the data management load from being concentrated on each device on the overlay network.
論理識別子範囲分割手段は、ルーティングテーブルに格納された論理識別子にもとづいて、論理識別子の範囲の集合を分割するように構成されていてもよい。この構成によれば、適切な範囲に論理識別子の範囲の集合を分割することができ、その結果、より一層高速な検索を実現することができる。なお、ルーティングテーブルには、例えばChordで用いるフィンガーテーブルやサクセッサーリストなどが含まれる。 The logical identifier range dividing means may be configured to divide a set of logical identifier ranges based on logical identifiers stored in the routing table. According to this configuration, a set of logical identifier ranges can be divided into appropriate ranges, and as a result, a much faster search can be realized. Note that the routing table includes, for example, a finger table and successor list used in Chord.
本発明によるオーバレイ管理システムは、オーバレイネットワーク上に配置された複数の端末を備え、各端末間で共有するデータを管理するオーバレイ管理システムであって、各端末は、複数属性のデータを一次元の値に変換する一次元化手段と、一次元化手段によって一次元化された値に対して、値の分布情報を含む関数を適用して論理識別子を生成する識別子生成手段と、各端末に対する論理識別子の割り当てにもとづいて、識別子生成手段にて生成された論理識別子を管理する他の端末を特定する管理端末特定手段と、管理端末特定手段によって特定された他の端末にデータを登録する処理を実行するデータ登録手段とを備えたことを特徴とする。 An overlay management system according to the present invention is an overlay management system that includes a plurality of terminals arranged on an overlay network and manages data shared among the terminals. A one-dimensional means for converting into a value, an identifier generating means for generating a logical identifier by applying a function including value distribution information to the value one-dimensionalized by the one-dimensional means, and a logic for each terminal Based on the assignment of the identifier, a management terminal specifying means for specifying another terminal that manages the logical identifier generated by the identifier generating means, and a process for registering data in the other terminal specified by the management terminal specifying means And a data registration means to execute.
各端末は、複数属性の検索条件を一次元の値の集合に変換する検索条件一次元化手段と、検索条件一次元化手段によって一次元化された値の集合内の要素に対して、値の分布情報を含む関数を適用して論理識別子の範囲の集合を生成する識別子範囲生成手段と、識別子範囲生成手段にて生成された論理識別子の範囲の集合を他の端末に検索要求として転送することによりデータの検索を行う検索要求転送手段とを備えていてもよい。この構成によれば、複数属性からなる1つのデータを1つの装置に登録する場合において、特定の装置に検索要求の転送負荷が集中するのを防止することができる。 Each terminal uses a search condition one-dimensionalization means for converting a search condition with multiple attributes into a one-dimensional value set, and values for elements in the set of values one-dimensionalized by the search condition one-dimensionalization means. An identifier range generation unit that generates a set of logical identifier ranges by applying a function including distribution information of the ID, and forwards the set of logical identifier ranges generated by the identifier range generation unit to another terminal as a search request Thus, a search request transfer means for searching for data may be provided. According to this configuration, when one piece of data having a plurality of attributes is registered in one device, it is possible to prevent the transfer load of search requests from being concentrated on a specific device.
各端末に対する論理識別子の割り当てにもとづいて、論理識別子の範囲の集合を分割する論理識別子範囲分割手段を備え、検索要求転送手段は、論理識別子範囲分割手段によって分割された論理識別子の範囲の集合を他の端末に検索要求として転送することによりデータの検索を行うように構成されていてもよい。この構成によれば、検索範囲の広い場合にも検索要求のホップ数が増加しないようにすることができ、その結果、高速な検索、通信負荷の軽減なども図ることができる。 Logical identifier range dividing means for dividing a set of logical identifier ranges based on the assignment of logical identifiers to each terminal, and the search request transfer means comprises a set of logical identifier ranges divided by the logical identifier range dividing means. Data may be searched by transferring it as a search request to another terminal. According to this configuration, even when the search range is wide, the number of search request hops can be prevented from increasing, and as a result, high-speed search and reduction of communication load can be achieved.
一次元化手段または検索条件一次元化手段は、空間充填曲線を用いて複数属性のデータを一次元の値または値の集合に変換し、識別子生成手段または識別子範囲生成手段は、空間充填曲線にて一次元化された値または値の集合を均一化する空間充填曲線分布関数を適用して一次元化された値または値の集合から論理識別子またはその範囲の集合を生成するように構成されていてもよい。この構成によれば、検索要求(検索メッセージ)を転送する論理識別子の範囲を狭くすることができるとともに(例えば、図18に示すようにx属性とy属性をともに満たす要素数に検索メッセージを伝播させることができる)、オーバレイネットワーク上の各装置にデータ管理負荷が集中しないようにすることができる。 The one-dimensionalization means or the search condition one-dimensionalization means converts the data of a plurality of attributes into a one-dimensional value or a set of values using a space filling curve, and the identifier generation means or the identifier range generation means converts the data into a space filling curve. Applying a space-filling curve distribution function that equalizes the one-dimensionalized value or set of values to generate a logical identifier or a set of ranges from the one-dimensionalized value or set of values. May be. According to this configuration, the range of the logical identifier for transferring the search request (search message) can be narrowed (for example, the search message is propagated to the number of elements satisfying both the x attribute and the y attribute as shown in FIG. 18). It is possible to prevent the data management load from being concentrated on each device on the overlay network.
論理識別子範囲分割手段は、ルーティングテーブルに格納された論理識別子にもとづいて、論理識別子の範囲の集合を分割するように構成されていてもよい。この構成によれば、適切な範囲に論理識別子の範囲の集合を分割することができ、その結果、より一層高速な検索を実現することができる。 The logical identifier range dividing means may be configured to divide a set of logical identifier ranges based on logical identifiers stored in the routing table. According to this configuration, a set of logical identifier ranges can be divided into appropriate ranges, and as a result, a much faster search can be realized.
本発明によるオーバレイ管理方法は、オーバレイネットワーク上に配置された管理装置の制御部が制御プログラムに従って、複数属性のデータを一次元の値に変換し、一次元化した値に対して、値の分布情報を含む関数を適用して論理識別子を生成し、オーバレイネットワーク上の各装置に対する論理識別子の割り当てにもとづいて、生成した論理識別子を管理する他の装置を特定し、特定した他の装置にデータを登録する処理を実行することを特徴とする。 According to the overlay management method of the present invention, the control unit of the management apparatus arranged on the overlay network converts the data of a plurality of attributes into a one-dimensional value according to the control program, and distributes the value to the one-dimensional value. A logical identifier is generated by applying a function including information, and another device that manages the generated logical identifier is identified based on assignment of the logical identifier to each device on the overlay network, and data is transmitted to the identified other device. It is characterized in that a process for registering is executed.
オーバレイネットワーク上に配置された管理装置の制御部が制御プログラムに従って、
複数属性の検索条件を一次元の値の集合に変換し、一次元化した値の集合内の要素に対して、値の分布情報を含む関数を適用して論理識別子の範囲の集合を生成し、生成した論理識別子の範囲の集合を他の装置に検索要求として転送することによりデータの検索を行うように構成されていてもよい。この構成によれば、複数属性からなる1つのデータを1つの装置に登録する場合において、特定の装置に検索要求の転送負荷が集中するのを防止することができる。
The control unit of the management device arranged on the overlay network follows the control program,
Convert multiple attribute search conditions into a one-dimensional set of values, and apply a function containing value distribution information to the elements in the one-dimensional set of values to generate a set of logical identifier ranges. The data may be searched by transferring the set of generated logical identifier ranges to other devices as a search request. According to this configuration, when one piece of data having a plurality of attributes is registered in one device, it is possible to prevent the transfer load of search requests from being concentrated on a specific device.
オーバレイネットワーク上の各装置に対する論理識別子の割り当てにもとづいて、論理識別子の範囲の集合を分割し、分割した論理識別子の範囲の集合を他の装置に検索要求として転送することによりデータの検索を行うように構成されていてもよい。この構成によれば、検索範囲の広い場合にも検索要求のホップ数が増加しないようにすることができ、その結果、高速な検索、通信負荷の軽減なども図ることができる。 Based on the assignment of logical identifiers to each device on the overlay network, a set of logical identifier ranges is divided, and data is searched by transferring the divided set of logical identifier ranges to other devices as a search request. It may be configured as follows. According to this configuration, even when the search range is wide, the number of search request hops can be prevented from increasing, and as a result, high-speed search and reduction of communication load can be achieved.
空間充填曲線を用いて複数属性のデータを一次元の値または値の集合に変換し、空間充填曲線にて一次元化された値または値の集合を均一化する空間充填曲線分布関数を適用して一次元化された値または値の集合から論理識別子またはその範囲の集合を生成するように構成されていてもよい。この構成によれば、検索要求(検索メッセージ)を転送する論理識別子の範囲を狭くすることができるとともに(例えば、図18に示すようにx属性とy属性をともに満たす要素数に検索メッセージを伝播させることができる)、オーバレイネットワーク上の各装置にデータ管理負荷が集中しないようにすることができる。 Apply a space-filling curve distribution function that transforms multi-attribute data into a one-dimensional value or set of values using a space-filling curve, and uniformizes the one-dimensional value or set of values in the space-filling curve. It is also possible to generate a logical identifier or a set of ranges thereof from a one-dimensionalized value or set of values. According to this configuration, the range of the logical identifier for transferring the search request (search message) can be narrowed (for example, the search message is propagated to the number of elements satisfying both the x attribute and the y attribute as shown in FIG. 18). It is possible to prevent the data management load from being concentrated on each device on the overlay network.
ルーティングテーブルに格納された論理識別子にもとづいて、論理識別子の範囲の集合を分割するように構成されていてもよい。この構成によれば、適切な範囲に論理識別子の範囲の集合を分割することができ、その結果、より一層高速な検索を実現することができる。 The set of logical identifier ranges may be divided based on the logical identifier stored in the routing table. According to this configuration, a set of logical identifier ranges can be divided into appropriate ranges, and as a result, a much faster search can be realized.
本発明によるオーバレイ管理用プログラムは、オーバレイネットワーク上に配置された管理装置が他の装置と共有するデータを管理するためのオーバレイ管理用プログラムであって、複数属性のデータを一次元の値に変換する一次元化処理と、一次元化した値に対して、値の分布情報を含む関数を適用して論理識別子を生成する識別子生成処理と、オーバレイネットワーク上の各装置に対する論理識別子の割り当てにもとづいて、生成した論理識別子を管理する他の装置を特定する管理装置特定処理と、特定した他の装置にデータを登録する処理を実行するデータ登録処理とを管理装置に実行させることを特徴とする。 An overlay management program according to the present invention is an overlay management program for managing data shared with other devices by a management device arranged on the overlay network, and converts multi-attribute data into one-dimensional values. Based on one-dimensional processing, identifier generation processing for generating a logical identifier by applying a function including value distribution information to the one-dimensional value, and assignment of a logical identifier to each device on the overlay network A management device specifying process for specifying another device that manages the generated logical identifier and a data registration process for executing a process for registering data in the specified other device. .
複数属性の検索条件を一次元の値の集合に変換する検索条件一次元化処理と、一次元化した値の集合内の要素に対して、値の分布情報を含む関数を適用して論理識別子の範囲の集合を生成する識別子範囲生成処理と、生成した論理識別子の範囲の集合を他の装置に検索要求として転送することによりデータの検索を行う検索要求転送処理とを管理装置に実行させるようにしてもよい。この構成によれば、複数属性からなる1つのデータを1つの装置に登録する場合において、特定の装置に検索要求の転送負荷が集中するのを防止することができる。 Logical identifier by applying a function that contains value distribution information to the elements in the set of one-dimensional values and the search condition one-dimensionalization processing that converts the search conditions of multiple attributes into a one-dimensional value set To cause the management apparatus to execute an identifier range generation process for generating a set of ranges and a search request transfer process for searching for data by transferring the generated set of logical identifier ranges to another apparatus as a search request It may be. According to this configuration, when one piece of data having a plurality of attributes is registered in one device, it is possible to prevent the transfer load of search requests from being concentrated on a specific device.
オーバレイネットワーク上の各装置に対する論理識別子の割り当てにもとづいて、論理識別子の範囲の集合を分割する論理識別子範囲分割処理を管理装置に実行させ、検索要求転送処理において、分割した論理識別子の範囲の集合を他の装置に検索要求として転送することによりデータの検索を行わせるようにしてもよい。この構成によれば、検索範囲の広い場合にも検索要求のホップ数が増加しないようにすることができ、その結果、高速な検索、通信負荷の軽減なども図ることができる。 Based on the assignment of logical identifiers to each device on the overlay network, the management device is caused to execute logical identifier range division processing for dividing the set of logical identifier ranges, and in the search request transfer processing, the set of divided logical identifier ranges May be made to search for data by transferring it as a search request to another device. According to this configuration, even when the search range is wide, the number of search request hops can be prevented from increasing, and as a result, high-speed search and reduction of communication load can be achieved.
一次元化処理または検索条件一次元化処理において、空間充填曲線を用いて複数属性のデータを一次元の値または値の集合に変換させ、識別子生成処理または識別子範囲生成処理において、空間充填曲線にて一次元化された値または値の集合を均一化する空間充填曲線分布関数を適用して一次元化された値または値の集合から論理識別子またはその範囲の集合を生成させるようにしてもよい。この構成によれば、検索要求(検索メッセージ)を転送する論理識別子の範囲を狭くすることができるとともに(例えば、図18に示すようにx属性とy属性をともに満たす要素数に検索メッセージを伝播させることができる)、オーバレイネットワーク上の各装置にデータ管理負荷が集中しないようにすることができる。 In one-dimensionalization processing or search condition one-dimensionalization processing, data of multiple attributes is converted into a one-dimensional value or set of values using a space-filling curve, and a space-filling curve is generated in the identifier generation processing or identifier range generation processing. A space-filling curve distribution function that equalizes the one-dimensionalized value or set of values may be applied to generate a logical identifier or a set of ranges from the one-dimensionalized value or set of values. . According to this configuration, the range of the logical identifier for transferring the search request (search message) can be narrowed (for example, the search message is propagated to the number of elements satisfying both the x attribute and the y attribute as shown in FIG. 18). It is possible to prevent the data management load from being concentrated on each device on the overlay network.
論理識別子範囲分割処理において、ルーティングテーブルに格納された論理識別子にもとづいて、論理識別子の範囲の集合を分割させるようにしてもよい。この構成によれば、適切な範囲に論理識別子の範囲の集合を分割することができ、その結果、より一層高速な検索を実現することができる。 In the logical identifier range dividing process, a set of logical identifier ranges may be divided based on the logical identifier stored in the routing table. According to this configuration, a set of logical identifier ranges can be divided into appropriate ranges, and as a result, a much faster search can be realized.
本発明によれば、オーバレイネットワーク上に配置された管理装置の制御部が制御プログラムに従って、複数属性のデータを一次元の値に変換し、一次元化した値に対して関数を適用して論理識別子を生成し、オーバレイネットワーク上の各装置に対する論理識別子の割り当てにもとづいて、生成した論理識別子を管理する他の装置を特定し、特定した他の装置にデータを登録する処理を実行するように構成されているので、多次元属性(複数属性)のデータ検索を効率よく高速に実行することができる。 According to the present invention, the control unit of the management device arranged on the overlay network converts the data of a plurality of attributes into a one-dimensional value according to the control program, and applies a function to the one-dimensional value to perform logic. Generate an identifier, specify another device that manages the generated logical identifier based on the assignment of the logical identifier to each device on the overlay network, and execute processing for registering data in the identified other device Since it is configured, data retrieval of multidimensional attributes (multiple attributes) can be executed efficiently and at high speed.
以下、本発明の実施の一形態を図面を参照して説明する。 Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
実施の形態1.
図1は、実施の形態1におけるオーバレイ管理システムの構成を示すブロック図である。図1に示すように、このオーバレイ管理システムは、インターネットなどのネットワーク100上におけるアドレスを有する複数のピア110,120,130・・・(なお、ピアのことをノードともいう)から構成されている。なお、図1には、ピアとしてピア110,120,130だけしか示していないが、ほかにも複数のピアが複数ネットワーク100に接続されている。
Embodiment 1 FIG.
FIG. 1 is a block diagram showing a configuration of an overlay management system in the first embodiment. As shown in FIG. 1, this overlay management system is composed of a plurality of peers 110, 120, 130 (which are also referred to as nodes) having addresses on a network 100 such as the Internet. . In FIG. 1, only the peers 110, 120, and 130 are shown as peers, but a plurality of other peers are connected to the plurality of networks 100.
図1に示すように、各ピア110,120,130・・・は、ローカルデータ格納部111と、ルーティングテーブル112と、メッセージ転送手段113と、通信手段114と、ピア論理識別子格納部115と、個別属性分布関数格納部117と、登録・検索実行手段118とを備えている。 As shown in FIG. 1, each peer 110, 120, 130... Has a local data storage unit 111, a routing table 112, a message transfer unit 113, a communication unit 114, a peer logical identifier storage unit 115, An individual attribute distribution function storage unit 117 and registration / search execution means 118 are provided.
ピア論理識別子格納部115には、オーバレイネットワークにおける当該ピア(例えばピア110)の論理識別子(ノードIDともいう)が格納される。この実施の形態では、論理識別子はオーバレイネットワーク上において各ピアを識別するための識別子である。この実施の形態では、後述するように、Chordアルゴリズムを利用してデータ検索を実行するが、Chordでは、各ピアはオーバレイネットワークに参加するときにSHA−1などのハッシュ関数により自分の論理識別子を生成し、生成した論理識別子(ノードID)をピア論理識別子格納部115に格納する。この論理識別子はピア毎にユニークな値である。 The peer logical identifier storage unit 115 stores a logical identifier (also referred to as a node ID) of the peer (for example, the peer 110) in the overlay network. In this embodiment, the logical identifier is an identifier for identifying each peer on the overlay network. In this embodiment, as will be described later, data retrieval is performed using the Chord algorithm. In Chord, each peer assigns its logical identifier by a hash function such as SHA-1 when participating in the overlay network. The generated logical identifier (node ID) is stored in the peer logical identifier storage unit 115. This logical identifier is a unique value for each peer.
ローカルデータ格納部111には、全ピア110,120,130・・・で共有するデータ(コンテンツ)のうち、当該ピア(例えばピア110)が担当するデータが格納される。各ピアがどの部分のデータを担当(管理)するかは、各ピアの論理識別子によって異なる。 The local data storage unit 111 stores data handled by the peer (for example, the peer 110) among data (contents) shared by all the peers 110, 120, 130. Which portion of data each peer is responsible for (manages) depends on the logical identifier of each peer.
ルーティングテーブル(フィンガーテーブルともいう)112は、各ピアがルーティングを行うときに参照するテーブルである。ルーティングテーブル112には、他のピアの論理識別子と、ネットワーク100上でのアドレス(例えば、IPアドレス;Internet Protocolアドレス)の組が複数格納されている。このルーティングテーブル112による管理方式は、Chordと同一の管理方式である。Chordの詳しい内容は後述する。 A routing table (also referred to as a finger table) 112 is a table referred to when each peer performs routing. The routing table 112 stores a plurality of sets of logical identifiers of other peers and addresses (for example, IP addresses; Internet Protocol addresses) on the network 100. The management method by the routing table 112 is the same management method as Chord. The detailed contents of Chord will be described later.
個別属性分布関数格納部117は、図2に示す個別属性分布関数格納表200を格納する。個別属性分布関数格納表200には、属性名201と、それに対応する分布関数202とが格納されている。図2に示す個別属性分布関数格納表200では、属性名が「CPU−Speed」と「Memory−Size」とされ、「CPU−Speed」の分布関数H(x)として「63x/5」が格納され、「Memory−Size」の分布関数H(x)として「63x/1024」が格納されている。ここで、「CPU−Speed」の「/5」はCPUスピードが5GHzであることを示し、「Memory−Size」の「/1024」はメモリサイズが1024Mバイトであることを示している。 The individual attribute distribution function storage unit 117 stores the individual attribute distribution function storage table 200 shown in FIG. The individual attribute distribution function storage table 200 stores attribute names 201 and corresponding distribution functions 202. In the individual attribute distribution function storage table 200 shown in FIG. 2, the attribute names are “CPU-Speed” and “Memory-Size”, and “63x / 5” is stored as the distribution function H (x) of “CPU-Speed”. Then, “63x / 1024” is stored as the distribution function H (x) of “Memory-Size”. Here, “/ 5” in “CPU-Speed” indicates that the CPU speed is 5 GHz, and “/ 1024” in “Memory-Size” indicates that the memory size is 1024 Mbytes.
下記の式1に示すように、この分布関数H(v)は、属性の値vを1変数とする累積分布関数D(v)と、オーバレイネットワークが持つ論理識別子の最大値(2^m−1)(つまり、ハッシュ空間が26 (2の6乗)であるとすると、26 −1=64−1=63)との積から得られる。 As shown in Equation 1 below, this distribution function H (v) includes a cumulative distribution function D (v) having an attribute value v as one variable, and a maximum logical identifier (2 ^ m− 1) (ie, if the hash space is 2 6 (2 to the 6th power), it is obtained from the product 2 6 −1 = 64−1 = 63).
H(v)=D(v)×(2^m−1)・・・(式1) H (v) = D (v) × (2 ^ m−1) (Equation 1)
なお、累積分布関数および分布関数の詳しい説明について後述する。 A detailed description of the cumulative distribution function and the distribution function will be described later.
登録・検索実行手段118は、データの登録および検索の処理を実行する。具体的には、登録・検索実行手段118は、外部インタフェースからデータを入力すると、その入力したデータに対応する論理識別子を生成し、生成した論理識別子をメッセージ転送手段113に出力し、この論理識別子に対応するピアにデータを登録するよう要求する。また、登録・検索実行手段118は、外部インタフェースからの検索要求を受け取ると、検索要求に含まれる検索条件に応じた属性の分布関数を個別属性分布関数格納部117から読み出し、読み出した分布関数および検索条件にもとづいて検索メッセージ(検索要求)を生成する。また、登録・検索実行手段118は、他のピアからの検索メッセージにもとづいて、ローカルデータ格納部111内に格納されているデータの検索処理を実行する。 The registration / search execution means 118 executes data registration and search processing. Specifically, when data is input from the external interface, the registration / search execution unit 118 generates a logical identifier corresponding to the input data, and outputs the generated logical identifier to the message transfer unit 113. Request to register data with the peer corresponding to. When the registration / search execution means 118 receives the search request from the external interface, the registration / search execution means 118 reads out the distribution function of the attribute corresponding to the search condition included in the search request from the individual attribute distribution function storage unit 117, A search message (search request) is generated based on the search condition. Further, the registration / search execution means 118 executes a search process for data stored in the local data storage unit 111 based on a search message from another peer.
メッセージ転送手段113は、データの登録要求および検索メッセージ(検索要求)の転送処理を実行する。具体的には、メッセージ転送手段113は、登録・検索実行手段118からのデータ登録要求を受けると、登録・検索実行手段118にて生成された論理識別子のピアに対してデータを送信する処理を実行する。また、メッセージ転送手段113は、ルーティングテーブル112を参照して、登録・検索実行手段118にて生成された検索メッセージを所定の転送先のピアに転送する処理を実行する。また、メッセージ転送手段113は、他のピアからの検索メッセージを受け取ると、ルーティングテーブル112を参照して、検索メッセージを所定の転送先のピアに転送し、または登録・検索実行手段118に出力する処理を実行する。 The message transfer means 113 executes a data registration request and search message (search request) transfer processing. Specifically, when the message transfer unit 113 receives a data registration request from the registration / search execution unit 118, the message transfer unit 113 performs a process of transmitting data to the peer of the logical identifier generated by the registration / search execution unit 118. Execute. Also, the message transfer unit 113 refers to the routing table 112 and executes a process of transferring the search message generated by the registration / search execution unit 118 to a predetermined transfer destination peer. When the message transfer unit 113 receives a search message from another peer, the message transfer unit 113 refers to the routing table 112 and transfers the search message to a predetermined transfer destination peer or outputs it to the registration / search execution unit 118. Execute the process.
通信手段114は、ネットワーク100を通じて他のピアとの間で検索メッセージ等を送受信する処理を実行する。 The communication unit 114 executes processing for transmitting and receiving a search message and the like with other peers via the network 100.
(1)Chordについて;
まず、分散ハッシュテーブルの一つであるChordについて説明する。Chordでは、円状のハッシュ空間(1次元のハッシュ空間)を2160 (2の160乗)とし、ハッシュ関数としてSHA−1を想定している。ここでは、ハッシュ空間を説明しやすくするために、図3に示すように、26 (=64;2の6乗)とする。この場合、円状のハッシュ空間に0〜63の論理識別子(ノードID)が配置される。そのうち、実際にピアが存在しているのは、図3に示す例では「4」「15」「30」「48」「56」「60」である。
(1) About Chord;
First, Chord which is one of the distributed hash tables will be described. In Chord, a circular hash space (one-dimensional hash space) is 2 160 (2 to the power of 160), and SHA-1 is assumed as a hash function. Here, in order to facilitate the explanation of the hash space, it is assumed that 2 6 (= 64; the sixth power of 2) as shown in FIG. In this case, logical identifiers (node IDs) 0 to 63 are arranged in a circular hash space. Among them, the actual peers are “4” “15” “30” “48” “56” “60” in the example shown in FIG.
Chordでは、自身のピアの論理識別子に、2i (2のi乗:i=0,1,2,4,8,・・・,n)を加えた数の論理識別子のピアの情報(ピアの論理識別子とIPアドレスの組の情報)がフィンガーテーブルとしてルーティングテーブル112に登録される。すなわち、自身のピアの論理識別子の1,2,4,8,・・・先の論理識別子のピアの情報が登録される。自身の1,2,4,8,・・・先の論理識別子のピアが存在しないときは、その論理識別子の数より大きく最も近いピアの情報(ピアの論理識別子とIPアドレスの組の情報)が登録される。また、自身の論理識別子から見て時計回りの方向に最初に存在するピア(自身の論理識別子より大きい隣のピア)の情報(ピアの論理識別子とIPアドレスの組の情報)もルーティングテーブル112に登録される。 In Chord, peer information (peer) of logical identifiers of the number obtained by adding 2 i (2 to the power of i: i = 0, 1, 2, 4, 8,..., N) to the logical identifier of its peer. (Information on a set of logical identifier and IP address) is registered in the routing table 112 as a finger table. That is, the peer's logical identifiers 1, 2, 4, 8,... When there is no peer with its own logical identifier, information on the nearest peer larger than the number of logical identifiers (information on a pair of peer logical identifier and IP address) Is registered. In addition, information on a peer that is first present in the clockwise direction as viewed from its own logical identifier (an adjacent peer larger than its own logical identifier) (peer logical identifier and IP address pair information) is also stored in the routing table 112. be registered.
なお、所定の論理識別子から見て時計回りの方向に最初に存在するピアを「successor」という。また、所定の論理識別子から見て反時計回りの方向に最初に存在するピア(自身の論理識別子より小さい隣のピア)を「predecessor」という。そのpredecessorと自身との間のハッシュ空間を責任領域としてデータの管理を行う。 Note that the first peer that exists in the clockwise direction when viewed from a predetermined logical identifier is referred to as “successor”. A peer that exists first in a counterclockwise direction as viewed from a predetermined logical identifier (an adjacent peer smaller than its own logical identifier) is referred to as a “predecessor”. Data management is performed using a hash space between the predecessor and itself as a responsibility area.
例えば、図3に示す例では、論理識別子のハッシュ空間が26 (2の6乗)であり、オーバレイネットワーク上に論理識別子4,15,30,48,56,60のピアが存在している。このとき、自身のピアの論理識別子が「56」であれば、自身の1,2,4,8,・・・先の論理識別子(つまり、論理識別子57,58,60,0,8,24)のピア、またはそれらの論理識別子よりも大きく最も近い論理識別子のピアを管理することになる。従って、論理識別子60,15,30のピアの情報をルーティングテーブル112に保持することになる。また、自身の論理識別子より大きい隣のピアである論理識別子60のピア(successor)の情報もルーティングテーブル112に保持することになる。 For example, in the example shown in FIG. 3, the hash space of the logical identifier is 2 6 (2 to the sixth power), and peers with the logical identifiers 4, 15, 30, 48, 56, and 60 exist on the overlay network. . At this time, if the logical identifier of its own peer is “56”, its own logical identifier of 1, 2, 4, 8,... (Ie, logical identifiers 57, 58, 60, 0, 8, 24). ) Peers, or peers with logical identifiers that are larger and closest to those logical identifiers. Therefore, the information on the peers of the logical identifiers 60, 15, and 30 is held in the routing table 112. In addition, information on the successor of the logical identifier 60 that is a neighboring peer larger than its own logical identifier is also held in the routing table 112.
上記の場合において、ユーザが論理識別子56のピア305から検索キーワードのハッシュ値(転送先論理識別子20)をオーバーレイネットワークに送信する場合、論理識別子56のピア305は、ルーティングテーブル112を参照して論理識別子20に最も近い論理識別子15のピア302に検索要求(検索メッセージ)を転送し、論理識別子15のピア302は、転送先論理識別子20のsuccessorである論理識別子30のピア303に検索要求を転送する。 In the above case, when the user transmits the hash value (transfer destination logical identifier 20) of the search keyword from the peer 305 of the logical identifier 56 to the overlay network, the peer 305 of the logical identifier 56 refers to the routing table 112 and performs logical processing. The search request (search message) is transferred to the peer 302 with the logical identifier 15 closest to the identifier 20, and the peer 302 with the logical identifier 15 transfers the search request to the peer 303 with the logical identifier 30 that is the successor of the transfer destination logical identifier 20. To do.
このように、Chordでは、ルーティングテーブル112を用いて、検索するピアを次のピアに渡す度に検索すべきハッシュ空間を1/2に絞っているので、検索にかかるホップ数(ピアから他のピアに検索メッセージが転送される回数)をO(logN)に抑えることが可能となり、その結果、高速なデータ検索を実現することができる。 In this way, in Chord, the routing table 112 is used to narrow down the hash space to be searched every time a peer to be searched is passed to the next peer, so that the number of hops required for the search (from peer to other The number of times the search message is transferred to the peer) can be suppressed to O (logN), and as a result, high-speed data search can be realized.
次に、Chordにおけるピアの参加について説明する。図3に示す例において、論理識別子10のピアが新たにオーバレイネットワークに参加するものとする。この場合、論理識別子10のピアは、現在、オーバレイネットワークに参加している適当なピアに論理識別子10よりも大きい次の論理識別子(図3に示す例では論理識別子15)のピアを探してもらう。また、論理識別子10のピアは、論理識別子15の一つ前の論理識別子(図3に示す例では4)のピアを教えてもらう。そして、論理識別子10のピアは、論理識別子15のピアと論理識別子4のピアに自分の存在を通知し、ルーティングテーブル112の変更を行わせる。また、論理識別子10のピアは、論理識別子15のピアからハッシュ値10〜14に対応しているデータをもらって格納する。このような処理によって論理識別子10のピアがChord(オーバレイネットワーク)に参加することができることになる。 Next, peer participation in Chord will be described. In the example shown in FIG. 3, it is assumed that a peer having a logical identifier 10 newly joins the overlay network. In this case, the peer with the logical identifier 10 has an appropriate peer currently participating in the overlay network search for a peer with the next logical identifier (the logical identifier 15 in the example shown in FIG. 3) larger than the logical identifier 10. . In addition, the peer with the logical identifier 10 is informed of the peer with the logical identifier immediately preceding the logical identifier 15 (4 in the example shown in FIG. 3). Then, the peer with the logical identifier 10 notifies the peer with the logical identifier 15 and the peer with the logical identifier 4 of their existence, and causes the routing table 112 to be changed. Further, the peer with the logical identifier 10 receives the data corresponding to the hash values 10 to 14 from the peer with the logical identifier 15 and stores it. By such processing, the peer with the logical identifier 10 can participate in the Chord (overlay network).
次に、Chordにおけるピアの離脱について説明する。オーバレイネットワーク上の各ピアは、ルーティングしているピアに対して定期的にピアの生死を確認する。これによってピアの離脱を確認した場合はルーティングテーブルの変更を行う。しかし、この場合、ネットワークから離脱するピアに蓄積しているデータが失われてしまう可能性がある。このため、ピアが保持しているデータは、当該ピアから見て時計回りに近い順番から所定個のピアにデータを複製しておく。これにより、あるピアがネットワークから離脱してもデータが消失してしまうことはない。 Next, the detachment of the peer in Chord will be described. Each peer on the overlay network periodically checks the peer's life and death against the routing peer. When it is confirmed that the peer has left, the routing table is changed. However, in this case, there is a possibility that data stored in a peer leaving the network is lost. For this reason, the data held by the peer is replicated to a predetermined number of peers in an order that is close to the clockwise direction when viewed from the peer. As a result, even if a certain peer leaves the network, data is not lost.
(2)累積分布関数および分布関数について;
累積分布関数D(v)は、単調増加で連続な0以上1以下の関数である。例えば、日本の年齢の密度関数を考える。この場合、60歳の年齢の人は、全体の0.05だとする。この密度関数を積分して得られるものが累積分布関数D(v)である。すなわち、60歳以下の人の割合が全体の0.7であり、およそ120歳で1となる。このD(v)は、同一分布に従うデータサンプルを0〜1の間に均一化させるという特徴を持つ。例えば、任意の日本人を選んで、その人の年齢vを聞くと、20代くらいまでの年齢の人が比較的少なく、30代、40代が徐々に多くなり、58歳あたり(団塊の世代)の割合が最も多く、その後の年代では割合が少なくなっていく。しかし、累積分布関数D(v)を求めると〜1に均一に分布する。
(2) Cumulative distribution function and distribution function;
The cumulative distribution function D (v) is a monotonically increasing function that is not less than 0 and not more than 1. For example, consider the Japanese age density function. In this case, the total number of people who are 60 years old is 0.05. The cumulative distribution function D (v) is obtained by integrating this density function. That is, the ratio of people under 60 years old is 0.7, and becomes 1 at about 120 years old. This D (v) is characterized in that data samples according to the same distribution are made uniform between 0 and 1. For example, if you select an arbitrary Japanese and listen to their age v, there are relatively few people up to about 20s, and the number of people in their 30s and 40s gradually increases. ) Is the most common, and in the subsequent years, the percentage decreases. However, when the cumulative distribution function D (v) is obtained, it is uniformly distributed in ˜1.
2^m−1は、上述したように、オーバレイネットワークにおけるID(論理識別子)の最大値で、mビットの最大値を表わす。例えば、6ビットの数値は000000〜111111の範囲となるが、この場合の最大値は2^6−1=63(2進数表示で111111)である。 As described above, 2 ^ m−1 is a maximum value of an ID (logical identifier) in the overlay network and represents a maximum value of m bits. For example, a 6-bit numerical value ranges from 000000 to 111111. In this case, the maximum value is 2 ^ 6-1 = 63 (111111 in binary notation).
累積分布関数D(v)と2m −1の積をとることで、分布関数H(v)は0〜2m −1に均一に分布することになる。仮に、各ID毎にサーバ(端末)が存在するとすると、この年齢データは同一確率で各サーバに配置されるため、負荷の偏りがおきないというメリットがある。 By taking the product of the cumulative distribution function D (v) and 2 m −1, the distribution function H (v) is uniformly distributed between 0 and 2 m −1. If there is a server (terminal) for each ID, this age data is arranged in each server with the same probability, so there is an advantage that there is no load bias.
次に、この実施の形態1におけるオーバレイ管理システムの動作について説明する。 Next, the operation of the overlay management system in the first embodiment will be described.
図4は、実施の形態1におけるオーバレイ管理システムの動作を示すシーケンス図である。例えば、図3に示す論理識別子4を持つピア301が、図2に示す属性名「CPU−Speed」の値が(4.0,5.0)で、属性名「Memory−Size」が[768,1024]の値を持つデータを探すことを想定する。ここで、(4.0,5.0)は、下限値が4.0GHzで上限値が5.0GHzの検索範囲を示し、[768,1024]は、下限値が768Mバイトで上限値が1024Mバイトの検索範囲であることを示している。 FIG. 4 is a sequence diagram showing the operation of the overlay management system in the first embodiment. For example, in the peer 301 having the logical identifier 4 shown in FIG. 3, the attribute name “CPU-Speed” shown in FIG. 2 has the value (4.0, 5.0) and the attribute name “Memory-Size” is [768]. , 1024] is assumed. Here, (4.0, 5.0) indicates the search range where the lower limit value is 4.0 GHz and the upper limit value is 5.0 GHz, and [768,1024] is the lower limit value is 768 MB and the upper limit value is 1024 M. Indicates that this is a byte search range.
図4に示すように、ピア301において、登録・検索実行手段118は、検索条件として、属性名「CPU−Speed」における(4.0,5.0)と、属性名「Memory−Size」における[768,1024]とを外部インタフェースから入力(取得)する(ステップS100)。すると、登録・検索実行手段118は、属性名「CPU−Speed」および属性名「Memory−Size」に対応する分布関数H(v)を求める計算式を個別属性分布関数格納部117から読み出して取得する。 As shown in FIG. 4, in the peer 301, the registration / search execution means 118 uses (4.0, 5.0) in the attribute name “CPU-Speed” and the attribute name “Memory-Size” as search conditions. [768, 1024] is input (acquired) from the external interface (step S100). Then, the registration / search execution means 118 reads out and obtains a calculation formula for obtaining the distribution function H (v) corresponding to the attribute name “CPU-Speed” and the attribute name “Memory-Size” from the individual attribute distribution function storage unit 117. To do.
そして、登録・検索実行手段118は、検索条件および分布関数H(v)を求める計算式にもとづいて、検索メッセージ(検索要求)を生成する(ステップS101)。具体的には、まず、各属性に応じた分布関数H(v)を求める計算式(上記の式1)に、指定された各属性の下限値および上限値を代入して、各属性の分布関数H(v)の下限値および上限値を取得する。例えば、属性名「CPU−Speed」の場合、下限値4.0から求められる分布関数の値は50.4であり、上限値5.0から求められる分布関数の値は63であるものとする。また、属性名「Memory−Size」の場合、下限値768から求められる分布関数の値は47.23であり、上限値1024から求められる分布関数の値は63であるものとする。従って、属性名「CPU−Speed」では分布関数の範囲(50.4,63)が得られ、属性名「Memory−Size」では分布関数の範囲[47.23,63]が得られたことになる。 Then, the registration / search execution means 118 generates a search message (search request) based on the search condition and the calculation formula for obtaining the distribution function H (v) (step S101). Specifically, first, the distribution of each attribute is calculated by substituting the lower limit value and the upper limit value of each specified attribute into the calculation formula (the above formula 1) for obtaining the distribution function H (v) corresponding to each attribute. The lower limit value and upper limit value of the function H (v) are acquired. For example, in the case of the attribute name “CPU-Speed”, the value of the distribution function obtained from the lower limit value 4.0 is 50.4, and the value of the distribution function obtained from the upper limit value 5.0 is 63. . In the case of the attribute name “Memory-Size”, the value of the distribution function obtained from the lower limit value 768 is 47.23, and the value of the distribution function obtained from the upper limit value 1024 is 63. Accordingly, the distribution function range (50.4, 63) is obtained for the attribute name “CPU-Speed”, and the distribution function range [47.23, 63] is obtained for the attribute name “Memory-Size”. Become.
次いで、登録・検索実行手段118は、各属性の分布関数の範囲のうち、範囲の幅の狭い属性を支配的属性として選択する。ここでは、CPU−Speedの属性が選択される。そして、登録・検索実行手段118は、支配的属性として選択した属性の範囲の下限値を転送先論理識別子とする。ここでは、50.4を転送先論理識別子とみなす。そして、登録・検索実行手段118は、これらの情報から、検索メッセージ(転送要求)310を生成する。図3に示すように、検索メッセージは、Chordアルゴリズムの転送で用いられる[転送先論理識別子、支配的属性、支配的属性に対応する範囲、サブ検索式、結果リスト]を含んでいる。ここで、サブ検索式は、元の各属性の検索式(検索条件)から支配的属性の検索式を除いた検索式、すなわち、支配的属性として属性名CPU−Speedを選択した場合は属性名Memory−Sizeの検索式[768,1024]である。上記の例では、検索メッセージ310の具体例は、[50.4、CPU−Speed、(4.0,5.0)、Memory−Size∈[768,1024]、Null]という検索メッセージ311となる。なお、結果リストは最初は「Null」(初期状態)に設定されている。 Next, the registration / search execution means 118 selects, as a dominant attribute, an attribute having a narrow range of the distribution function range of each attribute. Here, the CPU-Speed attribute is selected. Then, the registration / search execution means 118 uses the lower limit value of the attribute range selected as the dominant attribute as the transfer destination logical identifier. Here, 50.4 is regarded as a transfer destination logical identifier. Then, the registration / search execution means 118 generates a search message (transfer request) 310 from these pieces of information. As shown in FIG. 3, the search message includes [transfer destination logical identifier, dominant attribute, range corresponding to the dominant attribute, sub search expression, result list] used in the Chord algorithm transfer. Here, the sub-search formula is a search formula obtained by removing the dominant attribute search formula from the original search formula (search condition) of each attribute, that is, the attribute name CPU-Speed is selected as the dominant attribute. Memory-Size search formula [768, 1024]. In the above example, a specific example of the search message 310 is the search message 311 [50.4, CPU-Speed, (4.0, 5.0), Memory-Sizeε [768, 1024], Null]. . The result list is initially set to “Null” (initial state).
登録・検索実行手段118は、生成した検索メッセージをメッセージ転送手段113に出力する。メッセージ転送手段113は、ルーティングテーブル112を参照し、検索メッセージの転送先のピアを決定した上で、検索メッセージを通信手段114を介して送信する(ステップS102)。この場合、検索メッセージに含まれる「転送先論理識別子」が50.4であるので、検索メッセージの転送先のピアとして、転送先論理識別子50.4よりも小さい論理識別子48のピア304と決定される。 The registration / search execution means 118 outputs the generated search message to the message transfer means 113. The message transfer unit 113 refers to the routing table 112, determines the transfer destination peer of the search message, and transmits the search message via the communication unit 114 (step S102). In this case, since the “transfer destination logical identifier” included in the search message is 50.4, the peer 304 having the logical identifier 48 smaller than the transfer destination logical identifier 50.4 is determined as the transfer destination peer of the search message. The
論理識別子48のピア304は、ピア301からの検索メッセージを受信すると、転送先論理識別子50.4のsuccessorであるかどうかを判定する(ステップS103)。successorでない場合は(ステップS103のN)、ルーティングテーブルにもとづいて、検索メッセージを他のピアに転送する(ステップS104)。最終的には、転送先論理識別子50.4のsuccessorであるピアに転送される。successorである場合は(ステップS103のY)、ステップS105〜S108の処理を実行する。なお、図3に示す例では、ピア304はsuccessorではないので(ステップS103のN)、ステップS105〜S108の処理を実行せずに、検索メッセージを論理識別子56のピア305に転送する(ステップS104)。 Upon receiving the search message from the peer 301, the peer 304 with the logical identifier 48 determines whether it is a successor with the transfer destination logical identifier 50.4 (step S103). If it is not a successor (N in step S103), the search message is transferred to another peer based on the routing table (step S104). Finally, it is transferred to the peer that is the successor of the transfer destination logical identifier 50.4. If it is a successor (Y in step S103), the processes in steps S105 to S108 are executed. In the example shown in FIG. 3, since the peer 304 is not a successor (N in step S103), the search message is transferred to the peer 305 of the logical identifier 56 without executing the processing in steps S105 to S108 (step S104). ).
ピア305も、ピア304と同様の処理を実行する。すなわち、転送先論理識別子50.4のsuccessorであるかどうかを判定する(ステップS103)。図3に示す例では、論理識別子56のピア305は、転送先論理識別子50.4のsuccessorであるので(ステップS103のY)、検索処理を実行する(ステップS105)。すなわち、検索メッセージに含まれるサブ検索式に適合するデータがローカルデータ格納部111(図3ではローカルデータ格納部321)内に存在するかどうかを検索する。図3に示す例では、サブ検索式(Memory−Size∈[768,1024])に適合するデータとして[Memory−Size]768MBが検索されたものとする。この場合、[Memory−Size]768MBのピアとして「ピア15」(つまり論理識別子15のピア302)という名前(検索キーワード)が発見されるため、検索メッセージ312の結果リストに「ピア15」が格納される。 The peer 305 also performs the same process as the peer 304. That is, it is determined whether or not the transfer destination logical identifier 50.4 is a successor (step S103). In the example shown in FIG. 3, since the peer 305 with the logical identifier 56 is a successor with the transfer destination logical identifier 50.4 (Y in step S103), a search process is executed (step S105). That is, it is searched whether or not data matching the sub search expression included in the search message exists in the local data storage unit 111 (the local data storage unit 321 in FIG. 3). In the example illustrated in FIG. 3, it is assumed that [Memory-Size] 768 MB is retrieved as data that matches the sub retrieval formula (Memory-Sizeε [768, 1024]). In this case, since the name (search keyword) “peer 15” (that is, the peer 302 of the logical identifier 15) is found as a peer of [Memory-Size] 768MB, “peer 15” is stored in the result list of the search message 312. Is done.
次に、ピア305は、検索メッセージに含まれる支配的属性に対応する範囲上限の論理識別子のsuccessorであるかどうかを判定する(ステップS106)。範囲上限の論理識別子のsuccessorである場合は(ステップS106のY)、検索結果をピア301に返信して(ステップS108)、処理を終了する。一方、範囲上限の論理識別子のsuccessorでない場合は(ステップS106のN)、検索メッセージを他のピア(当該ピアのsuccessorのピア)に転送する(ステップS107)。図3に示す例では、支配的属性に対応する検索範囲の上限値が63であり、ピア305の論理識別子が56であるので、ピア305は範囲上限の論理識別子のsuccessorでないと判断して(ステップS106のN)、検索メッセージをピア305のsuccessorである論理識別子60のピア306に転送する(ステップS107)。 Next, the peer 305 determines whether or not it is a successor of the logical identifier with the upper limit of the range corresponding to the dominant attribute included in the search message (step S106). If it is the successor of the logical identifier at the upper limit of the range (Y in step S106), the search result is returned to the peer 301 (step S108), and the process is terminated. On the other hand, if it is not the successor of the logical identifier at the upper limit of the range (N in step S106), the search message is transferred to another peer (the peer of the peer's successor) (step S107). In the example shown in FIG. 3, since the upper limit value of the search range corresponding to the dominant attribute is 63 and the logical identifier of the peer 305 is 56, it is determined that the peer 305 is not a successor of the upper limit logical identifier ( In step S106, N), the search message is transferred to the peer 306 having the logical identifier 60, which is the successor of the peer 305 (step S107).
ピア306も、ピア305と同様にステップS106の処理を実行する。すなわち、範囲上限の論理識別子のsuccessorであるかどうかを判定する。図3に示す例では、ピア306は、範囲上限の論理識別子のsuccessorでないため(ステップS106のN)、さらに検索メッセージをピア306のsuccessorである論理識別子4のピア301に転送する(ステップS107)。 Similarly to the peer 305, the peer 306 also executes the process of step S106. That is, it is determined whether it is a successor of the logical identifier at the upper limit of the range. In the example shown in FIG. 3, since the peer 306 is not the successor of the logical identifier at the upper limit of the range (N in step S106), the search message is further transferred to the peer 301 of the logical identifier 4 that is the successor of the peer 306 (step S107). .
ピア301は、範囲上限の論理識別子のsuccessorであるが、図3に示す例では、ピア301には検索対象のデータがないので、ここで検索を終了する。そして、「ピア15」という検索結果313が検索メッセージの発行元(送信元)のピア301に返信される(ステップS108)。なお、この場合、ピア301が自分に返信することになる。 The peer 301 is a successor of the logical identifier at the upper limit of the range, but in the example shown in FIG. 3, since the peer 301 has no data to be searched, the search ends here. Then, a search result 313 of “peer 15” is returned to the peer 301 that issued the search message (sender) (step S108). In this case, the peer 301 replies to itself.
図5は、属性値と分布関数の関係を示す説明図である。図5のxy座標のグラフ400に示すように、x属性のデータをx軸にとり、y属性のデータをy軸にとると、そのデータの値(データのプロット)は所定の範囲に集中しているものとする。図5に示す例では、3箇所に集中している。ここで、上記の式1を用いて、x属性のデータを分布関数に変換すると、図5の下のグラフ421に示すような均一化された分布となる。また、上記の式1を用いて、y属性のデータを分布関数に変換すると、図5の右のグラフ422に示すような均一化された分布となる。 FIG. 5 is an explanatory diagram showing the relationship between attribute values and distribution functions. As shown in the graph 400 of the xy coordinates in FIG. 5, when the x attribute data is taken on the x axis and the y attribute data is taken on the y axis, the data values (data plots) are concentrated in a predetermined range. It shall be. In the example shown in FIG. 5, it is concentrated in three places. Here, when the data of the x attribute is converted into a distribution function using the above equation 1, a uniform distribution as shown in a graph 421 at the bottom of FIG. 5 is obtained. Further, when the y attribute data is converted into a distribution function using the above equation 1, a uniform distribution as shown in the graph 422 on the right side of FIG. 5 is obtained.
図5に示すように、x属性の検索条件411としてほぼ中央の範囲431が指定され、y属性の検索条件412として上半分の範囲432が指定されたものとする。この場合、範囲の幅が狭いのはx属性であるので、x属性が支配的属性として選択される。そして、上述したように、支配的属性の検索範囲の下限値が転送先論理識別子として決定され、転送先論理識別子に対する検索メッセージが送信される。そして、転送先論理識別子のsuccessorのピアに検索メッセージが到達すると、そのピア内においてローカルでデータ検索が実行される。その後、支配的属性の検索範囲の上限値の論理識別子についてのsuccessorのピアに対して検索メッセージが転送される。そして、そのピアにおいてデータ検索がローカルで実行される。その後、検索結果が検索メッセージの送信元のピアに返信される。 As shown in FIG. 5, it is assumed that a substantially central range 431 is designated as the x attribute search condition 411 and an upper half range 432 is designated as the y attribute search condition 412. In this case, since the x attribute has a narrow range, the x attribute is selected as the dominant attribute. Then, as described above, the lower limit value of the search range of the dominant attribute is determined as the transfer destination logical identifier, and a search message for the transfer destination logical identifier is transmitted. When the search message reaches the successor peer of the transfer destination logical identifier, data search is executed locally within the peer. Thereafter, the search message is forwarded to the successor peer for the logical identifier of the upper limit value of the search range of the dominant attribute. A data search is then performed locally at that peer. Thereafter, the search result is returned to the peer that sent the search message.
以上のように、この実施の形態1によれば、多次元属性の検索条件にもとづいてデータ検索を実行することができる。この場合、Chordアルゴリズムを利用して検索を行うように構成されているので、ホップ数を削減することができ、ネットワーク上の通信負荷の軽減や高速な検索を実現することができる。また、多次元の属性のデータを分布関数に変換して均一化しているので、特定のピアに対して負荷が集中してしまうのを防止することができる。 As described above, according to the first embodiment, a data search can be executed based on a search condition for multidimensional attributes. In this case, since the search is performed using the Chord algorithm, the number of hops can be reduced, and the communication load on the network can be reduced and high-speed search can be realized. In addition, since multi-dimensional attribute data is converted into a distribution function and uniformized, it is possible to prevent a load from being concentrated on a specific peer.
なお、上記の実施の形態1では、2次元属性の検索条件にもとづくデータ検索について説明したが、多次元属性の検索条件にもとづくデータ検索にも適用することができる。その場合も、検索範囲の幅の最も狭い属性を支配的属性として選択し、その支配的属性の下限値を転送先論理識別子として検索メッセージ(検索要求)を送信することになる。 In the first embodiment, the data search based on the search condition of the two-dimensional attribute has been described. However, the data search can be applied to the data search based on the search condition of the multidimensional attribute. Also in this case, the attribute having the narrowest search range is selected as the dominant attribute, and a search message (search request) is transmitted using the lower limit value of the dominant attribute as the transfer destination logical identifier.
実施の形態2.
上記の実施の形態1では、各属性の分布関数を用いる手法であったが、この実施の形態2では、空間充填曲線を用いる手法について説明する。
Embodiment 2. FIG.
In the first embodiment, the method using the distribution function of each attribute is described. In the second embodiment, a method using a space filling curve will be described.
図6は、実施の形態2におけるオーバレイ管理システムの構成を示すブロック図である。図6に示すように、実施の形態2におけるオーバレイ管理システムについても、インターネットなどのネットワーク500上におけるアドレスを有する複数のピア510,520,530・・・(なお、ピアのことをノードともいう)から構成されている。なお、図6には、ピアとしてピア510,520,530だけしか示していないが、ほかにも複数のピアが複数ネットワーク500に接続されている。 FIG. 6 is a block diagram showing the configuration of the overlay management system in the second embodiment. As shown in FIG. 6, the overlay management system according to the second embodiment also has a plurality of peers 510, 520, 530,... Having addresses on a network 500 such as the Internet (the peers are also referred to as nodes). It is composed of FIG. 6 shows only peers 510, 520, and 530 as peers, but a plurality of other peers are connected to a plurality of networks 500.
図6に示すように、各ピア510,520,530・・・は、ローカルデータ格納部511と、ルーティングテーブル512と、メッセージ転送手段513と、通信手段514と、ピア論理識別子格納部515と、空間充填曲線変換手段517と、登録・検索実行手段518とを備えている。 As shown in FIG. 6, each of the peers 510, 520, 530... Has a local data storage unit 511, a routing table 512, a message transfer unit 513, a communication unit 514, a peer logical identifier storage unit 515, Space filling curve conversion means 517 and registration / search execution means 518 are provided.
ピア論理識別子格納部515には、オーバレイネットワークにおける当該ピア(例えばピア110)の論理識別子(ノードIDともいう)が格納される。 The peer logical identifier storage unit 515 stores a logical identifier (also referred to as a node ID) of the peer (for example, the peer 110) in the overlay network.
ローカルデータ格納部511には、全ピア510,520,530・・・で共有するデータ(コンテンツ)のうち、当該ピア(例えばピア110)が担当するデータが格納される。 In the local data storage unit 511, among data (contents) shared by all the peers 510, 520, 530,..., Data handled by the peer (for example, the peer 110) is stored.
ルーティングテーブル512は、各ピアがルーティングを行うときに参照するテーブルである。ルーティングテーブル512には、他のピアの論理識別子と、ネットワーク500上でのアドレス(例えば、IPアドレス)の組が複数格納されている。 The routing table 512 is a table referred to when each peer performs routing. In the routing table 512, a plurality of sets of logical identifiers of other peers and addresses (for example, IP addresses) on the network 500 are stored.
空間充填曲線変換手段517は、空間充填曲線を用いて、多次元属性の検索条件の値を1次元の検索条件の値に変換する処理を実行する。 The space filling curve conversion means 517 executes processing for converting the search condition value of the multidimensional attribute into the value of the one-dimensional search condition using the space filling curve.
登録・検索実行手段518は、データの登録および検索の処理を実行する。メッセージ転送手段513は、ルーティングテーブル512を参照して、検索メッセージ(検索要求)の転送処理を実行する。 The registration / search execution means 518 executes data registration and search processing. The message transfer unit 513 refers to the routing table 512 and executes search message (search request) transfer processing.
通信手段514は、ネットワーク500を通じて他のピアとの間で検索メッセージ等を送受信する処理を実行する。 The communication unit 514 executes processing for transmitting and receiving a search message and the like with other peers through the network 500.
なお、この実施の形態2では、上記の実施の形態1の場合と異なり、Chordアルゴリズムを利用した手法ではない。ただし、登録・検索実行手段518および空間充填曲線変換手段517の構成以外は、ほぼ同じ内容の処理を実行する。 Note that the second embodiment is not a method using the Chord algorithm, unlike the first embodiment. However, almost the same processing is executed except for the configuration of the registration / search execution means 518 and the space filling curve conversion means 517.
次に、この実施の形態2におけるオーバレイ管理システムの動作について説明する。 Next, the operation of the overlay management system in the second embodiment will be described.
図7は、空間充填曲線を用いてClusterを分割する具体例を示す説明図である。検索式Query(データベース管理システムに対する処理要求(問い合わせ)を文字列として表わしたもの)が2次元属性に対する検索式であるものとする。例えば、x属性の値が011で、y属性の値が1**であるとすると、(011,1**)と表わせる。このとき、各属性の先頭ビットの組は(0,1)となる。ここで、図7の左上の表600における左上の領域602が(0,1)で指定された領域(範囲)であり、Clusterは「01」(左上の領域602の中心位置に示した数字)である。この「01」は、空間充填曲線(空間充填曲線とはある空間を曲線で埋め尽くしてしまうような曲線)のルートになぞった原点「00」からの距離を示している。なお、図7では、空間充填曲線としてヒルベルト空間充填曲線を用いている。 FIG. 7 is an explanatory diagram illustrating a specific example of dividing a cluster using a space filling curve. Assume that a search expression Query (a processing request (inquiry) to the database management system expressed as a character string) is a search expression for a two-dimensional attribute. For example, if the value of the x attribute is 011 and the value of the y attribute is 1 **, it can be expressed as (011, 1 **). At this time, the set of the first bit of each attribute is (0, 1). Here, the upper left area 602 in the upper left table 600 of FIG. 7 is the area (range) designated by (0, 1), and Cluster is “01” (the number shown at the center position of the upper left area 602). It is. This “01” indicates the distance from the origin “00” that traces the route of a space filling curve (a space filling curve is a curve that fills a certain space with a curve). In FIG. 7, the Hilbert space filling curve is used as the space filling curve.
次いで、(011,1**)の第2ビットの組は(1,*)となっている。ここで、「*」は0または1の値となる。従って、(1,0)と(1,1)の組み合わせが存在する。図7の右上の表610におけるx属性が「01」でy属性が「10」および「11」である領域611が(01,1*)で指定された領域(範囲)であり、Clusterは「0110」と「0111」である。この「0110」、「0111」は空間充填曲線のルートになぞった原点「0000」からの距離を示している。 Next, the set of the second bits of (011, 1 **) is (1, *). Here, “*” is a value of 0 or 1. Therefore, there are combinations of (1, 0) and (1, 1). An area 611 having an x attribute “01” and y attributes “10” and “11” in the table 610 in the upper right of FIG. 7 is an area (range) designated by (01, 1 *). "0110" and "0111". These “0110” and “0111” indicate the distance from the origin “0000” traced to the route of the space filling curve.
そして、(011,1**)の第3ビットの組も(1,*)となっている。この場合も、(1,0)と(1,1)の組み合わせが存在する。図7の左下の表620におけるx属性が「011」でy属性が「100」、「101」、「110」および「111」である領域621が(011,1**)で指定された領域(範囲)であり、Clusterは「011010」、「011011」、「011100」、「011111」である。この「011010」、「011011」、「011100」、「011111」は空間充填曲線のルートになぞった原点「000000」からの距離を示している。 The third bit set of (011, 1 **) is also (1, *). Also in this case, there are combinations of (1, 0) and (1, 1). An area 621 in which the x attribute is “011” and the y attributes are “100”, “101”, “110”, and “111” in the table 620 in the lower left of FIG. 7 is an area designated by (011, 1 **) (Range), and Cluster is “011010”, “011011”, “011100”, “011111”. These “011010”, “011011”, “011100”, and “011111” indicate distances from the origin “000000” traced to the route of the space filling curve.
このように、空間充填曲線を用いて検索式(011,1**)から複数のClusterを持つリストを生成することができる。複数のClusterを持つリストをClusterListという。Clusterをハッシュ空間における論理識別子と対応させることによって、検索メッセージを転送するピアのルーティングを行うのが、この実施の形態2の手法である。 In this way, a list having a plurality of Clusters can be generated from the search formula (011, 1 **) using the space filling curve. A list having a plurality of Clusters is called a ClusterList. According to the method of the second embodiment, the peer that transfers the search message is routed by associating the cluster with the logical identifier in the hash space.
図8は、実施の形態2におけるピア間でのメッセージの流れの具体例を示す説明図である。図9は、実施の形態2におけるオーバレイ管理システムの動作を示すシーケンス図である。図8に示すように、論理識別子56のピア705において、登録・検索実行手段518は、外部インタフェースから入力される検索式Queryを取得すると、論理識別子0のピア706に検索式を含む検索メッセージを送信する。このとき、検索式は(011,1**)であるものとする。この検索式(011,1**)は、2つの属性に対する検索式であって、x属性が011の完全一致検索であり、y属性が1**の前方一致検索である。なお、実施の形態2における検索メッセージは、実施の形態1で示した検索メッセージとは異なるフォーマットである。 FIG. 8 is an explanatory diagram showing a specific example of a message flow between peers in the second embodiment. FIG. 9 is a sequence diagram showing the operation of the overlay management system in the second embodiment. As shown in FIG. 8, in the peer 705 with the logical identifier 56, when the registration / search execution means 518 obtains the search expression Query input from the external interface, a search message including the search expression is sent to the peer 706 with the logical identifier 0. Send. At this time, it is assumed that the retrieval formula is (011, 1 **). This search expression (011, 1 **) is a search expression for two attributes, and is an exact match search with an x attribute of 011 and a forward match search with a y attribute of 1 **. Note that the search message in the second embodiment has a format different from that of the search message shown in the first embodiment.
ピア706が検索メッセージ(検索式)を発行すると(ステップS500)、ピア706の登録・検索実行手段518は、空間充填曲線変換手段517に検索式を出力し、ClusterListを生成させる(ステップS501)。空間充填曲線変換手段517は、図7で説明した手順で、Cluster「01」を生成して登録・検索実行手段518に出力する。登録・検索実行手段518は、Cluster「01」に対応する論理識別子010000(=16)のピア702に検索メッセージを送信する(ステップS502)。 When the peer 706 issues a search message (search formula) (step S500), the registration / search execution means 518 of the peer 706 outputs the search formula to the space filling curve conversion means 517 to generate ClusterList (step S501). The space filling curve conversion means 517 generates Cluster “01” and outputs it to the registration / search execution means 518 according to the procedure described in FIG. The registration / search execution means 518 transmits a search message to the peer 702 having the logical identifier 010000 (= 16) corresponding to the cluster “01” (step S502).
論理識別子16のピア702は、ピア706からの検索メッセージ(検索式)を受信して取得すると、ピア702の登録・検索実行手段518は、検索メッセージに含まれる検索式で指定されている論理識別子が自分の管理する論理識別子であるか否か判定する(ステップS503)。自分が管理する論理識別子である場合は(ステップS503のY)、登録・検索実行手段518は、検索処理を実行する(ステップS506)。すなわち、検索メッセージに含まれる検索式に適合するデータがローカルデータ格納部511内に存在するかどうかを検索する。そして、ピア702は、検索結果をメッセージの送信元(発信元)のピア705に返信する(ステップS507)。なお、図8に示す例では、検索式で指定されている論理識別子は論理識別子16のピア702が管理する論理識別子でない。 When the peer 702 having the logical identifier 16 receives and acquires the search message (search formula) from the peer 706, the registration / search execution means 518 of the peer 702 uses the logical identifier specified by the search formula included in the search message. Is a logical identifier managed by itself (step S503). If it is a logical identifier managed by itself (Y in Step S503), the registration / search execution means 518 executes a search process (Step S506). That is, it is searched whether or not data matching the search formula included in the search message exists in the local data storage unit 511. Then, the peer 702 returns the search result to the peer 705 of the message transmission source (transmission source) (step S507). In the example illustrated in FIG. 8, the logical identifier specified in the search expression is not a logical identifier managed by the peer 702 of the logical identifier 16.
自分が管理する論理識別子でない場合は(ステップS503のN)、登録・検索実行手段518は、検索式を空間充填曲線変換手段517に出力してClusterListを生成させる(ステップS504)。空間充填曲線変換手段517は、図7で説明した手順で、「0110」と「0111」を含むCluster「011」を生成して登録・検索実行手段518に出力する。なお、Clusterの識別子はそれに含まれる要素の共通先頭ビットとする。登録・検索実行手段518は、Cluster「011」を管理するピアを探し、論理識別子011110(=30)のピアに対して検索メッセージを送信する(ステップS505)。 If it is not a logical identifier managed by itself (N in step S503), the registration / search execution means 518 outputs the search formula to the space filling curve conversion means 517 to generate a ClusterList (step S504). The space filling curve conversion unit 517 generates the cluster “011” including “0110” and “0111” and outputs it to the registration / search execution unit 518 in the procedure described with reference to FIG. Note that the Cluster identifier is the common first bit of the elements included in it. The registration / search execution means 518 searches for a peer managing Cluster “011”, and transmits a search message to the peer with the logical identifier 011110 (= 30) (step S505).
論理識別子30のピア703は、ピア702からの検索メッセージ(検索式)を受信して取得すると、ピア703の登録・検索実行手段518は、検索メッセージに含まれる検索式で指定されている論理識別子が自分の管理する論理識別子であるか否か判定する(ステップS503)。図8に示す例では、Clusterに含まれる中で、「0110」で始まる論理識別子は論理識別子30のピア703が管理する論理識別子である。従って、ピア703の登録・検索実行手段518は、検索処理を実行する(ステップS506)。すなわち、検索メッセージに含まれる検索式に適合するデータがローカルデータ格納部511内に存在するかどうかを検索する。そして、ピア703は、検索結果をメッセージの送信元(発信元)のピア705に返信する(ステップS507)。 When the peer 703 with the logical identifier 30 receives and acquires the search message (search formula) from the peer 702, the registration / search execution means 518 of the peer 703 specifies the logical identifier specified by the search formula included in the search message. Is a logical identifier managed by itself (step S503). In the example illustrated in FIG. 8, a logical identifier that starts with “0110” in the Cluster is a logical identifier managed by the peer 703 of the logical identifier 30. Accordingly, the registration / search execution means 518 of the peer 703 executes a search process (step S506). That is, it is searched whether or not data matching the search formula included in the search message exists in the local data storage unit 511. Then, the peer 703 returns the search result to the peer 705 of the message transmission source (transmission source) (step S507).
また、論理識別子30のピア703で、Clusterに含まれる中で「0111」で始まる論理識別子と検索式(011,1**)から空間充填曲線変換手段517を用いて得られる出力として、「011100」を含むCluster「011100」と「011111」を含むCluster「011111」が得られる。これらはそれぞれ次の宛先である論理識別子011110(=30)であるピア703と論理識別子110000(=48)であるピア704に転送され、それぞれの論理識別子は当該ピアで管理するものと判定されるため、ローカルデータ格納部511内にデータが存在するか検索し、存在する場合には検索結果をメッセージの送信元のピア705に返信する(ステップS507)。 Further, the peer 703 of the logical identifier 30 outputs “011100” as an output obtained by using the space filling curve conversion means 517 from the logical identifier beginning with “0111” and the search expression (011, 1 **) included in the cluster. Cluster “011100” including “and Cluster“ 011111 ”including“ 011111 ”are obtained. These are transferred to the peer 703 having the logical identifier 011110 (= 30) as the next destination and the peer 704 having the logical identifier 110000 (= 48), respectively, and each logical identifier is determined to be managed by the peer. Therefore, a search is made as to whether data exists in the local data storage unit 511, and if it exists, the search result is returned to the peer 705 that is the message transmission source (step S507).
以上のように、この実施の形態2によれば、空間充填曲線変換を用いて、多次元データを1次元データに変換することによって、多次元属性の検索式(検索条件)にもとづいてデータ検索を行うことができる。また、検索メッセージを転送する度に、Clusterを段階的に分割させていくことにより、検索メッセージの転送先を分散させることができ、ホップ数を削減することができる。その結果、ネットワーク上の通信負荷の軽減や高速な検索を実現することができる。 As described above, according to the second embodiment, data search is performed based on a search expression (search condition) of multidimensional attributes by converting multidimensional data into one-dimensional data using space filling curve conversion. It can be performed. Further, by dividing the cluster in stages each time a search message is transferred, the transfer destination of the search message can be distributed and the number of hops can be reduced. As a result, communication load on the network can be reduced and high-speed search can be realized.
なお、上記の実施の形態1では、2次元属性の検索式にもとづくデータ検索について説明したが、多次元属性の検索式にもとづくデータ検索にも適用することができる。また、空間充填曲線としてヒルベルト空間充填曲線を用いていたが、ヒルベルト空間充填曲線に限られるわけでなく、Z−curve空間充填曲線、ペアノ空間充填曲線、シェルピンスキー空間充填曲線、ルベーグ空間充填曲線などであってもよい。 In the first embodiment, data search based on a two-dimensional attribute search formula has been described. However, the present invention can also be applied to data search based on a multi-dimensional attribute search formula. Moreover, although the Hilbert space filling curve was used as the space filling curve, it is not limited to the Hilbert space filling curve, but is a Z-curve space filling curve, a Peano space filling curve, a Sherpinski space filling curve, a Lebesgue space filling curve. It may be.
実施の形態3.
図10は、実施の形態3におけるオーバレイ管理システムの構成を示すブロック図である。図10に示すように、このオーバレイ管理システムは、インターネットなどのネットワーク1000上におけるアドレスを有する複数のピア1010,1020,1030・・・(なお、ピアのことをノードともいう)から構成されている。なお、図10には、ピアとしてピア1010,1020,1030だけしか示していないが、ほかにも複数のピアが複数ネットワーク1000に接続されている。
Embodiment 3 FIG.
FIG. 10 is a block diagram showing the configuration of the overlay management system in the third embodiment. As shown in FIG. 10, this overlay management system is composed of a plurality of peers 1010, 1020, 1030 (having peers also referred to as nodes) having addresses on a network 1000 such as the Internet. . FIG. 10 shows only peers 1010, 1020, and 1030 as peers, but a plurality of other peers are connected to a plurality of networks 1000.
図10に示すように、各ピア1010,1020,1030・・・は、ローカルデータ格納部1011と、ルーティングテーブル1012と、メッセージ転送手段1013と、通信手段1014と、論理識別子範囲分割手段1015と、空間充填曲線分布格納部1016と、空間充填曲線変換手段1017と、登録・検索実行手段1018と、ピア論理識別子格納部1019とを備えている。 As shown in FIG. 10, each of the peers 1010, 1020, 1030... Has a local data storage unit 1011, a routing table 1012, a message transfer unit 1013, a communication unit 1014, a logical identifier range dividing unit 1015, A space filling curve distribution storage unit 1016, a space filling curve conversion unit 1017, a registration / search execution unit 1018, and a peer logical identifier storage unit 1019 are provided.
ピア論理識別子格納部1019には、オーバレイネットワークにおける当該ピア(例えばピア110)の論理識別子(ノードIDともいう)が格納される。この実施の形態では、論理識別子はオーバレイネットワーク上において各ピアを識別するための識別子である。この実施の形態では、実施の形態1と同様に、Chordアルゴリズムを利用してデータ検索を実行するが、Chordでは、各ピアはオーバレイネットワークに参加するときにSHA−1などのハッシュ関数により自分の論理識別子を生成し、生成した論理識別子(ノードID)をピア論理識別子格納部1019に格納する。この論理識別子はピア毎にユニークな値である。 The peer logical identifier storage unit 1019 stores a logical identifier (also referred to as a node ID) of the peer (for example, peer 110) in the overlay network. In this embodiment, the logical identifier is an identifier for identifying each peer on the overlay network. In this embodiment, as in the first embodiment, data retrieval is performed using the Chord algorithm. In Chord, each peer has its own hash function such as SHA-1 when joining the overlay network. A logical identifier is generated, and the generated logical identifier (node ID) is stored in the peer logical identifier storage unit 1019. This logical identifier is a unique value for each peer.
ローカルデータ格納部1011には、全ピア1010,1020,1030・・・で共有するデータ(コンテンツ)のうち、当該ピア(例えばピア1010)が担当するデータが格納される。各ピアがどの部分のデータを担当(管理)するかは、各ピアの論理識別子によって異なる。 The local data storage unit 1011 stores data handled by the peer (for example, the peer 1010) among data (contents) shared by all the peers 1010, 1020, 1030. Which portion of data each peer is responsible for (manages) depends on the logical identifier of each peer.
ルーティングテーブル1012は、各ピアがルーティングを行うときに参照するテーブルである。ルーティングテーブル1012には、他のピアの論理識別子と、ネットワーク1000上でのアドレス(例えばIPアドレス)の組が複数格納されている。このルーティングテーブル1012による管理方式は、Chordと同一の管理方式である。 The routing table 1012 is a table that is referred to when each peer performs routing. The routing table 1012 stores a plurality of pairs of logical identifiers of other peers and addresses (for example, IP addresses) on the network 1000. The management method by this routing table 1012 is the same management method as Chord.
空間充填曲線分布格納部1016には、図11に示すように、複数の属性の組インデックス毎に空間充填曲線分布関数D(k)が格納されている。 In the space filling curve distribution storage unit 1016, as shown in FIG. 11, a space filling curve distribution function D (k) is stored for each group index of a plurality of attributes.
空間充填曲線変換手段1017は、空間充填曲線分布格納部1016に格納されている空間充填曲線分布関数D(k)を用いて登録されるデータに応じた論理識別子Idを生成する。また、空間充填曲線変換手段1017は、空間充填曲線分布格納部1016に格納されている空間充填曲線分布関数D(k)を用いて検索要求に含まれる検索式に応じた論理識別子範囲リストを生成する。 The space filling curve conversion unit 1017 generates a logical identifier Id corresponding to data registered using the space filling curve distribution function D (k) stored in the space filling curve distribution storage unit 1016. The space filling curve conversion unit 1017 generates a logical identifier range list corresponding to the search expression included in the search request using the space filling curve distribution function D (k) stored in the space filling curve distribution storage unit 1016. To do.
登録・検索実行手段1018は、外部インタフェースからのデータ登録の要求に応じて、所定のデータ登録に関する処理を実行する。また、登録・検索実行手段1018は、外部インタフェースからのデータ検索の要求に応じて、所定のデータ検索に関する処理を実行する。また、登録・検索実行手段1018は、他のピアからの検索要求の受信に応じて、ローカルデータ格納部1011内のデータ検索、他のピアへの検索要求の転送などの処理を実行する。 The registration / search execution means 1018 executes processing related to predetermined data registration in response to a data registration request from the external interface. Also, the registration / search execution means 1018 executes processing related to a predetermined data search in response to a data search request from the external interface. Also, the registration / search execution means 1018 executes processing such as data search in the local data storage unit 1011 and transfer of the search request to another peer in response to reception of the search request from another peer.
メッセージ転送手段1013は、検索要求(検索メッセージ)の転送処理を実行する。通信手段1014は、ネットワーク1000を通じて他のピアとの間で検索メッセージ等を送受信する処理を実行する。これにより、あるピアのメッセージ転送手段1013が、他のピアのメッセージ転送手段1013を呼び出すことができる。 The message transfer means 1013 executes search request (search message) transfer processing. The communication unit 1014 executes processing for transmitting and receiving a search message and the like with other peers through the network 1000. Thereby, the message transfer unit 1013 of a certain peer can call the message transfer unit 1013 of another peer.
論理識別子範囲分割手段1015は、検索対象として与えられた論理識別子の範囲を、ルーティングテーブル1012に格納されたピアの論理識別子の情報にもとづいて2つの論理識別子の範囲に分割する。 The logical identifier range dividing unit 1015 divides the range of the logical identifier given as the search target into two logical identifier ranges based on the information of the logical identifier of the peer stored in the routing table 1012.
次に、空間充填曲線を用いて2次元データを1次元データに変換する処理について図12を参照して説明する。 Next, processing for converting two-dimensional data into one-dimensional data using a space filling curve will be described with reference to FIG.
図12は、空間充填曲線を用いて2次元データを1次元データに変換する処理のアルゴリズムを視覚的に表わすデータ構造を示す説明図である。なお、図12では空間充填曲線としてヒルベルト空間充填曲線を使用した場合を示している。 FIG. 12 is an explanatory diagram showing a data structure that visually represents an algorithm of processing for converting two-dimensional data into one-dimensional data using a space filling curve. FIG. 12 shows a case where a Hilbert space filling curve is used as the space filling curve.
図12に示すデータ構造によって、状態1211(図12中の「0」)と、その状態によって一意に決定されるビットパターンの変換規則が管理される。変換規則とは、多次元属性の第iビットから生成されるビット列1213(例えば(001,011)という2次元属性の第1ビットから生成されるビット列00、第2ビットから生成されるビット列01、第3ビットから生成されるビット列11)にもとづいて、第i階層(例えば図12の第1階層1210)の1次元の追加ビット列1212への変換を行うための規則である(例えば、第1階層1210を第i階層とすると、下の段のビット列が00の場合は上の段の00が追加ビット列となり、下の段のビット列が01の場合は上の段の01が追加ビット列となり、下の段のビット列が11の場合は上の段の10が追加ビット列となり、下の段のビット列が10の場合は上の段の追加ビット列は11となる)。 The data structure shown in FIG. 12 manages the state 1211 (“0” in FIG. 12) and the bit pattern conversion rule uniquely determined by the state. The conversion rule is a bit string 1213 generated from the first bit of the two-dimensional attribute of (001, 011), for example, a bit string 00 generated from the i-th bit of the multidimensional attribute, a bit string 01 generated from the second bit, Based on the bit sequence 11 generated from the third bit), it is a rule for converting the i-th layer (for example, the first layer 1210 in FIG. 12) into a one-dimensional additional bit sequence 1212 (for example, the first layer). Assuming that 1210 is the i-th layer, when the lower bit string is 00, the upper 00 is an additional bit string, and when the lower bit string is 01, the upper 01 is an additional bit string. When the stage bit string is 11, the upper stage 10 is an additional bit string, and when the lower stage bit string is 10, the upper stage additional bit string is 11.
第i+1ビット目の変換規則を定める状態1421(図12中の「1」「0」「0」「2」)は、第iビットの状態1211からの状態遷移として扱われる。多次元から1次元への変換を行うべきビット数まで変換規則を適用し、各階層におけるビット列に対応した追加ビット列を繋ぎ合せたビット列が、多次元属性の値を変換した後のKeyとなる。 A state 1421 (“1”, “0”, “0”, “2” in FIG. 12) defining the conversion rule of the (i + 1) th bit is treated as a state transition from the state 1211 of the i-th bit. The conversion rule is applied up to the number of bits to be converted from multidimensional to one-dimensional, and the bit string obtained by connecting the additional bit strings corresponding to the bit string in each layer becomes the key after converting the value of the multidimensional attribute.
図12に示したデータ構造を用いて多次元データを1次元データに変換するアルゴリズム(手法)は、図7で説明した多次元データを1次元データに変換するアルゴリズム(手法)と同じである。具体的には、x属性の値が011で、y属性の値が111である場合は、(011,111)と表わせる。このとき、2つの属性の先頭ビット(第1ビット)の組は(0,1)となる。この場合の先頭ビットの組のビット列は「01」となる。図12に示す第1階層1210において、下の段のビット列「01」に対応する上の段の追加ビット列は「01」である。また、2つの属性の第2ビットの組は(1,1)となる。この場合の第2ビットの組のビット列は「11」となる。図12に示す第2階層1220において、状態「0」の場合における下の段のビット列「11」に対応する上の段の追加ビット列は「10」である。また、2つの属性の第3ビットの組は(1,1)となる。この場合の第3ビットの組のビット列は「11」となる。図12に示す第3階層1230において、状態「0」の場合における下の段のビット列「11」に対応する上の段の追加ビット列は「10」である。このように各階層におけるビット列に対応した追加ビット列を繋ぎ合せたビット列「011010」が2次元属性の値(011,111)を変換した後のKeyとなる。 The algorithm (method) for converting multidimensional data into one-dimensional data using the data structure shown in FIG. 12 is the same as the algorithm (method) for converting multidimensional data into one-dimensional data described in FIG. Specifically, when the value of the x attribute is 011 and the value of the y attribute is 111, it can be expressed as (011, 111). At this time, the set of the first bit (first bit) of the two attributes is (0, 1). In this case, the bit string of the first bit set is “01”. In the first hierarchy 1210 shown in FIG. 12, the upper bit string corresponding to the lower bit string “01” is “01”. The set of the second bits of the two attributes is (1, 1). In this case, the bit string of the second bit set is “11”. In the second hierarchy 1220 shown in FIG. 12, the upper bit string corresponding to the lower bit string “11” in the state “0” is “10”. A set of third bits of two attributes is (1, 1). In this case, the bit string of the third bit set is “11”. In the third hierarchy 1230 shown in FIG. 12, the upper bit string corresponding to the lower bit string “11” in the state “0” is “10”. Thus, the bit string “011010” obtained by connecting the additional bit strings corresponding to the bit strings in each layer becomes the key after the two-dimensional attribute values (011, 111) are converted.
次に、この実施の形態3におけるオーバレイ管理システムの動作について説明する。 Next, the operation of the overlay management system in the third embodiment will be described.
(1)オーバレイネットワークにて共有するデータを登録する動作;
図13は、実施の形態3におけるオーバレイネットワークにて共有するデータを登録する処理を示すフローチャートである。まず、オーバレイネットワークにて共有するデータを登録する際に、あるピア(例えばピア1010)の登録・検索実行手段1018は、外部インタフェースからのデータ登録要求を受け付け、空間充填曲線変換手段1017に対してデータを出力し、このデータ(複数属性の値Atts)に対応する論理識別子を要求する。そして、登録・検索実行手段1018は、空間充填曲線変換手段1017によって生成されたデータに対応する論理識別子を取得する(ステップS1301)。そして、登録・検索実行手段1018は、空間充填曲線変換手段1017から取得した論理識別子をメッセージ転送手段1013に出力し、この論理識別子に対応するピア(この論理識別子のsuccessorのピア)にデータを登録するように要求する(ステップS1302)。
(1) Registering data to be shared on the overlay network;
FIG. 13 is a flowchart illustrating processing for registering data shared in the overlay network according to the third embodiment. First, when registering data to be shared in an overlay network, a registration / search execution unit 1018 of a certain peer (for example, peer 1010) accepts a data registration request from an external interface, and sends it to the space filling curve conversion unit 1017. Data is output and a logical identifier corresponding to this data (multi-attribute value Atts) is requested. Then, the registration / search execution unit 1018 acquires a logical identifier corresponding to the data generated by the space filling curve conversion unit 1017 (step S1301). Then, the registration / search execution means 1018 outputs the logical identifier acquired from the space filling curve conversion means 1017 to the message transfer means 1013 and registers data in the peer corresponding to this logical identifier (the peer of the successor of this logical identifier). It is requested to do so (step S1302).
メッセージ転送手段1013は、登録・検索実行手段1018からのデータの登録要求を受けると、登録・検索実行手段1018から出力された論理識別子に対応するピアに対してデータを送信してデータ登録を要求する。 When the message transfer unit 1013 receives a data registration request from the registration / search execution unit 1018, the message transfer unit 1013 transmits data to the peer corresponding to the logical identifier output from the registration / search execution unit 1018 to request data registration. To do.
登録に成功した場合(論理識別子に対応するピアから登録完了の通知を受けた場合)は(ステップS1303のY)、登録・検索実行手段1018は、外部インタフェースに対して登録成功を返し(ステップS1303)、登録に失敗した場合は(ステップS1303のN)、登録・検索実行手段1018は、外部インタフェースに対して登録失敗を返す(ステップS1304)。なお、登録に失敗した場合は、再試行処理や当該論理識別子から一意に算出される他の論理識別子にも同時に登録し、データの冗長化を図ってもよい。 When the registration is successful (when a registration completion notification is received from the peer corresponding to the logical identifier) (Y in step S1303), the registration / search executing means 1018 returns a registration success to the external interface (step S1303). If registration fails (N in step S1303), the registration / search execution means 1018 returns a registration failure to the external interface (step S1304). If registration fails, registration may be performed simultaneously with retry processing or other logical identifiers that are uniquely calculated from the logical identifiers to make data redundant.
図14は、ステップS1301のサブルーチンの処理を示すフローチャートである。図14に示すように、他のピアと共有するデータを登録する際に、あるピアの空間充填曲線変換手段1017は、登録・検索実行手段1018から論理識別子を要求されると、以下に示す論理識別子Idを算出する処理を実行する。まず、空間充填曲線変換手段1017は、登録・検索実行手段1018からのデータに含まれる複数属性の値Attsと対応する属性名の組から、図11に示す属性名の組とその属性名の組に対応する空間充填曲線分布関数D(k)を空間充填曲線分布格納部1016から取得する(ステップS1401)。 FIG. 14 is a flowchart showing the subroutine processing of step S1301. As shown in FIG. 14, when registering data to be shared with other peers, the space filling curve conversion means 1017 of a certain peer receives the logical identifier shown below when requested by the registration / search execution means 1018. A process for calculating the identifier Id is executed. First, the space filling curve conversion unit 1017 calculates a combination of attribute names and attribute names shown in FIG. 11 from a set of attribute names corresponding to the value Atts of multiple attributes included in the data from the registration / search execution unit 1018. The space filling curve distribution function D (k) corresponding to is acquired from the space filling curve distribution storage unit 1016 (step S1401).
そして、空間充填曲線変換手段1017は、データに含まれる複数属性の値の組を空間充填曲線に適合して得られる1次元の値Keyを算出して取得する(ステップS1402)。ここで、複数属性の値の組を空間充填曲線を用いて1次元の値Keyに変換する処理は、上述したように、図12に示したデータ構造によるデータ変換の手法を用いて行う。Keyを求める計算式は下記の式2となる。なお、式2における「SFC」は空間充填曲(Space Filling Curve)線を示している。 Then, the space filling curve conversion unit 1017 calculates and acquires a one-dimensional value Key obtained by adapting a set of values of multiple attributes included in the data to the space filling curve (step S1402). Here, the process of converting a set of values of a plurality of attributes into a one-dimensional value Key using a space filling curve is performed using the data conversion method based on the data structure shown in FIG. The calculation formula for obtaining the key is the following formula 2. Note that “SFC” in Equation 2 represents a space filling curve line.
Key=SFC(v1,・・・・,vi,・・・・,vn)・・・(式2) Key = SFC (v1,..., Vi,..., Vn) (Expression 2)
次に、空間充填曲線変換手段1017は、式2から求めた値Keyを空間充填曲線分布格納部1016から取得した空間充填曲線分布関数D(k)に代入して、論理識別子Idを算出する(ステップS1403)。論理識別子Idを求める計算式は下記の式3となる。 Next, the space filling curve conversion unit 1017 calculates the logical identifier Id by substituting the value Key obtained from Equation 2 into the space filling curve distribution function D (k) acquired from the space filling curve distribution storage unit 1016 ( Step S1403). The calculation formula for obtaining the logical identifier Id is the following formula 3.
Id=D(Key)・・・(式3) Id = D (Key) (Formula 3)
(2)オーバレイネットワークにて共有するデータを検索する動作;
図15は、実施の形態3におけるオーバレイネットワークにて共有するデータを検索する処理を示すフローチャートである。まず、オーバレイネットワークにて共有するデータを検索する際に、あるピア(例えばピア1010)の登録・検索実行手段1018は、外部インタフェースから検索式Queryを含んだ検索要求を受け付け、空間充填曲線変換手段1017に対して検索式を出力し、この検索式と対応する論理識別子範囲リストIdRangesを要求する。そして、登録・検索実行手段1018は、空間充填曲線変換手段1017によって生成された検索式に対応する論理識別子範囲リストを取得する(ステップS1501)。次に、登録・検索実行手段1018は、検索結果を格納するリスト(結果リストResults)を初期化し、他のピアからの検索結果メッセージ(受信結果)を結果リストに格納するプロセスの起動を行う(ステップS1502)。
(2) An operation for searching for shared data in the overlay network;
FIG. 15 is a flowchart showing processing for searching for data shared in the overlay network in the third embodiment. First, when searching for data to be shared in the overlay network, a registration / search executing means 1018 of a certain peer (for example, peer 1010) receives a search request including a search expression Query from an external interface, and space filling curve converting means. A search expression is output to 1017, and a logical identifier range list IdRanges corresponding to the search expression is requested. Then, the registration / search execution unit 1018 obtains a logical identifier range list corresponding to the search formula generated by the space filling curve conversion unit 1017 (step S1501). Next, the registration / search execution means 1018 initializes a list for storing search results (result list Results), and starts a process for storing search result messages (reception results) from other peers in the result list ( Step S1502).
次いで、登録・検索実行手段1018は、検索結果を待つ最大時間をタイムアウト(Timeout)として設定し(ステップS1503)、空間充填曲線変換手段1017から取得した論理識別子範囲リストを引数として、メッセージ転送手段1013を非同期に呼び出す(ステップS1504)。すなわち、登録・検索実行手段1018は、メッセージ転送手段1013に対して論理識別子範囲リストの論理識別子のピアに対する検索メッセージ(検索要求)の転送を非同期に要求する。 Next, the registration / search execution means 1018 sets the maximum time to wait for the search result as a timeout (Timeout) (step S1503), and the message transfer means 1013 using the logical identifier range list acquired from the space filling curve conversion means 1017 as an argument. Is called asynchronously (step S1504). That is, the registration / search execution means 1018 asynchronously requests the message transfer means 1013 to transfer a search message (search request) to the peer of the logical identifier in the logical identifier range list.
登録・検索実行手段1018は、論理識別子範囲リスト内の全ての論理識別子のピアに対する検索結果が得られたか、あるいはタイムアウト(Timeout)が0以下になるまで検索結果を待ち続ける(ステップS1505,S1506)。すなわち、論理識別子範囲リスト内の全ての論理識別子のピアに対する検索結果を取得しておらず、かつタイムアウトが0以上である間は、一定時間のインターベルをおいて、タイムアウトの値を引いていく。 The registration / search execution means 1018 waits for the search results until search results for all the logical identifier peers in the logical identifier range list are obtained or the timeout (Timeout) becomes 0 or less (steps S1505 and S1506). . That is, as long as the search results for all the logical identifier peers in the logical identifier range list have not been acquired and the timeout is 0 or more, an interbell is set for a certain time and the timeout value is subtracted. .
論理識別子範囲リスト内の全ての論理識別子のピアに対する検索結果を取得したとき、あるいは、タイムアウトが0以下になったときは、登録・検索実行手段1018は、他のピアから送信された検索結果を格納されている結果リストを検索要求者(外部インタフェースから検索要求を行ったユーザ)に返して提示する。 When the search results for the peers of all the logical identifiers in the logical identifier range list are acquired, or when the timeout becomes 0 or less, the registration / search execution means 1018 displays the search results transmitted from other peers. The stored result list is returned to the search requester (the user who made the search request from the external interface) and presented.
図16は、ステップS1501のサブルーチンの処理を示すフローチャートである。図16に示すように、他のピアと共有するデータを検索する際に、あるピアの空間充填曲線変換手段1017は、登録・検索実行手段1018から出力された検索式に含まれる属性名の組にもとづいて、属性名の組に応じた空間充填曲線分布関数D(k)を取得する(ステップS1601)。 FIG. 16 is a flowchart showing the subroutine processing of step S1501. As shown in FIG. 16, when searching for data to be shared with other peers, a space filling curve conversion unit 1017 of a certain peer sets a set of attribute names included in the search expression output from the registration / search execution unit 1018. Based on this, the space filling curve distribution function D (k) corresponding to the set of attribute names is acquired (step S1601).
そして、空間充填曲線変換手段1017は、空間充填曲線を用いて、検索式(複数属性の上限値、下限値)を満たす複数のKeyの範囲KeyRangesを取得する(ステップS1602)。ここで、検索式を空間充填曲線を用いて複数の1次元の値Keyに変換する処理は、上述したように、図12に示したデータ構造によるデータ変換の手法を用いて行う。KeyRangesを求める計算式は下記の式4となる。 Then, the space filling curve conversion unit 1017 uses the space filling curve to obtain a plurality of key ranges KeyRanges satisfying the search formula (upper limit value and lower limit value of a plurality of attributes) (step S1602). Here, the process of converting the search expression into a plurality of one-dimensional values Key using the space filling curve is performed using the data conversion method based on the data structure shown in FIG. The calculation formula for obtaining KeyRanges is the following formula 4.
KeyRanges=SFC(q1,・・・,qi,・・・,qn)・・・(式4) KeyRanges = SFC (q1,..., Qi,..., Qn) (Expression 4)
次に、空間充填曲線変換手段1017は、論理識別子範囲リストIdRangesを初期化する(ステップS1603)。そして、空間充填曲線変換手段1017は、KeyRangesに含まれる要素Key(各Key)の範囲に対して、範囲の始端(KeyStart;下限値)と終端(KeyEnd;上限値)をそれぞれ、空間充填曲線分布関数D(k)を適用(代入)して、論理識別子範囲IdRangeの始端と終端を決定する(ステップS1604)。そして、空間充填曲線変換手段1017は、ステップS1604で得られた論理識別子範囲(始端と終端)を論理識別子範囲リストIdRangesに追加する(ステップS1605)。論理識別子範囲リストIdRangesを求める計算式は下記の式5となる。 Next, the space filling curve conversion unit 1017 initializes the logical identifier range list IdRanges (step S1603). Then, the space filling curve conversion means 1017 provides a space filling curve distribution with respect to the range of the element Key (each Key) included in the KeyRanges, with the start end (KeyStart; lower limit value) and the end (KeyEnd; upper limit value) of the range. The function D (k) is applied (assigned) to determine the start and end of the logical identifier range IdRange (step S1604). Then, the space filling curve conversion unit 1017 adds the logical identifier range (start end and end) obtained in step S1604 to the logical identifier range list IdRanges (step S1605). The calculation formula for obtaining the logical identifier range list IdRanges is the following formula 5.
IdRanges={Id | Id=H(Key),Key ∈ KeyRanges)}・・・(式5) IdRanges = {Id | Id = H (Key), Key ∈ KeyRanges)} (Formula 5)
そして、空間充填曲線変換手段1017は、ステップS1605で得られた論理識別子範囲リストIdRangesを、検索式に対応する論理識別子範囲リストIdRangesとして登録・検索実行手段1018に返す(ステップS1606)。 The space filling curve conversion unit 1017 returns the logical identifier range list IdRanges obtained in step S1605 to the registration / search execution unit 1018 as the logical identifier range list IdRanges corresponding to the search expression (step S1606).
図17は、ステップS1504のサブルーチンの処理を示すフローチャートである。メッセージ転送手段1013は、登録・検索実行手段1018からの検索メッセージの転送要求を受けると、データ格納先の論理識別子を担当(管理)するピアを検索するためのメッセージ転送処理を実行する。また、論理識別子範囲分割手段1015は、メッセージ転送手段1013がメッセージ転送処理を実行する際に、論理識別子範囲の分割に関する処理を実行する。 FIG. 17 is a flowchart showing the subroutine processing of step S1504. Upon receiving a search message transfer request from the registration / search execution unit 1018, the message transfer unit 1013 executes a message transfer process for searching for a peer in charge (management) of the logical identifier of the data storage destination. Further, the logical identifier range dividing unit 1015 executes processing related to division of the logical identifier range when the message transfer unit 1013 executes message transfer processing.
なお、全てのピアで共有するデータを登録するときは、1つの論理識別子に対応するピアを発見(検索)する方式であって、Chordのアルゴリズムと同様の方式であった。しかし、全てのピアで共有するデータを検索する処理は、論理識別子範囲に対応するピアを発見(検索)する処理であり、Chordの方式とは異なる方式である。 In addition, when registering data shared by all peers, it is a method for finding (searching) a peer corresponding to one logical identifier, which is the same method as the Chord algorithm. However, the process of searching for data shared by all peers is a process of finding (searching) a peer corresponding to the logical identifier range, which is a system different from the Chord system.
まず、論理識別子範囲分割手段1015は、登録・検索実行手段1018から与えられた論理識別子範囲IdRangesをsuccessorの論理識別子sで2つの論理識別子範囲(LowRangesとHighRanges)に分割し、当該ピア(この例ではピアm)に近い論理識別子範囲LowRangesとピアmから遠い論理識別子範囲HighRangesを取得する(ステップS1701)。ここで、遠近とは、当該ピアmの論理識別子m_Idが、合同式modを用いて、LowRanges内の任意の論理識別子L_IdとHighRanges内の任意の論理識別子H_Idとの間において以下の式6が成立することを指す。例えば、m_Idが56でありm=6の場合は、40よりも4の方が近い。 First, the logical identifier range dividing unit 1015 divides the logical identifier range IdRanges given from the registration / search executing unit 1018 into two logical identifier ranges (LowRanges and HighRanges) with the logical identifier s of the successor, and the peer (this example) Then, the logical identifier range LowRanges close to the peer m) and the logical identifier range HighRanges far from the peer m are acquired (step S1701). Here, “far” means that the logical identifier m_Id of the peer m uses the congruence equation mod, and the following equation 6 is established between any logical identifier L_Id in LowRanges and any logical identifier H_Id in HighRanges. To do. For example, when m_Id is 56 and m = 6, 4 is closer than 40.
(L_Id − m_Id) mod(2^m−1) < (H_Id − m_Id) mod(2^m−1)・・・(式6) (L_Id−m_Id) mod (2 ^ m−1) <(H_Id−m_Id) mod (2 ^ m−1) (Expression 6)
ここで、合同式modとは、整数を整除関係を用いて分類することにより定義される一種の等式である。ある自然数で割った余りが等しいかどうかを判定する。 Here, the congruence equation mod is a kind of equation defined by classifying integers using the divisor relation. Judges whether the remainder when divided by a certain natural number is equal.
なお、ステップS1701において、論理識別子範囲IdRangesにsuccessorの論理識別子sが含まれていない場合は、ステップS1701〜S1704の処理が実行されずに、ステップS1705の処理に移行される。 In step S1701, if the logical identifier range IdRanges does not include the successor logical identifier s, the processing proceeds to step S1705 without executing the processing in steps S1701 to S1704.
次に、論理識別子範囲分割手段1015は、ピアmに近い論理識別子範囲LowRangesがNull(0)であるかどうかを判定する(ステップS1702)。ピアmに近い論理識別子範囲LowRangesがNull(0)でないときは(ステップS1702のN)、論理識別子範囲分割手段1015は、自身のローカルデータ格納部1011から検索式に合致するデータを検索する(ステップS1703)。ピアmに近い論理識別子範囲LowRangesがNull(0)でないときは、自身のピアmとsuccessorとの間の範囲はピアmが管理する範囲であるからである。一方、ピアmに近い論理識別子範囲LowRangesがNull(0)であるときは(ステップS1702のY)、ステップS1703の処理を実行せずに、ステップS1704の処理に移行する。 Next, the logical identifier range dividing unit 1015 determines whether the logical identifier range LowRanges close to the peer m is Null (0) (step S1702). When the logical identifier range LowRanges close to the peer m is not Null (0) (N in Step S1702), the logical identifier range dividing unit 1015 searches the local data storage unit 1011 for data that matches the search formula (Step S1702). S1703). This is because when the logical identifier range LowRanges close to the peer m is not Null (0), the range between the peer m and the successor is a range managed by the peer m. On the other hand, when the logical identifier range LowRanges close to the peer m is Null (0) (Y in step S1702), the process proceeds to step S1704 without executing the process in step S1703.
ステップS1704では、論理識別子範囲分割手段1015は、残り論理識別子範囲Residual(未だ検索が実行されていない残りの論理識別子範囲)に、HighRangesを代入する(ステップS1704)。ステップS1703の処理が実行された場合は、残り論理識別子範囲Residualには、論理識別子範囲IdRangesからピアmとsuccessorとの範囲を除いた論理識別子範囲(HighRages)が代入される。 In step S1704, the logical identifier range dividing unit 1015 substitutes HighRanges for the remaining logical identifier range Residual (remaining logical identifier range that has not yet been searched) (step S1704). When the process of step S1703 is executed, a logical identifier range (HighRages) obtained by excluding the ranges of the peer m and the successor from the logical identifier range IdRanges is substituted into the remaining logical identifier range Residual.
次いで、論理識別子範囲分割手段1015は、ルーティングテーブル(FingerTable)1012に格納されたFinger(自身の論理識別子の1,2,4,・・・先の論理識別子、または自身の論理識別子1,2,4,・・・先の論理識別子が存在しない場合はそれらの論理識別子よりも大きく最も近い論理識別子を格納するテーブル)をピアmから離れた順に読み出す(ステップS1705)。 Next, the logical identifier range dividing means 1015 includes the Finger (the logical identifier 1, 2, 4,..., The previous logical identifier, or the logical identifier 1, 2, 2, etc. stored in the routing table (FingerTable) 1012. 4,... If there is no previous logical identifier, the closest logical identifier larger than those logical identifiers) is read in the order away from the peer m (step S1705).
そして、論理識別子範囲分割手段1015は、残り論理識別子範囲Residualを、ステップS1705で探したFingerの論理識別子によって2つの論理識別子範囲LowRangesとHighRangesに分割する(ステップS1706)。 Then, the logical identifier range dividing unit 1015 divides the remaining logical identifier range Residual into two logical identifier ranges LowRanges and HighRanges according to the logical identifier of the finger searched in step S1705 (step S1706).
そして、論理識別子範囲分割手段1015は、ピアmから遠い論理識別子範囲HighRangesがNull(0)であるかどうかを判定する(ステップS1707)。ピアmから遠い論理識別子範囲HighRangesがNull(0)でないときは(ステップS1707のN)、ピアFingerにて、複数論理識別子範囲IdRangesを探す処理を実行する(ステップS1708)。すなわち、Fingerのピアにおいて、図17に示すステップS1701〜S1709の処理を実行する。 Then, the logical identifier range dividing unit 1015 determines whether or not the logical identifier range HighRanges far from the peer m is Null (0) (step S1707). When the logical identifier range HighRanges far from the peer m is not Null (0) (N in step S1707), a process for searching for multiple logical identifier ranges IdRanges is executed in the peer Finger (step S1708). That is, the processing of steps S1701 to S1709 shown in FIG.
一方、ピアmから遠い論理識別子範囲HighRangesがNull(0)であるときは(ステップS1707のY)、ステップS1708の処理を実行せずに、ステップS1709の処理に移行する。 On the other hand, when the logical identifier range HighRanges far from the peer m is Null (0) (Y in step S1707), the process proceeds to step S1709 without executing the process in step S1708.
ステップS1709において、論理識別子範囲分割手段1015は、残り論理識別子範囲ResidualにLowRangesを代入する(ステップS1709)。そして、処理を終了する。 In step S1709, the logical identifier range dividing unit 1015 substitutes LowRanges for the remaining logical identifier range Residual (step S1709). Then, the process ends.
以上のように、この実施の形態3によれば、複数次元の分布情報(分布関数)を管理し、この分布にもとづいて論理識別子を算出するので、検索要求(検索メッセージ)を転送する論理識別子の範囲を狭くすることができる。 As described above, according to the third embodiment, since the distribution information (distribution function) of a plurality of dimensions is managed and the logical identifier is calculated based on this distribution, the logical identifier for transferring the search request (search message) Can be narrowed.
また、この実施の形態3によれば、複数属性を一次元に変換する処理をメッセージ転送処理の中で行い、特定のピア(例えば論理識別子0あるいは1を担当するピア)を経由するのではなく、この変換処理を検索要求ピア内で終えて、算出された論理識別子の集合に対してメッセージが転送されるので、特定のピアに検索要求転送負荷が集中することない。 Further, according to the third embodiment, the process of converting a plurality of attributes into one dimension is performed in the message transfer process, not via a specific peer (for example, a peer in charge of logical identifier 0 or 1). Since the conversion process is completed in the search request peer and the message is transferred to the set of calculated logical identifiers, the search request transfer load is not concentrated on a specific peer.
また、この実施の形態3によれば、複数属性の論理識別子を算出する際に、値の均一性を担保しているので、これによっても、特定のピアにデータ管理負荷が集中することを防止している。 In addition, according to the third embodiment, when calculating the logical identifier of a plurality of attributes, the uniformity of the value is ensured. This also prevents the data management load from being concentrated on a specific peer. is doing.
さらに、この実施の形態3によれば、検索対象の論理識別子の範囲を転送途中に分割し、並列化しているので、検索範囲の広い場合にも検索要求のホップ数が増加しないようにすることができる。 Furthermore, according to the third embodiment, the range of logical identifiers to be searched is divided in the middle of transfer and parallelized, so that the number of search request hops does not increase even when the search range is wide. Can do.
次に、実施の形態3における構成の具体例について図18および図19を参照して説明する。図18は、検索式から論理識別子範囲リストを導くデータ構造を示す図である。図19は、検索式で導かれた論理識別子範囲リストと対応するピアに検索メッセージを転送する例を示す図である。 Next, a specific example of the configuration in the third embodiment will be described with reference to FIGS. FIG. 18 is a diagram showing a data structure for deriving a logical identifier range list from a search expression. FIG. 19 is a diagram illustrating an example in which a search message is transferred to a peer corresponding to a logical identifier range list derived by a search expression.
実施の形態3におけるオーバレイ管理システムにおいて、xとyという2つの属性を持つデータが共有され、各データは図18の1860の座標で示される値に分布しているものとする。オーバレイ管理システムには、図19に示すピア(論理識別子0,4,15,20,27,30,32,40,56のピア)が参加しており、論理識別子の空間のサイズ(ハッシュ空間のサイズ)は64とする。また、データ登録と検索は、図19において論理識別子0を持つピア1909が実行するものとする。このピアのルーティングテーブル1012には、Successor1921として論理識別子4を持つピア1901のIPアドレスが記憶されている。また、Finger1922としては、ピア1909の論理識別子0に、2のi乗(i=0,1,2,3,4,5)を加えた論理識別子の時計回り方向に初めて論理識別子を持つピアの情報が格納されている。この場合、i=0,1,2に対してはピア1901のIPアドレスを記憶し、i=3に対してはピア1902のIPアドレスを記憶する。同様に、i=4,5に対してもピア1903、1906の情報を記憶する。 In the overlay management system according to the third embodiment, it is assumed that data having two attributes x and y are shared and each data is distributed in the value indicated by the coordinate 1860 in FIG. The peer shown in FIG. 19 (the peers of logical identifiers 0, 4, 15, 20, 27, 30, 32, 40, and 56) participates in the overlay management system, and the size of the logical identifier space (the hash space Size) is 64. Further, data registration and search are performed by a peer 1909 having a logical identifier 0 in FIG. The peer routing table 1012 stores the IP address of the peer 1901 having the logical identifier 4 as the successor 1921. Further, as the Finger 1922, the peer having the logical identifier for the first time in the clockwise direction of the logical identifier obtained by adding the i-th power of 2 (i = 0, 1, 2, 3, 4, 5) to the logical identifier 0 of the peer 1909. Information is stored. In this case, the IP address of the peer 1901 is stored for i = 0, 1, 2 and the IP address of the peer 1902 is stored for i = 3. Similarly, the information of the peers 1903 and 1906 is stored for i = 4 and 5.
(1)データ登録;
まず、データ登録実行時の例として、登録検索受付手段1018が、x属性の値が011、y属性の値が111であるデータ(011,111)を登録したとする。このデータ登録要求は、空間充填曲線変換手段1017にて、このデータに対応する論理識別子に変換される。この空間充填曲線手段1017は、属性xと属性yに対応する空間充填曲線分布関数を、空間充填曲線分布格納部1016から取得する。ここでは、図18の1840、および図11の1113で示される関数が取得されたとする。
(1) Data registration;
First, as an example at the time of data registration execution, it is assumed that the registration search receiving unit 1018 registers data (011, 111) having an x attribute value of 011 and a y attribute value of 111. This data registration request is converted into a logical identifier corresponding to this data by the space filling curve conversion means 1017. The space filling curve means 1017 acquires a space filling curve distribution function corresponding to the attribute x and the attribute y from the space filling curve distribution storage unit 1016. Here, it is assumed that functions 1840 in FIG. 18 and 1113 in FIG. 11 are acquired.
次に、空間充填曲線がヒルベルト空間充填曲線であるとし、この変換規則を用いて、データ(011,111)に対応する論理識別子を取得する。まず第1ビットが取得され、x属性の0、y属性の1から生成されるビットパターン01となり、これが保存される。次に、状態0(図18の1811)のビットパターン01の次に来る状態は0(図18の1821)であることから、この状態に対応する変換規則が第2ビットに適用される。この第2ビットは、x属性の1,y属性の1から生成されるビットパターン11であり、このビットパターン11に対して変換規則1822が適用され、“10”が得られる。これと、第1階層のビット列を組み合わせ、“0110”がKeyとなる。同様に、第3ビットまで適用すると、“011010”(10進表示で、26)がKeyとなる。これを空間充填曲線分布関数D(k)に適用すると、0.4となり、これと論理識別子空間のサイズ64から、論理識別子は25となる。 Next, assuming that the space filling curve is a Hilbert space filling curve, a logical identifier corresponding to the data (011, 111) is acquired using this conversion rule. First, the first bit is acquired and becomes a bit pattern 01 generated from x attribute 0 and y attribute 1 and stored. Next, since the state next to the bit pattern 01 of the state 0 (1811 in FIG. 18) is 0 (1821 in FIG. 18), the conversion rule corresponding to this state is applied to the second bit. The second bit is the bit pattern 11 generated from the x attribute 1 and the y attribute 1, and the conversion rule 1822 is applied to the bit pattern 11 to obtain “10”. By combining this with the bit string of the first layer, “0110” becomes the key. Similarly, when applied up to the third bit, “011010” (26 in decimal notation) becomes Key. When this is applied to the space filling curve distribution function D (k), it becomes 0.4, and from this and the size 64 of the logical identifier space, the logical identifier becomes 25.
次に、この論理識別子に対して、登録メッセージを転送する。ここでの転送方式はChordの方式であるが、Finger1922より、目的の論理識別子25よりも左回りで最も近いFingerが論理識別子20を持つピア1903であることから、このピア1903にSuccessorの論理識別子を問い合わせる。ピア1903は論理識別子として27を返し、目的の論理識別子25は、このFingerの論理識別子20とそのSuccessor27の間に存在する数であるので、この論理識別子27を持つピア1904が、論理識別子25のデータ(011,111)を管理するピアであると決定され、このピアのローカルデータ格納部1011に当該データが格納される。 Next, a registration message is transferred to this logical identifier. The transfer method here is the Chord method, but since Finger 1922 is the peer 1903 having the logical identifier 20 in the counterclockwise direction closest to the target logical identifier 25, the logical identifier of the successor is assigned to this peer 1903. Inquire. Since the peer 1903 returns 27 as the logical identifier, and the target logical identifier 25 is a number existing between the logical identifier 20 of this Finger and the successor 27, the peer 1904 having this logical identifier 27 is assigned to the logical identifier 25. It is determined that the peer manages the data (011, 111), and the data is stored in the local data storage unit 1011 of the peer.
(2)データ検索;
次に、データ検索実行時の例として、登録検索受付手段1018が、x属性に対する011の完全一致検索、y属性に対する1**の前方一致検索が実行されたとする。この検索要求は、空間充填曲線変換手段1017にて、対応する論理識別子リストに変換される。この空間充填曲線変換手段1017は、属性xと属性yに対応する空間充填曲線分布関数を、空間充填曲線分布格納部1016から取得する。ここでは、図18の1840、および図11の1113で示される関数が取得されたとする。
(2) Data search;
Next, as an example at the time of data search execution, it is assumed that the registration search reception means 1018 has executed 011 complete match search for the x attribute and 1 ** forward match search for the y attribute. This search request is converted into a corresponding logical identifier list by the space filling curve conversion means 1017. The space filling curve conversion unit 1017 acquires a space filling curve distribution function corresponding to the attribute x and the attribute y from the space filling curve distribution storage unit 1016. Here, it is assumed that functions 1840 in FIG. 18 and 1113 in FIG. 11 are acquired.
次に、空間充填曲線がヒルベルト空間充填曲線であるとし、この変換規則を用いて、検索式(011,1**)に対応する論理識別子範囲リストを取得する。まず第1ビットが取得され、x属性の0、y属性の1から生成されるビットパターン01に対して変換規則を適用し、“01”(図18の1813)が“01”(図18の1812)に変換される規則から一次元変換後のビットパターンは01となり、これが保存される。 Next, assuming that the space filling curve is a Hilbert space filling curve, a logical identifier range list corresponding to the search expression (011, 1 **) is acquired using this conversion rule. First, the first bit is acquired, and the conversion rule is applied to the bit pattern 01 generated from the x attribute 0 and the y attribute 1 so that “01” (1813 in FIG. 18) becomes “01” (in FIG. 18). From the rule converted to 1812), the bit pattern after the one-dimensional conversion is 01, which is stored.
次に、状態0(図18の1811)のビットパターン01の次に来る状態は0(図18の1821)であることから、この状態に対応する変換規則が第2ビットに適用される。この第2ビットは、x属性の0,y属性の*(任意ビット)から生成されるビットパターン00,01であるが、それぞれに対して、変換規則が適用され、“10”と“11”が得られる。これと、第1階層のビット列を組み合わせ、“0110”と“0111”が第2階層までの一次元変換後のKeyである。同様に、第3ビットまで適用すると、“011010”、“011011”、“011100”、“011111”がKeyの集合となり、範囲としては、第1のKeyRangeの起点が“011010”、終点が“011100”となり、第2のKeyRangeの起点および終点が“011011”となる。これらを空間充填曲線分布関数D(k)に適用して、論理識別子範囲リスト1843が得られる。ここではDの適用結果として、[0.40,0.45]と[0.525,0.525]が得られるので、これと論理識別子空間のサイズ64から、論理識別子範囲リストは、{[25,28],[33,33]}が得られる。 Next, since the state next to the bit pattern 01 of the state 0 (1811 in FIG. 18) is 0 (1821 in FIG. 18), the conversion rule corresponding to this state is applied to the second bit. The second bits are bit patterns 00 and 01 generated from * (arbitrary bit) of 0 and y attributes of the x attribute. Conversion rules are applied to each of the bit patterns, and “10” and “11”. Is obtained. This is combined with the bit string of the first layer, and “0110” and “0111” are the keys after one-dimensional conversion up to the second layer. Similarly, when applying up to the third bit, “011010”, “011011”, “011100”, “011111” is a set of keys, and the range is that the starting point of the first KeyRange is “011010” and the end point is “011100”. ", And the start and end points of the second KeyRange are" 011011 ". By applying these to the space filling curve distribution function D (k), a logical identifier range list 1843 is obtained. Here, [0.40, 0.45] and [0.525, 0.525] are obtained as the application result of D. From this and the size 64 of the logical identifier space, the logical identifier range list is {[ 25, 28], [33, 33]}.
次に、これらの範囲に含まれる論理識別子に対して、検索メッセージを転送して、検索結果を取得する。まず、検索結果を格納するリストを初期化し、他ピアからの結果を受け付けるプロセスを立ち上げた後に、この論理識別子範囲リストを探すように、ピア1909におけるメッセージ転送手段1013が呼び出される。 Next, the search message is transferred to the logical identifiers included in these ranges, and the search result is acquired. First, after initializing a list for storing search results and starting a process for receiving results from other peers, the message transfer means 1013 in the peer 1909 is called to search for this logical identifier range list.
まず、これらの範囲リストは、ピア1909のSuccessorの論理識別子4を境界として分割されるが、宛先の範囲リスト{[25,28],[33,33]}は、(0,4]には存在しないので、ここでは宛先範囲は発見されない。 First, these range lists are divided with the logical identifier 4 of the successor of the peer 1909 as a boundary, but the destination range list {[25, 28], [33, 33]} is in (0, 4). Since it does not exist, the destination range is not found here.
次に、最も離れたFingerピア1906の論理識別子32を境界として分割すると、範囲リストが{[25,28]}と{[33,33]}に分割され、範囲リスト{[33,33]}はピア1906に転送され、範囲リスト{[25,28]}はピア1903に転送される。ピア1906に転送された範囲リスト{[33,33]}は、ピア1906のSuccessorであるピア1907の論理識別子40を境に分割されるが、{[33,33]}は全て(32,40]に含まれるため、このピア1907が範囲[33,33]を管理するピアであると判定され、このピアのローカルデータ格納部1011を検索する。また、ピア1903に転送された範囲リスト{[25,28]}は、ピア1903のSuccessorであるピア1904の論理識別子27で分割され、(20,27]に含まれる論理識別子範囲{[25,27]}については、ピア27にローカルデータ格納部1011を検索するように要求し、含まれない範囲{(27,28]}については、Fingerに転送される。 Next, when the logical identifier 32 of the farthest Finger peer 1906 is divided as a boundary, the range list is divided into {[25, 28]} and {[33, 33]}, and the range list {[33, 33]}. Is forwarded to peer 1906 and the range list {[25, 28]} is forwarded to peer 1903. The range list {[33, 33]} transferred to the peer 1906 is divided on the boundary of the logical identifier 40 of the peer 1907 that is the successor of the peer 1906, but all {[33, 33]} are (32, 40). The peer 1907 is determined to be a peer managing the range [33, 33], and the local data storage unit 1011 of the peer is searched, and the range list transferred to the peer 1903 {[ 25, 28]} is divided by the logical identifier 27 of the peer 1904, which is the successor of the peer 1903, and the logical identifier range {[25, 27]} included in (20, 27] is stored in the peer 27 as local data. The part 1011 is requested to be searched, and the range {(27, 28]} not included is transferred to the finger.
ここでは、Fingerでもあるピア1904に転送され、ピア1904に転送された範囲{(27,28]}は、ピア1904の論理識別子27とSuccessorであるピア1905の論理識別子30の間に存在するため、ピア1905に対してローカルデータ格納部1011を検索するように要求される。 Here, because the range {(27, 28]} transferred to the peer 1904 that is also a finger exists between the logical identifier 27 of the peer 1904 and the logical identifier 30 of the peer 1905 that is the successor. , The peer 1905 is requested to search the local data storage unit 1011.
ピア1904、1905、1907で実行されたローカルデータ格納部1011に対する検索結果は、検索要求元である1909に対して送信され、検索要求元1909の検索結果受付プロセスがこの結果を受け取り、要求した全ての論理識別子範囲リスト{[25,28],[33,33]}から検索結果が得られた場合、あるいはTimeout時間が経過した場合に、当該検索処理が終了する。 The search results for the local data storage unit 1011 executed by the peers 1904, 1905, and 1907 are transmitted to the search request source 1909, and the search result reception process of the search request source 1909 receives this result and makes all the requests. When a search result is obtained from the logical identifier range list {[25, 28], [33, 33]}, or when the Timeout period elapses, the search process ends.
なお、上記の実施の形態1,3では、Chordを元にしたオーバレイネットワークに、多次元属性値の分布の偏りを一次元に均一化して、範囲検索を行う手法を開示したが、Chordと同様にピアが論理識別子を持つStructured Peer−to−Peerと呼ばれる他の方式においても、同様の手法で同様の効果を得ることができる。これは、一次元の論理識別子空間を持つオーバレイネットワークに限らず、多次元の論理識別子を持つオーバレイネットワークについても、一次元に均一化した後に空間充填曲線を用いて再度一次元から多次元に変換することで、同様の効果が得られる。 In the first and third embodiments, the method of performing range search by making the distribution of multi-dimensional attribute values uniform in one dimension in the overlay network based on Chord has been disclosed. In other methods called Structured Peer-to-Peer where the peer has a logical identifier, the same effect can be obtained by the same method. This is not limited to overlay networks with a one-dimensional logical identifier space, but for overlay networks with a multi-dimensional logical identifier, it is converted from one dimension to multidimensional again using a space-filling curve after uniformizing to one dimension. By doing so, the same effect can be obtained.
上記の各実施の形態1〜3において、ピアは、例えばサーバやパーソナルコンピュータなどの計算機(端末)で実現されている。また、各ピアにおいて、CPUなどの制御部がハードディスクなどの記憶手段に記憶されているプログラム(オーバレイ管理用プログラム)に従って実施の形態1〜3で説明した処理を実行することにより各構成部(手段)が実現される。また、各ピアにおいて、格納部、テーブルなどはハードディスクなどの記憶手段で実現される。 In each of the above first to third embodiments, the peer is realized by a computer (terminal) such as a server or a personal computer. Further, in each peer, a control unit such as a CPU executes each process described in the first to third embodiments in accordance with a program (overlay management program) stored in a storage unit such as a hard disk. ) Is realized. In each peer, a storage unit, a table, and the like are realized by storage means such as a hard disk.
本発明は、広域でデータを共有するリレーショナルデータベースなどに適用できる。特に、Radio Frequency Identifier(RFID)データの格納といった用途や、システム運用管理におけるログの格納といった用途や、メールやWebページの格納、Social Network Service(SNS)データの格納などにも適用可能である。 The present invention can be applied to a relational database that shares data over a wide area. In particular, the present invention can be applied to uses such as storage of radio frequency identifier (RFID) data, storage of logs in system operation management, storage of e-mails and Web pages, storage of social network service (SNS) data, and the like.
110,120,130 ピア
111 ローカルデータ格納部
112 ルーティングテーブル
113 メッセージ転送手段
117 個別属性分布関数格納部
118 登録・検索実行手段
510,520,530 ピア
511 ローカルデータ格納部
512 ルーティングテーブル
513 メッセージ転送手段
517 空間充填曲線変換手段
518 登録・検索実行手段
1010,1020,1030 ピア
1011 ローカルデータ格納部
1012 ルーティングテーブル
1013 メッセージ転送手段
1015 論理識別子範囲分割手段
1016 空間充填曲線分布格納部
1017 空間充填曲線変換手段
1018 登録・検索実行手段
110, 120, 130 Peer 111 Local data storage unit 112 Routing table 113 Message transfer unit 117 Individual attribute distribution function storage unit 118 Registration / search execution unit 510, 520, 530 Peer 511 Local data storage unit 512 Routing table 513 Message transfer unit 517 Space filling curve conversion means 518 Registration / search execution means 1010, 1020, 1030 Peer 1011 Local data storage unit 1012 Routing table 1013 Message transfer means 1015 Logical identifier range division means 1016 Space filling curve distribution storage part 1017 Space filling curve conversion means 1018 registration・ Search execution means
Claims (20)
複数属性のデータを一次元の値に変換する一次元化手段と、
前記一次元化手段によって一次元化された値に対して、値の分布情報を含む関数を適用して論理識別子を生成する識別子生成手段と、
オーバレイネットワーク上の各装置に対する論理識別子の割り当てにもとづいて、前記識別子生成手段にて生成された論理識別子を管理する他の装置を特定する管理装置特定手段と、
前記管理装置特定手段によって特定された前記他の装置にデータを登録する処理を実行するデータ登録手段とを備えた
ことを特徴とするオーバレイ管理装置。 An overlay management device arranged on an overlay network and managing data shared with other devices,
One-dimensionalization means for converting multi-attribute data into one-dimensional values;
Identifier generating means for generating a logical identifier by applying a function including value distribution information to the value one-dimensionalized by the one-dimensionalizing means;
A management device specifying means for specifying another device that manages the logical identifier generated by the identifier generating means based on the assignment of the logical identifier to each device on the overlay network;
An overlay management apparatus comprising: a data registration unit that executes a process of registering data in the other apparatus identified by the management apparatus identification unit.
前記検索条件一次元化手段によって一次元化された値の集合内の要素に対して、値の分布情報を含む関数を適用して論理識別子の範囲の集合を生成する識別子範囲生成手段と、
前記識別子範囲生成手段にて生成された論理識別子の範囲の集合を他の装置に検索要求として転送することによりデータの検索を行う検索要求転送手段とを備えた
請求項1記載のオーバレイ管理装置。 A search condition one-dimensionalization means for converting a search condition of multiple attributes into a set of one-dimensional values;
Identifier range generation means for generating a set of logical identifier ranges by applying a function including value distribution information to the elements in the set of values one-dimensionalized by the search condition one-dimensionalization means;
The overlay management apparatus according to claim 1, further comprising search request transfer means for searching for data by transferring a set of logical identifier ranges generated by the identifier range generation means as a search request to another apparatus.
検索要求転送手段は、前記論理識別子範囲分割手段によって分割された論理識別子の範囲の集合を他の装置に検索要求として転送することによりデータの検索を行う
請求項2記載のオーバレイ管理装置。 Logical identifier range dividing means for dividing a set of logical identifier ranges based on logical identifier assignment to each device on the overlay network;
The overlay management apparatus according to claim 2, wherein the search request transfer unit searches for data by transferring a set of logical identifier ranges divided by the logical identifier range dividing unit to another apparatus as a search request.
識別子生成手段または識別子範囲生成手段は、前記空間充填曲線にて一次元化された値または値の集合を均一化する空間充填曲線分布関数を適用して一次元化された値または値の集合から論理識別子またはその範囲の集合を生成する
請求項1から請求項3のうちのいずれか1項に記載のオーバレイ管理装置。 The one-dimensionalization means or the search condition one-dimensionalization means converts the data of multiple attributes into a one-dimensional value or a set of values using a space filling curve,
The identifier generating means or the identifier range generating means applies a space filling curve distribution function that equalizes a one-dimensional value or a set of values in the space filling curve from a one-dimensional value or a set of values. The overlay management apparatus according to claim 1, wherein a set of logical identifiers or ranges thereof is generated.
請求項3または請求項4記載のオーバレイ管理装置。 The overlay management apparatus according to claim 3 or 4, wherein the logical identifier range dividing means divides the set of logical identifier ranges based on the logical identifier stored in the routing table.
前記各端末は、
複数属性のデータを一次元の値に変換する一次元化手段と、
前記一次元化手段によって一次元化された値に対して、値の分布情報を含む関数を適用して論理識別子を生成する識別子生成手段と、
前記各端末に対する論理識別子の割り当てにもとづいて、前記識別子生成手段にて生成された論理識別子を管理する他の端末を特定する管理端末特定手段と、
前記管理端末特定手段によって特定された前記他の端末にデータを登録する処理を実行するデータ登録手段とを備えた
ことを特徴とするオーバレイ管理システム。 An overlay management system comprising a plurality of terminals arranged on an overlay network and managing data shared between the terminals,
Each terminal is
One-dimensionalization means for converting multi-attribute data into one-dimensional values;
Identifier generating means for generating a logical identifier by applying a function including value distribution information to the value one-dimensionalized by the one-dimensionalizing means;
Management terminal specifying means for specifying other terminals that manage the logical identifier generated by the identifier generating means based on the assignment of the logical identifier to each terminal;
An overlay management system comprising: a data registration unit that executes a process of registering data in the other terminal identified by the management terminal identification unit.
複数属性の検索条件を一次元の値の集合に変換する検索条件一次元化手段と、
前記検索条件一次元化手段によって一次元化された値の集合内の要素に対して、値の分布情報を含む関数を適用して論理識別子の範囲の集合を生成する識別子範囲生成手段と、
前記識別子範囲生成手段にて生成された論理識別子の範囲の集合を他の端末に検索要求として転送することによりデータの検索を行う検索要求転送手段とを備えた
請求項6記載のオーバレイ管理システム。 Each terminal
A search condition one-dimensionalization means for converting a search condition of multiple attributes into a set of one-dimensional values;
Identifier range generation means for generating a set of logical identifier ranges by applying a function including value distribution information to the elements in the set of values one-dimensionalized by the search condition one-dimensionalization means;
7. The overlay management system according to claim 6, further comprising search request transfer means for searching for data by transferring a set of logical identifier ranges generated by the identifier range generation means as a search request to another terminal.
検索要求転送手段は、前記論理識別子範囲分割手段によって分割された論理識別子の範囲の集合を他の端末に検索要求として転送することによりデータの検索を行う
請求項7記載のオーバレイ管理システム。 Logical identifier range dividing means for dividing a set of logical identifier ranges based on assignment of logical identifiers to each terminal;
8. The overlay management system according to claim 7, wherein the search request transfer unit searches for data by transferring a set of logical identifier ranges divided by the logical identifier range dividing unit to another terminal as a search request.
識別子生成手段または識別子範囲生成手段は、前記空間充填曲線にて一次元化された値または値の集合を均一化する空間充填曲線分布関数を適用して一次元化された値または値の集合から論理識別子またはその範囲の集合を生成する
請求項6から請求項8のうちのいずれか1項に記載のオーバレイ管理システム。 The one-dimensionalization means or the search condition one-dimensionalization means converts the data of multiple attributes into a one-dimensional value or a set of values using a space filling curve,
The identifier generating means or the identifier range generating means applies a space filling curve distribution function that equalizes a one-dimensional value or a set of values in the space filling curve from a one-dimensional value or a set of values. The overlay management system according to claim 6, wherein a set of logical identifiers or ranges thereof is generated.
請求項8または請求項9記載のオーバレイ管理システム。 The overlay management system according to claim 8 or 9, wherein the logical identifier range dividing means divides a set of logical identifier ranges based on the logical identifier stored in the routing table.
複数属性のデータを一次元の値に変換し、
一次元化した値に対して、値の分布情報を含む関数を適用して論理識別子を生成し、
オーバレイネットワーク上の各装置に対する論理識別子の割り当てにもとづいて、生成した論理識別子を管理する他の装置を特定し、
特定した前記他の装置にデータを登録する処理を実行する
ことを特徴とするオーバレイ管理方法。 The control unit of the management device arranged on the overlay network follows the control program,
Convert multi-attribute data into one-dimensional values,
A logical identifier is generated by applying a function including value distribution information to a one-dimensional value,
Based on the logical identifier assignment for each device on the overlay network, identify other devices that manage the generated logical identifier,
An overlay management method, comprising: performing a process of registering data in the specified other device.
複数属性の検索条件を一次元の値の集合に変換し、
一次元化した値の集合内の要素に対して、値の分布情報を含む関数を適用して論理識別子の範囲の集合を生成し、
生成した論理識別子の範囲の集合を他の装置に検索要求として転送することによりデータの検索を行う
請求項11記載のオーバレイ管理方法。 The control unit of the management device arranged on the overlay network follows the control program,
Convert multi-attribute search conditions into a one-dimensional set of values,
Apply a function containing value distribution information to the elements in the one-dimensional value set to generate a set of logical identifier ranges,
The overlay management method according to claim 11, wherein data search is performed by transferring the generated set of logical identifier ranges to another apparatus as a search request.
分割した論理識別子の範囲の集合を他の装置に検索要求として転送することによりデータの検索を行う
請求項12記載のオーバレイ管理方法。 Based on the logical identifier assignment for each device on the overlay network, the set of logical identifier ranges is divided,
13. The overlay management method according to claim 12, wherein data is searched by transferring a set of divided logical identifier ranges as a search request to another device.
前記空間充填曲線にて一次元化された値または値の集合を均一化する空間充填曲線分布関数を適用して一次元化された値または値の集合から論理識別子またはその範囲の集合を生成する
請求項11から請求項13のうちのいずれか1項に記載のオーバレイ管理方法。 Transform multi-attribute data into a one-dimensional value or set of values using a space-filling curve,
Applying a space-filling curve distribution function that equalizes a one-dimensional value or set of values in the space-filling curve to generate a logical identifier or a set of ranges thereof from the one-dimensional value or set of values The overlay management method according to any one of claims 11 to 13.
請求項13または請求項14記載のオーバレイ管理方法。 The overlay management method according to claim 13 or 14, wherein a set of ranges of logical identifiers is divided based on logical identifiers stored in a routing table.
複数属性のデータを一次元の値に変換する一次元化処理と、
一次元化した値に対して、値の分布情報を含む関数を適用して論理識別子を生成する識別子生成処理と、
オーバレイネットワーク上の各装置に対する論理識別子の割り当てにもとづいて、生成した論理識別子を管理する他の装置を特定する管理装置特定処理と、
特定した前記他の装置にデータを登録する処理を実行するデータ登録処理とを
前記管理装置に実行させるためのオーバレイ管理用プログラム。 An overlay management program for managing data shared by a management device arranged on an overlay network with other devices,
One-dimensional processing that converts multi-attribute data into one-dimensional values;
An identifier generation process for generating a logical identifier by applying a function including value distribution information to a one-dimensional value;
A management device specifying process for specifying another device that manages the generated logical identifier based on the assignment of the logical identifier to each device on the overlay network;
An overlay management program for causing the management device to execute data registration processing for executing processing for registering data in the specified other device.
一次元化した値の集合内の要素に対して、値の分布情報を含む関数を適用して論理識別子の範囲の集合を生成する識別子範囲生成処理と、
生成した論理識別子の範囲の集合を他の装置に検索要求として転送することによりデータの検索を行う検索要求転送処理とを
前記管理装置に実行させる請求項16記載のオーバレイ管理用プログラム。 A search condition one-dimensionalization process that converts a search condition of multiple attributes into a set of one-dimensional values,
An identifier range generation process for generating a set of logical identifier ranges by applying a function including value distribution information to elements in the one-dimensional value set;
The overlay management program according to claim 16, wherein the management device executes search request transfer processing for searching for data by transferring a set of generated logical identifier ranges to another device as a search request.
検索要求転送処理において、分割した論理識別子の範囲の集合を他の装置に検索要求として転送することによりデータの検索を行わせる
請求項17記載のオーバレイ管理用プログラム。 Based on the assignment of the logical identifier to each device on the overlay network, causes the management device to execute a logical identifier range dividing process for dividing a set of logical identifier ranges,
18. The overlay management program according to claim 17, wherein, in the search request transfer process, data is searched by transferring a set of divided logical identifier ranges as a search request to another device.
識別子生成処理または識別子範囲生成処理において、前記空間充填曲線にて一次元化された値または値の集合を均一化する空間充填曲線分布関数を適用して一次元化された値または値の集合から論理識別子またはその範囲の集合を生成させる
請求項16から請求項18のうちのいずれか1項に記載のオーバレイ管理用プログラム。 In one-dimensional processing or search condition one-dimensional processing, data of multiple attributes is converted into a one-dimensional value or set of values using a space filling curve,
In the identifier generation process or the identifier range generation process, from a value or value set that has been made one-dimensional by applying a space-filling curve distribution function that equalizes the one-dimensional value or value set in the space-filling curve. The overlay management program according to any one of claims 16 to 18, wherein a set of logical identifiers or ranges thereof is generated.
請求項18または請求項19記載のオーバレイ管理用プログラム。 20. The overlay management program according to claim 18 or 19, wherein, in the logical identifier range dividing process, a set of logical identifier ranges is divided based on the logical identifier stored in the routing table.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007076664A JP2008234563A (en) | 2007-03-23 | 2007-03-23 | Overlay management device, overlay management system, overlay management method, and program for managing overlay |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007076664A JP2008234563A (en) | 2007-03-23 | 2007-03-23 | Overlay management device, overlay management system, overlay management method, and program for managing overlay |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2008234563A true JP2008234563A (en) | 2008-10-02 |
Family
ID=39907229
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007076664A Pending JP2008234563A (en) | 2007-03-23 | 2007-03-23 | Overlay management device, overlay management system, overlay management method, and program for managing overlay |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2008234563A (en) |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2011116502A1 (en) * | 2010-03-26 | 2011-09-29 | Nec(China) Co., Ltd. | Indexing server and method therefor |
| JP2011198199A (en) * | 2010-03-23 | 2011-10-06 | Nec Corp | Data processing device, data distributed processing system, data processing program, and data processing method |
| WO2012029146A1 (en) * | 2010-09-01 | 2012-03-08 | 富士通株式会社 | Management device, management program and management method |
| US8190630B2 (en) | 2007-04-13 | 2012-05-29 | Nec Corporation | Data search device, data search system, data search method and data search program |
| WO2013046667A1 (en) * | 2011-09-27 | 2013-04-04 | 日本電気株式会社 | Information system, program and method for managing same, data processing method and program, and data structure |
| JP2013514733A (en) * | 2009-12-17 | 2013-04-25 | アルカテル−ルーセント | Method and apparatus for locating services in a peer-to-peer network |
| WO2013171953A1 (en) * | 2012-05-15 | 2013-11-21 | 日本電気株式会社 | Distributed data management device and distributed data operation device |
| JP2015049574A (en) * | 2013-08-30 | 2015-03-16 | 日本電気株式会社 | Index generation device and search device |
| JP2016052030A (en) * | 2014-09-01 | 2016-04-11 | 日本電信電話株式会社 | Communication management method and node |
-
2007
- 2007-03-23 JP JP2007076664A patent/JP2008234563A/en active Pending
Cited By (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8190630B2 (en) | 2007-04-13 | 2012-05-29 | Nec Corporation | Data search device, data search system, data search method and data search program |
| US10084856B2 (en) | 2009-12-17 | 2018-09-25 | Wsou Investments, Llc | Method and apparatus for locating services within peer-to-peer networks |
| KR101433702B1 (en) | 2009-12-17 | 2014-08-27 | 알까뗄 루슨트 | Method and apparatus for locating services within peer-to-peer networks |
| JP2013514733A (en) * | 2009-12-17 | 2013-04-25 | アルカテル−ルーセント | Method and apparatus for locating services in a peer-to-peer network |
| JP2011198199A (en) * | 2010-03-23 | 2011-10-06 | Nec Corp | Data processing device, data distributed processing system, data processing program, and data processing method |
| WO2011116502A1 (en) * | 2010-03-26 | 2011-09-29 | Nec(China) Co., Ltd. | Indexing server and method therefor |
| CN102947821A (en) * | 2010-03-26 | 2013-02-27 | 日电(中国)有限公司 | Indexing server and method therefor |
| JP5408359B2 (en) * | 2010-09-01 | 2014-02-05 | 富士通株式会社 | Management device, management program, and management method |
| US9319271B2 (en) | 2010-09-01 | 2016-04-19 | Fujitsu Limited | Management device and management method |
| WO2012029146A1 (en) * | 2010-09-01 | 2012-03-08 | 富士通株式会社 | Management device, management program and management method |
| WO2013046667A1 (en) * | 2011-09-27 | 2013-04-04 | 日本電気株式会社 | Information system, program and method for managing same, data processing method and program, and data structure |
| JPWO2013046667A1 (en) * | 2011-09-27 | 2015-03-26 | 日本電気株式会社 | Information system, management method and program thereof, data processing method and program, and data structure |
| WO2013171953A1 (en) * | 2012-05-15 | 2013-11-21 | 日本電気株式会社 | Distributed data management device and distributed data operation device |
| JPWO2013171953A1 (en) * | 2012-05-15 | 2016-01-12 | 日本電気株式会社 | Distributed data management device and distributed data operation device |
| US10073857B2 (en) | 2012-05-15 | 2018-09-11 | Nec Corporation | Distributed data management device and distributed data operation device |
| JP2015049574A (en) * | 2013-08-30 | 2015-03-16 | 日本電気株式会社 | Index generation device and search device |
| JP2016052030A (en) * | 2014-09-01 | 2016-04-11 | 日本電信電話株式会社 | Communication management method and node |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Jafari Navimipour et al. | A comprehensive study of the resource discovery techniques in Peer-to-Peer networks | |
| JP4277918B2 (en) | Data search device, data search method, and data search program | |
| Risson et al. | Survey of research towards robust peer-to-peer networks: Search methods | |
| JP2008234563A (en) | Overlay management device, overlay management system, overlay management method, and program for managing overlay | |
| JP7202558B1 (en) | DIGITAL OBJECT ACCESS METHOD AND SYSTEM IN HUMAN-CYBER-PHYSICAL COMBINED ENVIRONMENT | |
| CN102891872B (en) | The method and system of data storage and query in a kind of peer-to-peer network | |
| CN100536422C (en) | Peer-to-peer network and its network resource inquiring method | |
| Tato et al. | Designing overlay networks for decentralized clouds | |
| JP2008269141A (en) | Overlay search device, overlay search system, overlay search method, and overlay search program | |
| Kang et al. | A Semantic Service Discovery Network for Large‐Scale Ubiquitous Computing Environments | |
| CN103118113B (en) | A kind of peer-to-peer network and network consultancy service method thereof | |
| CN106210090A (en) | Network service searching method based on double-layer ring routing structure of P2P network | |
| Lazaro et al. | Decentralized resource discovery mechanisms for distributed computing in peer-to-peer environments | |
| Gu et al. | A peer-to-peer architecture for context lookup | |
| Maddali et al. | A Comprehensive Study of Some Recent Proximity Awareness Models and Common-Interest Architectural Formulations among P2P Systems | |
| Gu et al. | ContextPeers: scalable peer-to-peer search for context information | |
| Ahmed et al. | Context-aware service discovery and selection in decentralized environments | |
| Wu et al. | A Hybrid P2P Enabled Big Data Resource Discovery Method in Cloud Environments | |
| Karrels et al. | Structured P2P technologies for distributed command and control | |
| Pourqasem | Toward the optimization resource discovery service in grid systems: a survey | |
| Pipan | Use of the TRIPOD overlay network for resource discovery | |
| Zhou et al. | Unstructured P2P-enabled service discovery in the cloud environment | |
| Zhao et al. | A new DHT supporting multi-attribute queries for grid information services | |
| WO2013027784A1 (en) | Data processing device, data distribution processing system, data processing method, and program storage medium | |
| Najafi et al. | The use of super node to process query in peer-to-peer networks |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20080929 |
|
| A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20081003 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081118 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090119 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090217 |