JP6259408B2 - Distributed processing system - Google Patents
Distributed processing system Download PDFInfo
- Publication number
- JP6259408B2 JP6259408B2 JP2015036156A JP2015036156A JP6259408B2 JP 6259408 B2 JP6259408 B2 JP 6259408B2 JP 2015036156 A JP2015036156 A JP 2015036156A JP 2015036156 A JP2015036156 A JP 2015036156A JP 6259408 B2 JP6259408 B2 JP 6259408B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- node
- load
- normal
- processing system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Description
本発明は、ネットワーク上に分散配置されるノードをクラスタ化してデータを格納する分散処理システムに関する。 The present invention relates to 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 responsible for storing that data changes for many data. It becomes necessary to do.
そこで、ノードの追加・離脱に伴い担当するノードが変更になるデータ数を約1/Nに抑える方法として、コンシステント・ハッシュ(Consistent Hashing)法を用いたデータ管理手法がある。このコンシステント・ハッシュ法を用いたデータ管理手法では、ノードとデータの双方にID(IDentifier)を割り当てる。そして、データのIDから閉じたID空間を時計回りに辿った場合に最初に当たったノードをそのデータの担当とする。ノードに対するIDの与え方の例としては、IPアドレスをハッシュ関数にかけた値(hash(IPアドレス))が挙げられる。 Therefore, there is a data management method using a consistent hashing method as a method of suppressing the number of data that the node in charge changes with the addition / detachment of a node to about 1 / N. 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を持たせる手法が用いられている(非特許文献1参照)。各ノードが複数の仮想IDを持つことで、仮想ID毎の担当領域は異なっていても、大数の法則に従いノードの担当領域は平均化される。 In a distributed processing system with a cluster configuration, when the processing performance of each node is equal, the amount of data handled by each node is made equal, that is, the distance between nodes in the ID space of the consistent hash method (hereinafter, “ It is desirable to equalize the “areas in charge of nodes”. In order to realize this point, a method of virtually giving a plurality of IDs to each node is used (see Non-Patent Document 1). By having each node have a plurality of virtual IDs, even if the assigned areas for each virtual ID are different, the assigned areas of the nodes are averaged according to the law of large numbers.
上記したコンシステント・ハッシュ法や仮想ID等の従来技術により、ノード間で担当するデータを均一化し負荷を分散させることが可能である。しかしながら、特定ノードにおいて、アクセス頻度や処理時間の長さ等でノードに高い負荷を与えるデータ(以下、「高負荷データ」と称する。)が発生した場合、その高負荷データを担当したノードにおいて負荷が急激に高まり、当該ノードで処理される他のデータの信号処理に影響を与える問題がある(図1参照)。このような問題に対して、高負荷データ自体を削除若しくは通信を規制する等して負荷を低減し、対応することも考えられるが、高負荷データ自体は正常なデータであり、処理を継続したいことも考えられるため、データの削除や通信規制以外の対応手法が求められる。 With the conventional techniques such as the consistent hash method and the virtual ID described above, it is possible to make the data handled between the nodes uniform and distribute the load. However, when data that gives a high load to the node due to access frequency, length of processing time, etc. (hereinafter referred to as “high load data”) occurs in a specific node, the load at the node in charge of the high load data Is abruptly increased, which affects the signal processing of other data processed by the node (see FIG. 1). To deal with such problems, it may be possible to reduce the load by deleting the high-load data itself or restricting communication, etc., but the high-load data itself is normal data and you want to continue processing. For this reason, measures other than data deletion and communication restrictions are required.
従来、このようなコンシステント・ハッシュ法の分散処理システムにおける負荷増大に対する対策としては、新たなノードを増設し、システムをスケールアウトさせて、高負荷となったノードの担当するデータ数を縮小させて負荷を低減する手法がとられる。 Conventionally, as a countermeasure against the load increase in such a distributed processing system of the consistent hash method, a new node is added, the system is scaled out, and the number of data assigned to the high load node is reduced. To reduce the load.
しかしながら、高負荷データのアクセス頻度やリソース消費量のレベルによっては、当該データの信号処理のみで担当ノードのリソースの大部分を消費してしまい、スケールアウトを実行しても、当該データを担当するノードにおいて期待するレベルにまで負荷を低減することができず、他のデータの信号処理に影響を及ぼす問題が解決されない問題がある。また、高負荷データの移動先サーバでの負荷増大と、それに対応するための増設とが、繰り返し発生することにより、非効率なスケールアウトが頻発する問題もある。 However, depending on the access frequency of high-load data and the level of resource consumption, most of the resources of the node in charge are consumed only by signal processing of the data, and the data is handled even if scale-out is executed. There is a problem that the load cannot be reduced to an expected level at the node, and the problem affecting the signal processing of other data is not solved. In addition, there is a problem that inefficient scale-out frequently occurs due to the repeated increase in the load on the destination server for high-load data and the increase in response to the increase.
このような背景を鑑みて本発明がなされたのであり、本発明は、高負荷データの発生時に、高負荷データの処理を継続しつつ、他のデータの信号処理への影響の発生や、非効率なスケールアウトの頻発を抑止することができる、分散処理システムを提供することを課題とする。 In view of such a background, the present invention has been made, and the present invention continues the processing of high-load data when high-load data is generated, and causes the influence of other data on signal processing, It is an object of the present invention to provide a distributed processing system that can suppress frequent frequent scale-out.
前記した課題を解決するため、請求項1に記載の発明は、クライアントからのメッセージを受信して信号処理しサービスを提供する分散処理システムであって、前記分散処理システムは、前記メッセージを受信して信号処理する第1のノードを複数有する通常データ分散処理システムと、前記第1のノードと比較して処理性能の高い第2のノードを複数有する高負荷データ分散処理システムとから構成され、前記通常データ分散処理システムの前記第1のノードそれぞれ、および、前記高負荷データ分散処理システムの第2のノードそれぞれが、前記第1のノードそれぞれの識別子と、信号処理を実行するデータに付された振り分けIDとを対応付けた情報である第1の振り分けID情報、および、前記第1のノードそれぞれの識別子と、前記第1のノードのアドレスとを対応付けた情報である第1のノード識別子管理情報、並びに、前記第2のノードそれぞれの識別子と、信号処理を実行するデータに付された前記振り分けIDとを対応付けた情報である第2の振り分けID情報、および、前記第2のノードそれぞれの識別子と、前記第2のノードのアドレスとを対応付けた情報である第2のノード識別子管理情報、を記憶する記憶部、を備えており、前記通常データ分散処理システムの前記第1のノードそれぞれが、前記メッセージを受信し、当該メッセージに付与された、前記振り分けID、並びに、前記通常データ分散処理システムおよび前記高負荷データ分散処理システムのいずれかの識別子を示す担当分散システム識別子、を取得し、前記第1の振り分けID情報または前記第2の振り分けID情報を参照して信号処理するノードを決定し、決定したノードに当該メッセージを振り分ける振り分け部と、振り分けられた前記メッセージを受信し、前記第1のノード自身が担当するデータに関するメッセージの信号処理を実行するとともに、前記データの信号処理の処理負荷を計測し、第1のデータ処理負荷計測情報として自身の前記記憶部に記憶する第1の信号処理部と、所定の第1の期間ごとに、前記第1のデータ処理負荷計測情報を参照し、予め設定された高負荷データを抽出するロジックに基づき前記信号処理の処理負荷が高いデータを前記高負荷データとして抽出し、前記抽出した高負荷データの前記振り分けIDを取得し、前記第2の振り分けID情報および前記第2のノード識別子管理情報を参照して信号処理する第2のノードを決定して送信する高負荷データ抽出部と、を備え、前記高負荷データ分散処理システムの前記第2のノードそれぞれが、前記振り分け部と、振り分けられた前記メッセージを受信し、前記第2のノード自身が担当するデータに関するメッセージの信号処理を実行するとともに、前記データの信号処理の処理負荷を計測し、第2のデータ処理負荷計測情報として自身の前記記憶部に記憶する第2の信号処理部と、所定の第2の期間ごとに、前記第2のデータ処理負荷計測情報を参照し、予め設定された正常負荷データを抽出するロジックに基づき前記信号処理の処理負荷が低減したデータを前記正常負荷データとして抽出し、前記抽出した正常負荷データの前記振り分けIDを取得し、前記第1の振り分けID情報および前記第1のノード識別子管理情報を参照して信号処理する第1のノードを決定して送信する正常負荷データ抽出部と、を備えることを特徴とする分散処理システムとした。
In order to solve the above-described problem, the invention according to
このようにすることで、分散処理システムにおいて、通常データ分散処理システムの第1のノードが、アクセス頻度が多い、処理時間の長い等によりノードに高い負荷を与えるデータ(高負荷データ)を抽出し、処理能力の高い高負荷データを専用に処理する高負荷データ分散処理システムにそのデータ(高負荷データ)を移管することができる。
よって、移管先の高負荷データ分散処理システムにおいて、高負荷データの処理を継続しつつ、通常データ分散処理システムに高負荷データが存在していた際に問題となる、その他のデータへの信号処理への影響の発生や、非効率なスケールアウトの頻発を抑止することができる。
In this way, in the distributed processing system, the first node of the normal data distributed processing system extracts data (high load data) that imposes a high load on the node due to frequent access, long processing time, etc. The data (high load data) can be transferred to a high load data distributed processing system that exclusively processes high load data with high processing capacity.
Therefore, in the high-load data distributed processing system at the transfer destination, signal processing for other data that becomes a problem when high-load data exists in the normal data distributed processing system while continuing high-load data processing It is possible to suppress the occurrence of effects on the environment and the frequent occurrence of inefficient scale-out.
請求項2に記載の発明は、前記第1のノードの前記高負荷データ抽出部が、前記予め設定された高負荷データを抽出するロジックとして、前記所定の第1の期間内において、前記第1のデータ処理負荷計測情報として計測された、前記データの信号処理に伴うロック取得期間、または、前記データのデータサイズと、前記所定の第1の期間内における全ての前記データから算出した、平均ロック取得期間、または、平均データサイズとをそれぞれ比較して、その乖離幅が所定の閾値を超えている場合に、前記データを高負荷データとして抽出することが設定されていること、を特徴とする請求項1に記載の分散処理システムとした。
According to a second aspect of the present invention, in the predetermined first period, the first high-load data extraction unit of the first node extracts the first high-load data as the logic. The average lock calculated from the lock acquisition period accompanying the signal processing of the data, or the data size of the data, and all the data in the predetermined first period, measured as the data processing load measurement information of It is set to extract the data as high load data when the acquisition period or the average data size is respectively compared and the deviation width exceeds a predetermined threshold value The distributed processing system according to
このようにすることで、通常データ分散処理システムの第1のノードは、高負荷データを抽出する際に、ロック取得期間またはデータサイズの計測情報に基づき、全データの平均値と比較して、高負荷データを抽出することができる。 By doing in this way, when the first node of the normal data distributed processing system extracts high load data, based on the measurement information of the lock acquisition period or the data size, compared with the average value of all data, High load data can be extracted.
請求項3に記載の発明は、前記第1のノードの前記高負荷データ抽出部が、前記平均ロック取得期間、または、平均データサイズを含む前記第1のノードのノード負荷計測情報を、前記第2のノードそれぞれに送信し、前記第2のノードの前記正常負荷データ抽出部が、前記予め設定された正常負荷データを抽出するロジックとして、前記所定の第2の期間内において、前記第2のデータ処理負荷計測情報として計測された、前記データの信号処理に伴うロック取得期間、または、前記データのデータサイズと、前記データの前記振り分けIDを用いて前記第1の振り分けID情報を参照し、当該データの返還先としての前記第1のノードを特定し、前記特定された第1のノードから送信された前記ノード負荷計測情報に含まれる、前記平均ロック取得期間、または、前記平均データサイズとをそれぞれ比較し、前記第2のデータ処理負荷計測情報として計測されたデータの値が、各々の平均以下であった場合に、当該データを正常負荷データとして抽出することが設定されていること、を特徴とする請求項2に記載の分散処理システムとした。
According to a third aspect of the present invention, the high-load data extraction unit of the first node obtains the node load measurement information of the first node including the average lock acquisition period or the average data size. Each of the two nodes, and the normal load data extraction unit of the second node extracts the second normal load data as the logic for extracting the preset normal load data within the predetermined second period. The lock acquisition period, which is measured as data processing load measurement information, associated with signal processing of the data, or the data size of the data and the distribution ID of the data is referred to the first distribution ID information, The first node as a return destination of the data is specified, and the average included in the node load measurement information transmitted from the specified first node When the data value measured as the second data processing load measurement information is equal to or less than the respective average, the normal data load is obtained. The distributed processing system according to
このようにすることで、高負荷データ分散処理システムの第2のノードは、正常負荷データの返還先となる第1のノードのノード負荷計測情報(平均ロック取得期間、平均データサイズ)に基づき負荷が低減したことを判定し、正常負荷データを抽出することができる。 By doing so, the second node of the high load data distributed processing system loads based on the node load measurement information (average lock acquisition period, average data size) of the first node to which the normal load data is returned. Therefore, it is possible to extract normal load data.
請求項4に記載の発明は、前記第1のノードの前記振り分け部が、前記高負荷データとして抽出され前記第2のノードに送信されたデータの信号処理を要求するメッセージを受信した際に、前記メッセージに付与された前記担当分散システム識別子を、前記高負荷データ分散処理システムを示す値に変更すること、を特徴とする請求項1ないし請求項3のいずれか1項に記載の分散処理システムとした。
In the invention according to
このようにすることで、高負荷データの移管後に、移管元の通常データ分散処理システムの第1のノードにおいて、当該データに対する最初のアクセスがあった場合に、そのメッセージに付与された担当分散処理システム識別子を移管先に書き換える。よって、その後のメッセージについては、高負荷データ分散処理システムに振り分けられるようにすることができる。 In this way, after the high-load data is transferred, if the first access to the data is made at the first node of the normal data distributed processing system that is the transfer source, the distributed processing assigned to the message is performed. Rewrite the system identifier to the transfer destination. Therefore, subsequent messages can be distributed to the high-load data distributed processing system.
請求項5に記載の発明は、前記第2のノードの前記振り分け部が、前記正常負荷データとして抽出され前記第1のノードに送信されたデータの信号処理を要求するメッセージを受信した際に、前記メッセージに付与された前記担当分散システム識別子を、前記通常データ分散処理システムを示す値に変更すること、を特徴とする請求項1ないし請求項4のいずれか1項に記載の分散処理システムとした。
In the invention according to claim 5, when the distribution unit of the second node receives a message requesting signal processing of data extracted as the normal load data and transmitted to the first node, The distributed processing system according to any one of
このようにすることで、正常負荷データの返還後に、返還元の高負荷データ分散処理システムの第2のノードにおいて、当該データに対する最初のアクセスがあった場合に、そのメッセージに付与された担当分散処理システム識別子を返還先に書き換える。よって、その後のメッセージについては、通常データ分散処理システムに振り分けられるようにすることができる。 In this way, after the normal load data is returned, if the second node of the high load data distribution processing system for return reduction has the first access to the data, the assigned distribution assigned to the message is distributed. Rewrite the processing system identifier to the return destination. Therefore, subsequent messages can be distributed to the normal data distribution processing system.
請求項6に記載の発明は、前記第2のノードの前記正常負荷データ抽出部が、前記正常負荷データとして抽出されたデータを、前記通常データ分散処理システムの前記第1のノードに送信する際に、当該データに、高負荷データとして抽出されたことを示す高負荷データ判定回数を、1カウントアップして送信しており、前記正常負荷データを抽出したときに、前記高負荷データ判定回数が所定の閾値を超えていた場合、当該データを削除すること、を特徴とする請求項1ないし請求項5のいずれか1項に記載の分散処理システムとした。
According to a sixth aspect of the present invention, when the normal load data extraction unit of the second node transmits the data extracted as the normal load data to the first node of the normal data distributed processing system. In addition, the number of times of high load data determination indicating that the data is extracted as high load data is transmitted to the data by counting up, and when the normal load data is extracted, the number of times of high load data determination is The distributed processing system according to any one of
このようにすることで、高負荷データ分散処理システムの第2のノードは、高負荷データとして移管されている期間が長く、高負荷データ判定回数が所定の閾値を超えたデータについて削除する処理を実行することができる。よって、第2のノードの処理負荷を低減させることができる。 By doing so, the second node of the high load data distributed processing system performs a process of deleting data that has been transferred as high load data for a long time and the high load data determination count has exceeded a predetermined threshold. Can be executed. Therefore, the processing load on the second node can be reduced.
本発明によれば、高負荷データの発生時に、高負荷データの処理を継続しつつ、他のデータの信号処理への影響の発生や、非効率なスケールアウトの頻発を抑止する、分散処理システムを提供することができる。 According to the present invention, when high load data is generated, a distributed processing system that suppresses occurrence of influence on signal processing of other data and frequent occurrence of inefficient scale-out while continuing high load data processing. Can be provided.
次に、本発明を実施するための形態(以下、「本実施形態」と称する。)における分散処理システム1000について説明する。
図2は、本実施形態に係る分散処理システム1000の全体構成を示す図である。
Next, a distributed processing system 1000 in a mode for carrying out the present invention (hereinafter referred to as “the present embodiment”) will be described.
FIG. 2 is a diagram showing an overall configuration of the distributed processing system 1000 according to the present embodiment.
この分散処理システム1000は、複数のノード1から構成される。各ノード1は、コンピュータなどの物理装置や仮想マシンなどの論理装置である。ロードバランサ3は、クライアント2からのメッセージを受信し、単純なラウンドロビン等により振り分けて各ノード1に送信する。そして、ノード1の振り分け部12は、クライアント2からのメッセージを、例えば、コンシステント・ハッシュ法等に基づき、メッセージを担当するノード1に振り分ける。メッセージを担当するノード1では、信号処理部13において、信号処理を行い、クライアント2にサービスを提供する。
This distributed processing system 1000 includes a plurality of
なお、ロードバランサ3が存在せず、クライアント2から任意のノード1(振り分け部12)にメッセージを送信することも可能である。また、振り分け部12と信号処理部13とは、同じノード1上に同時に存在してもよいし、別々のノード1上に存在してもよい。
本実施形態の以下の説明では、分散処理システム1000のデータ管理手法として、ノード1の増減時の影響が少ない、コンシステント・ハッシュ法によるデータ管理手法を例として説明する。ただし、コンシステント・ハッシュ法に限定されるものではない。
Note that the
In the following description of the present embodiment, as a data management method of the distributed processing system 1000, a data management method based on the consistent hash method that is less affected when the number of
<処理概要>
また、本実施形態に係る分散処理システム1000の複数のノード1は、少なくとも2つのクラスタ(通常データ分散処理システム100Aと高負荷データ分散処理システム100B)で構成される。そして、通常データ分散処理システム100Aの各ノード1A(第1のノード)において高負荷データを抽出し、処理能力の高い高負荷データを専門に処理する高負荷データ分散処理システム100Bのノード1B(第2のノード)に抽出した高負荷データを移管する。また、移管先の高負荷データ分散処理システム100Bの各ノード1Bにおいて、高負荷データの負荷が正常値に低減したのを確認して、そのデータを元の通常データ分散処理システム100Aのノード1Aに返還することを特徴とする。
図3は、本実施形態に係る分散処理システム1000を構成する、通常データ分散処理システム100Aと高負荷データ分散処理システム100Bとを示し、分散処理システム1000の全体の処理の流れを説明するための図である。
<Process overview>
Further, the plurality of
FIG. 3 shows a normal data distributed processing system 100A and a high-load data distributed processing system 100B constituting the distributed processing system 1000 according to the present embodiment, for explaining the overall processing flow of the distributed processing system 1000. FIG.
まず、ステップS1において、通常データ分散処理システム100Aの各ノード1Aは、信号処理時においてアクセスされたデータの処理負荷を計測し記憶する。そして、各ノード1Aは、所定の時間間隔毎に、自身のノード負荷(以下、「リソース負荷」と称する場合がある。)を計測するともに、自身のノードAが処理したデータ全体の平均のデータ処理負荷を計算し記憶する。
First, in step S1, each
次に、通常データ分散処理システム100Aの各ノード1Aは、ステップS1で収集したリソース負荷やデータ処理負荷に基づき、高負荷データを抽出する(ステップS2)。そして、通常データ分散処理システム100Aの各ノード1Aは、抽出した高負荷データを、高負荷データ分散処理システム100Bに移管する(ステップS3)。
Next, each
高負荷データ分散処理システム100Bの各ノード1Bは、高負荷データの処理を継続しつつ、信号処理時においてアクセスされたデータ(高負荷データ)の処理負荷(データ処理負荷)を計測し記憶する(ステップS4)。
Each
高負荷データ分散処理システム100Bの各ノード1Bは、収集したデータ処理負荷に基づき、負荷が正常値に低減されたデータを正常負荷データとして抽出する(ステップS5)。そして、高負荷データ分散処理システム100Bの各ノード1Bは、抽出した正常負荷データを、通常データ分散処理システム100Aに返還する(ステップS6)。
Each
このようにすることで、分散処理システム1000において、通常データ分散処理システム100Aの各ノード1Aが、アクセス頻度が多い、処理時間の長い等によりノードに高い負荷を与えるデータ(高負荷データ)を抽出し、処理能力の高い高負荷データを専用に処理する分散処理システム(高負荷データ分散処理システム100B)にそのデータ(高負荷データ)を移管することができる。これにより、移管先の高負荷データ分散処理システム100Bにおいて、高負荷データの処理を継続しつつ、通常データ分散処理システム100Aに高負荷データが存在していた際に問題となる、その他のデータへの信号処理への影響の発生や、非効率なスケールアウトの頻発を抑止することができる。
In this way, in the distributed processing system 1000, each
また、移管先の高負荷データ分散処理システム100Bにおいて、高負荷データの負荷が正常値に低減したことを確認して、データを元の通常データ分散処理システム100Aに返還することにより、高負荷データを専用に処理するノード1Bの処理負荷を必要以上に高めることなくシステムの運用を継続することができる。
Further, in the high-load data distributed processing system 100B at the transfer destination, it is confirmed that the load of the high-load data has been reduced to a normal value, and the data is returned to the original normal data distributed processing system 100A. The system operation can be continued without unnecessarily increasing the processing load of the
なお、通常データ分散処理システム100Aと高負荷データ分散処理システム100Bとのシステム間においては、同じID空間(コンシステント・ハッシュのID空間)を用いてデータの移管(返還)を行う。これにより、互いの分散処理システムにおいてノード1(1A,1B)の増減設が発生し、各々の分散処理システムにおいてデータ移管(返還)時の担当ノードが変化しているようなケースでも、新しい担当ノードを特定し、データの移管(返還)を実行することが容易に可能となる。なお、詳細は後記する。 Note that, between the normal data distributed processing system 100A and the high load data distributed processing system 100B, data is transferred (returned) using the same ID space (consistent hash ID space). As a result, even if the nodes 1 (1A, 1B) increase or decrease in each other's distributed processing systems, and the node in charge at the time of data transfer (return) changes in each distributed processing system, a new charge It becomes possible to easily identify a node and execute data transfer (return). Details will be described later.
<各分散処理システムの装置の構成>
次に、本実施形態に係る分散処理システム1000を構成する、通常データ分散処理システム100Aおよび高負荷データ分散処理システム100Bを構成するノード1(1A,1B)について、具体的に説明する。ここでは、通常データ分散処理システム100Aを構成するノード1Aと高負荷データ分散処理システム100Bを構成するノード1Bとを分けて説明する。
<Configuration of each distributed processing system>
Next, the node 1 (1A, 1B) constituting the normal data distributed processing system 100A and the high-load data distributed processing system 100B constituting the distributed processing system 1000 according to the present embodiment will be specifically described. Here, the
≪通常データ分散処理システム100Aのノード1A≫
図4は、本実施形態に係る通常データ分散処理システム100Aを構成するノード1A(第1のノード)の機能ブロック図である。
<<
FIG. 4 is a functional block diagram of the
ノード1Aは、図2に示したように、ロードバランサ3と通信可能に接続されるともに、クラスタを構成する自身以外の他のノード1(他のノード1Aおよび高負荷データ分散処理システム100Bの各ノード1Bを含む)との通信可能に接続される。また、このノード1Aは、ロードバランサ3を介してクライアント2からメッセージを受け取ると、そのメッセージを、担当するノード1A(自身を含む)に振り分け、そのメッセージの信号処理を実行する。さらに、ノード1Aは、高負荷データを抽出し、高負荷データ分散処理システム100Bのノード1Bに移管する処理を実行する。
このノード1Aは、図4に示すように、制御部10Aと、入出力部20と、記憶部30Aとを含んで構成される。
As shown in FIG. 2, the
As shown in FIG. 4, the
入出力部20は、ロードバランサ3や、自身以外の他のノード1(1A,1B)との間の情報の入出力を行う。また、この入出力部20は、通信回線を介して情報の送受信を行う通信インタフェースと、不図示のキーボード等の入力手段やモニタ等の出力手段等との間で入出力を行う入出力インタフェースとから構成される。
The input /
記憶部30Aは、ハードディスクやフラッシュメモリ等の記憶手段からなる。この記憶部30Aには、通常データ分散処理システム100Aを構成するノード1Aへのメッセージ(データ)の振り分け処理に用いる、ノード識別子管理テーブル(通常)200A(第1のノード識別子管理情報)および振り分けIDテーブル(通常)250A(第1の振り分けID情報)と、高負荷データ分散処理システム100Bを構成するノード1Bへのメッセージ(データ)の振り分け処理に用いる、ノード識別子管理テーブル(高負荷)200B(第2のノード識別子管理情報)および振り分けIDテーブル(高負荷)250B(第2の振り分けID情報)とを備える。さらに、記憶部30Aには、メッセージの処理対象となるデータ300、ノード1A自身のデータの処理負荷を計測した情報であるデータ処理負荷計測情報(通常)400A(第1のデータ処理負荷計測情報)、および、ノード1A自身のノード負荷(リソース負荷)を計測した情報であるノード負荷計測情報(通常)500Aが記憶される。なお、この記憶部30Aに記憶される各情報についての詳細は後記する。
The
制御部10Aは、ノード1A全体の制御を司り、ノード識別子管理部11、振り分け部12、信号処理部13(第1の信号処理部)、ノード負荷計測部14および高負荷データ抽出部15を含んで構成される。なお、この制御部10Aは、例えば、記憶部30Aに格納されたプログラムをCPU(Central Processing Unit)(図示省略)がRAM(Random Access Memory)(図示省略)に展開し実行することで実現される。
The
ノード識別子管理部11は、分散処理システム(ここでは、通常データ分散処理システム100A)上のノード情報の管理および各ノード1(1A,1B)が担当するID空間を管理する。
具体的には、ノード識別子管理部11は、自身が属する分散処理システム(ここでは、通常データ分散処理システム100A)へのノードの追加や離脱が発生した場合に、その分散処理システムを構成するノード1(1A)の識別情報を更新し、ノード識別子管理テーブル200(ここでは、ノード識別子管理テーブル(通常)200A)として管理する。
The node
Specifically, the node
図5(a)は、本実施形態に係るノード識別子管理テーブル(通常)200A(第1のノード識別子管理情報)のデータ構成例を示す図である。
図5(a)に示すように、ノード識別子管理テーブル(通常)200Aには、通常データ分散処理システム100Aを構成する各ノード1Aのノード識別子201とアドレス202(例えば、IPアドレス)とが対応付けられて格納される。
FIG. 5A is a diagram showing a data configuration example of a node identifier management table (normal) 200A (first node identifier management information) according to the present embodiment.
As shown in FIG. 5A, the node identifier management table (normal) 200A is associated with the
このノード識別子201は、例えば、当該分散処理システム内において予め設定される特定のノード(例えば、ノード識別子201の昇順に設定)のノード識別子管理部11で付与され、当該分散処理システム内(ここでは、通常データ分散処理システム100A内)の各ノード1(1A)に配信される。なお、このノード識別子201は、コンシステント・ハッシュのID空間において仮想IDを用いる場合、仮想ID毎に付与される。
The
また、ノード識別子管理部11は、ノード識別子管理テーブル200(ここでは、ノード識別子管理テーブル(通常)200A)の更新(ノード1Aの増減設)に合わせて、ノード1(1A)の担当するID空間情報を更新し、振り分けIDテーブル250(ここでは、振り分けIDテーブル(通常)250A)として管理する。
The node
図5(b)は、本実施形態に係る振り分けIDテーブル(通常)250Aのデータ構成例を示す図である。
図5(b)に示すように、振り分けIDテーブル(通常)250には、ノード識別子201に対応付けて、そのノード1(1A)が担当するID空間(担当領域)203が格納される。図5(b)に示す例では、ID空間の全ID数が「0」〜「999」の「1000」であり、例えば、ノード識別子201が「Node1」のノード1Aが、担当するID空間として「0〜199(D=200)」について担当することを示している。なお、「D=200」は、担当するID空間の数(データ数に対応する。)を意味する。
FIG. 5B is a diagram illustrating a data configuration example of the distribution ID table (normal) 250A according to the present embodiment.
As shown in FIG. 5B, the distribution ID table (ordinary) 250 stores an ID space (area in charge) 203 that the node 1 (1A) is responsible for in association with the
ノード識別子管理部11は、自身が属する通常データ分散処理システム100A内の各ノード1Aに共通して保持される、ノード識別子管理テーブル(通常)200Aと振り分けIDテーブル(通常)250Aを管理するとともに、データの移管先となる分散処理システム(高負荷データ分散処理システム100B)内の各ノード1Bに共通して保持される、ノード識別子管理テーブル(高負荷)200Bおよび振り分けIDテーブル(高負荷)250B(図4参照)を、高負荷データ分散処理システム100B(の予め設定される特定のノード等)から取得し、常に最新の状態に更新して保持する。また、通常データ分散処理システム100A内の特権ノードは、高負荷データ分散処理システム100B内の各ノード1Bに対して、最新のノード識別子管理テーブル(通常)200Aおよび振り分けIDテーブル(通常)250Aを送信しておく。このようにすることにより、各分散処理システム内の各ノード1(1A,1B)には、常に、最新の状態の、ノード識別子管理テーブル(通常)200Aおよび振り分けIDテーブル(通常)250A、ノード識別子管理テーブル(高負荷)200Bおよび振り分けIDテーブル(高負荷)250Bが保持されるようにする。
The node
図4に戻り、振り分け部12は、ロードバランサ3等を介してクライアント2から発呼されるメッセージ内の情報(後記する「振り分けキー」)をもとに、信号処理を担当するノード1を特定し、当該ノード1へのメッセージの振り分けを行う。
メッセージは、新規呼(例えば、SIPにおいては、Initial-INVITE)と後続呼(例えば、SIPにおいてはBYE等)に分類でき、振り分け部12は、新規呼と後続呼で異なる処理を実行する。
Returning to FIG. 4, the
The message can be classified into a new call (for example, Initial-INVITE in SIP) and a subsequent call (for example, BYE in SIP), and the
振り分け部12は、受信したメッセージが新規呼の場合、振り分けキーを生成した上で、生成した振り分けキーに基づき、信号処理を担当するノード1(1A,1B)を特定し、当該ノードに転送する。
When the received message is a new call, the
この振り分けキーは、当該メッセージのアクセス先の担当分散処理システム(ここでは、通常データ分散処理システム100Aまたは高負荷データ分散処理システム100Bのいずれか)の識別子(以下、「担当分散システム識別子」と称する。)、ハッシュ値(振り分けID)、データ識別子から構成される。 This distribution key is an identifier (hereinafter referred to as “in-charge distributed system identifier”) of the assigned distributed processing system (in this case, either the normal data distributed processing system 100A or the high load data distributed processing system 100B) to which the message is accessed. .), A hash value (distribution ID), and a data identifier.
担当分散システム識別子には、新規呼においてデフォルトで担当する分散処理システム(ここでは、通常データ分散処理システム100A)を予め決めておき、その分散処理システムを示す担当分散システム識別子が設定される。
ハッシュ値(振り分けID)には、振り分け部12が、新規呼のヘッダ情報等から当該呼をユニークに識別可能な情報(例えば、SIPにおいてはCall−ID等)を抽出してハッシュ関数にかけ、当該呼のコンシステント・ハッシュのID空間におけるハッシュ値を算出し、設定される。
データ識別子は、信号処理部13において新規呼を処理する際に生成され、メッセージに付与される。よって、新規呼を振り分け部12が処理する際には、ブランクとなる。
In the assigned distributed system identifier, a distributed processing system (in this case, the normal data distributed processing system 100A) to be assigned by default in a new call is determined in advance, and the assigned distributed system identifier indicating the distributed processing system is set.
For the hash value (distribution ID), the
The data identifier is generated when a new call is processed in the
振り分け部12は受信したメッセージが後続呼の場合、予めクライアントにおいて振り分けキーの情報がメッセージに付与されているため(例えば、SIPにおいては、Viaヘッダ等)、その付与された振り分けキーに基づき信号処理を担当するノード1を特定し、当該ノード1に転送する。
When the received message is a subsequent call, since the distribution key information is attached to the message in advance in the client (for example, via header in SIP), the
振り分け部12は、メッセージを受信するとそのメッセージに付与された振り分けキー(担当分散システム識別子+ハッシュ値(振り分けID)+データ識別子)のうち、まず、担当分散システム識別子に基づき、担当する分散処理システム(ここでは、通常データ分散処理システム100Aか高負荷データ分散処理システム100Bのいずれか)の振り分けIDテーブル250とノード識別子管理テーブル200とを特定する。そして、振り分け部12は、その特定した振り分けIDテーブル250上の各ノード1の担当領域の情報と、ハッシュ値(振り分けID)の情報とに基づき、当該メッセージを担当するノード1を抽出する。続いて、振り分け部12は、担当するノード1のアドレスをノード識別子管理テーブル200から取得し、担当するノード1に対してそのメッセージを転送する。
Upon receiving a message, the
信号処理部13(第1の信号処理部)は、自身のノード1Aが担当するデータに関するメッセージの信号処理を実行するとともに、その信号処理においてアクセスするデータの処理負荷を計測する。
また、信号処理部13は、新規呼が担当するノード1に到着したとき、当該データのデータ識別子を決定した上で、当該データのメタデータ310を設定する。このメタデータ310は、図6(a)に示すように、記憶部30Aに記憶されるデータ300として、実際のアクセスの対象となる実データ320に対応付けて記憶される。
The signal processing unit 13 (first signal processing unit) executes signal processing of messages related to data handled by its
Further, when the
メタデータ310に設定する情報は、図6(b)に示すように、振り分けキー、データ識別子、担当分散システム識別子、データ生成時分散システム識別子、高負荷データ判定回数である。
ここで、データ生成時分散システム識別子には、メッセージが新規呼の場合に、そのメッセージの対象となるデータを最初に処理したノード1が属する分散処理システム(通常の処理では、通常データ分散処理システム100A)の識別子(担当分散システム識別子)が格納される。
高負荷データ判定回数には、メッセージの処理対象となるデータが高負荷データと判定された回数が格納される。なお、高負荷データ判定回数の詳細は後記する。
As shown in FIG. 6B, information set in the
Here, in the data generation distributed system identifier, when the message is a new call, the distributed processing system to which the
The high load data determination count stores the number of times that the data to be processed by the message is determined to be high load data. Details of the high load data determination count will be described later.
信号処理部13は、メッセージを受信し信号処理するデータについて、当該データの処理負荷(データ処理負荷)を計測する。そして、信号処理部13は、その計測結果を、データ処理負荷計測情報400(ここでは、データ処理負荷計測情報(通常)400A)として、記憶部30Aに格納する。
The
図7は、本実施形態に係るデータ処理負荷計測情報(通常)400A(第1のデータ処理負荷計測情報)のデータ構成例を示す図である。
信号処理部13は、データ処理負荷として、ロック取得時刻、ロック解放時刻、データサイズを計測し、図7(a)に示すように、データ処理負荷計測情報(通常)400Aとして、データ識別子に対応付け、ロック取得時刻、ロック解放時刻、ロック取得期間、データサイズの各値を格納する。
ここで、ロック取得時刻は、データの不整合を排除するために、他のトランザクションからの更新処理を受け付けないようにする処理(ロック)の開始時刻である。ロック解放時刻は、ロック(更新処理を受け付けない)を解除した時刻である。ロック取得期間は、ロック開始時刻からロック解放時刻までの時間を意味し、信号処理部13により算出され格納される。データサイズは、信号処理部13が処理したデータのデータ量が格納される。ここで、負荷が高いデータ程、ロック取得期間が長くなり、データサイズが大きいものとなる。
FIG. 7 is a diagram showing a data configuration example of data processing load measurement information (normal) 400A (first data processing load measurement information) according to the present embodiment.
The
Here, the lock acquisition time is a start time of processing (lock) for preventing update processing from other transactions from being accepted in order to eliminate data inconsistency. The lock release time is the time when the lock (update processing is not accepted) is released. The lock acquisition period means the time from the lock start time to the lock release time, and is calculated and stored by the
信号処理部13が収集するデータ処理負荷のパラメータは、データ処理負荷の計測が可能なパラメータであればよく、図7(a)に示すパラメータに限定されるものではない。例えば、図7(b)に示すように、ロック取得時刻、ロック解放時刻に加えて、CPUの処理時間(図7(b)においては、「CPU時間」と記載する。)、CPU使用率を計測するようにしてもよい。
なお、本実施形態においては、以降においては、図7(a)に示す、ロック取得期間を、データ処理負荷を示すパラメータとして利用する例として説明する。
The parameter of the data processing load collected by the
In the present embodiment, hereinafter, the lock acquisition period shown in FIG. 7A will be described as an example of using as a parameter indicating the data processing load.
図4に戻り、ノード負荷計測部14は、所定の周期(所定の第1の期間)で、自身のノード1Aのノード負荷(リソース負荷)を計測するとともに、当該所定の周期でのデータ処理負荷のデータ毎の平均値を算出し、ノード負荷計測情報(通常)500A(図8参照)として記憶部30Aに格納する。また、ノード負荷計測部14は、所定の周期で、生成したノード負荷計測情報(通常)500Aを、高負荷データ分散処理システム100Bの各ノード1Bに送信する。
Returning to FIG. 4, the node
図8は、本実施形態に係るノード負荷計測情報(通常)500Aのデータ構成例を示す図である。
ノード負荷計測部14は、自身のノード1AのOSのリソース情報収集コマンドを利用し、CPU使用率、メモリ使用率等のノード1Aのリソース負荷が推定可能なパラメータを計測する。
ノード負荷計測部14は、例えば、10秒間隔でリソース負荷を収集する。図8においては、周期識別番号が「1」の期間、収集開始時刻が「10:14:50」(10時14分50秒、以下の記載形式も同様)を超えた時刻から収集時刻「10:15:00」までの期間での、CPU使用率とメモリ使用率とを、リソース負荷として計測する。
また、ノード負荷計測部14は、同じ所定の周期に含まれる、データ処理負荷計測情報(通常)400Aを抽出し、各データの平均値として、平均ロック取得期間、平均アクセス頻度、平均データサイズを計算してノード負荷計測情報(通常)500Aに格納する。
FIG. 8 is a diagram illustrating a data configuration example of node load measurement information (normal) 500A according to the present embodiment.
The node
For example, the node
In addition, the node
高負荷データ抽出部15は、ノード負荷計測情報(通常)500Aに基づき、自身のノード1Aが担当するデータの中から高負荷データを抽出し、抽出した高負荷データを、高負荷データ分散処理システム100Bに移管する処理を実行する。
なお、高負荷データ抽出部15は、各周期で発生したデータ処理(データのロック取得時刻、ロック解放時刻のいずれか)が当該周期内に含まれるものの中から、処理負荷の高いデータを高負荷データとして抽出する。
The high load
The high-load
高負荷データ抽出部15が、高負荷データを抽出するための手法は、特に限定されるものではなく、例えば、以下の手法が考えられる。
(高負荷データ抽出手法の例1)
当該周期における全データのデータ処理負荷計測情報(通常)400Aについて、個々のロック取得期間、データサイズ等の値と、当該周期以前の周期のノード負荷計測情報(通常)500Aにおいて対応する、平均ロック取得期間、平均データサイズ等の値を比較し、その乖離幅(超過量)が所定の閾値を超えていた場合、そのデータを高負荷データとして抽出する。
(高負荷データ抽出手法の例2)
当該周期における全データのデータ処理負荷計測情報(通常)400Aについて、予め指定したパラメータ毎の上限値と、当該周期におけるパラメータの値を比較し、上限値を超えたパラメータが検出された場合に、そのデータを高負荷データとして抽出する。
(高負荷データ抽出手法の例3)
当該周期におけるリソース負荷(CPU使用率やメモリ使用率等)が、それ以前の周期のリソース負荷と比較し、その乖離幅(超過量)が所定の閾値を超えていた場合に、当該周期にアクセスされた全てのデータを高負荷データとみなして抽出する。
The method for the high load
(Example 1 of high-load data extraction method)
For the data processing load measurement information (normal) 400A of all data in the cycle, the average lock corresponding to the individual lock acquisition period, data size, etc., and the node load measurement information (normal) 500A of the cycle before the cycle Values such as the acquisition period and the average data size are compared, and if the deviation width (excess amount) exceeds a predetermined threshold, the data is extracted as high load data.
(Example 2 of high-load data extraction method)
For the data processing load measurement information (usually) 400A of all data in the cycle, the upper limit value for each parameter specified in advance is compared with the parameter value in the cycle, and when a parameter exceeding the upper limit value is detected, The data is extracted as high load data.
(Example 3 of high-load data extraction method)
When the resource load (CPU usage rate, memory usage rate, etc.) in the cycle is compared with the resource load of the previous cycle and the deviation (excess amount) exceeds a predetermined threshold, the cycle is accessed. All the extracted data is extracted as high load data.
高負荷データ抽出部15が比較対象とする周期やパラメータ、設定する閾値等は、システム毎に適切な設定値が異なり、また、複数の組み合わせでもよいため、特に限定するものではない。また、当該周期において、複数のアクセスがあったデータについては、高負荷データと判定されるデータと、判定されないデータとが混在するケースも考えられるが、一度でも高負荷と判定されれば、高負荷データと判定するようにしてもよいし、1つのデータに関して、高負荷データであるとした判定と、非判定との割合を勘案して、最終的に高負荷データとするか否かの判定を行うようにしてもよい。この高負荷の判定、非判定の割合についても、特に限定するものではない。
なお、以下においては、(高負荷データ判定手法の例1)を適用した場合を例に、後記する図12において詳細に説明する。
The period and parameters to be compared by the high-load
In the following, a case where (Example 1 of the high load data determination method) is applied will be described in detail with reference to FIG.
また、高負荷データ抽出部15が、抽出した高負荷データを、高負荷データ分散処理システム100Bに移管する際に実行する、移管先のノード1Bの決定処理については、図13を参照して後記する。
なお、高負荷データ抽出部15は、高負荷データを高負荷データ分散処理システム100Bに移管する際には、そのデータ(高負荷データ)のメタデータ310(図6(b)参照)の担当分散システム識別子を、図9に示すように、高負荷データ分散処理システム100Bを示す「2」に変更して、当該データを送信する。
Further, the determination process of the
When the high load data is transferred to the high load data distribution processing system 100B, the high load
このように、本実施形態に係る通常データ分散処理システム100Aの各ノード1Aは、高負荷データを抽出して、処理能力の高い高負荷データ分散処理システム100Bのノード1Bにその高負荷データを移管する。これにより、各ノード1Aにおいて、高負荷データが存在する際に問題となる、その他のデータへの信号処理への影響の発生や、非効率なスケールアウトの頻発を抑止することができる。
As described above, each
≪高負荷データ分散処理システム100Bのノード1B≫
次に、高負荷データ分散処理システム100Bのノード1B(第2のノード)について説明する。
図10は、本実施形態に係る高負荷データ分散処理システム100Bを構成するノード1Bの機能ブロック図である。なお、図4において示した通常データ分散処理システム100Aのノード1Aと、同一の機能を備える構成は、同一の符号と名称を付し、説明を省略する。
<<
Next, the
FIG. 10 is a functional block diagram of the
ノード1Bは、図2に示したように、ロードバランサ3と通信可能に接続されるともに、クラスタを構成する自身以外の他のノード1(他のノード1Bおよび通常データ分散処理システム100Aの各ノード1Aを含む)と通信可能に接続される。また、このノード1Bは、ロードバランサ3を介してクライアント2からメッセージを受け取ると、そのメッセージを、担当するノード1B(自身を含む)に振り分け、そのメッセージの信号処理を実行する。さらに、ノード1Bは、通常データ分散処理システム100Aから高負荷データの移管を受け処理を継続するとともに、当該高負荷データの負荷が低減し、所定の正常値以下となった場合に、そのデータを正常負荷データとして抽出し、通常データ分散処理システム100Aに返還する。
このノード1Bは、図10に示すように、制御部10Bと、入出力部20と記憶部30Bとを含んで構成される。
As shown in FIG. 2, the
As shown in FIG. 10, the
ここで、高負荷データ分散処理システム100Bのノード1Bの記憶部30Bには、自身が属する高負荷データ分散処理システム100Bのノード識別子管理テーブル(高負荷)200Bおよび振り分けIDテーブル(高負荷)250Bを備えるとともに、負荷が低減したデータ(正常負荷データ)の返還先となる通常データ分散処理システム100Aの、最新のノード識別子管理テーブル(通常)200Aおよび振り分けIDテーブル250Aをノード識別子管理部11が取得し、自身の記憶部30Bに記憶している。さらに、通常データ分散処理システム100Aのノード1Aそれぞれから、ノード負荷計測情報(通常)500Aを受信し、自身の記憶部30Bに記憶している。
また、高負荷データ分散処理システム100Bのノード1Bの信号処理部13(第2の信号処理部)は、自身のノード1Bが担当するデータに関するメッセージの信号処理を実行するとともに、その信号処理においてアクセスするデータの処理負荷を計測し、その計測結果をデータ処理負荷計測情報(高負荷)400B(第2のデータ処理負荷計測情報)として記憶部30Bに記憶している。
Here, the
In addition, the signal processing unit 13 (second signal processing unit) of the
正常負荷データ抽出部16は、通常データ分散処理システム100Aのノード1Aそれぞれから、ノード負荷計測情報(通常)500Aを受信し、自身の記憶部30Bに記憶しておく。
また、正常負荷データ抽出部16は、高負荷データについてのアクセスが減少する等により、ノード1に対する負荷が低減したデータを正常負荷データとして抽出する。そして、正常負荷データ抽出部16は、抽出した正常負荷データを、通常データ分散処理システム100Aに返還する処理を実行する。
The normal load
Further, the normal load
正常負荷データ抽出部16は、発生したデータ処理(データのロック取得時刻、ロック解放時刻のいずれか)が、所定の期間(所定の第2の期間)内に含まれるものの中から、処理負荷が低減したデータを正常負荷データとして抽出する。
The normal load
正常負荷データ抽出部16が、正常負荷データを抽出するための手法は、特に限定されるものではなく、例えば、以下の手法が考えられる。
(正常負荷データ抽出手法の例1)
当該所定の期間における全データのデータ処理負荷計測情報(高負荷)400Bについて、個々のロック取得期間、データサイズ等の値と、返還先となる通常データ分散処理システム100Aにおいて担当領域を同じくするノード1Aの任意の周期のノード負荷計測情報(通常)500Aに記憶された、対応する平均ロック取得期間、平均データサイズ等の値を比較する。そして、正常負荷データ抽出部16は、高負荷データ分散処理システム100Bのデータ処理負荷計測情報(高負荷)400Bが、返還先となる通常データ分散処理システム100Aの対応するパラメータの平均値以下だった場合、そのデータを正常負荷データとして抽出する。
(正常負荷データ抽出手法の例2)
当該所定の期間における全データのデータ処理負荷計測情報(高負荷)400Bについて、予め指定したパラメータ毎の正常値と比較し、正常値以下であれば、そのデータを正常負荷データとして抽出する。
The method for the normal load
(Example 1 of normal load data extraction method)
For the data processing load measurement information (high load) 400B for all data in the predetermined period, the values such as the individual lock acquisition period, data size, etc., and the same area in charge in the normal data distributed processing system 100A as the return destination The values of the corresponding average lock acquisition period, average data size, and the like stored in the node load measurement information (ordinary) 500A of an arbitrary period of 1A are compared. In the normal load
(Example 2 of normal load data extraction method)
The data processing load measurement information (high load) 400B of all data in the predetermined period is compared with a normal value for each parameter specified in advance, and if it is less than the normal value, the data is extracted as normal load data.
正常負荷データ抽出部16が比較対象とする任意の期間、返還先のノード負荷の選択周期、選択するパラメータ、正常値は、システム毎に適切な設定値が異なり、また、複数の組み合わせでもよいため、特に限定するものではない。また、所定の期間において、複数のアクセスがあったデータについては、正常負荷データと判定されるデータと、判定されないデータとが混在するケースも考えられるが、一度でも正常負荷と判定されなかったら、正常負荷と判定しないようにしてもよいし、1つのデータに関して、正常負荷データであるとした判定と、非判定との割合を勘案して、最終的に正常負荷データとするか否かの判定を行うようにしてもよい。この正常負荷の判定、非判定の割合についても、特に限定するものではない。なお、この正常負荷データの抽出処理の具体例については、図17において詳細に説明する。
Because the normal load
また、正常負荷データ抽出部16は、高負荷データとして移管されている期間が長く、当該データのメタデータの高負荷データ判定回数が多いデータ(高負荷データ判定回数が所定の閾値を超えたデータ)については、削除する等の判断を実行してもよい。
Further, the normal load
さらに、正常負荷データ抽出部16が、抽出した正常負荷データを、通常データ分散処理システム100Aに返還する際に実行する、返還先のノード1Aの決定処理については、後記する。なお、正常負荷データ抽出部16は、正常負荷データを通常データ分散処理システム100Aに返還する際には、そのデータ(正常負荷データ)のメタデータ(図12(b)参照)の担当分散システム識別子を、図18(b)に示すように、通常データ分散処理システム100Aを示す「1」に変更するとともに、メタデータの高負荷データ判定回数をカウントアップして、当該データを送信する。
Further, the determination process of the
このように、本実施形態に係る高負荷データ分散処理システム100Bの各ノード1Bは、高負荷データの負荷が正常値に低減したことを確認して、データを元の通常データ分散処理システム100Aに返還することができる。よって、高負荷データを専用に処理する高負荷データ分散処理システム100Bを構成するノード1Bの処理負荷を必要以上に高めることなくシステムの運用を継続することができる。
As described above, each
<処理の流れ>
次に、本実施形態に係る分散処理システム1000が実行する処理の流れについて説明する。なお、分散処理システム1000全体の概略の処理の流れは、図3を参照して説明したため、ここでは、通常データ分散処理システム100Aのノード1Aが実行する処理の流れと、高負荷データ分散処理システム100Bのノード1Bが実行する処理の流れについて、詳細に説明する。
<Process flow>
Next, the flow of processing executed by the distributed processing system 1000 according to this embodiment will be described. The general processing flow of the entire distributed processing system 1000 has been described with reference to FIG. 3, and here, the processing flow executed by the
≪ノード1Aの処理≫
図11は、本実施形態に係る通常データ分散処理システム100Aの各ノード1Aが実行する処理の流れを示すフローチャートである。
なお、通常データ分散処理システム100Aのノード1A(ノード識別子管理部11)は、自身が属する通常データ分散処理システム100Aのノード識別子管理テーブル(通常)200Aおよび振り分けIDテーブル250Aに加えて、高負荷データ分散処理システム100Bの最新の、ノード識別子管理テーブル(高負荷)200Bおよび振り分けIDテーブル250Bを取得し記憶部30Aに記憶しているものとする。
また、ノード1A(信号処理部13)は、自身のノード1Aが担当するデータに関するメッセージの信号処理を実行した際に、当該データの処理負荷を計測し、その計測結果をデータ処理負荷計測情報(通常)400A(図6(a)参照)として記憶部30Aに記憶しているものとする。
<< Process of
FIG. 11 is a flowchart showing the flow of processing executed by each
Note that the
Further, when the
図11に示すように、まず、ノード1Aのノード負荷計測部14は、所定の時間(所定の周期:所定の第1の期間)が経過したかを判定し(ステップS20)、所定の時間が経過していなければ(ステップS20→No)、所定の時間が経過するまで待つ。一方、ノード負荷計測部14は、所定の時間(周期)が経過した場合には、次のステップS21に進む。
As shown in FIG. 11, first, the node
ステップS21において、ノード負荷計測部14は、自身のノード1Aのノード負荷(リソース負荷)を計測するとともに、記憶部30A内のデータ処理負荷計測情報(通常)400Aを参照し、データ処理負荷のデータ毎のパラメータの平均値を算出し、ノード負荷計測情報(通常)500A(図8参照)を生成して記憶部30Aに格納する。また、ノード負荷計測部14は、生成したノード負荷計測情報(通常)500Aを、高負荷データ分散処理システム100Bの各ノード1Bに送信する。
なお、ここでは、図8に示すノード負荷計測情報(通常)500Aが、ノード負荷計測部14により生成されたものとして、以下説明する。
In step S21, the node
In the following description, it is assumed that the node load measurement information (normal) 500A shown in FIG. 8 is generated by the node
次に、ノード1Aの高負荷データ抽出部15は、ノード負荷計測情報(通常)500Aに基づき、各所定の時間(周期)内において信号処理されたデータの中から、高負荷データを抽出する(ステップS22)。ここでは、前記した(高負荷データ判定手法の例1)を適用した場合を例にして説明する。
Next, the high load
図12は、ノード1Aの高負荷データ抽出部15による、高負荷データの抽出処理を説明するための図である。図12(a)は、当該周期(ここでは、周期識別番号「3」に相当)に含まれるデータ処理負荷計測情報(通常)400Aを示す。また、図12(b)は、ノード負荷計測情報(通常)500Aを示している。
ここでは、当該周期(高負荷データを抽出しようとする周期)を周期識別番号「3」で示される、「10:15:10〜10:15:20」とし、比較対象の周期を周期識別番号「1」で示される、「10:14:50〜10:15:00」とする。また、比較対象のパラメータをロック取得期間とする。この場合、図12(a)に示す、データ処理負荷計測情報(通常)400Aの各データのロック取得期間を参照し、そのロック取得期間が、図12(b)に示すノード負荷計測情報(通常)500Aの周期識別番号「1」の平均ロック取得期間「7msec」と比較する。そして、高負荷データ抽出部15は、そのデータのロック取得期間と平均ロック取得期間との乖離幅(超過量)の閾値として設定された「20msec」を超えるか否かを判定する。この場合、符号αで示すロック取得期間が「106msec」のデータが、高負荷データとして抽出される。
FIG. 12 is a diagram for explaining high-load data extraction processing by the high-load
Here, the cycle (cycle where high load data is to be extracted) is indicated by cycle identification number “3”, “10:15:10 to 10:15:20”, and the cycle to be compared is the cycle identification number. It is assumed that “10:14:50 to 10:15:00” indicated by “1”. The comparison target parameter is a lock acquisition period. In this case, referring to the lock acquisition period of each data in the data processing load measurement information (normal) 400A shown in FIG. 12A, the lock acquisition period is the node load measurement information (normal) shown in FIG. ) Compare with the average lock acquisition period “7 msec” of the cycle identification number “1” of 500A. Then, the high-load
図11に戻り、次に、高負荷データ抽出部15は、ステップS23において、移管対象として抽出されたデータ(高負荷データ)のメタデータ310の担当分散システム識別子を、通常データ分散処理システム100Aを示す値「1」(図6(b)参照)から、高負荷データ分散処理システム100Bを示す値「2」(図9(b)参照)に変更する。
Returning to FIG. 11, the high load
続いて、高負荷データ抽出部15は、移管する高負荷データを担当する高負荷データ分散処理システム100Bのノード1Bを、記憶部30A内の、ノード識別子管理テーブル(高負荷)200Bおよび振り分けIDテーブル250Bを参照して特定し、特定したノードBに、当該データ(高負荷データ)の複製データを送信する(ステップS24)。
Subsequently, the high load
図13は、移管する高負荷データを担当する高負荷データ分散処理システム100Bのノード1Bを特定する処理を説明するための図である。ここで、図13(a)は、通常データ分散処理システム100Aのノード識別子管理テーブル(通常)200Aを示し、図13(b)は、通常データ分散処理システム100Aの振り分けIDテーブル(通常)250Aを示す。また、図13(c)は、高負荷データ分散処理システム100Bのノード識別子管理テーブル(高負荷)200Bを示し、図13(d)は、高負荷データ分散処理システム100Bの振り分けIDテーブル(高負荷)250Bを示す。
FIG. 13 is a diagram for explaining processing for specifying the
なお、図13(b)に示す通常データ分散処理システム100Aの振り分けIDテーブル(通常)250Aと、図13(d)に示す高負荷データ分散処理システム100Bの振り分けIDテーブル(高負荷)250Bとは、同じID空間(コンシステント・ハッシュのID空間)が設定される。ここでは、ID空間として「0」〜「999」が同様に設定されている。これにより、互いの分散処理システムにおいてノード1(1A,1B)の増減設が発生し、各々の分散処理システムにおいてデータ移管(返還)時の担当ノードが変化しているようなケースでも、新しい担当ノードを特定し、データの移管(返還)を実行することが容易に可能となる。 The distribution ID table (normal) 250A of the normal data distributed processing system 100A shown in FIG. 13B and the distribution ID table (high load) 250B of the high load data distributed processing system 100B shown in FIG. , The same ID space (consistent hash ID space) is set. Here, “0” to “999” are similarly set as the ID space. As a result, even if the nodes 1 (1A, 1B) increase or decrease in each other's distributed processing systems, and the node in charge at the time of data transfer (return) changes in each distributed processing system, a new charge It becomes possible to easily identify a node and execute data transfer (return).
ここで、高負荷データ抽出部15が抽出したデータ(高負荷データ)のハッシュ値(振り分けID)が「250」であるものとする。この場合、図13(b)に示す、振り分けIDテーブル250Aに示されるように、当該データは、通常データ分散処理システム100Aにおいては、「Node2」が担当している。このデータが高負荷データであり、高負荷データ分散処理システム100Bに移管する場合に、高負荷データ抽出部15は、まず、図13(d)に示す、高負荷データ分散処理システム100Bの振り分けIDテーブル(高負荷)250Bを参照し、そのハッシュ値 (振り分けID)「250」に基づき、担当するノードを「Node1」に特定する。そして、高負荷データ抽出部15は、図13(c)に示す、高負荷データ分散処理システム100Bのノード識別子管理テーブル200Bを参照し、「Node1」のアドレスとして「10.35.0.1」を取得する。高負荷データ抽出部15は、高負荷データ分散処理システム100Bのノード1Bのうち、アドレス「10.35.0.1」の「Node1」に対して、当該抽出した高負荷データの複製データを送信する。
Here, it is assumed that the hash value (distribution ID) of the data (high load data) extracted by the high load
図11に戻り、ステップS25において、高負荷データ抽出部15は、高負荷データの移管の完了後、自身の記憶部30Aのデータ300に記憶された当該データの実データ320を削除し(図9(a)参照)、処理を終える。これは、実データ320のデータサイズ等が大きいと、通常データ分散処理システム100Aのリソース消費につながる場合があるためである。
Returning to FIG. 11, in step S25, the high load
このようにして、通常データ分散処理システム100Aの各ノード1Aは、高負荷データを抽出して、高負荷データ分散処理システム100Bの担当となるノード1Bに、当該高負荷データを移管することができる。
In this way, each
≪高負荷データ移管後のノード1Aのリダイレクト処理≫
ここで、高負荷データの移管後に、移管元のノード1Aにおいて当該データに対する最初のアクセスがあった場合の移管先へのリダイレクト処理について説明する。
図14は、高負荷データの移管後の当該データに対する最初のアクセスのリダイレクト処理の流れを示すフローチャートである。
≪Redirect processing of
Here, the redirection process to the transfer destination when the first access to the data is made in the
FIG. 14 is a flowchart showing the flow of the redirect process of the first access to the data after the transfer of the high load data.
まず、クライアント2等からのメッセージを、通常データ分散処理システム100Aのノード1Aが受信する(ステップS30)。
First, the
次に、ノード1Aの振り分け部12は、メッセージに付与された振り分けキーの担当分散システム識別子と、記憶部30A内に格納されたデータ300内のメタデータ310の担当分散システム識別子(図9(b)参照)とを確認し、自身の分散処理システムに対するアクセスか否かを判定する(ステップS31)。ここで、振り分け部12は、当該メッセージの処理対象のデータついて、そのメタデータ310の担当分散システム識別子が、通常データ分散処理システム100Aを示す「1」であれば(ステップS31→Yes)、通常の信号処理を実行する(ステップS32)。一方、振り分け部12は、メタデータ310の担当分散システム識別子が、「1」以外の例えば「2」であれば(ステップS31→No)、ステップS33へ進む。
ここで、例えば、高負荷データの移管後の当該データに対する最初のメッセージに付与された振り分けキーは、変更されていないため「1+199+data_12345」であるとする。一方、振り分け部12は、記憶部30Aに格納されたデータ300のメタデータ310の当該データ「data_12345」の担当分散システム識別子を参照し、その値が「2」であることを確認する(図9(b)参照)。つまり、受信したメッセージの処理対象のデータが、移管されたデータ(高負荷データ)であることを確認する。
Next, the
Here, for example, it is assumed that the distribution key given to the first message for the data after the transfer of the high load data is “1 + 199 + data_12345” because it has not been changed. On the other hand, the
ステップS33において、振り分け部12は、メタデータ310の担当分散システム識別子(ここでは「2」)の情報に基づき、担当する分散システム(ここでは、高負荷データ分散処理システム100B)の振り分けIDテーブル250(ここでは、振り分けIDテーブル(高負荷)250B)を決定する。また、振り分け部12は、振り分けIDテーブル250(高負荷)Bを参照し、ハッシュ値(振り分けID)「199」に基づき担当ノード1Bを決定し、その担当ノードのアドレスをノード識別子管理テーブル(高負荷)200Bにより取得する。
In step S <b> 33, the
続いて、振り分け部12は、メッセージに付与された振り分けキーの担当分散システム識別子の値を、移管先の高負荷データ分散処理システム100Bを示す「2」に変更して、担当するノード1Bに転送する(ステップS34)。
Subsequently, the
このようにすることで、移管元の通常データ分散処理システム100Aの各ノード1Aは、高負荷データの移管後に、当該データに対する最初のアクセスがあった場合に、そのメッセージに付与された振り分けキーの担当分散処理システム識別子を移管先に書き換える。よって、その後の当該データについてのメッセージについては、高負荷データ分散処理システム100Bにメッセージが振り分けられるようにすることができる。
By doing so, each
≪ノード1Bの処理≫
次に、本実施形態に係る高負荷データ分散処理システム100Bの各ノード1Bが実行する処理について説明する。
なお、高負荷データ分散処理システム100Bのノード1B(ノード識別子管理部11)は、自身が属する高負荷データ分散処理システム100Bのノード識別子管理テーブル(高負荷)200B(第2のノード識別子管理情報)および振り分けIDテーブル(高負荷)250B(第2の振り分けID情報)に加えて、通常データ分散処理システム100Aの最新の、ノード識別子管理テーブル(通常)200A(第1のノード識別子管理情報)および振り分けIDテーブル(通常)250A(第1の振り分けID情報)を取得し記憶部30Bに記憶しているものとする。
また、ノード1B(信号処理部13)は、自身のノード1が担当するデータに関するメッセージの信号処理を実行した際に、当該データの処理負荷を計測し、その計測結果をデータ処理負荷計測情報(高負荷)400B(第2のデータ処理負荷計測情報)(図15参照)として記憶部30Bに記憶しているものとする。
さらに、ノード1B(正常負荷データ抽出部16)は、通常データ分散処理システム100Aの各ノード1Aから、それぞれのノード負荷計測情報(通常)500Aを受信し、記憶部30Bに記憶しているものとする。
<< Process of
Next, processing executed by each
Note that the
Further, when the
Further, the
図16は、本実施形態に係る高負荷データ分散処理システム100Bの各ノード1Bが実行する処理の流れを示すフローチャートである。
まず、ノード1Bの正常負荷データ抽出部16は、所定の時間(所定の第2の期間)が経過したかを判定し(ステップS40)、所定の時間が経過していなければ、(ステップS40→No)、所定の時間が経過するまで待つ。一方、正常負荷データ抽出部16は、所定の時間が経過した場合には(ステップS40→Yes)、次のステップS41に進む。
FIG. 16 is a flowchart showing the flow of processing executed by each
First, the normal load
ステップS41において、ノード1Bの正常負荷データ抽出部16は、発生したデータ処理(データのロック取得時刻、ロック解放時刻のいずれか)が当該所定の時間(所定の第2の期間)内に含まれるものの中から、処理負荷が低減したデータを正常負荷データとして抽出する。ここでは、前記した(正常負荷データ判定手法の例1)を適用した場合を例にして説明する。
In step S41, the normal load
図17は、ノード1Bの正常負荷データ抽出部16による、正常負荷データの抽出処理を説明するための図である。図17(a)は、所定の時間に含まれるデータ処理負荷計測情報(高負荷)400Bを示す。また、図17(b)は、返還先の分散処理システム(通常データ分散処理システム100A)の担当領域を同じくするノード1Aのノード負荷計測情報(通常)500Aを示している。
ここでは、当該期間(正常負荷データを抽出しようとする期間)を「10:15:20〜10:15:30」)とし、比較対象の返還先の分散処理システム(通常データ分散処理システム100A)から選択した周期を周期識別番号「1」で示される「10:14:50〜10:15:00」とする。また、比較対象のパラメータをロック取得期間とし、所定の時間に含まれるデータ処理負荷計測情報(高負荷)400Bの同じデータ識別子のロック取得期間の値が、担当領域を同じくするノード1Aのノード負荷計測情報(通常)500Aで示される平均ロック取得期間(ここでは、「7msec」)を一度も上回ることがなければ、当該データを正常負荷データと判定する。
なお、ここで、判定対象となるデータ(例えば、データ識別子「11111111」)と担当領域を同じくするノード1Aのノード負荷計測情報(通常)500Aは、判定対象となるデータのメタデータに付された振り分けキーのハッシュ値(振り分けID)を取得し、自身の記憶部40Bに記憶された振り分けIDテーブル(通常)250Aを検索することにより、現時点(つまり返還しようする時点)での当該データの返還先となるノード1Aのノード負荷計測情報(通常)500Aを特定することにより決定する。
FIG. 17 is a diagram for explaining normal load data extraction processing by the normal load
Here, the period (period during which normal load data is to be extracted) is “10:15:20 to 10:15:30”), and the return processing distributed processing system to be compared (normal data distributed processing system 100A) The period selected from “10:14:50 to 10:15:00” indicated by the period identification number “1” is used. The comparison target parameter is the lock acquisition period, and the value of the lock acquisition period of the same data identifier in the data processing load measurement information (high load) 400B included in the predetermined time is the node load of the
Here, the node load measurement information (usually) 500A of the
図16に戻り、ステップS42において、正常負荷データ抽出部16は、返還対象として抽出したデータ(正常負荷データ)のメタデータ310の担当分散システム識別子を、高負荷データ分散処理システム100Bを示す値「2」(図9(b)参照)から、通常データ分散処理システム100Aを示す値「1」に変更する(図18(b)参照)。また、正常負荷データ抽出部16は、返還対象として抽出したデータ(正常負荷データ)のメタデータの高負荷データ判定回数を1カウントアップする(図18(b)参照)。
Returning to FIG. 16, in step S42, the normal load
続いて、正常負荷データ抽出部16は、返還する正常負荷データを担当する通常データ分散処理システム100Aのノード1Aを、記憶部30B内の、ノード識別子管理テーブル(通常)200Aおよび振り分けIDテーブル250(通常)Aを参照して特定し、特定したノードAに、当該データ(正常負荷データ)の複製データを送信する(ステップS43)。
Subsequently, the normal load
次に、正常負荷データ抽出部16は、ステップS44において、正常負荷データの返還の完了後、自身の記憶部30Bのデータ300に記憶された当該データの実データ320を削除し(図18(a)参照)、処理を終える。これは、実データ320のデータサイズ等が大きいと、高負荷データ分散処理システム100Bのリソース消費につながる場合があるためである。
Next, in step S44, the normal load
このようにして、高負荷データ分散処理システム100Bの各ノード1Bは、負荷が低減した正常負荷データを抽出して、通常データ分散処理システム100Aの担当となるノード1Aに、当該正常負荷データを返還することができる。
In this way, each
≪正常負荷データ移管後のノード1Bのリダイレクト処理≫
ここで、正常負荷データの返還後に、返還元のノード1Bにおいて当該データに対する最初のアクセスがあった場合の返還先へのリダイレクト処理について説明する。
図19は、正常負荷データの返還後の当該データに対する最初のアクセスのリダイレクト処理の流れを示すフローチャートである。
Here, the redirect process to the return destination when there is the first access to the data in the
FIG. 19 is a flowchart showing the flow of the redirect process of the first access to the data after returning the normal load data.
まず、クライアント2等からのメッセージを、高負荷データ分散処理システム100Bのノード1Bが受信する(ステップS50)。
First, the
次に、ノード1Bの振り分け部12は、メッセージに付与された振り分けキーの担当分散システム識別子と、記憶部30B内に格納されたデータ300内のメタデータ310の担当分散システム識別子(図18(b)参照)とを確認し、自身の分散処理システムに対するアクセスか否かを判定する(ステップS51)。ここで、振り分け部12は、当該メッセージの処理対象のデータついて、そのメタデータ310の担当分散システム識別子が、高負荷データ分散処理システム100Bを示す「2」であれば(ステップS51→Yes)、通常の信号処理を実行する(ステップS52)。一方、振り分け部12は、メタデータ310の担当分散システム識別子が、「2」以外の例えば「1」であれば(ステップS51→No)、ステップS53へ進む。
Next, the
ステップS53において、振り分け部12は、メタデータ310の担当分散システム識別子(ここでは「1」)の情報に基づき、担当する分散システム(ここでは、通常データ分散処理システム100A)の振り分けIDテーブル250(ここでは、振り分けIDテーブル(通常)250A)を決定する。また、振り分け部12は、振り分けIDテーブル250(通常)Aを参照し、そのハッシュ値(振り分けID)に基づき担当ノード1Aを決定し、その担当ノードのアドレスをノード識別子管理テーブル(通常)200Aにより取得する。
In step S53, the
続いて、振り分け部12は、メッセージに付与された振り分けキーの担当分散システム識別子の値を、返還先の通常データ分散処理システム100Aを示す「1」に変更して、担当するノード1Aに転送する(ステップS54)。
Subsequently, the
このようにすることで、返還元の高負荷データ分散処理システム100Bの各ノード1Bは、正常負荷データの返還後に、当該データに対する最初のアクセスがあった場合に、そのメッセージに付与された振り分けキーの担当分散処理システム識別子を返還先に書き換える。よって、その後の当該データについてのメッセージについては、通常データ分散処理システム100Aにメッセージが振り分けられるようにすることができる。
By doing so, each
以上説明したように、本実施形態に係る分散処理システム1000によれば、通常データ分散処理システム100Aの各ノード1Aが、アクセス頻度が多い、処理時間の長い等によりノードに高い負荷を与えるデータ(高負荷データ)を抽出し、処理能力の高い高負荷データ分散処理システム100Bに処理を移管することができる。これにより、移管先の高負荷データ分散処理システム100Bにおいて、高負荷データの処理を継続しつつ、通常データ分散処理システム100Aに高負荷データが存在していた際に問題となる、その他のデータへの信号処理への影響の発生や、非効率なスケールアウトの頻発を抑止することができる。
As described above, according to the distributed processing system 1000 according to the present embodiment, each
また、移管先の高負荷データ分散処理システム100Bにおいて、高負荷データの負荷が正常値に低減したことを確認して、データを元の通常データ分散処理システム100Aに返還することができる。これにより、高負荷データを専用に処理するノード1Bの処理負荷を必要以上に高めることなくシステムの運用を継続することができる。
In addition, in the high-load data distribution processing system 100B as the transfer destination, it is possible to confirm that the load of the high-load data has been reduced to a normal value and return the data to the original normal data distribution processing system 100A. Thereby, the operation of the system can be continued without increasing the processing load of the
1 ノード
1A ノード(第1のノード)
1B ノード(第2のノード)
2 クライアント
3 ロードバランサ
10A,10B 制御部
11 ノード識別子管理部
12 振り分け部
13 信号処理部(第1の信号処理部、第2の信号処理部)
14 ノード負荷計測部
15 高負荷データ抽出部
16 正常負荷データ抽出部
20 入出力部
30A,30B 記憶部
100A 通常データ分散処理システム
100B 高負荷データ分散処理システム
200A ノード識別子管理テーブル(通常)(第1のノード識別子管理情報)
200B ノード識別子管理テーブル(高負荷)(第2のノード識別子管理情報)
250A 振り分けIDテーブル(通常)(第1の振り分けID情報)
250B 振り分けIDテーブル(高負荷)(第2の振り分けID情報)
300 データ
310 メタデータ
320 実データ
400A データ処理負荷計測情報(通常)(第1のデータ処理負荷計測情報)
400B データ処理負荷計測情報(高負荷)(第2のデータ処理負荷計測情報)
500A ノード負荷計測情報(通常)
1000 分散処理システム
1
1B node (second node)
2
14 node
200B Node identifier management table (high load) (second node identifier management information)
250A Distribution ID table (normal) (first distribution ID information)
250B Distribution ID table (high load) (second distribution ID information)
300
400B Data processing load measurement information (high load) (second data processing load measurement information)
500A Node load measurement information (normal)
1000 Distributed processing system
Claims (6)
前記分散処理システムは、前記メッセージを受信して信号処理する第1のノードを複数有する通常データ分散処理システムと、前記第1のノードと比較して処理性能の高い第2のノードを複数有する高負荷データ分散処理システムとから構成され、
前記通常データ分散処理システムの前記第1のノードそれぞれ、および、前記高負荷データ分散処理システムの第2のノードそれぞれは、
前記第1のノードそれぞれの識別子と、信号処理を実行するデータに付された振り分けIDとを対応付けた情報である第1の振り分けID情報、および、前記第1のノードそれぞれの識別子と、前記第1のノードのアドレスとを対応付けた情報である第1のノード識別子管理情報、
並びに、前記第2のノードそれぞれの識別子と、信号処理を実行するデータに付された前記振り分けIDとを対応付けた情報である第2の振り分けID情報、および、前記第2のノードそれぞれの識別子と、前記第2のノードのアドレスとを対応付けた情報である第2のノード識別子管理情報、を記憶する記憶部、を備えており、
前記通常データ分散処理システムの前記第1のノードそれぞれは、
前記メッセージを受信し、当該メッセージに付与された、前記振り分けID、並びに、前記通常データ分散処理システムおよび前記高負荷データ分散処理システムのいずれかの識別子を示す担当分散システム識別子、を取得し、前記第1の振り分けID情報または前記第2の振り分けID情報を参照して信号処理するノードを決定し、決定したノードに当該メッセージを振り分ける振り分け部と、
振り分けられた前記メッセージを受信し、前記第1のノード自身が担当するデータに関するメッセージの信号処理を実行するとともに、前記データの信号処理の処理負荷を計測し、第1のデータ処理負荷計測情報として自身の前記記憶部に記憶する第1の信号処理部と、
所定の第1の期間ごとに、前記第1のデータ処理負荷計測情報を参照し、予め設定された高負荷データを抽出するロジックに基づき前記信号処理の処理負荷が高いデータを前記高負荷データとして抽出し、前記抽出した高負荷データの前記振り分けIDを取得し、前記第2の振り分けID情報および前記第2のノード識別子管理情報を参照して信号処理する第2のノードを決定して送信する高負荷データ抽出部と、を備え、
前記高負荷データ分散処理システムの前記第2のノードそれぞれは、
前記振り分け部と、
振り分けられた前記メッセージを受信し、前記第2のノード自身が担当するデータに関するメッセージの信号処理を実行するとともに、前記データの信号処理の処理負荷を計測し、第2のデータ処理負荷計測情報として自身の前記記憶部に記憶する第2の信号処理部と、
所定の第2の期間ごとに、前記第2のデータ処理負荷計測情報を参照し、予め設定された正常負荷データを抽出するロジックに基づき前記信号処理の処理負荷が低減したデータを前記正常負荷データとして抽出し、前記抽出した正常負荷データの前記振り分けIDを取得し、前記第1の振り分けID情報および前記第1のノード識別子管理情報を参照して信号処理する第1のノードを決定して送信する正常負荷データ抽出部と、を備えること
を特徴とする分散処理システム。 A distributed processing system that receives a message from a client, processes the signal, and provides a service.
The distributed processing system includes a normal data distributed processing system having a plurality of first nodes for receiving and processing the message and a second node having a plurality of second nodes having higher processing performance compared to the first node. Load data distributed processing system,
Each of the first nodes of the normal data distributed processing system and each of the second nodes of the high-load data distributed processing system are:
First distribution ID information that is information in which each identifier of the first node is associated with a distribution ID attached to data for performing signal processing; and an identifier of each of the first nodes; First node identifier management information, which is information associated with the address of the first node,
Also, second distribution ID information that is information in which each identifier of the second node is associated with the distribution ID attached to the data to be subjected to signal processing, and each identifier of the second node And a second node identifier management information that is information that associates the address of the second node with each other.
Each of the first nodes of the normal data distributed processing system
Receiving the message, obtaining the distribution ID assigned to the message, and a responsible distributed system identifier indicating an identifier of either the normal data distributed processing system or the high load data distributed processing system, A node that performs signal processing with reference to the first distribution ID information or the second distribution ID information, and distributes the message to the determined node;
The distributed message is received, the signal processing of the message related to the data handled by the first node itself is executed, the processing load of the signal processing of the data is measured, and the first data processing load measurement information is obtained. A first signal processing unit stored in its own storage unit;
For each predetermined first period, referring to the first data processing load measurement information, data having a high processing load of the signal processing based on a logic for extracting preset high load data is used as the high load data. Extracting, obtaining the distribution ID of the extracted high load data, determining and transmitting a second node to perform signal processing with reference to the second distribution ID information and the second node identifier management information A high-load data extraction unit,
Each of the second nodes of the high-load data distributed processing system
The sorting section;
The distributed message is received, the signal processing of the message relating to the data handled by the second node itself is executed, the processing load of the signal processing of the data is measured, and the second data processing load measurement information is obtained. A second signal processing unit stored in its own storage unit;
Data for which the processing load of the signal processing is reduced based on the logic for extracting preset normal load data with reference to the second data processing load measurement information for each predetermined second period is the normal load data. To obtain the distribution ID of the extracted normal load data, determine the first node to perform signal processing with reference to the first distribution ID information and the first node identifier management information, and transmit And a normal load data extraction unit.
前記予め設定された高負荷データを抽出するロジックとして、
前記所定の第1の期間内において、前記第1のデータ処理負荷計測情報として計測された、前記データの信号処理に伴うロック取得期間、または、前記データのデータサイズと、前記所定の第1の期間内における全ての前記データから算出した、平均ロック取得期間、または、平均データサイズとをそれぞれ比較して、その乖離幅が所定の閾値を超えている場合に、前記データを高負荷データとして抽出することが設定されていること、
を特徴とする請求項1に記載の分散処理システム。 The high-load data extraction unit of the first node is
As logic for extracting the preset high load data,
The lock acquisition period accompanying the signal processing of the data, or the data size of the data, measured as the first data processing load measurement information within the predetermined first period, and the predetermined first When the average lock acquisition period or average data size calculated from all the data in the period is compared, and the deviation width exceeds a predetermined threshold, the data is extracted as high load data That is set to do,
The distributed processing system according to claim 1.
前記平均ロック取得期間、または、平均データサイズを含む前記第1のノードのノード負荷計測情報を、前記第2のノードそれぞれに送信し、
前記第2のノードの前記正常負荷データ抽出部は、
前記予め設定された正常負荷データを抽出するロジックとして、
前記所定の第2の期間内において、前記第2のデータ処理負荷計測情報として計測された、前記データの信号処理に伴うロック取得期間、または、前記データのデータサイズと、前記データの前記振り分けIDを用いて前記第1の振り分けID情報を参照し、当該データの返還先としての前記第1のノードを特定し、前記特定された第1のノードから送信された前記ノード負荷計測情報に含まれる、前記平均ロック取得期間、または、前記平均データサイズとをそれぞれ比較し、前記第2のデータ処理負荷計測情報として計測されたデータの値が、各々の平均以下であった場合に、当該データを正常負荷データとして抽出することが設定されていること、
を特徴とする請求項2に記載の分散処理システム。 The high-load data extraction unit of the first node is
Transmitting the node load measurement information of the first node including the average lock acquisition period or the average data size to each of the second nodes;
The normal load data extraction unit of the second node is
As the logic for extracting the preset normal load data,
The lock acquisition period accompanying the signal processing of the data, or the data size of the data, and the distribution ID of the data, measured as the second data processing load measurement information within the predetermined second period Is used to identify the first node as the return destination of the data, and is included in the node load measurement information transmitted from the identified first node. The average lock acquisition period or the average data size is compared with each other, and when the data value measured as the second data processing load measurement information is equal to or less than the average, the data is That it is set to be extracted as normal load data,
The distributed processing system according to claim 2.
前記高負荷データとして抽出され前記第2のノードに送信されたデータの信号処理を要求するメッセージを受信した際に、前記メッセージに付与された前記担当分散システム識別子を、前記高負荷データ分散処理システムを示す値に変更すること、
を特徴とする請求項1ないし請求項3のいずれか1項に記載の分散処理システム。 The distribution unit of the first node is
When the message requesting the signal processing of the data extracted as the high load data and transmitted to the second node is received, the assigned distributed system identifier given to the message is used as the high load data distributed processing system. To a value that indicates
The distributed processing system according to any one of claims 1 to 3, wherein:
前記正常負荷データとして抽出され前記第1のノードに送信されたデータの信号処理を要求するメッセージを受信した際に、前記メッセージに付与された前記担当分散システム識別子を、前記通常データ分散処理システムを示す値に変更すること、
を特徴とする請求項1ないし請求項4のいずれか1項に記載の分散処理システム。 The distribution unit of the second node is
When the message requesting signal processing of the data extracted as the normal load data and transmitted to the first node is received, the assigned distributed system identifier given to the message is changed to the normal data distributed processing system. Change to the value shown,
The distributed processing system according to any one of claims 1 to 4, wherein:
前記正常負荷データとして抽出されたデータを、前記通常データ分散処理システムの前記第1のノードに送信する際に、当該データに、高負荷データとして抽出されたことを示す高負荷データ判定回数を、1カウントアップして送信しており、
前記正常負荷データを抽出したときに、前記高負荷データ判定回数が所定の閾値を超えていた場合、当該データを削除すること、
を特徴とする請求項1ないし請求項5のいずれか1項に記載の分散処理システム。 The normal load data extraction unit of the second node is
When transmitting the data extracted as the normal load data to the first node of the normal data distributed processing system, a high load data determination number indicating that the data is extracted as high load data, 1 count up and sending
When the normal load data is extracted, if the high load data determination count exceeds a predetermined threshold, deleting the data;
The distributed processing system according to any one of claims 1 to 5, wherein:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015036156A JP6259408B2 (en) | 2015-02-26 | 2015-02-26 | Distributed processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015036156A JP6259408B2 (en) | 2015-02-26 | 2015-02-26 | Distributed processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016157367A JP2016157367A (en) | 2016-09-01 |
JP6259408B2 true JP6259408B2 (en) | 2018-01-10 |
Family
ID=56826273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015036156A Active JP6259408B2 (en) | 2015-02-26 | 2015-02-26 | Distributed processing system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6259408B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7102950B2 (en) | 2018-05-30 | 2022-07-20 | 富士通株式会社 | Information processing system, information processing system control method and management device control program |
JP2020003945A (en) * | 2018-06-26 | 2020-01-09 | 株式会社日立情報通信エンジニアリング | Computer system and data management method |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4529974B2 (en) * | 2006-12-26 | 2010-08-25 | 日本電気株式会社 | Server load balancing system, server load balancing device, content management device, and server load balancing program |
JP5104588B2 (en) * | 2007-10-18 | 2012-12-19 | 富士通株式会社 | Migration program and virtual machine management device |
JP5544522B2 (en) * | 2011-06-21 | 2014-07-09 | 日本電信電話株式会社 | Load adjustment method, load adjustment server, load adjustment server device, and load adjustment program |
JP5949370B2 (en) * | 2012-09-19 | 2016-07-06 | 富士通株式会社 | Control device, processing system, control program, and control method |
-
2015
- 2015-02-26 JP JP2015036156A patent/JP6259408B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016157367A (en) | 2016-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5664098B2 (en) | Composite event distribution apparatus, composite event distribution method, and composite event distribution program | |
WO2018076791A1 (en) | Resource load balancing control method and cluster scheduler | |
CN105025053A (en) | Distributed file upload method based on cloud storage technology and system | |
TW201627882A (en) | Deterministic database system and data transferring method thereof | |
WO2015081750A1 (en) | Data copy storage method, terminal apparatus, and server apparatus | |
CN104023088A (en) | Storage server selection method applied to distributed file system | |
JP6582445B2 (en) | Thin client system, connection management device, virtual machine operating device, method, and program | |
JPWO2018220708A1 (en) | Resource allocation system, management device, method and program | |
CN104063501B (en) | copy balance method based on HDFS | |
Henze et al. | Practical data compliance for cloud storage | |
JP6259408B2 (en) | Distributed processing system | |
US20150365474A1 (en) | Computer-readable recording medium, task assignment method, and task assignment apparatus | |
TWI652621B (en) | Method and system for generating queue based applications dependencies in virtual machines | |
JP2014164554A (en) | Load distribution determination system | |
Gankevich et al. | Subordination: Cluster management without distributed consensus | |
EP3349416B1 (en) | Relationship chain processing method and system, and storage medium | |
CN104219163A (en) | Load balancing method for node dynamic forward based on dynamic replication method and virtual node method | |
JP6063882B2 (en) | Virtual machine placement system and method | |
He et al. | A simulation cloud monitoring framework and its evaluation model | |
JP6325995B2 (en) | Distributed system, load balancing method and program | |
Lin et al. | An overall approach to achieve load balancing for Hadoop Distributed File System | |
JP2024514467A (en) | Geographically distributed hybrid cloud cluster | |
JP6020803B2 (en) | Distributed storage system, distributed storage data movement control method, and distributed storage data movement control program | |
Ngo et al. | K2: Reading quickly from storage across many datacenters | |
Shen | Distributed storage system model design in internet of things based on hash distribution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170224 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20171127 |
|
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: 20171205 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171208 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6259408 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |