JP6473425B2 - Node and data placement method - Google Patents

Node and data placement method Download PDF

Info

Publication number
JP6473425B2
JP6473425B2 JP2016051977A JP2016051977A JP6473425B2 JP 6473425 B2 JP6473425 B2 JP 6473425B2 JP 2016051977 A JP2016051977 A JP 2016051977A JP 2016051977 A JP2016051977 A JP 2016051977A JP 6473425 B2 JP6473425 B2 JP 6473425B2
Authority
JP
Japan
Prior art keywords
node
invalid
information
data
space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016051977A
Other languages
Japanese (ja)
Other versions
JP2017167783A (en
Inventor
篤史 外山
篤史 外山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2016051977A priority Critical patent/JP6473425B2/en
Publication of JP2017167783A publication Critical patent/JP2017167783A/en
Application granted granted Critical
Publication of JP6473425B2 publication Critical patent/JP6473425B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、ネットワーク上に分散配置されるノードをクラスタ化してデータを格納する分散処理システムにおいて、信頼性の低いノードへの原本データの配置を抑止する、ノードおよびデータ配置方法に関する。   The present invention relates to a node and a data arrangement method for suppressing the arrangement of original data to a node with low reliability in a distributed processing system that stores data by clustering nodes arranged in a distributed manner on a network.

近年、クラウドコンピューティングの隆盛に伴い、多量のデータの処理や保持を効率的に行うことが求められている。そこで、複数のサーバを協調動作させることにより効率的な処理を実現する分散処理技術が発展している。   In recent years, with the rise of cloud computing, it has been required to efficiently process and retain a large amount of data. Thus, distributed processing technology has been developed that realizes efficient processing by operating a plurality of servers in a coordinated manner.

分散処理を行う際には、クラスタ構成からなる分散処理システムを構成する各サーバ(以下、「ノード」と称する。)が担当するデータを決定する必要がある。このとき、分散処理システム全体での処理能力を高めるためには、各ノードが担当するデータ数は平均化されていることが望ましい。   When performing distributed processing, it is necessary to determine data to be handled by each server (hereinafter referred to as “node”) constituting a distributed processing system having a cluster configuration. At this time, in order to increase the processing capability of the entire distributed processing system, it is desirable that the number of data handled by each node is averaged.

代表的なデータの管理手法として、各データのkeyをハッシュ関数にかけた値(以下、「hash(key)」と称する。)をノード数Nで割った余り、即ち「hash(key) mod N」を番号として持つノードがデータを管理する手法がある。この場合、各ノードに事前に「0」から「N−1」までの番号を割り当てていることが前提となる。このような管理手法を用いた場合、ノードの追加・離脱が発生すると、Nの値が変化して、多くのデータについて、そのデータの保存を担当するノードが変更になるため、担当するデータを再配置することが必要になる。   As a representative data management method, a remainder obtained by dividing a value obtained by multiplying the key of each data by a hash function (hereinafter referred to as “hash (key)”) by the number of nodes N, that is, “hash (key) mod N”. There is a method in which a node having a number as a number manages data. In this case, it is assumed that numbers “0” to “N−1” are assigned to each node in advance. When such a management method is used, when a node is added or removed, the value of N changes, and the node in charge of storing the data changes for a lot of data. It will be necessary to rearrange.

そこで、ノードの追加・離脱に伴い担当するノードが変更になるデータ数を約1/Nに抑える方法として、コンシステント・ハッシュ(Consistent Hashing)法(非特許文献1参照)を用いたデータ管理手法がある。   Therefore, as a method for suppressing the number of data that the node in charge changes with the addition / detachment of a node to about 1 / N, a data management method using a consistent hashing method (see Non-Patent Document 1). There is.

このコンシステント・ハッシュ法を用いたデータ管理手法では、ノードとデータの双方にID(IDentifier)を割り当てる。そして、データのIDから閉じたID空間を時計回りに辿った場合に最初に当たったノードをそのデータの担当とする。ノードに対するIDの与え方の例としては、IPアドレスをハッシュ関数にかけた値(hash(IPアドレス))が挙げられる。   In this data management method using the consistent hash method, IDs (IDentifiers) are assigned to both nodes and data. Then, when the closed ID space is traced clockwise from the ID of the data, the node that hits first is assumed to be in charge of the data. An example of how to give an ID to a node is a value (hash (IP address)) obtained by multiplying an IP address by a hash function.

クラスタ構成の分散処理システムでは、各ノードの処理性能が等しい場合には、各ノードが担当するデータ量を等しくする、即ち、コンシステント・ハッシュ法のID空間(以下、単に「ID空間」と称する場合がある。)におけるノード間の距離(以下、「ノードの担当領域」と称する。)を等しくすることが望ましい。この点を実現するため、各ノードに仮想的に複数のIDを持たせる手法が用いられている。各ノードが複数の仮想IDを持つことで、仮想ID毎の担当領域の大きさは異なっていても、大数の法則に従いノード毎の担当領域の大きさは平均化される。
これらのコンシステント・ハッシュ法や仮想ID等を用いた技術により、ノード間で担当するデータを均一化し負荷を分散させることが可能となる。
In a clustered distributed processing system, when the processing performance of each node is equal, the amount of data handled by each node is made equal, that is, a consistent hash method ID space (hereinafter, simply referred to as “ID space”). In some cases, it is desirable to make the distances between nodes (hereinafter referred to as “node assigned areas”) equal. In order to realize this point, a method of virtually giving a plurality of IDs to each node is used. Since each node has a plurality of virtual IDs, even if the size of the assigned area for each virtual ID is different, the size of the assigned area for each node is averaged according to the law of large numbers.
By using a technique using these consistent hash methods, virtual IDs, and the like, it is possible to make data in charge uniform among nodes and distribute the load.

一方、昨今、災害の状況から各ノードが被災する確率を特定する研究(非特許文献2参照)が進んでおり、実用化すれば障害発生ノードを事前に特定することができるようになる。災害等により障害の発生が高いと予測されたノード、つまり、信頼性が低いと予め判定されたノードについて、原本データを配置することは、データ欠損リスクを高めるため、避けた方がよい。この対策として、信頼性の低いノードから高いノードへ原本データを移管することによって、信頼性を担保する技術が公開されている(非特許文献3参照)。   On the other hand, in recent years, research (see Non-Patent Document 2) for identifying the probability of each node being damaged from a disaster situation has been progressing, and if it is put into practical use, it becomes possible to identify a faulty node in advance. It is better to avoid placing original data on a node that is predicted to have a high level of failure due to a disaster or the like, that is, a node that has been previously determined to have low reliability, because this increases the risk of data loss. As a countermeasure, a technique for ensuring reliability by transferring original data from a node with low reliability to a node with high reliability has been disclosed (see Non-Patent Document 3).

David Karger, et al.,“Consistent Hashing and Random Trees:Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web”,[online],1997,ACM,[平成28年 3月 3日検索],インターネット<URL:http://www.akamai.com/dl/technical_publications/ConsistenHashingandRandomTreesDistributedCachingprotocolsforrelievingHotSpotsontheworldwideweb.pdf>David Karger, et al., “Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web”, [online], 1997, ACM, [March 3, 2016 search], Internet <URL : http: //www.akamai.com/dl/technical_publications/ConsistenHashingandRandomTreesDistributedCachingprotocolsforrelievingHotSpotsontheworldwideweb.pdf> Hiroshi Saito,et al.,”Proposal of Disaster Avoidance Control,” Proc. of Telecommunications Network Strategy and Planning Symposium (Networks),2014 16th International.Hiroshi Saito, et al., “Proposal of Disaster Avoidance Control,” Proc. Of Telecommunications Network Strategy and Planning Symposium (Networks), 2014 16th International. 栗生敬子、金子雅志、「高可用サーバクラスタにおける激甚災害を考慮したデータ管理方式の一検討」、社団法人電子情報通信学会、電子情報通信学会通信ソサイエティ大会講演論文集 2015年、通信(2) 21、B-6-21、2015-08-25Keiko Kuryu, Masashi Kaneko, “A Study on Data Management Method Considering Catastrophic Disasters in Highly Available Server Clusters”, IEICE, IEICE Communication Society Conference Proceedings 2015, Communications (2) 21 , B-6-21, 2015-08-25

しかしながら、非特許文献3に記載の技術を、一般的なコンシステント・ハッシュ法を利用する分散処理システムに適用した場合、新規データを配置する際には、ハッシュ分散により信頼性の低いノードにも原本データが配置されてしまう。よって、一度、信頼性の低いノードに原本データが配置された後に、信頼性の高いノードへ原本データを移管する処理が必要になる。   However, when the technology described in Non-Patent Document 3 is applied to a distributed processing system that uses a general consistent hash method, when distributing new data, even for nodes with low reliability due to hash distribution. Original data is placed. Therefore, once the original data is arranged at a node with low reliability, a process for transferring the original data to a node with high reliability is required.

図11は、分散処理システムにおいてコンシステント・ハッシュ法を用いてデータを管理する場合における、上記の問題を説明するための図である。なお、図11を含め、コンシステント・ハッシュのID空間を示す各図において、ノードそれぞれのID空間上の担当領域を楕円で示している。
図11(a)に示すように、コンシステント・ハッシュのID空間上に、原本データ「G」がノード「D」の担当領域に配置されている。また、その複製データ「g」が、ID空間上で時計回りに次のノードであるノード「E」と、さらにその次のノード(次々ノード)であるノード「A」に配置されているものとする。このような原本データと複製データの管理手法において、次に新たなデータを配置する場合を考える。その際に、ノード「C」は、例えば非特許文献2に記載の技術により、信頼性の低いノード(以下、「低信頼のノード」と称する場合がある。)であると判定されたノードであるとする。また、新たに配置するデータ(原本データ)のIDが、低信頼のノード「C」の担当領域に含まれるデータであるとする。
FIG. 11 is a diagram for explaining the above problem when data is managed using the consistent hash method in the distributed processing system. In addition, in each figure showing the ID space of the consistent hash including FIG. 11, the assigned area on the ID space of each node is indicated by an ellipse.
As shown in FIG. 11A, the original data “G 1 ” is arranged in the assigned area of the node “D” in the consistent hash ID space. The duplicate data “g 1 ” is arranged in the node “E”, which is the next node in the clockwise direction in the ID space, and the node “A”, which is the next node (next node). And Next, consider a case in which new data is arranged next in the management method of original data and replicated data. At this time, the node “C” is a node determined to be a node with low reliability (hereinafter, sometimes referred to as “low-reliability node”) by the technique described in Non-Patent Document 2, for example. Suppose there is. Further, it is assumed that the ID of data (original data) to be newly arranged is data included in the area in charge of the low-reliability node “C”.

非特許文献3に記載の技術を、コンシステント・ハッシュ法を利用する分散処理システムに適用する場合には、図11(a)に示すように、まず、新たに配置する原本データ「G」が、ID空間上の低信頼のノード「C」の担当領域に配置される。そして、その複製データ「g」が、ID空間上で時計回りに次のノードであるノード「D」と、さらにその次のノードであるノード「E」に配置される。 When the technique described in Non-Patent Document 3 is applied to a distributed processing system using a consistent hash method, first, original data “G 2 ” to be newly arranged as shown in FIG. Are arranged in the area in charge of the low-reliability node “C” in the ID space. Then, the duplicated data “g 2 ” is arranged in the node “D” that is the next node in the clockwise direction in the ID space, and further to the node “E” that is the next node.

その後、図11(b)に示すように、ノード「C」が低信頼のノードであるため、ノード「C」の担当領域に位置する原本データ「G」と、例えば、ノード「D」に格納されている複製データ「g」とに対し、原本変更通知がネットワーク管理サーバ(図示省略)等から送信される。これにより、ノード「D」に格納されていた複製データ「g」は、原本に昇格し原本データ「G」となる。また、低信頼のノード「C」の担当領域に位置する原本データ「G」は、複製に降格し複製データ「g」となる。続いて、ノード「D」は、昇格した原本データ「G」の複製データ「g」を、ID空間上で時計回りに次のノードであるノード「E」と、さらにその次のノードであるノード「A」に送信するレプリケーション(データの一貫性を保つためのデータ複製処理)を実行する。 Thereafter, as shown in FIG. 11B, since the node “C” is a low-reliability node, the original data “G 2 ” located in the area in charge of the node “C” and, for example, the node “D” An original change notification is transmitted from the network management server (not shown) or the like to the stored copy data “g 2 ”. As a result, the duplicate data “g 2 ” stored in the node “D” is promoted to the original data and becomes the original data “G 2 ”. Further, the original data “G 2 ” located in the area in charge of the low-reliability node “C” is demoted to a duplicate and becomes duplicate data “g 2 ”. Subsequently, the node “D” sends the replicated data “g 2 ” of the promoted original data “G 2 ” to the node “E”, which is the next node in the clockwise direction in the ID space, and further to the next node. Replication (data replication processing for maintaining data consistency) to be transmitted to a certain node “A” is executed.

このように、コンシステント・ハッシュ法を利用した分散処理システムに、従来技術を適用する場合には、新規データを配置する際に、ハッシュ分散により信頼性の低いノードも、原本データの配置先として選択されてしまう。その結果、新規データの配置の度に、複製から原本へのデータ移管を行い、データの一貫性を保つためのレプリケーションが必要となる。よって、各ノードのCPU(Central Processing Unit)の処理負荷を増大させるとともに、最適なデータ配置となるための余分な時間を要していた。
なお、図11(b)に示すように、非特許文献3に記載の技術を、コンシステント・ハッシュ法を利用する分散処理システムに適用した場合には、その結果として、原本データから複製データに降格した複製データが、システムに設定された冗長度(図11においては、原本データ「1」と複製データ「2」とで、冗長度「3」である。)を超えて、ID空間上に複製データを配置する結果となってしまう(図11においては、ノード「C」の複製データ「g」が冗長度の設定を超えて記憶されたままとなる。)。これにより、当該ノードの記憶資源を無駄に占有することとなる。
In this way, when the conventional technology is applied to a distributed processing system that uses the consistent hash method, a node with low reliability due to hash distribution is also used as the original data placement destination when placing new data. Will be selected. As a result, every time new data is placed, data must be transferred from replication to the original, and replication is required to maintain data consistency. Therefore, the processing load on the CPU (Central Processing Unit) of each node is increased, and extra time is required for optimal data placement.
As shown in FIG. 11B, when the technique described in Non-Patent Document 3 is applied to a distributed processing system using the consistent hash method, as a result, the original data is changed to the replicated data. The demodulated copy data exceeds the redundancy set in the system (in FIG. 11, the original data “1” and the duplicate data “2” have a redundancy “3”) on the ID space. As a result, the duplicate data is arranged (in FIG. 11, the duplicate data “g 2 ” of the node “C” is stored beyond the redundancy setting). As a result, the storage resource of the node is unnecessarily occupied.

このような背景を鑑みて本発明がなされたのであり、本発明は、低信頼のノードへの原本データの配置を抑止した上で、各ノードの処理負荷の増加を抑えることができる、ノードおよびデータ配置方法を提供することを課題とする。   The present invention has been made in view of such a background, and the present invention suppresses the placement of original data in a low-reliability node, and can suppress an increase in the processing load of each node. It is an object to provide a data arrangement method.

前記した課題を解決するため、請求項1に記載の発明は、クラスタを構成する複数のノードそれぞれに、コンシステント・ハッシュ法によりメッセージを振り分けて処理させる分散処理システムの前記ノードであって、前記コンシステント・ハッシュ法のID空間には、前記ノードと前記ノードが処理するメッセージの処理結果としてのデータとの双方が割り当てられており、前記ID空間上に割り当てられた各前記ノードのID、および、当該ID空間上における各前記ノードの担当領域を示す振り分けID情報、並びに、前記ノードそれぞれについて、原本データを配置しないノードであることを示す無効ノードであるか否かの情報が格納される無効ノード情報、が記憶される記憶部と、前記ノード毎の被災により障害が発生する確率を示す被災確率情報を受信し、前記被災確率情報の値が所定の閾値以上のノードを前記無効ノードに決定し、前記無効ノード情報に記憶する無効ノード設定部と、受信したメッセージ内の情報である振り分けキーを用いて前記データがID空間上で割り当てられるIDを算出し、前記振り分けID情報を参照して当該データを担当するノードを抽出し、前記抽出したノードが、前記無効ノードとして設定されているか否かを、前記無効ノード情報を参照して判定し、前記判定したノードが無効ノードとして設定されている場合に、前記振り分けID情報および前記無効ノード情報を参照し、前記ID空間上における所定回りで前記無効ノードとして設定されていない次のノードを、前記メッセージを処理するノードとして特定し、前記特定したノードに前記メッセージを送信する振り分け部と、前記送信されたメッセージを受信し、当該メッセージに基づく処理結果を原本データとして自身の前記記憶部に記憶するとともに、前記原本データの複製を記憶させる複製ノードを、前記振り分けID情報を参照し、前記ID空間上における所定回りで冗長度に応じた数だけ前記無効ノードとして設定されているノードも含めて決定し、前記決定した複製ノードに、前記原本データの複製データを送信することにより記憶させる信号処理部と、を備えることを特徴とするノードとした。 To solve the problems described above, an invention according to claim 1, the plurality of nodes in the cluster, a the nodes of a distributed processing system for processing distributed messages by Consistent hashing, the In the consistent hash method ID space, both the node and data as a result of processing the message processed by the node are allocated, and the ID of each node allocated in the ID space, and , sorting ID information indicating the coverage area of each of said nodes on the ID space, and, for the nodes respectively, invalid information indicating whether invalid node indicating that the node that does not place the original data is stored The storage unit that stores the node information, and the probability that a failure will occur due to the damage of each node Receives to disaster probability information, the value of disaster probability information to determine the more nodes predetermined threshold to the disable node, and disable the node setting unit to be stored in the invalid node information is the information in the received message An ID assigned to the data on the ID space is calculated using a distribution key, a node in charge of the data is extracted with reference to the distribution ID information, and the extracted node is set as the invalid node. Whether or not the determined node is set as an invalid node, the distribution ID information and the invalid node information are referred to, and the predetermined space on the ID space is determined. The next node that is not set as the invalid node around is identified as the node that processes the message, and the identified A distribution unit that transmits the message to a node, a copy that receives the transmitted message, stores a processing result based on the message in the storage unit as original data, and stores a copy of the original data Nodes are determined by referring to the distribution ID information, including nodes that are set as invalid nodes in a predetermined number of times in the ID space according to the redundancy, and the original copy is assigned to the determined copy node. And a signal processing unit that stores data by transmitting duplicate data of the data.

また、請求項3に記載の発明は、クラスタを構成する複数のノードそれぞれに、コンシステント・ハッシュ法によりメッセージを振り分けて処理させる分散処理システムの前記ノードによるデータ配置方法であって、前記コンシステント・ハッシュ法のID空間には、前記ノードと前記ノードが処理するメッセージの処理結果としてのデータとの双方が割り当てられており、前記ノードが、前記ID空間上に割り当てられた各前記ノードのID、および、当該ID空間上における各前記ノードの担当領域を示す振り分けID情報、並びに、前記ノードそれぞれについて、原本データを配置しないノードであることを示す無効ノードであるか否かの情報が格納される無効ノード情報、が記憶される記憶部を備えており、前記ノード毎の被災により障害が発生する確率を示す被災確率情報を受信し、前記被災確率情報の値が所定の閾値以上のノードを前記無効ノードに決定し、前記無効ノード情報に記憶するステップと、受信したメッセージ内の情報である振り分けキーを用いて前記データがID空間上で割り当てられるIDを算出し、前記振り分けID情報を参照して当該データを担当するノードを抽出し、前記抽出したノードが、前記無効ノードとして設定されているか否かを、前記無効ノード情報を参照して判定し、前記判定したノードが無効ノードとして設定されている場合に、前記振り分けID情報および前記無効ノード情報を参照し、前記ID空間上における所定回りで前記無効ノードとして設定されていない次のノードを、前記メッセージを処理するノードとして特定し、前記特定したノードに前記メッセージを送信するステップと、前記送信されたメッセージを受信し、当該メッセージに基づく処理結果を原本データとして自身の前記記憶部に記憶するとともに、前記原本データの複製を記憶させる複製ノードを、前記振り分けID情報を参照し、前記ID空間上における所定回りで冗長度に応じた数だけ前記無効ノードとして設定されているノードも含めて決定し、前記決定した複製ノードに、前記原本データの複製データを送信することにより記憶させるステップと、を実行することを特徴とするデータ配置方法とした。 Further, the invention according to claim 3, the plurality of nodes in the cluster, a data arrangement method according to the nodes of a distributed processing system for processing distributed messages by Consistent hashing, the consistent In the hash method ID space, both the node and data as a result of processing of the message processed by the node are assigned, and the node is assigned an ID of each node assigned on the ID space. and, sorting ID information indicating the coverage area of each of said nodes on the ID space, and, for the node respectively, whether the information is invalid node indicating that the node that does not place the original data is stored A storage unit for storing invalid node information, which is caused by the disaster of each node. Receiving the disaster probability information indicating the probability of failure, the value of disaster probability information to determine the more nodes predetermined threshold to the disable node, and storing the invalid node information, in the message received An ID to which the data is allocated on the ID space is calculated using a distribution key that is information, a node in charge of the data is extracted with reference to the distribution ID information, and the extracted node is used as the invalid node. It is determined whether or not it is set by referring to the invalid node information. When the determined node is set as an invalid node, the ID space is referred to by referring to the distribution ID information and the invalid node information. The next node that is not set as the invalid node around the predetermined time is specified as a node that processes the message. Transmitting the message to the identified node; receiving the transmitted message; storing a processing result based on the message as original data in the storage unit thereof; and storing a copy of the original data Duplicate nodes are determined with reference to the distribution ID information, including nodes set as invalid nodes by a number corresponding to the degree of redundancy in the ID space, and the determined duplicate nodes And a step of storing the duplicate data of the original data by transmitting the data.

このようにすることで、ノードは、受信した被災確率情報に基づき、被災する確率の高い(低信頼の)ノードを無効ノードに決定する。そして、受信したメッセージの担当が無効ノードである場合には、ID空間上の所定回りで無効ノードとして設定されていない次のノードを、そのメッセージを処理するノードとして特定することができる。また、原本データの複製データは、コンシステント・ハッシュ法に基づき、無効ノードとして設定されているノードにも配置することができる。
よって、一度低信頼のノードに原本データを配置した後に、無効ノードではない高信頼のノードに原本データを移管する処理を不要とすることができ、不要なレプリケーションを行わないようにすることができる。また、無効ノードには、複製データを配置することができるため、低信頼の無効ノードの記憶資源を有効に活用することができる。
By doing in this way, the node determines a node having a high probability of being damaged (low reliability) as an invalid node based on the received damage probability information. If the responsible for the received message is an invalid node, the next node that is not set as an invalid node around the ID space can be identified as the node that processes the message. In addition, the copy data of the original data can be arranged in a node set as an invalid node based on the consistent hash method.
Therefore, once the original data is placed on the low-reliability node, the process of transferring the original data to the high-reliability node that is not an invalid node can be made unnecessary, and unnecessary replication can be prevented. . In addition, since duplicate data can be placed in the invalid node, the storage resources of the low-reliability invalid node can be used effectively.

請求項2に記載の発明は、前記クラスタに新たなノードを増設する際に、前記無効ノードのID空間上のIDを、当該無効ノードのIDにおける前記所定回りとは反対回りで最初に位置するノードのIDに1を加算した値に設定しておくとともに、増設するノードのID空間上のIDを、前記無効ノードのIDに1を加算した値から、ID空間上で前記無効ノードの所定回りの次に位置するノードが担当する原本データのIDよりも前記所定回りとは反対回りに位置する値までのいずれかに設定するリバランシング部を、さらに備えること、を特徴とする請求項1に記載のノードとした。 According to a second aspect of the present invention, when a new node is added to the cluster, the ID in the ID space of the invalid node is first positioned opposite to the predetermined rotation in the ID of the invalid node. The value is set to a value obtained by adding 1 to the ID of the node, and the ID in the ID space of the node to be added is determined from the value obtained by adding 1 to the ID of the invalid node in the ID space. 2. A rebalancing unit is further provided, which sets the ID of original data handled by a node located next to any one of values up to a value located opposite to the predetermined direction. The described node.

また、請求項4に記載の発明は、前記ノードが、前記クラスタに新たなノードを増設する際に、前記無効ノードのID空間上のIDを、当該無効ノードのIDにおける前記所定回りとは反対回りで最初に位置するノードのIDに1を加算した値に設定しておくとともに、増設するノードのID空間上のIDを、前記無効ノードのIDに1を加算した値から、ID空間上で前記無効ノードの所定回りの次に位置するノードが担当する原本データのIDよりも前記所定回りとは反対回りに位置する値までのいずれかに設定するステップを、さらに実行することを特徴とする請求項3に記載のデータ配置方法とした。 In the invention according to claim 4, when the node adds a new node to the cluster, the ID in the ID space of the invalid node is opposite to the predetermined rotation in the ID of the invalid node. The value is set to a value obtained by adding 1 to the ID of the first node located around the node, and the ID on the ID space of the node to be added is determined on the ID space from the value obtained by adding 1 to the ID of the invalid node. The step of setting to any value up to a value located opposite to the predetermined direction rather than the ID of the original data handled by the node located next to the predetermined position of the invalid node is further performed. A data arrangement method according to claim 3.

このようにすることで、ノードは、負荷の偏りを低減するためのリバランシング(ノード増設)を行う際に、レプリケーションが発生することを抑止することができる。 By doing in this way, the node can suppress the occurrence of replication when performing rebalancing (node addition) for reducing the load bias.

本発明によれば、低信頼のノードへの原本データの配置を抑止した上で、各ノードの処理負荷の増加を抑える、ノードおよびデータ配置方法を提供することができる。   According to the present invention, it is possible to provide a node and a data arrangement method that suppress an increase in processing load of each node while suppressing the arrangement of original data to a low-reliability node.

本実施形態に係るノードを含む分散処理システムの全体構成を示す図である。It is a figure which shows the whole structure of the distributed processing system containing the node which concerns on this embodiment. 本実施形態に係るノードの処理概要を説明するための図である。It is a figure for demonstrating the process outline | summary of the node which concerns on this embodiment. 本実施形態に係るノードの構成例を示す機能ブロック図である。It is a functional block diagram which shows the structural example of the node which concerns on this embodiment. 本実施形態に係るノード識別子管理情報のデータ構成例を示す図である。It is a figure which shows the data structural example of the node identifier management information which concerns on this embodiment. 本実施形態に係る振り分けID情報のデータ構成例を示す図である。It is a figure which shows the data structural example of distribution ID information which concerns on this embodiment. 本実施形態に係る無効ノード情報のデータ構成例を示す図である。It is a figure which shows the data structural example of the invalid node information which concerns on this embodiment. 本実施形態に係るノードが実行するメッセージ処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the message process which the node which concerns on this embodiment performs. 本実施形態に係るノードにおいて、リバランシングを行う場合の課題を説明するための図である。It is a figure for demonstrating the subject in the case of performing rebalancing in the node which concerns on this embodiment. 本実施形態の変形例に係るノードの構成例を示す機能ブロック図である。It is a functional block diagram which shows the structural example of the node which concerns on the modification of this embodiment. 本実施形態の変形例に係るノードがリバランシング(ノード増設)を行う場合の処理を説明するための図である。It is a figure for demonstrating the process in case the node which concerns on the modification of this embodiment performs rebalancing (node addition). 分散処理システムにおいてコンシステント・ハッシュ法を用いてデータを管理する場合における問題を説明するための図である。It is a figure for demonstrating the problem in the case of managing data using the consistent hash method in a distributed processing system.

<全体構成>
まず、本発明を実施するための形態(以下、「本実施形態」と称する。)に係るノード1を含む分散処理システム1000について説明する。
図1は、本実施形態に係るノード1を含む分散処理システム1000の全体構成を示す図である。
<Overall configuration>
First, a distributed processing system 1000 including a node 1 according to a mode for carrying out the present invention (hereinafter referred to as “this embodiment”) will be described.
FIG. 1 is a diagram showing an overall configuration of a distributed processing system 1000 including a node 1 according to the present embodiment.

この分散処理システム1000は、複数のノード1から構成される。各ノード1は、コンピュータなどの物理装置や仮想マシンなどの論理装置である。ロードバランサ3は、クライアント2から受信したメッセージを、単純なラウンドロビン等により振り分けて各ノード1に送信する。そして、ノード1の振り分け部13は、クライアント2からのメッセージを、例えば、コンシステント・ハッシュ法等に基づき、メッセージを担当するノード1に振り分ける。この際、振り分け部13は、振り分け先となるノード1が、低信頼のノード(後記する「無効ノード」)であるか否かを確認した上で、振り分けを行う(詳細は後記する。)。メッセージを担当するノード1では、信号処理部14において、信号処理を行い、クライアント2にサービスを提供する。   This distributed processing system 1000 includes a plurality of nodes 1. Each node 1 is a physical device such as a computer or a logical device such as a virtual machine. The load balancer 3 distributes the message received from the client 2 by simple round robin or the like and transmits it to each node 1. Then, the distribution unit 13 of the node 1 distributes the message from the client 2 to the node 1 in charge of the message based on, for example, a consistent hash method. At this time, the distribution unit 13 performs distribution after confirming whether or not the node 1 as the distribution destination is a low-reliability node (an “invalid node” to be described later). In the node 1 in charge of the message, the signal processing unit 14 performs signal processing and provides a service to the client 2.

なお、ロードバランサ3が存在せず、クライアント2から任意のノード1(振り分け部13)にメッセージを送信することも可能である。また、振り分け部13と信号処理部14とは、同じノード1上に同時に存在してもよいし、別々のノード1上に存在してもよい。   Note that the load balancer 3 does not exist, and a message can be transmitted from the client 2 to an arbitrary node 1 (distribution unit 13). Further, the distribution unit 13 and the signal processing unit 14 may exist on the same node 1 at the same time, or may exist on different nodes 1.

<ノード>
次に、分散処理システム1000を構成するノード1について、具体的に説明する。
<Node>
Next, the node 1 constituting the distributed processing system 1000 will be specifically described.

≪概要≫
まず、本実施形態に係るノード1の処理の概要を説明する。
本実施形態に係るノード1は、分散処理システム1000を構成するノード1それぞれについて、低信頼と判定されるノードであるか、若しくは、高信頼(低信頼ではない)と判定されるノードであるかを示す情報(後記する、「被災確率情報」)を取得し、低信頼のノード1に関して、「無効ノード」として設定しておく。本実施形態において、無効ノードとは、原本データの配置先として設定しないノード、つまり、原本データを配置しないノードを意味する。なお、後記するように、無効ノードには、原本データは配置されないが、複製データは配置される。
本実施形態に係るノード1は、新規原本データの設定や、リクエスト等を受信した際に行われる、コンシステント・ハッシュ法に基づくID空間上での時計回り探索において、無効ノードとして設定されたノード1はスキップする。そして、次の非無効ノード(無効ノードとして設定されてない通常の(高信頼の)ノード)が見つかったとき、そのノード1に原本データを配置する、若しくは、そのノード1が担当する原本データを用いて信号処理を実行する。以下、図2を参照して具体的に説明する。
≪Overview≫
First, an outline of processing of the node 1 according to the present embodiment will be described.
Whether the node 1 according to the present embodiment is a node determined to be low-reliability or a node determined to be high-reliability (not low-reliability) for each node 1 constituting the distributed processing system 1000. (Hereinafter, “disaster probability information”) is acquired, and the low-reliability node 1 is set as an “invalid node”. In the present embodiment, the invalid node means a node that is not set as a placement destination of original data, that is, a node that does not place original data. As will be described later, the original data is not arranged in the invalid node, but the duplicate data is arranged.
The node 1 according to the present embodiment is a node set as an invalid node in a clockwise search on an ID space based on a consistent hash method performed when a new original data is set or a request is received. 1 skips. When the next non-invalid node (a normal (highly reliable) node that is not set as an invalid node) is found, the original data is arranged in the node 1 or the original data that the node 1 is in charge of. To perform signal processing. Hereinafter, a specific description will be given with reference to FIG.

図2は、本実施形態に係るノード1の処理概要を説明するための図である。図2(a)は、比較例として、通常のコンシステント・ハッシュ法に基づくデータ配置を示す図である。図2(b)は、本実施形態に係るノード1が実行するデータ配置の処理を示す図である。   FIG. 2 is a diagram for explaining the processing outline of the node 1 according to the present embodiment. FIG. 2A is a diagram showing data arrangement based on a normal consistent hash method as a comparative example. FIG. 2B is a diagram illustrating a data arrangement process executed by the node 1 according to the present embodiment.

コンシステント・ハッシュ法に基づく通常のデータ配置では、図2(a)に示すように、各ノード1が、低信頼のノード1か高信頼のノード1であるかは考慮されない。よって、ID空間上において、例えば、原本データ「G」が、低信頼のノード「C」の担当領域に配置され、その複製データ「g」が、ID空間上で時計回りに次のノードであるノード「D」と、さらに次のノードであるノード「E」に配置される。同様に、原本データ「G」が、高信頼のノード「A」の担当領域に配置され、その複製データ「g」が、ID空間上で時計回りに次のノードであるノード「B」と、さらに次のノードである低信頼のノード「C」に配置される。つまり、低信頼のノード「C」にも、原本データが配置されてしまう。 In a normal data arrangement based on the consistent hash method, it is not considered whether each node 1 is a low-reliability node 1 or a high-reliability node 1 as shown in FIG. Therefore, in the ID space, for example, the original data “G 2 ” is arranged in the area in charge of the low-reliability node “C”, and the duplicate data “g 2 ” is the next node clockwise in the ID space. The node “D” and the node “E” which is the next node are arranged. Similarly, the original data “G 3 ” is arranged in the area in charge of the highly reliable node “A”, and the duplicate data “g 3 ” is the node “B” that is the next node in the clockwise direction in the ID space. In addition, it is arranged at the low reliability node “C” which is the next node. That is, the original data is also arranged in the low-reliability node “C”.

これに対し、本実施形態に係るノード1は、低信頼のノード1を予め無効ノードとして設定しておく。そして、各ノード1は、低信頼のノード1が本来担当すべきID空間上の領域に原本データを配置する際には、その無効ノードのID空間上で時計回りに次に位置する無効ノードではないノード(高信頼ノード)を、その原本データを担当するノードとして処理する。   On the other hand, the node 1 according to the present embodiment sets the low-reliability node 1 as an invalid node in advance. When each node 1 places the original data in an area on the ID space that the low-reliability node 1 should be in charge of, the node 1 is the next invalid node located clockwise in the ID space of the invalid node. No node (highly reliable node) is processed as a node in charge of the original data.

具体的には、図2(b)に示すように、低信頼のノード「C」が無効ノードとして設定されているとする。そして、そのノード「C」が本来担当すべきID空間上の領域に配置される原本データ「G」について、本実施形態においては、無効ノードであるノード「C」ではなく、ID空間上で時計回りに次に位置する無効ノードではないノード(高信頼ノード)であるノード「D」が担当する。つまり、無効ノードであるノード「C」の担当領域(図2(b)において、破線の楕円で示す。)上に位置するデータ(原本データ)の担当を、ID空間上で時計回りに次のノード(高信頼ノード)であるノード「D」とする。よって、ノード「D」は、原本データについては、ID空間上で自身の担当領域に加え、ノード「C」が従来担当すべき領域(ノード「C」が無効ノードでなかった場合の担当領域)も自身の担当領域として処理する(図2(b)において、太実線の楕円で示す。)。ノード「D」が、原本データ「G」の担当となることから、ノード「D」には、原本データ「G」の複製データ「g」は配置されない。また、ノード「C」ではなく、ノード「D」が、ノード「E」とノード「A」とに複製データ「g」を送信するレプリケーションを実行する。 Specifically, as shown in FIG. 2B, it is assumed that the low-reliability node “C” is set as an invalid node. In the present embodiment, the original data “G 2 ” arranged in the area on the ID space that the node “C” should be responsible for is not the node “C” that is an invalid node in the ID space. Node “D”, which is a node (high reliability node) that is not the next invalid node located in the clockwise direction, is in charge. That is, the charge of the data (original data) located on the area in charge of the node “C” that is an invalid node (indicated by a dashed ellipse in FIG. 2B) is clockwise in the ID space. It is assumed that the node “D” is a node (high reliability node). Therefore, for the original data, the node “D” is the area that the node “C” should be in charge of in the past in addition to its own area in the ID space (area in which the node “C” is not an invalid node) Is also processed as its own area (indicated by a thick solid oval in FIG. 2B). Node "D", since the charge of the original data "G 2", the node "D", replicated data "g 2" in the original data "G 2" is not arranged. In addition, the node “D”, not the node “C”, performs replication in which the replication data “g 2 ” is transmitted to the node “E” and the node “A”.

このようにすることで、一度、低信頼ノードに原本データを配置した後に、高信頼のノードへ原本データを移管する処理を不要にすることができるとともに、この原本データの移管に伴う、不要なレプリケーションを実行しないようにすることができる。また、本実施形態に係るノード1の処理においても、各ノード1の信頼性は従来と同様に確保することができる。   By doing so, it is possible to eliminate the process of transferring the original data to the highly reliable node after the original data is once arranged in the low reliability node. Replication can be disabled. Also in the processing of the node 1 according to the present embodiment, the reliability of each node 1 can be ensured as in the conventional case.

≪ノードの構成≫
次に、本実施形態に係る分散処理システム1000を構成するノード1について、具体的に説明する。なお、本実施形態に係るノード1は、分散処理システム1000を構成する複数のノード1のうち、後記するノード識別子管理情報100(図4参照)、振り分けID情報200(図5参照)および無効ノード情報300(図6参照)を管理する特権ノードとなる場合と、特権ノードからノード識別子管理情報100、振り分けID情報200および無効ノード情報300を受け取り、各情報を更新して記憶する非特権ノードとなる場合とが存在する。なお、特権ノードが行う処理等については、後記する。
<< Node configuration >>
Next, the node 1 constituting the distributed processing system 1000 according to the present embodiment will be specifically described. Note that the node 1 according to the present embodiment includes a node identifier management information 100 (see FIG. 4), a distribution ID information 200 (see FIG. 5), and an invalid node, which will be described later, among the plurality of nodes 1 constituting the distributed processing system 1000. When the node is a privileged node that manages the information 300 (see FIG. 6), the node identifier management information 100, the distribution ID information 200, and the invalid node information 300 are received from the privileged node, and each information is updated and stored. There are cases where The processing performed by the privileged node will be described later.

ノード1は、図1に示したように、ロードバランサ3と通信可能に接続されるともに、クラスタを構成する自身以外の他のノード1と通信可能に接続される。また、このノード1は、ロードバランサ3を介してクライアント2からメッセージを受け取ると、そのメッセージを、振り分けID情報200および無効ノード情報300を参照して、担当するノード1(自身を含む)に振り分け、そのメッセージの信号処理を実行する。また、各ノード1は、新たに自身が原本データを保持することとなったデータについて、当該原本データを自身の記憶部(後記する「記憶部30」)に記憶するとともに、その原本データの複製データを格納するノード1を、振り分けID情報200を参照して決定し、そのノード1に複製データを送信(レプリケーション)する。なお、複製データを格納するノード1は、冗長度の数から1を引いた数のノードが、ID空間上で時計回りの順で決定される。以下、本実施形態においては、冗長度が「3」、つまり、原本データ1つの他に、複製データを2つ生成するものとして説明する。   As shown in FIG. 1, the node 1 is communicably connected to the load balancer 3 and is communicably connected to other nodes 1 other than itself constituting the cluster. Further, when the node 1 receives a message from the client 2 via the load balancer 3, the node 1 refers to the distribution ID information 200 and the invalid node information 300, and distributes the message to the node 1 (including itself) in charge. , Execute signal processing of the message. Further, each node 1 stores the original data in its own storage unit (“storage unit 30” described later) for the data for which the original data is newly held, and copies the original data. The node 1 for storing data is determined with reference to the distribution ID information 200, and the replicated data is transmitted (replicated) to the node 1. Note that the number of nodes obtained by subtracting 1 from the number of redundancy is determined in the clockwise order in the ID space as the node 1 storing the duplicate data. Hereinafter, in the present embodiment, it is assumed that the redundancy is “3”, that is, two replicated data are generated in addition to one original data.

図3は、本実施形態に係るノード1の構成例を示す機能ブロック図である。
図3に示すように、ノード1は、制御部10と、入出力部20と、記憶部30とを含んで構成される。
FIG. 3 is a functional block diagram illustrating a configuration example of the node 1 according to the present embodiment.
As illustrated in FIG. 3, the node 1 includes a control unit 10, an input / output unit 20, and a storage unit 30.

入出力部20は、ロードバランサ3や、自身以外の他のノード1等との間の情報の入出力を行う。また、この入出力部20は、通信回線を介して情報の送受信を行う通信インタフェース(図示省略)と、キーボード等の入力手段やモニタ等の出力手段等との間で入出力を行う入出力インタフェース(図示省略)とから構成される。   The input / output unit 20 inputs / outputs information to / from the load balancer 3 and other nodes 1 other than itself. Further, the input / output unit 20 is an input / output interface that performs input / output between a communication interface (not shown) that transmits / receives information via a communication line and an input unit such as a keyboard or an output unit such as a monitor. (Not shown).

記憶部30は、ハードディスクやフラッシュメモリ、RAM(Random Access Memory)等の記憶手段からなり、処理の対象となるデータ400や、ノード識別子管理情報100(図4参照)、振り分けID情報200(図5参照)、無効ノード情報300(図6参照)等が記憶される。なお、この記憶部30に記憶される各情報についての詳細は後記する。   The storage unit 30 includes storage means such as a hard disk, a flash memory, and a RAM (Random Access Memory). The data 400 to be processed, the node identifier management information 100 (see FIG. 4), and the distribution ID information 200 (FIG. 5). Reference), invalid node information 300 (see FIG. 6), and the like are stored. Details of each piece of information stored in the storage unit 30 will be described later.

制御部10は、ノード1全体の制御を司り、ノード識別子管理部11、無効ノード設定部12、振り分け部13、信号処理部14、原本データ移管部15を含んで構成される。なお、この制御部10は、例えば、記憶部30に格納されたプログラムをCPU(図示省略)がRAM(図示省略)に展開し実行することで実現される。   The control unit 10 controls the entire node 1 and includes a node identifier management unit 11, an invalid node setting unit 12, a distribution unit 13, a signal processing unit 14, and an original data transfer unit 15. In addition, this control part 10 is implement | achieved when CPU (illustration omitted) expand | deploys and executes the program stored in the memory | storage part 30 on RAM (illustration omitted), for example.

ノード識別子管理部11は、分散処理システム1000においてクラスタを構成する各ノード1のノード情報(IPアドレス等)および各ノード1が担当するID空間を管理する。
具体的には、ノード識別子管理部11は、自身が属する分散処理システム1000へのノードの離脱(減設)や追加(増設)が発生した場合に、その情報を外部から受信し、分散処理システム1000を構成するノード1の識別情報等が記憶されたノード識別子管理情報100(図4)を更新する。
The node identifier management unit 11 manages the node information (IP address and the like) of each node 1 configuring the cluster in the distributed processing system 1000 and the ID space handled by each node 1.
Specifically, the node identifier management unit 11 receives information from the outside when a node is detached (removed) or added (added) to the distributed processing system 1000 to which the node identifier belongs, and the distributed processing system The node identifier management information 100 (FIG. 4) in which the identification information and the like of the node 1 constituting 1000 is stored is updated.

図4は、本実施形態に係るノード識別子管理情報100のデータ構成例を示す図である。
図4に示すように、ノード識別子管理情報100には、分散処理システム1000を構成する各ノード1のノード識別子101とアドレス102(例えば、IPアドレス)とが対応付けられて格納される。
FIG. 4 is a diagram illustrating a data configuration example of the node identifier management information 100 according to the present embodiment.
As shown in FIG. 4, in the node identifier management information 100, the node identifier 101 and the address 102 (for example, IP address) of each node 1 constituting the distributed processing system 1000 are stored in association with each other.

このノード識別子101は、例えば、当該分散処理システム1000内において予め設定される特定のノード(例えば、ノード識別子101の昇順に設定)のノード識別子管理部11で付与され、当該分散処理システム1000内の各ノード1に配信される。なお、このノード識別子101は、コンシステント・ハッシュのID空間において仮想IDを用いる場合、仮想ID毎に付与される。   The node identifier 101 is given by, for example, the node identifier management unit 11 of a specific node (for example, set in ascending order of the node identifier 101) set in advance in the distributed processing system 1000. Distributed to each node 1. The node identifier 101 is assigned to each virtual ID when a virtual ID is used in the consistent hash ID space.

ノード識別子管理部11は、外部から受信したノードIDの変更情報に基づき、ノード識別子管理情報100を更新(ノード1の減設・増設を反映)し、さらに、ノード1のID空間上での担当領域を変更するため、振り分けID情報200(図5)を更新する。   The node identifier management unit 11 updates the node identifier management information 100 based on the node ID change information received from the outside (reflects the reduction / expansion of the node 1), and further takes charge of the node 1 in the ID space. In order to change the area, the distribution ID information 200 (FIG. 5) is updated.

図5は、本実施形態に係る振り分けID情報200のデータ構成例を示す図である。
図5に示すように、振り分けID情報200には、ノード識別子201に対応付けて、そのノード1が担当するID空間202(担当領域)が格納される。このノード識別子201は、図4のノード識別子101と同様の情報である。図5に示す例では、ID空間の全ID数が「0」〜「999」の1000であり、例えば、ノード識別子201が「A」のノード1が、担当するID空間202として「0〜199」について担当することを示している。また、この振り分けID情報200において、ノード識別子201が「A」のノード1(ノード「A」)のID空間上のノードIDは、「199」であり、以下同様に、ノード「B」のID空間上でのノードIDは「399」であり、ノード「C」のID空間上でのノードIDは「599」であり、ノード「D」のID空間上でのノードIDは「799」であり、ノード「E」のID空間上でのノードIDは「999」である。そして、ノード識別子管理部11は、振り分けID情報200において、各ノード1のノードIDを昇順にソートし、連続したID空間202として管理する。
FIG. 5 is a diagram illustrating a data configuration example of the distribution ID information 200 according to the present embodiment.
As shown in FIG. 5, the distribution ID information 200 stores an ID space 202 (area in charge) that the node 1 is responsible for in association with the node identifier 201. This node identifier 201 is the same information as the node identifier 101 of FIG. In the example shown in FIG. 5, the total number of IDs in the ID space is 1000 from “0” to “999”. For example, the node 1 whose node identifier 201 is “A” is “0 to 199” as the ID space 202 in charge. "Is in charge of. In this distribution ID information 200, the node ID in the ID space of the node 1 (node “A”) having the node identifier 201 “A” is “199”, and similarly, the ID of the node “B” is the same. The node ID on the space is “399”, the node ID on the ID space of the node “C” is “599”, and the node ID on the ID space of the node “D” is “799”. The node ID on the ID space of the node “E” is “999”. Then, the node identifier management unit 11 sorts the node IDs of the respective nodes 1 in ascending order in the distribution ID information 200 and manages them as a continuous ID space 202.

なお、本実施形態においては、閉じたID空間(コンシステント・ハッシュのID空間)上において各IDを時計回りに配置し、データのIDから時計回りに辿った場合に最初に当たったノードをそのデータの担当として説明する。しかしながら、ID空間上において各IDを反時計回りに配置し、データのIDから反時計回りに辿った場合に最初に当たったノードをそのデータの担当とするように構成してもよい。つまり、所定の方向回りにID空間上におけるIDを設定することができる。   In the present embodiment, each ID is arranged clockwise in a closed ID space (consistent hash ID space), and when the data is traced clockwise from the ID of the data, the first hit node is the Explain as the person in charge of data. However, each ID may be arranged in a counterclockwise direction in the ID space, and when the data is traced counterclockwise from the ID of the data, the node that hits first may be assigned to the data. That is, an ID on the ID space can be set around a predetermined direction.

分散処理システム1000内の特権ノードのノード識別子管理部11は、各ノード1に対して、最新のノード識別子管理情報100および振り分けID情報200を送信する。これにより、各ノード1のノード識別子管理部11は、ノード識別子管理情報100および振り分けID情報200を常に最新の状態に更新して保持する。このようにすることにより、分散処理システム1000内の各ノード1には、同一のノード識別子管理情報100および振り分けID情報200が保持される。   The node identifier management unit 11 of the privileged node in the distributed processing system 1000 transmits the latest node identifier management information 100 and distribution ID information 200 to each node 1. Accordingly, the node identifier management unit 11 of each node 1 always updates and holds the node identifier management information 100 and the distribution ID information 200 in the latest state. Thus, the same node identifier management information 100 and distribution ID information 200 are held in each node 1 in the distributed processing system 1000.

また、特権ノードは、例えば、このノード識別子管理情報100(図4)の一番上の行のノード1から順に、特権ノードとなるように設定される。ノード1が新たに特権ノードになった場合、自身が特権ノードであることを示す情報を、各ノード1等に送信する。そして、特権ノードは、クラスタ内のノード1について、ID空間上での配置変更(ノードIDの変更等)があった場合に、自身の振り分けID情報200を更新し、その更新情報を、各ノード1に配信する。   Also, the privileged nodes are set to become privileged nodes in order from the node 1 in the top row of the node identifier management information 100 (FIG. 4), for example. When node 1 newly becomes a privileged node, information indicating that it is a privileged node is transmitted to each node 1 or the like. The privileged node updates its own distribution ID information 200 when there is an arrangement change in the ID space (node ID change or the like) for the node 1 in the cluster, and the update information is updated for each node. Deliver to 1.

図3に戻り、無効ノード設定部12は、分散処理システム1000を構成する各ノード1が、低信頼のノードであるか高信頼のノードであるかを判定するための被災確率情報を取得する。そして、ノード1それぞれについて被災確率情報を参照し、所定の被災確率以上のノード1(被災して障害が発生する確率の高いノード)を、無効ノードとして決定する。無効ノード設定部12は、無効ノードとして決定したノード1について、無効ノード情報300(図6参照)の無効フラグを「ON」にする。   Returning to FIG. 3, the invalid node setting unit 12 acquires disaster probability information for determining whether each node 1 configuring the distributed processing system 1000 is a low-reliability node or a high-reliability node. Then, the disaster probability information for each node 1 is referred to, and a node 1 (a node having a high probability of occurrence of a failure due to the disaster) having a predetermined disaster probability or higher is determined as an invalid node. The invalid node setting unit 12 sets the invalid flag of the invalid node information 300 (see FIG. 6) to “ON” for the node 1 determined as the invalid node.

なお、この被災確率情報は、例えば、上記の非特許文献2に記載の技術により実現される。非特許文献2に記載の技術では、災害(地震等)の発生位置と、ネットワーク上の各装置の位置関係に基づき被災確率を算出する。本実施形態に係る特権ノードの無効ノード設定部12は、分散処理システム1000を構成する各ノード1の被災確率情報を、例えばネットワーク管理装置(図示省略)等を介して外部装置から取得する。   In addition, this damage probability information is implement | achieved by the technique of said nonpatent literature 2, for example. In the technology described in Non-Patent Document 2, the probability of damage is calculated based on the occurrence position of a disaster (earthquake or the like) and the positional relationship of each device on the network. The invalid node setting unit 12 of the privileged node according to the present embodiment acquires disaster probability information of each node 1 configuring the distributed processing system 1000 from an external device via, for example, a network management device (not shown).

図6は、本実施形態に係る無効ノード情報300のデータ構成例を示す図である。
図6に示すように、無効ノード情報300には、ノード識別子301に対応付けて、そのノード1が無効ノードか否かを示す無効フラグ302が格納される。このノード識別子301は、図4のノード識別子101および図5のノード識別子201と同様の情報である。無効フラグ302は、ノード識別子301で示されるノード1が、無効ノードか否かを示すフラグである。例えば、ノード識別子301が「C」のノード1(ノード「C」)は、無効フラグ302が「ON」であるため、ノード「C」が無効ノードであることを示している。なお、無効ノードとは、上記のように、原本データの配置先として設定しないノードを意味する。また、無効ノード以外のノード、つまり、無効フラグ302が「OFF」のノードを高信頼のノードとする。
FIG. 6 is a diagram illustrating a data configuration example of the invalid node information 300 according to the present embodiment.
As shown in FIG. 6, the invalid node information 300 stores an invalid flag 302 indicating whether or not the node 1 is an invalid node in association with the node identifier 301. This node identifier 301 is the same information as the node identifier 101 of FIG. 4 and the node identifier 201 of FIG. The invalid flag 302 is a flag indicating whether or not the node 1 indicated by the node identifier 301 is an invalid node. For example, the node 1 with the node identifier 301 “C” (node “C”) indicates that the node “C” is an invalid node because the invalid flag 302 is “ON”. The invalid node means a node that is not set as the original data placement destination as described above. A node other than an invalid node, that is, a node whose invalid flag 302 is “OFF” is set as a highly reliable node.

分散処理システム1000内の特権ノードの無効ノード設定部12は、外部から被災確率情報を受信し、無効ノードに該当するか否かを判定した上で、無効ノード情報300を更新するとともに、各ノード1に対して、最新の無効ノード情報300を送信する。これにより、各ノード1の無効ノード設定部12が、自身の記憶部30に記憶された無効ノード情報300を常に最新の状態に更新して保持する。このようにすることにより、分散処理システム1000内の各ノード1には、同一の無効ノード情報300が保持される。   The invalid node setting unit 12 of the privileged node in the distributed processing system 1000 receives the disaster probability information from the outside, determines whether or not it corresponds to the invalid node, updates the invalid node information 300, and 1, the latest invalid node information 300 is transmitted. Thereby, the invalid node setting unit 12 of each node 1 always updates and holds the invalid node information 300 stored in its own storage unit 30 in the latest state. In this way, the same invalid node information 300 is held in each node 1 in the distributed processing system 1000.

図3に戻り、振り分け部13は、ロードバランサ3(図1)等を介してクライアント2から受信したメッセージ内の情報(「振り分けキー」)をもとに「hash(key)」を算出し、振り分けID情報200(図5)を参照して、そのメッセージの処理を担当するノード1を抽出する。そして、振り分け部13は、その抽出したノード1について、無効ノード情報300(図6)を参照し、当該ノードが無効ノードであるか否かを確認する。振り分け部13は、当該ノードが無効ノードでなければ、その抽出したノード1のアドレス情報を、ノード識別子管理情報100(図4)を参照して取得し、その抽出したノード1へメッセージの振り分け(送信)を行う。
一方、振り分け部13は、抽出したノード1が無効ノードであれば、振り分けID情報200(図5)および無効ノード情報300(図6)を参照し、その無効ノードのID空間上で時計回りに次に位置する無効ノードではないノード(高信頼のノード)を、振り分け先のノード1として特定する。そして、振り分け部13は、特定したノード1(高信頼のノード)へメッセージの振り分け(送信)を行う。
Returning to FIG. 3, the distribution unit 13 calculates “hash (key)” based on information (“distribution key”) in the message received from the client 2 via the load balancer 3 (FIG. 1) or the like. With reference to the distribution ID information 200 (FIG. 5), the node 1 in charge of processing the message is extracted. Then, the distribution unit 13 refers to the invalid node information 300 (FIG. 6) for the extracted node 1 and confirms whether or not the node is an invalid node. If the node is not an invalid node, the distribution unit 13 acquires the address information of the extracted node 1 with reference to the node identifier management information 100 (FIG. 4), and distributes the message to the extracted node 1 ( Send).
On the other hand, if the extracted node 1 is an invalid node, the distribution unit 13 refers to the distribution ID information 200 (FIG. 5) and the invalid node information 300 (FIG. 6), and rotates clockwise on the ID space of the invalid node. The node that is not the next invalid node (highly reliable node) is identified as the node 1 that is the distribution destination. Then, the distribution unit 13 distributes (sends) the message to the identified node 1 (a highly reliable node).

信号処理部14は、自身のノード1が担当するデータに関するメッセージの信号処理を実行する。このメッセージにより信号処理部14が実行する処理は、例えば、データの登録、更新、検索、削除等である。また、信号処理部14は、データの登録や更新等のメッセージを受信した場合に、振り分けID情報200を参照し、冗長度に応じて、自身のノード1からID空間上で時計回りに次のノードというようにして、データの複製を行うノード(複製ノード)を決定する(冗長度が「3」の場合は、2つの複製ノードを決定する。)。そして、信号処理部14は、決定した複製ノードに対して、原本データを複製した複製データの送信(レプリケーション)を実行する。
この信号処理部14は、信号処理後に送付するメッセージに、例えば、SIP(Session Initiation Protocol)においては「Call-id」をもとに算出したハッシュ値を振り分けキーとして埋め込む(SIPにおいては、例えばTo/FromヘッダのTagに記載する。)ようにしてもよい。これにより、振り分け部13がそのメッセージの後続呼を受信した場合に、振り分けキーとして埋め込まれたハッシュ値を用いて、ノード識別子管理情報100(図4)を参照し、その後続呼を担当するノード1を特定することができる。
The signal processing unit 14 performs signal processing of messages related to data handled by its own node 1. The processing executed by the signal processing unit 14 in response to this message is, for example, data registration, update, search, or deletion. In addition, when the signal processing unit 14 receives a message such as data registration or update, the signal processing unit 14 refers to the distribution ID information 200, and in the clockwise direction from the own node 1 in the ID space according to the redundancy. As a node, a node (duplicate node) that replicates data is determined (when the redundancy is “3”, two replica nodes are determined). Then, the signal processing unit 14 performs transmission (replication) of duplicate data obtained by duplicating the original data to the determined duplicate node.
The signal processing unit 14 embeds, as a distribution key, a hash value calculated based on “Call-id” in SIP (Session Initiation Protocol), for example, in a message sent after signal processing (for example, in To, for example, To (It is described in Tag of / From header.) As a result, when the distribution unit 13 receives the subsequent call of the message, the node in charge of the subsequent call is referred to the node identifier management information 100 (FIG. 4) using the hash value embedded as the distribution key. 1 can be specified.

原本データ移管部15は、自身が特権ノードである場合には、無効ノード設定部12が、外部から被災確率情報を受信し、無効ノード情報300(図6)を更新した際に、または、自身が特権ノードではない場合は、最新の無効ノード情報300を受信し、自身の記憶部30に記憶された無効ノード情報300を更新した際に、次の処理を行う。
原本データ移管部15は、無効ノード情報300(図6)において、自身の無効フラグ302が、「OFF」から「ON」に変更されたことを確認した場合には、自身が記憶する原本データについてレプリケーションを実行した上で、当該原本データを削除する処理を行う。つまり、ノード1は、原本データを削除する前に、原本データと複製データとの同期をとるためのレプリケーションを実行し、複製データを最新の状態にする。一方、ノード1は、自身が無効ノードとなった場合には、原本データの処理を行わない。よって、無効ノードとなったノード1は、当該原本データを保持する必要がないため削除する。
When the original data transfer unit 15 is a privileged node, when the invalid node setting unit 12 receives the disaster probability information from the outside and updates the invalid node information 300 (FIG. 6), Is not a privileged node, when the latest invalid node information 300 is received and the invalid node information 300 stored in its own storage unit 30 is updated, the following processing is performed.
When the original data transfer unit 15 confirms that the invalid flag 302 of the invalid node information 300 (FIG. 6) is changed from “OFF” to “ON”, the original data transfer unit 15 stores the original data stored by itself. After executing replication, the original data is deleted. In other words, before deleting the original data, the node 1 executes replication for synchronizing the original data and the duplicated data to bring the duplicated data to the latest state. On the other hand, when the node 1 becomes an invalid node, the original data is not processed. Therefore, the node 1 which has become an invalid node is deleted because it is not necessary to hold the original data.

原本データ移管部15は、無効ノード情報300(図6)において、自身の一つ上の行(レコード)、つまり、ID空間上で反時計回りに隣接する、直近の高信頼のノード1の無効フラグ302を監視し、そのノードの無効フラグ302が「OFF」から「ON」になった場合に、自身が当該ノード1の担当領域について、原本データを処理するノードになったと認識し、自身が記憶部30に格納する複製データを原本データに昇格させる。そして、その原本データの複製データを送信するレプリケーションを実行する。具体的には、原本データ移管部15は、冗長度に応じて、自身のノード1からID空間上で時計回りに次のノードというようにして、その原本データの複製を行うノード(複製ノード)を決定する(冗長度が「3」の場合は、2つの複製ノードを決定する。)。そして、原本データ移管部15は、決定した複製ノードに対して、原本データを複製した複製データの送信(レプリケーション)を実行する。   In the invalid node information 300 (FIG. 6), the original data transfer unit 15 invalidates the most recent reliable node 1 that is adjacent to the row (record), that is, the counter space in the counterclockwise direction in the ID space. The flag 302 is monitored, and when the invalid flag 302 of the node is changed from “OFF” to “ON”, the node 302 recognizes that the node 1 is the node that processes the original data for the area in charge of the node 1. The replicated data stored in the storage unit 30 is promoted to original data. Then, replication for transmitting duplicate data of the original data is executed. Specifically, the original data transfer unit 15 copies the original data from its own node 1 to the next node in the clockwise direction in the ID space according to the redundancy (replication node). (If the redundancy is “3”, two replication nodes are determined.) Then, the original data transfer unit 15 performs transmission (replication) of the duplicate data obtained by duplicating the original data to the determined duplicate node.

このようにすることにより、原本データ移管部15は、分散処理システム1000に予め設定されている冗長度を超えた複製データを、余分に記憶しておくことをなくした上で、低信頼と判定されたノード1から、高信頼のノード1に原本データを移管させることができる。   By doing so, the original data transfer unit 15 determines that the reliability is low after eliminating duplicate data exceeding the redundancy set in the distributed processing system 1000 in advance. The original data can be transferred from the node 1 to the highly reliable node 1.

<処理の流れ>
次に、本実施形態に係るノード1が実行する、メッセージ処理の流れについて説明する。なお、ここでは、ノード1が、新規データを登録する処理を例に説明する。また、各ノード1のノード識別子管理部11により、ノード識別子管理情報100および振り分けID情報200についての最新の情報が各ノード1の記憶部30に格納されているものとする。
図7は、本実施形態に係るノード1が実行するメッセージ処理の流れを示すフローチャートである。
<Process flow>
Next, the flow of message processing executed by the node 1 according to this embodiment will be described. Here, a description will be given of an example of a process in which the node 1 registers new data. In addition, it is assumed that the latest information about the node identifier management information 100 and the distribution ID information 200 is stored in the storage unit 30 of each node 1 by the node identifier management unit 11 of each node 1.
FIG. 7 is a flowchart showing the flow of message processing executed by the node 1 according to this embodiment.

まず、特権ノードのノード1は、メッセージ処理を実行するに際して、各ノード1の被災確率情報を常に最新の情報に更新しておく。詳細には、次の処理を実行する。
特権ノードのノード1(無効ノード設定部12)は、ネットワーク管理装置(図示省略)等から、分散処理システム1000内の各ノード1の被災確率情報を受信する(ステップS10)。
First, the node 1 of the privileged node always updates the disaster probability information of each node 1 to the latest information when executing message processing. Specifically, the following processing is executed.
The privileged node 1 (invalid node setting unit 12) receives the disaster probability information of each node 1 in the distributed processing system 1000 from a network management device (not shown) or the like (step S10).

そして、無効ノード設定部12は、ノード1それぞれについての被災確率情報を参照し、所定の被災確率以上のノード1を、無効ノードとして決定する。無効ノード設定部12は、無効ノードとして決定したノード1について、無効ノード情報300(図6)を参照し、無効フラグを「ON」に設定することにより、無効ノード情報300を更新する(ステップS11)。   Then, the invalid node setting unit 12 refers to the disaster probability information for each node 1 and determines a node 1 having a predetermined disaster probability or higher as an invalid node. The invalid node setting unit 12 refers to the invalid node information 300 (FIG. 6) for the node 1 determined as an invalid node, and updates the invalid node information 300 by setting the invalid flag to “ON” (step S11). ).

続いて、無効ノード設定部12は、無効ノード情報300の更新情報を生成し、分散処理システム1000内の各ノード1に送信する(ステップS12)。なお、ここで、更新情報には、無効ノード情報300内のデータすべてを送信してもよいし、現時点で各ノード1が記憶している無効ノード情報300との差分を更新情報として送信してもよい。   Subsequently, the invalid node setting unit 12 generates update information of the invalid node information 300 and transmits it to each node 1 in the distributed processing system 1000 (step S12). Here, all the data in the invalid node information 300 may be transmitted as the update information, or the difference from the invalid node information 300 stored in each node 1 at present is transmitted as the update information. Also good.

次に、各ノード1の無効ノード設定部12は、受信した更新情報(無効ノード情報300)を用いて、自身の記憶部30に記憶されている無効ノード情報300を更新する(ステップS13)。
ステップS10〜S13の処理を所定の時間間隔で繰り返し、各ノード1には常に最新の無効ノード情報300を格納させておく。
Next, the invalid node setting unit 12 of each node 1 updates the invalid node information 300 stored in its own storage unit 30 using the received update information (invalid node information 300) (step S13).
The processes in steps S10 to S13 are repeated at predetermined time intervals, and the latest invalid node information 300 is always stored in each node 1.

ここで、分散処理システム1000(図1参照)のいずれかのノード1が、クライアント2からのメッセージ(新規データ登録)を受信する(ステップS14)。   Here, any node 1 of the distributed processing system 1000 (see FIG. 1) receives a message (new data registration) from the client 2 (step S14).

メッセージを受信したノード1の振り分け部13は、振り分けID情報200(図5)および無効ノード情報300(図6)を参照し、振り分け先となるノード1を特定し、メッセージを送信する(ステップS15)。
具体的には、メッセージを受信したノード1の振り分け部13は、受信したメッセージ内の情報(「振り分けキー」)をもとに「hash(key)」を算出し、振り分けID情報200を参照して、そのメッセージの処理を担当するノード1を抽出する。そして、振り分け部13は、その抽出したノード1について、無効ノード情報300を参照し、当該ノードが無効ノードであるか否かを確認する。振り分け部13は、当該ノードが無効ノードでなければ、その抽出したノード1を、メッセージの処理を担当するノードとして特定する。一方、振り分け部13は、抽出したノード1が無効ノードであれば、その無効ノードのID空間上で時計回りに次に位置する無効ノードではないノード(高信頼のノード)を、振り分けID情報200および無効ノード情報300を参照して抽出し、その抽出したノードを、メッセージの処理を担当するノード1として特定する。
そして、振り分け部13は、特定したノード1にメッセージを送信する。なお、振り分け部13は、自身のノード1をメッセージの処理を担当するノードとして特定する場合もある。
The distribution unit 13 of the node 1 that has received the message refers to the distribution ID information 200 (FIG. 5) and the invalid node information 300 (FIG. 6), identifies the node 1 that is the distribution destination, and transmits the message (step S15). ).
Specifically, the distribution unit 13 of the node 1 that has received the message calculates “hash (key)” based on the information (“distribution key”) in the received message, and refers to the distribution ID information 200. Thus, the node 1 in charge of processing the message is extracted. Then, the distribution unit 13 refers to the invalid node information 300 for the extracted node 1 and confirms whether the node is an invalid node. If the node is not an invalid node, the distribution unit 13 identifies the extracted node 1 as a node in charge of message processing. On the other hand, if the extracted node 1 is an invalid node, the sorting unit 13 assigns a node that is not the next invalid node (highly reliable node) in the clockwise direction on the ID space of the invalid node to the sorting ID information 200. The invalid node information 300 is extracted with reference to the node, and the extracted node is identified as the node 1 in charge of processing the message.
Then, the distribution unit 13 transmits a message to the identified node 1. The distribution unit 13 may specify its own node 1 as a node in charge of message processing.

振り分け先として特定されたノード1は、メッセージを受信すると、信号処理部14が、そのメッセージに付されたデータを原本データとして、自身の記憶部30に記憶する(ステップS16)。
また、信号処理部14は、振り分けID情報200(図5)を参照し、冗長度に応じて、自身のノード1からID空間上で時計回りに次のノードというようにして、原本データの複製(複製データ)の配置先となるノード(複製ノード)を決定し、その複製データの送信(レプリケーション)を実行する(ステップS17)。そして、メッセージ処理(新規データの登録処理)を終了する。
When the node 1 specified as the distribution destination receives the message, the signal processing unit 14 stores the data attached to the message as original data in its own storage unit 30 (step S16).
Further, the signal processing unit 14 refers to the distribution ID information 200 (FIG. 5), and copies the original data in the clockwise direction from its own node 1 to the next node in the ID space according to the redundancy. A node (replication node) that is the destination of (replication data) is determined, and transmission (replication) of the replication data is executed (step S17). Then, the message processing (new data registration processing) is terminated.

このようにすることにより、本実施形態に係るノードおよびデータ配置方法によれば、一度、低信頼のノードに原本データを配置した後に、高信頼のノードへ原本データを移管する処理を不要にすることができるとともに、この原本データの移管に伴う、不要なレプリケーションを実行しないようにすることができる。   In this way, according to the node and data arrangement method according to the present embodiment, once the original data is arranged in the low-reliability node, the process of transferring the original data to the high-reliability node becomes unnecessary. In addition, unnecessary replication associated with the transfer of original data can be prevented.

(本実施形態の変形例)
次に本実施形態の変形例に係るノード1a(図9参照)について説明する。
本実施形態の変形例に係るノード1aは、分散処理システム1000の各ノード1aの負荷を分散するように、つまり、特定のノード1aに負荷が偏らないように、リバランシングを実行する際に、不要なレプリケーションが発生しないようにすることを特徴とする。
(Modification of this embodiment)
Next, a node 1a (see FIG. 9) according to a modification of the present embodiment will be described.
When executing rebalancing so that the node 1a according to the modification of the present embodiment distributes the load of each node 1a of the distributed processing system 1000, that is, the load is not biased to a specific node 1a. It is characterized by preventing unnecessary replication from occurring.

図8は、本実施形態に係るノード1(図3参照)において、リバランシングを行う場合の課題を説明するための図である。
ここでは、図8(a)に示すように、低信頼のノード「C」が無効ノードとして設定されているとする。そして、そのノード「C」が本来担当すべきID空間上の領域に配置されている原本データ「G」について、本実施形態においては、無効ノードであるノード「C」ではなく、ID空間上で時計回りに次に位置する無効ノードないノード(高信頼ノード)であるノード「D」が担当している。よって、ノード「D」により、複製ノード「g」が、ID空間上で時計回りに次のノードであるノード「E」と、さらにその次のノードであるノード「A」に配置されている。また、ID空間上において、原本データ「G」が、高信頼のノード「A」の担当領域に配置され、その複製データ「g」が、ID空間上で時計回りに次のノードであるノード「B」と、さらにその次のノードである低信頼のノード「C」に配置されているとする。
FIG. 8 is a diagram for explaining a problem when rebalancing is performed in the node 1 (see FIG. 3) according to the present embodiment.
Here, it is assumed that the low-reliability node “C” is set as an invalid node as shown in FIG. In the present embodiment, the original data “G 2 ” arranged in the area on the ID space that the node “C” should be responsible for is not the node “C” that is an invalid node but the ID data on the ID space. The node “D”, which is the next node (highly reliable node) that is located next in the clockwise direction, is in charge. Therefore, the node “D” causes the duplicate node “g 2 ” to be placed in the node “E” that is the next node in the clockwise direction in the ID space, and further to the node “A” that is the next node. . Also, in the ID space, the original data “G 3 ” is arranged in the area in charge of the highly reliable node “A”, and the duplicate data “g 3 ” is the next node in the clockwise direction in the ID space. It is assumed that the node “B” and the next node “C”, which is the next node, are arranged.

この状態において、図8(a)に示すように、無効ノードであるノード「C」の担当領域に、新たなノード「F」が、負荷低減等のリバランシングのために増設されることを想定する。ここで、ノード「C」は、無効ノードであるため、原本データは保持していないが、複製データ「g」は記憶している。新たなノード「F」が、無効ノードであるノード「C」の担当領域に配置されると、図8(b)に示すように、冗長度を保つため、ノード「A」は、新たなノード「F」を自身の原本データの複製を配置する複製ノードとして決定する。そして、ノード「A」は、ノード「F」に対し原本データ「G」の複製データ「g」を送信するレプリケーションを実行する。また、無効ノードであるノード「C」は、不要となった複製データ「g」を削除する処理を行う必要がある。 In this state, as shown in FIG. 8A, it is assumed that a new node “F” is added to the area in charge of the invalid node “C” for rebalancing such as load reduction. To do. Here, since the node “C” is an invalid node, the original data is not retained, but the duplicate data “g 3 ” is stored. When the new node “F” is arranged in the area in charge of the node “C” which is an invalid node, as shown in FIG. 8B, the node “A” “F” is determined as a replication node in which a copy of its own original data is placed. Then, the node “A” performs replication to transmit the duplicate data “g 3 ” of the original data “G 3 ” to the node “F”. In addition, the node “C” which is an invalid node needs to perform a process of deleting the unnecessary duplicated data “g 3 ”.

このように、本実施形態に係るノード1を含む分散処理システム1000において、無効ノードの担当領域に、新たなノード1を増設するようなリバランシングを行おうとすると、必ず新たなノード1へのレプリケーションが発生してしまう。
本実施形態の変形例に係るノード1aでは、上記したレプリケーションの発生を不要とする。以下、具体的に説明する。
As described above, in the distributed processing system 1000 including the node 1 according to the present embodiment, if rebalancing is performed such that a new node 1 is added to the area in charge of the invalid node, the replication to the new node 1 is always performed. Will occur.
The node 1a according to the modification of the present embodiment makes it unnecessary to generate the replication described above. This will be specifically described below.

図9は、本実施形態の変形例に係るノード1aの構成例を示す機能ブロック図である。図3に示した、本実施形態に係るノード1と、同様の機能については、同一の名称と符号を付し、説明を省略する。
図9に示すように、本実施形態の変形例に係るノード1aは、図3に示すノード1の各構成に加えて、制御部10にリバランシング部16を備える。
FIG. 9 is a functional block diagram illustrating a configuration example of the node 1a according to the modification of the present embodiment. The same functions and functions as those of the node 1 according to the present embodiment shown in FIG.
As illustrated in FIG. 9, the node 1 a according to the modification of the present embodiment includes a rebalancing unit 16 in the control unit 10 in addition to the components of the node 1 illustrated in FIG. 3.

リバランシング部16は、分散処理システム1000を構成するノード1の増設や減設を行ったり、ID空間上の各ノード1のノードIDを変更したりすることにより、各ノード1の負荷の偏りの低減(リバランシング)を実現する。
このリバランシング部16は、リバランシング処理を実行する際に、レプリケーションの発生を不要とするため、以下の所定のロジックに基づき、リバランシングを実行する。
The rebalancing unit 16 increases or decreases the number of nodes 1 constituting the distributed processing system 1000, or changes the node ID of each node 1 in the ID space, thereby reducing the load bias of each node 1. Realize reduction (rebalancing).
The rebalancing unit 16 executes rebalancing based on the following predetermined logic in order to eliminate the need for replication when executing the rebalancing process.

〔リバランシングの所定のロジック〕
・無効ノードと高信頼ノードの位置関係を保つ。
図8において説明したように、無効ノードの担当領域に、新たに増設するノードを配置すると、無効ノードと高信頼ノードとのID空間上での位置関係が変更され、必ずレプリケーションが発生してしまう。そのため、リバランシング部16は、リバランシングを実行する際に、無効ノードの担当領域には増設ノードを配置せず、無効ノードと高信頼ノードとのID空間上での位置関係を保つようにする。
具体的には、リバランシング部16は、無効ノードのID空間上のID値を、反時計回りで最初のノード1の次のID値、つまり、反時計回りで最初のノード1のID値に「+1」としたID値に設定する。なお、このID値の設定は、特権ノードのノード識別子管理部11を介して、振り分けID情報200(図5参照)を更新することにより行われる。
このようにすることにより、無効ノードの担当領域に、新たなノードが配置されることを防いだ上で、無効ノードには、複製ノードを配置することが可能となる。
[Predetermined logic for rebalancing]
-Maintain the positional relationship between invalid nodes and highly reliable nodes.
As described in FIG. 8, if a node to be newly added is arranged in the area in charge of the invalid node, the positional relationship in the ID space between the invalid node and the high-reliability node is changed, and replication always occurs. . Therefore, when the rebalancing unit 16 executes rebalancing, an additional node is not arranged in the area in charge of the invalid node, and the positional relationship between the invalid node and the highly reliable node is maintained in the ID space. .
Specifically, the rebalancing unit 16 sets the ID value in the ID space of the invalid node to the next ID value of the first node 1 counterclockwise, that is, the ID value of the first node 1 counterclockwise. The ID value is set to “+1”. This ID value is set by updating the distribution ID information 200 (see FIG. 5) via the node identifier management unit 11 of the privileged node.
In this way, it is possible to place a duplicate node in the invalid node while preventing a new node from being placed in the area in charge of the invalid node.

図10は、本実施形態の変形例に係るノード1aがリバランシング(ノード増設)を行う場合の処理を説明するための図である。
本実施形態の変形例に係るノード1aでは、図10(a)に示すように、無効ノード設定部12により、低信頼のノード「C」が無効ノードとして設定されるとともに、リバランシング部16により、ノード「C」のID空間上の位置が、反時計回りで最初のノード1であるノード「B」の次の値(「+1」した値)として設定される。
また、原本データ「G」が、高信頼のノード「D」に配置され、その複製データ「g」が、ID空間上で時計回りに次のノードであるノード「E」と、さらにその次のノードであるノード「A」に配置されている。さらに、原本データ「G」が、高信頼のノード「A」に配置され、その複製データ「g」が、ID空間上で時計回りに次のノードであるノード「B」と、さらにその次のノードである無効ノードのノード「C」に配置されているとする。
FIG. 10 is a diagram for explaining processing when the node 1a according to the modification of the present embodiment performs rebalancing (node addition).
In the node 1a according to the modified example of the present embodiment, as illustrated in FIG. 10A, the invalid node setting unit 12 sets the low-reliability node “C” as an invalid node, and the rebalancing unit 16 The position of the node “C” in the ID space is set as the next value (the value obtained by adding “+1”) to the node “B” which is the first node 1 in the counterclockwise direction.
Further, the original data “G 2 ” is arranged in the highly reliable node “D”, and the duplicate data “g 2 ” is the node “E” which is the next node in the clockwise direction in the ID space, and further its It is arranged at node “A” which is the next node. Further, the original data “G 3 ” is arranged in the highly reliable node “A”, and the duplicate data “g 3 ” is the node “B” which is the next node in the clockwise direction in the ID space. It is assumed that it is arranged at the node “C” of the invalid node that is the next node.

この場合において、リバランシング部16は、無効ノードと高信頼ノードの位置関係を保った上で、増設するノード(ここでは、ノード「F」)のID空間上での位置を決定する。例えば、リバランシング部16は、図10(a)に示すように、ノード「D」の担当領域において、原本「G」からみてID空間上で反時計回り側の位置に、増設ノードを配置する位置を決定する。 In this case, the rebalancing unit 16 determines the position in the ID space of the node to be added (here, the node “F”) while maintaining the positional relationship between the invalid node and the highly reliable node. For example, as shown in FIG. 10A, the rebalancing unit 16 arranges an additional node at a position counterclockwise in the ID space as viewed from the original “G 2 ” in the area in charge of the node “D”. Decide where to go.

このリバランシング部16の処理により、リバランシングの際のノードの増設位置が、無効ノードと高信頼ノードの位置関係を保つような位置に決定されると、図10(b)に示すように、新たなノード「F」がID空間上に配置されてもレプリケーションを発生しないようにすることができる。なお、図10においては、無効ノード「C」のIDの値を、反時計回りで最初のノード1であるノード「B」の次の値(「+1」した値)に設定しているため、常に無効ノードと高信頼ノードの位置関係を保つことが可能となる。   When the rebalancing unit 16 determines that the node addition position at the time of rebalancing is a position that maintains the positional relationship between the invalid node and the highly reliable node, as shown in FIG. Replication can be prevented from occurring even when a new node “F” is arranged in the ID space. In FIG. 10, the ID value of the invalid node “C” is set to the next value (the value obtained by adding “+1”) to the node “B” that is the first node 1 in the counterclockwise direction. It is possible to always maintain the positional relationship between the invalid node and the highly reliable node.

以上より、本実施形態の変形例に係るノード1aによれば、分散処理システム1000においてリバランシングを実行する際のレプリケーションを抑制することが可能となる。   As described above, according to the node 1a according to the modification of the present embodiment, it is possible to suppress replication when rebalancing is executed in the distributed processing system 1000.

なお、本実施形態の変形例に係るノード1aのリバランシング部16は、各ノード1のノード負荷(例えば、CPU使用率、メモリ使用量、処理データの個数等)を監視し、各ノード1の負荷を平均した平均負荷値に基づき、各ノード1の負荷の偏りを低減するようなリバランシング処理を実行する場合においては、原本データの処理を行わない無効ノードを、平均負荷値の計算対象から外すようにする。このようにすることにより、原本データを実際に処理する高信頼ノードそれぞれについての負荷の偏りをより正確に低減することが可能となる。   Note that the rebalancing unit 16 of the node 1a according to the modification of the present embodiment monitors the node load (for example, the CPU usage rate, the memory usage amount, the number of processing data, etc.) of each node 1, and When executing a rebalancing process that reduces the load bias of each node 1 based on the average load value obtained by averaging the loads, invalid nodes that do not process the original data are excluded from the calculation target of the average load value. Try to remove. By doing so, it is possible to more accurately reduce the load bias for each of the highly reliable nodes that actually process the original data.

1,1a ノード
2 クライアント
3 ロードバランサ
10 制御部
11 ノード識別子管理部
12 無効ノード設定部
13 振り分け部
14 信号処理部
15 原本データ移管部
16 リバランシング部
20 入出力部
30 記憶部
100 ノード識別子管理情報
200 振り分けID情報
300 無効ノード情報
400 データ
1000 分散処理システム
DESCRIPTION OF SYMBOLS 1,1a Node 2 Client 3 Load balancer 10 Control part 11 Node identifier management part 12 Invalid node setting part 13 Distribution part 14 Signal processing part 15 Original data transfer part 16 Rebalancing part 20 Input / output part 30 Storage part 100 Node identifier management information 200 Distribution ID information 300 Invalid node information 400 Data 1000 Distributed processing system

Claims (4)

クラスタを構成する複数のノードそれぞれに、コンシステント・ハッシュ法によりメッセージを振り分けて処理させる分散処理システムの前記ノードであって、
前記コンシステント・ハッシュ法のID空間には、前記ノードと前記ノードが処理するメッセージの処理結果としてのデータとの双方が割り当てられており、
前記ID空間上に割り当てられた各前記ノードのID、および、当該ID空間上における各前記ノードの担当領域を示す振り分けID情報、並びに、前記ノードそれぞれについて、原本データを配置しないノードであることを示す無効ノードであるか否かの情報が格納される無効ノード情報、が記憶される記憶部と、
前記ノード毎の被災により障害が発生する確率を示す被災確率情報を受信し、前記被災確率情報の値が所定の閾値以上のノードを前記無効ノードに決定し、前記無効ノード情報に記憶する無効ノード設定部と、
受信したメッセージ内の情報である振り分けキーを用いて前記データがID空間上で割り当てられるIDを算出し、前記振り分けID情報を参照して当該データを担当するノードを抽出し、前記抽出したノードが、前記無効ノードとして設定されているか否かを、前記無効ノード情報を参照して判定し、前記判定したノードが無効ノードとして設定されている場合に、前記振り分けID情報および前記無効ノード情報を参照し、前記ID空間上における所定回りで前記無効ノードとして設定されていない次のノードを、前記メッセージを処理するノードとして特定し、前記特定したノードに前記メッセージを送信する振り分け部と、
前記送信されたメッセージを受信し、当該メッセージに基づく処理結果を原本データとして自身の前記記憶部に記憶するとともに、前記原本データの複製を記憶させる複製ノードを、前記振り分けID情報を参照し、前記ID空間上における所定回りで冗長度に応じた数だけ前記無効ノードとして設定されているノードも含めて決定し、前記決定した複製ノードに、前記原本データの複製データを送信することにより記憶させる信号処理部と、
を備えることを特徴とするノード。
A node of a distributed processing system that distributes and processes messages by a consistent hash method to each of a plurality of nodes constituting a cluster,
In the ID space of the consistent hash method, both the node and data as a processing result of a message processed by the node are allocated,
ID of each said node assigned on the ID space, and, the distribution ID information indicating the coverage area of each of said nodes on the ID space, and, for the node respectively, that is a node that does not place the original data A storage unit for storing invalid node information in which information indicating whether or not the node is an invalid node is stored;
An invalid node that receives disaster probability information indicating a probability that a failure will occur due to a disaster for each node, determines a node having a value of the disaster probability information equal to or greater than a predetermined threshold as the invalid node, and stores the invalid node information in the invalid node information A setting section;
An ID assigned to the data in the ID space is calculated using a distribution key that is information in the received message , a node in charge of the data is extracted with reference to the distribution ID information, and the extracted node is Whether the node is set as an invalid node is determined by referring to the invalid node information, and when the determined node is set as an invalid node, the distribution ID information and the invalid node information are referred to. A distribution unit that identifies a next node that is not set as the invalid node around the ID space as a node that processes the message, and transmits the message to the identified node;
The received message is received, the processing result based on the message is stored as original data in the storage unit of itself, a replication node that stores a copy of the original data is referred to the distribution ID information, and A signal that is determined by including a number of nodes set as invalid nodes in a predetermined number of times in the ID space, and that is stored in the determined replica node by transmitting replica data of the original data A processing unit;
A node characterized by comprising:
前記クラスタに新たなノードを増設する際に、前記無効ノードのID空間上のIDを、当該無効ノードのIDにおける前記所定回りとは反対回りで最初に位置するノードのIDに1を加算した値に設定しておくとともに、増設するノードのID空間上のIDを、前記無効ノードのIDに1を加算した値から、ID空間上で前記無効ノードの所定回りの次に位置するノードが担当する原本データのIDよりも前記所定回りとは反対回りに位置する値までのいずれかに設定するリバランシング部を、さらに備えること、
を特徴とする請求項1に記載のノード。
When adding a new node to the cluster, a value obtained by adding 1 in the ID of the invalid node ID space to the ID of the node located first in the opposite direction to the predetermined rotation in the invalid node ID In addition, an ID in the ID space of the node to be added is assigned to a node located next to the invalid node in the ID space from a value obtained by adding 1 to the ID of the invalid node. A rebalancing unit that sets any value up to a value located opposite to the predetermined rotation from the original data ID ;
The node according to claim 1.
クラスタを構成する複数のノードそれぞれに、コンシステント・ハッシュ法によりメッセージを振り分けて処理させる分散処理システムの前記ノードによるデータ配置方法であって、
前記コンシステント・ハッシュ法のID空間には、前記ノードと前記ノードが処理するメッセージの処理結果としてのデータとの双方が割り当てられており、
前記ノードは、
前記ID空間上に割り当てられた各前記ノードのID、および、当該ID空間上における各前記ノードの担当領域を示す振り分けID情報、並びに、前記ノードそれぞれについて、原本データを配置しないノードであることを示す無効ノードであるか否かの情報が格納される無効ノード情報、が記憶される記憶部を備えており、
前記ノード毎の被災により障害が発生する確率を示す被災確率情報を受信し、前記被災確率情報の値が所定の閾値以上のノードを前記無効ノードに決定し、前記無効ノード情報に記憶するステップと、
受信したメッセージ内の情報である振り分けキーを用いて前記データがID空間上で割り当てられるIDを算出し、前記振り分けID情報を参照して当該データを担当するノードを抽出し、前記抽出したノードが、前記無効ノードとして設定されているか否かを、前記無効ノード情報を参照して判定し、前記判定したノードが無効ノードとして設定されている場合に、前記振り分けID情報および前記無効ノード情報を参照し、前記ID空間上における所定回りで前記無効ノードとして設定されていない次のノードを、前記メッセージを処理するノードとして特定し、前記特定したノードに前記メッセージを送信するステップと、
前記送信されたメッセージを受信し、当該メッセージに基づく処理結果を原本データとして自身の前記記憶部に記憶するとともに、前記原本データの複製を記憶させる複製ノードを、前記振り分けID情報を参照し、前記ID空間上における所定回りで冗長度に応じた数だけ前記無効ノードとして設定されているノードも含めて決定し、前記決定した複製ノードに、前記原本データの複製データを送信することにより記憶させるステップと、
を実行することを特徴とするデータ配置方法。
A data arrangement method by the nodes of the distributed processing system in which messages are distributed and processed by a consistent hash method to each of a plurality of nodes constituting a cluster,
In the ID space of the consistent hash method, both the node and data as a processing result of a message processed by the node are allocated,
The node is
ID of each said node assigned on the ID space, and, the distribution ID information indicating the coverage area of each of said nodes on the ID space, and, for the node respectively, that is a node that does not place the original data A storage unit for storing invalid node information in which information indicating whether or not the node is an invalid node is stored;
Receiving disaster probability information indicating a probability that a failure will occur due to a disaster for each node, determining a node having a value of the disaster probability information equal to or greater than a predetermined threshold as the invalid node, and storing the invalid node information in the invalid node information; ,
An ID assigned to the data in the ID space is calculated using a distribution key that is information in the received message , a node in charge of the data is extracted with reference to the distribution ID information, and the extracted node is Whether the node is set as an invalid node is determined by referring to the invalid node information, and when the determined node is set as an invalid node, the distribution ID information and the invalid node information are referred to. Identifying a next node that is not set as the invalid node around the ID space as a node that processes the message, and transmitting the message to the identified node;
The received message is received, the processing result based on the message is stored as original data in the storage unit of itself, a replication node that stores a copy of the original data is referred to the distribution ID information, and A step of determining a number of nodes corresponding to the degree of redundancy around the ID space, including nodes set as the invalid nodes, and storing the copy data of the original data by transmitting the copy data to the determined copy node When,
The data arrangement method characterized by performing.
前記ノードは、
前記クラスタに新たなノードを増設する際に、前記無効ノードのID空間上のIDを、当該無効ノードのIDにおける前記所定回りとは反対回りで最初に位置するノードのIDに1を加算した値に設定しておくとともに、増設するノードのID空間上のIDを、前記無効ノードのIDに1を加算した値から、ID空間上で前記無効ノードの所定回りの次に位置するノードが担当する原本データのIDよりも前記所定回りとは反対回りに位置する値までのいずれかに設定するステップを、
さらに実行することを特徴とする請求項3に記載のデータ配置方法。
The node is
When adding a new node to the cluster, a value obtained by adding 1 in the ID of the invalid node ID space to the ID of the node located first in the opposite direction to the predetermined rotation in the invalid node ID In addition, an ID in the ID space of the node to be added is assigned to a node located next to the invalid node in the ID space from a value obtained by adding 1 to the ID of the invalid node. The step of setting to any value up to a value located in the direction opposite to the predetermined direction rather than the ID of the original data;
Data arrangement method according to claim 3, characterized by further executed.
JP2016051977A 2016-03-16 2016-03-16 Node and data placement method Active JP6473425B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016051977A JP6473425B2 (en) 2016-03-16 2016-03-16 Node and data placement method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016051977A JP6473425B2 (en) 2016-03-16 2016-03-16 Node and data placement method

Publications (2)

Publication Number Publication Date
JP2017167783A JP2017167783A (en) 2017-09-21
JP6473425B2 true JP6473425B2 (en) 2019-02-20

Family

ID=59909031

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016051977A Active JP6473425B2 (en) 2016-03-16 2016-03-16 Node and data placement method

Country Status (1)

Country Link
JP (1) JP6473425B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008112358A (en) * 2006-10-31 2008-05-15 Hitachi Software Eng Co Ltd Backup system
JP6059558B2 (en) * 2013-02-26 2017-01-11 日本電信電話株式会社 Load balancing judgment system
JP6085266B2 (en) * 2014-02-27 2017-02-22 日本電信電話株式会社 Server resource management device

Also Published As

Publication number Publication date
JP2017167783A (en) 2017-09-21

Similar Documents

Publication Publication Date Title
US10122595B2 (en) System and method for supporting service level quorum in a data grid cluster
US9317384B2 (en) Cache data processing using cache cluster with configurable modes
JP7270755B2 (en) Metadata routing in distributed systems
CN111274310A (en) Distributed data caching method and system
CN105493474A (en) System and method for supporting partition level journaling for synchronizing data in a distributed data grid
JP6582445B2 (en) Thin client system, connection management device, virtual machine operating device, method, and program
CN113010496A (en) Data migration method, device, equipment and storage medium
JP5969315B2 (en) Data migration processing system and data migration processing method
JP2016177324A (en) Information processing apparatus, information processing system, information processing method, and program
Shahapure et al. Replication: A technique for scalability in cloud computing
JP6473425B2 (en) Node and data placement method
US20240176762A1 (en) Geographically dispersed hybrid cloud cluster
JP5658621B2 (en) Signal distribution duplication destination determination system, signal distribution duplication destination determination method and program
JP6322161B2 (en) Node, data relief method and program
JP6506156B2 (en) Node and gravitation suppression method
JP5815000B2 (en) Nodes and programs
JP5711771B2 (en) Node leave processing system
JP5711772B2 (en) Cluster system
CN110221916B (en) Memory capacity expansion method and device, configuration center system and electronic equipment
JP2017220846A (en) Maintenance reduction system, node and maintenance reduction method
JP5890452B2 (en) Cluster system server device and program thereof
JP6127005B2 (en) Cluster system server device and program
CA2838104C (en) Hybrid task assignment for web crawling
CN110958182A (en) Communication method and related equipment
JP2019021022A (en) Load distribution device, load distribution method, and load distribution program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190109

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190125

R150 Certificate of patent or registration of utility model

Ref document number: 6473425

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150