JP2015162216A - Decentralized processing system - Google Patents
Decentralized processing system Download PDFInfo
- Publication number
- JP2015162216A JP2015162216A JP2014038834A JP2014038834A JP2015162216A JP 2015162216 A JP2015162216 A JP 2015162216A JP 2014038834 A JP2014038834 A JP 2014038834A JP 2014038834 A JP2014038834 A JP 2014038834A JP 2015162216 A JP2015162216 A JP 2015162216A
- Authority
- JP
- Japan
- Prior art keywords
- data
- management server
- replication
- server
- original
- 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.)
- Granted
Links
- 230000010076 replication Effects 0.000 claims description 152
- 238000000034 method Methods 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 5
- 238000007726 management method Methods 0.000 description 161
- 238000004891 communication Methods 0.000 description 9
- 238000009826 distribution Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 4
- 238000013523 data management Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、複数のサーバを備えた分散処理システムで扱うデータのレプリケーション技
術に関する。
The present invention relates to a data replication technique handled by a distributed processing system including a plurality of servers.
近年、クラウドコンピューティングの隆盛に伴い、多量のデータの処理や保持を効率的に行うことが求められている。そこで、複数のサーバを協調動作させることにより効率的な処理を実現する分散処理技術が発展している。 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 distribute processing target (management target) data to each server constituting the cluster (hereinafter also referred to as “cluster member” or “member”). At this time, in order to increase the processing capacity of the entire cluster, it is desirable that the number of data (data amount) handled by each cluster member is averaged.
代表的なデータの振り分け手法として、各データのkeyをハッシュ関数にかけた値(以下、「hash(key)」と称する。)をクラスタメンバ数Nで割った余り、すなわち「hash(key) mod N」を番号として持つクラスタメンバにデータを振り分ける手法がある。この場合、各クラスタメンバに対して、事前に「0」から「N−1」までの番号を割り当てていることが前提となる。このような振り分け手法を用いた場合、クラスタメンバを追加すると、Nの値が変化して、多くのデータについて、担当するクラスタメンバが変更になるため、担当するデータの再配置が必要になる。 As a typical data distribution method, the remainder obtained by dividing the value obtained by multiplying the key of each data by a hash function (hereinafter referred to as “hash (key)”) by the number N of cluster members, that is, “hash (key) mod N There is a method of distributing data to cluster members having "" as a number. In this case, it is assumed that numbers “0” to “N−1” are assigned in advance to each cluster member. When such a distribution method is used, if a cluster member is added, the value of N changes, and the cluster member in charge of a lot of data is changed, so that the data in charge must be rearranged.
そこで、クラスタメンバの追加に伴い担当するクラスタメンバが変更になるデータ数を約1/Nに抑える手法として、コンシステント・ハッシュ法(Consistent Hashing)を用いた振り分け手法(非特許文献1参照)がある。 Therefore, as a method for suppressing the number of data that the cluster member in charge changes with the addition of the cluster member to about 1 / N, a distribution method using a consistent hashing method (see Non-Patent Document 1) is used. is there.
このコンシステント・ハッシュ法を用いたデータ振り分け手法では、クラスタメンバとデータの双方にID(IDentifier)を割り当て、データのIDから環状のID空間を時計回りに辿った場合に最初に出合ったクラスタメンバを、そのデータの担当とする。 In this data distribution method using the consistent hash method, an ID (IDentifier) is assigned to both the cluster member and data, and the cluster member first encountered when the circular ID space is traced clockwise from the data ID. Is in charge of the data.
また、多量のデータの管理をクラスタ構成の分散処理システムで行う場合、あるクラスタメンバに障害が発生した場合でも他のクラスタメンバで処理を継続することができるように、データの複製を保持することでデータ冗長化を実現する必要がある。これは、コンシステント・ハッシュ法によるデータ管理手法を用いた分散処理システムにおいても同様である。 Also, when managing a large amount of data in a clustered distributed processing system, keep a copy of the data so that even if a failure occurs in one cluster member, processing can be continued on other cluster members. It is necessary to realize data redundancy. The same applies to a distributed processing system that uses a data management technique based on the consistent hash method.
図4に示すように、コンシステント・ハッシュ法では、クラスタメンバ(メンバ1〜4)及びデータ(データA〜D。黒丸で表示)の双方にIDを割り当て、データのIDからID空間を時計回りに辿り、最初に出会ったクラスタメンバを、そのデータの担当として決定する。
そして、担当するクラスタメンバのさらに右隣(時計回りに辿って次)のクラスタメンバに複製データを担当させる。
As shown in FIG. 4, in the consistent hash method, IDs are assigned to both cluster members (
Then, the cluster member that is further to the right of the cluster member in charge (following clockwise rotation) is assigned the replication data.
例えば、図4においては、データ(原本データ)Aについては、ID空間上を時計回りに辿って最初に出会ったメンバ1が担当となり、データAの複製データについては、ID空間上でメンバ1の右隣にあたるメンバ2が担当となる。このように、原本データ及び複製データを担当するクラスタメンバを決定することで、クラスタメンバに離脱があった場合でも、離脱したクラスタメンバが担当していたデータAの複製データを所持しているクラスタメンバが、当該データAを担当する新たなクラスタメンバとなることで対応することができるという利点がある。なお、複製データを複数個作成する場合には、さらに右隣のクラスタメンバに2個目の複製データを担当させるようにすることもできる。
For example, in FIG. 4, for data (original data) A,
ここで、このような手法に使用できるデータベースサーバとしては、例えば、Cassandra(非特許文献2)等に記載されている、複数サーバが動的にクラスタに参加・離脱することが可能な分散データベースサーバが挙げられる。非特許文献2に記載の技術では、コンシステント・ハッシュ法を用いたデータの均等な分散及び高速アクセスが実現されている。また、複製データを複数のサーバに対して持たせることで、耐故障性を高めることができる。複製データを複数のサーバに対して持たせると、対故障性を高めることができる一方で、複製にかかる処理負荷、複数サーバ間における複製情報の整合性、複製情報を保持するためのデータ蓄積量の増大等を招くことから、通常は、同じ複製データを保持するサーバを複数設けることはしない。
Here, as a database server that can be used for such a technique, for example, a distributed database server described in Cassandra (Non-Patent Document 2) or the like, in which a plurality of servers can dynamically join and leave a cluster. Is mentioned. In the technique described in Non-Patent
また、例えばセッション制御サーバのようにリクエストの応答時間が厳しい処理を実現する場合、リクエストの応答内容と複製データとを同期させてからリクエストの応答を返信するのでは処理時間が厳しいので、リクエストの応答は先に返信し、管理対象の複製データの作成は、リクエストの応答とは非同期に行うことで、応答時間を確保することになる。 Also, for example, when processing a request with a strict response time such as a session control server is realized, it takes a long time to send a request response after synchronizing the response contents of the request and the replicated data. The response is returned first, and the copy data to be managed is created asynchronously with the response of the request, thereby securing a response time.
しかしながら、クラスタ内における処理遅延等によって、複製データの作成に失敗しても、サーバがクライアントマシンにリクエストに対して正常に返信しているために、リクエストの再送を期待することができず、原本データと複製データとがアンマッチのままクラスタが運用されることになり、原本データを管理するサーバがダウンした場合に、データを消失してしまうおそれがある。 However, even if replication data creation fails due to processing delay in the cluster, etc., the server is normally replying to the request to the client machine, so the request cannot be retransmitted. Since the cluster is operated with the data and the replicated data unmatched, there is a risk that the data will be lost if the server that manages the original data goes down.
そこで、本発明は、前記事情に鑑みてなされたものであり、管理対象となるデータのリクエスト処理とは非同期のデータ複製処理が失敗した場合でも、データ複製処理の再実行が可能な分散処理システムを提供することを課題とする。 Therefore, the present invention has been made in view of the above circumstances, and a distributed processing system capable of re-execution of data replication processing even when data replication processing asynchronous with request processing of data to be managed fails. It is an issue to provide.
前記の目的を達成するために、本発明は、複数のサーバがデータを管理する分散処理システムであって、前記複数のサーバは、前記データの原本データを管理する原本管理サーバと、前記データの複製データを管理する複製管理サーバと、を備え、前記原本管理サーバは、前記原本データが記憶されるとともに、前記データが前記複数のサーバのいずれによって管理されているかを示す複製管理情報が記憶される記憶部と、クライアントマシンからのリクエストを処理することによって前記記憶部に記憶された前記原本データを更新し、かかるリクエストの処理とは非同期に、更新された前記原本データを前記複製管理サーバに送信して前記複製データを作成させる処理部を備え、前記処理部は、前記複製管理サーバによる前記複製データの作成状態を監視し、前記複製データの作成に失敗した場合に、前記複製データの作成に失敗した前記複製管理サーバを当該分散処理システムから離脱させ、前記複数のサーバのうちの他のサーバを新たな前記複製管理サーバとし、新たな前記複製管理サーバに前記複製データを作成させることを特徴とする。 In order to achieve the above object, the present invention provides a distributed processing system in which a plurality of servers manage data, the plurality of servers including an original management server that manages original data of the data, A copy management server for managing copy data, wherein the original management server stores the original data and also stores copy management information indicating which of the plurality of servers manages the data. The original data stored in the storage unit is updated by processing a request from a storage unit and a client machine, and the updated original data is transferred to the replication management server asynchronously with the processing of the request. A processing unit configured to transmit and create the replicated data, the processing unit configured to transmit the replicated data by the replication management server; The replication status is monitored, and when the replication data creation fails, the replication management server that failed to create the replication data is removed from the distributed processing system, and another server among the plurality of servers is newly replaced. The replication management server is configured such that a new replication management server creates the replication data.
かかる構成によると、リクエスト処理とは非同期に複製データを作成するとともに、複製データの作成に失敗した場合に、複製データの作成に失敗した複製管理サーバを当該分散処理システムから離脱させ、複数のサーバのうちの他のサーバを新たな複製管理サーバとし、新たな複製管理サーバに複製データを作成させるので、原本データと複製データとがアンマッチのまま分散処理システムが運用されることを防ぐことができる。 According to such a configuration, the replication data is created asynchronously with the request processing, and when the replication data creation fails, the replication management server that failed to create the replication data is separated from the distributed processing system, and a plurality of servers Since the other replication server is used as a new replication management server and the new replication management server creates replication data, it is possible to prevent the distributed processing system from operating with the original data and the replication data being unmatched. .
前記複製管理サーバは、前記複製データを作成して当該複製管理サーバの記憶部に記憶させる処理部を備え、前記複製管理サーバの前記処理部は、前記複製データの作成中に前記原本管理サーバがダウンした場合には、作成しようとした前記複製データの中で作成済みの前記複製データを前記原本データとして当該複製管理サーバの前記記憶部に記憶させる構成であってもよい。 The replication management server includes a processing unit that creates the replication data and stores the replication data in a storage unit of the replication management server, and the processing unit of the replication management server is configured to enable the original management server to create In the case of down, the copy data already created among the copy data to be created may be stored in the storage unit of the copy management server as the original data.
かかる構成によると、複製データの作成が全て完了する前に原本管理サーバがダウンした場合には、作成済みの複製データを原本データとして当該複製管理サーバの記憶部に記憶させるので、複製データの作成中に原本管理サーバがダウンした場合においても、データの完全消失を防ぐことができる。 According to this configuration, if the original management server goes down before the creation of all replicated data is completed, the created replicated data is stored in the storage unit of the relevant replication management server as the original data. Even when the original management server goes down, complete loss of data can be prevented.
前記分散処理システムは、環状のID(IDentifier)空間に、処理対象の複数の前記データのID、及び、クラスタを構成し前記データに関するリクエストを処理する前記複数のサーバのIDが割り当てられ、前記ID空間において前記データのIDから所定方向回りに辿って最初に遭遇した前記サーバまでの間に位置する前記データを、当該サーバが前記原本管理サーバとなって前記原本データとして保持するとともに、前記クラスタ内の前記原本管理サーバ以外のサーバが前記複製管理サーバとなって前記複製データを保持する構成であってもよい。 In the distributed processing system, IDs of a plurality of data to be processed and IDs of the plurality of servers that form a cluster and process requests related to the data are allocated to a circular ID (IDentifier) space, and the ID In the space, the data located between the ID of the data and the first server encountered in a predetermined direction is held as the original management server as the original data, The server other than the original management server may be the replication management server and hold the replication data.
かかる構成によると、環状のID空間にデータ及びサーバが配置される、いわゆるコンシステント・ハッシュ法を採用した分散処理システムにおいて、原本データと複製データとがアンマッチのまま分散処理システムが運用されることを防ぐことができる。 According to such a configuration, in a distributed processing system employing a so-called consistent hash method in which data and servers are arranged in a circular ID space, the distributed processing system is operated while the original data and the replicated data are unmatched. Can be prevented.
本発明によれば、本発明によれば、分散処理システムにおいてリクエスト処理とは非同期に複製データを作成する場合においても、データの損失を効率的に防ぐことができる。 According to the present invention, according to the present invention, data loss can be efficiently prevented even when replicated data is created asynchronously with request processing in a distributed processing system.
以下、本発明の実施形態について、適宜図面を参照して説明する。同様の構成には同一の符号を付し、重複する説明を省略する。 Embodiments of the present invention will be described below with reference to the drawings as appropriate. Similar components are denoted by the same reference numerals, and redundant description is omitted.
<分散処理システム>
図1に示すように、本発明の実施形態に係る分散処理システム1000は、負荷分散装置3と、クラスタ100を構成する複数のサーバ4と、を備えている。負荷分散装置3は、インターネット等のネットワーク2を介して、複数のクライアントマシン1と接続されている。
<Distributed processing system>
As shown in FIG. 1, a
ここで、分散処理システム1000全体の主な動作について説明する。まず、負荷分散装置3は、クライアントマシン1からのリクエストを、ネットワーク2経由で受信する。負荷分散装置3は、受信したリクエストを、複数のサーバ4のいずれかに振り分ける。リクエストを振り分けられたサーバ4は、振り分けられたリクエストの処理を行うとともに、他の(本実施形態では、1つ)のサーバ4にデータの複製の記憶を要求する。
Here, main operations of the entire
<負荷分散装置>
続いて、負荷分散装置3の構成について説明する。負荷分散装置3は、記憶部31と、処理部32と、入力部33と、表示部34と、通信部35と、を備える。
<Load distribution device>
Next, the configuration of the
記憶部31は、情報を記憶する手段であり、RAM(Random Access Memory)やROM(Read Only Memory)等のメモリ、HDD(Hard Disk Drive)等によって構成される。記憶部31には、ID空間管理情報311と複製管理情報312と、が格納されている。また、記憶部31には、処理部32を具現化する動作プログラムなども格納されている。なお、ID空間管理情報311は、後記するサーバ4のID空間管理情報411と同一であり、複製管理情報312は、後記するサーバ4の複製管理情報412と同一である。そのため、ID空間管理情報311及び複製管理情報312に関する説明を省略する。
The
処理部32は、記憶部31に格納された情報に基づいて演算処理を行う手段であり、例えばCPU(Central Processing Unit)によって構成される。処理部32は、クラスタ100へのサーバ4の離脱等によりID空間管理情報311を更新し、更新された最新のID空間管理情報311をすべてのサーバ4に送信する。
The processing unit 32 is means for performing arithmetic processing based on information stored in the
また、処理部32は、ID空間管理情報311に基づいて、通信部35が受信したクライアントマシン1からのリクエストを複数のサーバ4のどれに振り分けるかについて決定する。
Further, the processing unit 32 determines which of the plurality of
入力部33は、サーバ4の管理者が情報を入力する手段であり、例えば、キーボード、マウス等によって実現される。
The
表示部34は、情報を表示する手段であり、例えば、LCD(Liquid Crystal Display)によって実現される。
The
通信部35は、外部装置との通信に用いられる通信インタフェースである。
The
<サーバ>
続いて、サーバ4の構成について説明する。サーバ4は、負荷分散装置3によって振り分けられたクライアントマシン1からのリクエストを処理するコンピュータ装置である。なお、前記したように、コンシステント・ハッシュ法では、管理対象の複数のデータ、及び、データを管理しクラスタ100を構成する複数のサーバ4、が環状のID空間に割り振られ、それぞれのサーバ4が、ID空間において自身から反時計回り(所定方向回り)に次のサーバ4までの間に位置するデータ(原本データ)を記憶して管理する原本管理サーバとして機能するとともに、当該次のサーバ4から反時計回り(所定方向回り)にさらに次のサーバ4までの間に位置するデータの複製(複製データ)を記憶して管理する複製管理サーバとして機能することを前提とする。
<Server>
Next, the configuration of the
サーバ4は、記憶部41と、処理部42と、通信部43と、を備える。
The
記憶部41は、情報を記憶する手段であり、RAMやROM等のメモリ、HDD等によって構成される。記憶部41には、当該サーバ4に対応する原本データ及び複製データが格納されているとともに、負荷分散装置3から受信したID空間管理情報311及び複製管理情報312が、それぞれID空間管理情報411及び複製管理情報412として格納されている。なお、記憶部41には、処理部42を具現化する動作プログラム等も格納されている。
The
処理部42は、記憶部41に格納された情報に基づいて演算処理を行う手段であり、例えばCPUによって構成される。処理部42は、負荷分散装置3によって振り分けられたクライアントマシン1からのリクエストを処理する。すなわち、処理部42は、リクエストに対応するデータ(原本データ)を記憶部41内において更新する。
The
処理部42は、さらに、ID空間管理情報411を参照してID空間における自身から所定方向回りに次のサーバ4に当該リクエストの処理に用いたデータの複製の記憶を要求する。ここで、処理部42は、記憶部41に記憶された原本データのうち、リクエストによって更新された原本データのみの複製の記憶を要求する構成であってもよく、全ての原本データの複製の記憶を要求する構成であってもよい。また、複製管理サーバの処理部42は、複製データを作成して(すなわち、原本管理サーバの処理部42から送信されたデータを受信して複製データとし)、作成した複製データを複製管理サーバの記憶部41に記憶させる。
The
なお、処理部42は、レスポンスタイムを短くするために、次のサーバ4におけるデータの複製の記憶が完了する前に、クライアントマシン1からのリクエストに対して返信し、データの複製を、リクエストの処理とは非同期に行うものとする。また、処理部42は、かかるリクエストの処理及びデータの複製に応じて複製管理情報412を更新したり、複製管理情報412の更新結果を他のサーバ4及び負荷分散装置3に送信したりすることができる。
In order to shorten the response time, the
通信部43は、外部装置との通信に用いられる通信インタフェースである。なお、サーバ4は、入力部や表示部を備えていてもよい。
The
ID空間管理情報411は、管理対象のデータについて、所定のハッシュ値変換によって算出されたIDを用いて、そのデータを担当するサーバ4を管理するための情報である。IDは、環状のID空間における位置を示す固有の値であり、サーバ4が管理を担当するデータの領域を特定するために格納され、IDの値の大きさでソートされている。
The ID
図2に示す例では、第1行目は、IPアドレスが「192.168.0.3」のサーバ4に対して、ID「9245D30E」が割り当てられており、かかるサーバ4が、IDが「00000000」〜「9245D30E」の領域に属するデータを担当する(すなわち、当該領域の原本データを記憶して管理する)ことを示している。
また、第2行目は、IPアドレスが「192.168.2.15」のサーバ4が、1つ前の行のIDの値に1をプラスした識別子からその行のIDまでの値の識別子に属するデータを担当することを示している。
In the example shown in FIG. 2, the ID “9245D30E” is assigned to the
In the second line, the
複製管理情報412は、各管理対象のデータ毎に作成され、データの複製の状況を管理するための情報である。図3に示すように、複製管理情報412は、原本データが記憶されるサーバ4のIPアドレスと、複製データが記憶されるIPアドレスと、のそれぞれについて、複製状態及び複製版数が関連付けられている。例えば、複製状態が「0」であれば、該当するサーバ4が当該データの原本データを管理していることを示し、複製状態が「1」であれば、該当するサーバ4が当該データの複製データを管理していることを示す。また、データの複製は、クライアントマシン1からのリクエストとは非同期に行われるので、追加差分を随時複製するため、原本データを管理するサーバ4の処理部42は、原本データ作成時に、原本データに関する複製版数を更新しておき、複製データ作成の成功時に複製データに関する複製版数を更新することで、複製状況を更新可能とする。また、原本データを管理するサーバ4の処理部42は、複製に失敗した場合に、複製状態を「2」と更新することで、複製の失敗の有無を管理することができる。また、サーバ4の処理部42は、クラスタ100からの離脱等によるID空間管理情報411の更新があって、原本データを保持しているサーバ4のIPアドレスが削除された場合には、ID空間管理情報411及び複製管理情報412から当該IPアドレスを削除し、複製管理情報412に、次に複製管理サーバとなる候補であるサーバ4のIPアドレスを追加する。また、サーバ4の処理部42は、複製管理情報412において、クラスタ100から離脱したサーバ4が保持していた原本データの複製データを保持するサーバ(複製管理サーバ)4のIPアドレスの複製状態を「2」から「0」に更新し、かかるサーバ4を複製管理サーバから原本管理サーバに昇格させる。
The
<原本管理サーバの動作例>
続いて、図4に示すID空間を例にとり、あるデータAを原本データとして管理する原本管理サーバ(メンバ1)であるサーバ4による処理について説明する。
<Operation example of the original management server>
Next, taking the ID space shown in FIG. 4 as an example, processing by the
図5に示すように、ステップS1において、原本管理サーバ(メンバ1)の処理部42は、クライアントマシン1からのリクエストを、負荷分散装置3から受信したか否かを判定する。ステップS1でYesの場合は、本フローはステップS2に進み、ステップS1でNoの場合は、本フローはステップS1に戻る。
As shown in FIG. 5, in step S <b> 1, the
ステップS2において、原本管理サーバ(メンバ1)の処理部42は、受信したリクエストに対するデータ処理を行う。詳細には、処理部42は、受信したリクエストに基づいて、記憶部41に記憶された原本データを更新し、リクエストを送信したクライアントマシン1に対して、リクエストに対する返信を行う。
In step S2, the
ステップS3において、原本管理サーバ(メンバ1)の処理部42は、クライアントマシン1からのリクエストとは非同期に、記憶部41のID空間管理情報411を参照して、ID空間における時計回りに隣のサーバ4にデータの複製の記憶を要求する。詳細には、処理部42は、記憶部41に記憶された原本データを、複製データ管理サーバ(メンバ2)である隣のサーバ(メンバ2)4へ送信する。複製管理サーバ(メンバ2)であるサーバ4の処理部42は、原本データを受信すると、受信した原本データを複製データとして記憶部41に記憶させる。
In
ステップS4において、原本管理サーバ(メンバ1)の処理部42は、クライアントマシン1からのリクエストとは非同期に、複製管理サーバ(メンバ2)からのデータの複製の完了通知(レスポンス)を監視する。
In step S4, the
複製管理サーバ(メンバ2)においてデータの複製が正常に完了しない場合(ステップS4でNo)は、原本管理サーバ(メンバ1)の処理部42は、記憶部41に記憶されたID空間管理情報411を参照して、ID空間における時計回りにさらに次のサーバ(メンバ3)4を新たな複製管理サーバとし、当該複製管理サーバに対して複製データの作成を要求する。
When data replication is not normally completed in the replication management server (member 2) (No in step S4), the
すなわち、図2において、IPアドレスが「192.168.2.15」のサーバ4が、データAにとっての複製管理サーバとして正常に応答しない場合は、次のIPアドレスが「192.168.8.5」のサーバ4が、データAにとっての新たな複製管理サーバに該当することとなる。
That is, in FIG. 2, when the
なお、ステップS4において、複製データの作成が正常に完了しない場合の判断として、複製管理サーバの処理部42が複製失敗通知を送信し、原本管理サーバの処理部42が複製失敗通知を受信した場合、原本管理サーバの処理部42が一定時間内に正常な完了通知を受信することができなかった場合等も同様に扱うことができる。
In step S4, when the creation of the duplicate data is not completed normally, the
また、ステップS4において、原本管理サーバの処理部42が複製失敗通知を受信した場合には、当該処理部42が、差分の更新に失敗したリトライとして原本データ全体を再送する場合がある。この場合には、処理部42は、原本データ全体を複製管理サーバへ再送するのと同時に、ステップS5を実行して次の複製管理サーバ候補に対する複製データの作成を要求することによって、早期に冗長性を保つことができる。
In step S4, when the
ステップS6において、原本管理サーバの処理部42が複製データ作成の完了通知を受信すると(ステップS6でYes)、ステップS7において、原本管理サーバの処理部42は、元の複製管理サーバをクラスタ100から離脱させる。詳細には、原本管理サーバの処理部42は、ID空間管理情報411を参照して、元の複製管理サーバのクラスタ100からの離脱を管理サーバに要求する。管理サーバは、自身のID空間管理情報411から、元の複製管理サーバに関する情報を削除し、このように更新されたID空間管理情報411を、他のサーバ4及び負荷分散装置3に送信する。ID空間管理情報411を受信したサーバ4の処理部42及び負荷分散装置3の処理部32は、受信したID空間管理情報を用いて自身の記憶部41,31内のID空間管理情報411,311を更新し、これによって、元のID複製管理サーバのクラスタ100からの離脱が完了する。ここで、管理サーバは、クラスタ100を構成するサーバ4の中から、ID空間管理情報411を更新可能なサーバ4として予め指定されたものである。なお、各原本管理サーバが当該管理サーバとして機能する構成であってもよい。
In step S6, when the
また、ステップS6において、新たな複製管理サーバ(メンバ3)においてデータの複製が正常に完了しない場合(ステップS6でNo)は、原本管理サーバ(メンバ1)の処理部42は、記憶部41に記憶されたID空間管理情報411を参照して、ID空間における時計回りにさらに次のサーバ(メンバ4)4を新たな複製管理サーバとし、当該複製管理サーバに対して複製データの作成を要求する(ステップS5)。
In step S6, when data replication is not normally completed in the new replication management server (member 3) (No in step S6), the
ステップS6において、図2の例では、管理サーバは、IPアドレス「192.168.2.15」の行をID空間管理情報411から削除する。なお、管理サーバは、複製データの作成の完了通知を待たずに、元の複製管理サーバのクラスタ100からの離脱を開始してもよい。この場合には、離脱した元の複製管理サーバに記憶された複製データの原本データ化は行われないことになる。
In step S <b> 6, in the example of FIG. 2, the management server deletes the line with the IP address “192.168.2.15” from the ID
また、ステップS4でYesの場合、及び、ステップS6でYesの場合には、原本管理サーバの処理部42は、対応する複製管理情報412を更新し、更新結果を複製管理情報412の更新結果を他のサーバ4及び負荷分散装置3に送信する。
In the case of Yes in step S4 and in the case of Yes in step S6, the
<複製管理サーバの動作例>
続いて、図4に示すID空間を例にとり、あるデータAの複製データを管理する複製管理サーバ(メンバ2)であるサーバ4による処理について説明する。
<Operation example of replication management server>
Next, taking the ID space shown in FIG. 4 as an example, processing by the
図6に示すように、ステップS11において、複製管理サーバ(メンバ2)の処理部41は、原本管理サーバ(メンバ1)から複製データの作成を要求されると、複製データを作成する、すなわち、複製管理サーバ(メンバ2)の処理部42は、原本管理サーバ(メンバ1)が原本データを送信すると、送信された原本データを受信し、受信した原本データを複製データとして記憶部41に記憶させる。
As shown in FIG. 6, in step S11, when the
複製データの作成が成功した場合(ステップS12でYes)には、ステップS13において、複製管理サーバ(メンバ2)の処理部42は、複製データの作成の完了通知を原本管理サーバ(メンバ1)へ送信する。
If the copy data creation is successful (Yes in step S12), in step S13, the
また、複製データの作成が失敗した場合(ステップS12でNo)であって、かつ、失敗の理由が複製データの作成中に原本管理サーバ(メンバ1)がダウンしたことではない場合(ステップS14でNo)には、ステップS15において、複製管理サーバ(メンバ2)の処理部41は、複製データの作成の失敗通知を原本管理サーバ(メンバ1)へ送信する。
Further, if the creation of the duplicate data has failed (No in step S12), and the reason for the failure is not that the original management server (member 1) is down during the creation of the duplicate data (in step S14). In No), in step S15, the
また、複製データの作成が失敗した場合(ステップS12でNo)であって、かつ、失敗の理由が複製データの作成中に原本管理サーバ(メンバ1)がダウンしたことである場合(ステップS14でYes)には、ステップS16において、複製管理サーバ(メンバ2)の処理部41は、作成しようとした複製データのうち、作成済みの複製データを原本データとして記憶部41に記憶させる(すなわち、原本管理サーバがダウンする前に送信されて受信に成功したデータを記憶部41に記憶させ、当該データの複製管理情報412の複製状態を「0」に設定する)ことにより、データAの完全消失を防ぐ。この場合には、前記したステップS7における複製管理サーバの離脱は、実施されない。ここで、複製管理サーバが原本管理サーバのダウンを検知する手法としては、複製管理サーバ及び原本管理サーバが相互間でハートビート信号を送受信してお互いに監視してダウンを検知する手法等、任意の公知の手法が採用可能である。また、複製管理サーバから原本管理サーバに昇格したサーバ4は、前記した元の複製管理サーバのクラスタ100からの離脱と同様の手法によって、元の原本管理サーバをクラスタ100から離脱させることができる。
Further, if the creation of the duplicate data has failed (No in step S12), and the reason for the failure is that the original management server (member 1) is down during the creation of the duplicate data (in step S14). In step S16, the
また、ステップS13の実行後、及び、ステップS16の実行後において、複製管理サーバの処理部42は、対応する複製管理情報412を更新し、更新結果を複製管理情報412の更新結果を他のサーバ4及び負荷分散装置3に送信する。
Further, after execution of step S13 and after execution of step S16, the
本発明の実施形態に係る分散処理システム1000は、リクエスト処理とは非同期に複製データを作成するとともに、複製データの作成に失敗した場合に、複製データの作成に失敗した複製管理サーバを当該分散処理システム1000から離脱させ、クラスタ100を構成する複数のサーバ4のうちの他のサーバ4を新たな複製管理サーバとし、新たな複製管理サーバに複製データを作成させるので、原本データと複製データとがアンマッチのままクラスタ100が運用されることを防ぐことができる。したがって、分散処理システム1000は、リクエスト処理とは非同期に複製データを作成する場合においても、データの損失を効率的に防ぐことができる。
また、分散処理システム1000は、複製データの作成が全て完了する前に原本管理サーバがダウンした場合には、作成済みの複製データを原本データとして当該複製管理サーバの記憶部41に記憶させるので、複製データの作成中に原本管理サーバがダウンした場合においても、データの完全消失を防ぐことができる。
The distributed
Further, when the original management server goes down before the creation of all the replicated data is completed, the distributed
以上、本発明の実施形態について説明したが、本発明は前記実施形態に限定されず、本発明の要旨を逸脱しない範囲で適宜変更可能である。例えば、本発明の分散処理システムは、コンシステント・ハッシュ法を用いるシステムに限定されず、原本管理サーバが保持する原本データを他のサーバ(複製管理サーバ)に複製データとして保持させるシステム全般に適用可能である。また、前記実施形態では、冗長度が2(すなわち、1つのデータに対して原本管理サーバが1つで複製管理サーバが1つ)のケースを例にとって説明したが、本発明は、冗長度が3以上(すなわち、1つのデータに対して原本管理サーバが1つで複製管理サーバが2つ以上)の分散処理システムにも適用可能である。 As mentioned above, although embodiment of this invention was described, this invention is not limited to the said embodiment, In the range which does not deviate from the summary of this invention, it can change suitably. For example, the distributed processing system of the present invention is not limited to a system using the consistent hash method, and is applied to all systems in which original data held by the original management server is held as replication data by another server (replication management server). Is possible. In the above embodiment, the case where the redundancy is 2 (that is, one original management server and one replication management server for one data) has been described as an example. The present invention can also be applied to a distributed processing system having three or more (that is, one original management server and two or more replication management servers for one data).
100 クラスタ
1000 分散処理システム
4 サーバ(原本管理サーバ、複製管理サーバ)
41 記憶部
411 ID空間管理情報
412 複製管理情報
42 処理部
100
41
Claims (3)
前記複数のサーバは、
前記データの原本データを管理する原本管理サーバと、
前記データの複製データを管理する複製管理サーバと、
を備え、
前記原本管理サーバは、
前記原本データが記憶されるとともに、前記データが前記複数のサーバのいずれによって管理されているかを示す複製管理情報が記憶される記憶部と、
クライアントマシンからのリクエストを処理することによって前記記憶部に記憶された前記原本データを更新し、かかるリクエストの処理とは非同期に、更新された前記原本データを前記複製管理サーバに送信して前記複製データを作成させる処理部を備え、
前記処理部は、前記複製管理サーバによる前記複製データの作成状態を監視し、前記複製データの作成に失敗した場合に、前記複製データの作成に失敗した前記複製管理サーバを当該分散処理システムから離脱させ、前記複数のサーバのうちの他のサーバを新たな前記複製管理サーバとし、新たな前記複製管理サーバに前記複製データを作成させる
ことを特徴とする分散処理システム。 A distributed processing system in which multiple servers manage data,
The plurality of servers are:
An original management server for managing original data of the data;
A replication management server for managing replication data of the data;
With
The original management server
A storage unit that stores the original data, and stores replication management information indicating which of the plurality of servers manages the data;
The original data stored in the storage unit is updated by processing a request from a client machine, and the updated original data is transmitted to the replication management server asynchronously with the processing of the request. It has a processing unit that creates data,
The processing unit monitors a state of creation of the replicated data by the replication management server, and when the replication data creation fails, leaves the replication management server that failed to create the replicated data from the distributed processing system. A distributed processing system, wherein another server of the plurality of servers is used as the new replication management server, and the new replication management server creates the replication data.
前記複製管理サーバの前記処理部は、前記複製データの作成中に前記原本管理サーバがダウンした場合には、作成しようとした前記複製データの中で作成済みの前記複製データを前記原本データとして当該複製管理サーバの前記記憶部に記憶させる
ことを特徴とする請求項1に記載の分散処理システム。 The replication management server includes a processing unit that creates the replication data and stores the replication data in a storage unit of the replication management server,
When the original management server goes down during the creation of the duplicate data, the processing unit of the duplicate management server uses the duplicate data already created in the duplicate data to be created as the original data. The distributed processing system according to claim 1, wherein the storage unit of the replication management server stores the storage unit.
ことを特徴とする請求項1又は請求項2に記載の分散処理システム。 An ID of the plurality of data to be processed and an ID of the plurality of servers that form a cluster and process requests related to the data are allocated to a circular ID (IDentifier) space, and the ID of the data in the ID space The data located between the server and the first server encountered in a predetermined direction is stored as the original data as the original management server, and other than the original management server in the cluster. The distributed processing system according to claim 1, wherein the server serves as the replication management server and holds the replicated data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014038834A JP6093320B2 (en) | 2014-02-28 | 2014-02-28 | Distributed processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014038834A JP6093320B2 (en) | 2014-02-28 | 2014-02-28 | Distributed processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015162216A true JP2015162216A (en) | 2015-09-07 |
JP6093320B2 JP6093320B2 (en) | 2017-03-08 |
Family
ID=54185233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014038834A Active JP6093320B2 (en) | 2014-02-28 | 2014-02-28 | Distributed processing system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6093320B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180095004A (en) * | 2015-12-16 | 2018-08-24 | 아브 이니티오 테크놀로지 엘엘시 | High Throughput, High Reliability Data Processing System |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000163300A (en) * | 1998-11-24 | 2000-06-16 | Toshiba Corp | Backup system |
JP2004348174A (en) * | 2002-07-30 | 2004-12-09 | Hitachi Ltd | Storage device system |
JP2009070143A (en) * | 2007-09-13 | 2009-04-02 | Hitachi Ltd | Method for restoring data in differential remote backup of nas device, and computer system |
JP2012221419A (en) * | 2011-04-13 | 2012-11-12 | Hitachi Ltd | Information storage system and data duplication method thereof |
-
2014
- 2014-02-28 JP JP2014038834A patent/JP6093320B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000163300A (en) * | 1998-11-24 | 2000-06-16 | Toshiba Corp | Backup system |
JP2004348174A (en) * | 2002-07-30 | 2004-12-09 | Hitachi Ltd | Storage device system |
JP2009070143A (en) * | 2007-09-13 | 2009-04-02 | Hitachi Ltd | Method for restoring data in differential remote backup of nas device, and computer system |
JP2012221419A (en) * | 2011-04-13 | 2012-11-12 | Hitachi Ltd | Information storage system and data duplication method thereof |
Non-Patent Citations (2)
Title |
---|
島田 慶樹 KEIKI SHIMADA: "Twitter、Facebookが採用するNoSQLシステム Cassandra実践入門", WEB+DB PRESS VOL.58 初版, vol. 第58巻, JPN6016044175, 25 September 2010 (2010-09-25), JP, pages 47 - 58, ISSN: 0003440824 * |
首藤 一幸 KAZUYUKI SHUDOU: "雲の向こうの未来 クラウドをつかむ The Catcher in the Cloud.", UNIX MAGAZINE VOL.24 NO.2, vol. 第24巻、第2号, JPN6016044174, 1 April 2009 (2009-04-01), JP, pages 78 - 91, ISSN: 0003440823 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180095004A (en) * | 2015-12-16 | 2018-08-24 | 아브 이니티오 테크놀로지 엘엘시 | High Throughput, High Reliability Data Processing System |
JP2019504401A (en) * | 2015-12-16 | 2019-02-14 | アビニシオ テクノロジー エルエルシー | High throughput, high reliability data processing system |
KR102105478B1 (en) * | 2015-12-16 | 2020-04-28 | 아브 이니티오 테크놀로지 엘엘시 | High throughput, highly reliable data processing system |
Also Published As
Publication number | Publication date |
---|---|
JP6093320B2 (en) | 2017-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11770447B2 (en) | Managing high-availability file servers | |
JP6073246B2 (en) | Large-scale storage system | |
US20240168673A1 (en) | Methods and systems to interface between a multi-site distributed storage system and an external mediator to efficiently process events related to continuity | |
US9047331B2 (en) | Scalable row-store with consensus-based replication | |
US9483482B2 (en) | Partitioning file system namespace | |
CA2903841A1 (en) | A computer implemented method for dynamic sharding | |
US9396076B2 (en) | Centralized version control system having high availability | |
JP5969315B2 (en) | Data migration processing system and data migration processing method | |
JP2013182546A (en) | Management device and program | |
JP5723309B2 (en) | Server and program | |
CN111708668A (en) | Cluster fault processing method and device and electronic equipment | |
KR20130038517A (en) | System and method for managing data using distributed containers | |
JP6093320B2 (en) | Distributed processing system | |
JP6055197B2 (en) | Database system | |
JP5918802B2 (en) | Nodes and programs | |
JP2015018508A (en) | Distributed processing system | |
US9537739B1 (en) | HA split brain over network | |
JP5690296B2 (en) | Load balancing program and load balancing apparatus | |
JP5658621B2 (en) | Signal distribution duplication destination determination system, signal distribution duplication destination determination method and program | |
JP5711771B2 (en) | Node leave processing system | |
JP2013182553A (en) | Management device and program | |
JP6714547B2 (en) | Load balancing device, load balancing method, and load balancing program | |
JP5845298B2 (en) | Nodes and programs | |
JP2011180658A (en) | Redundancy method in distributed file system | |
JP5815000B2 (en) | Nodes and programs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160122 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161107 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161122 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170119 |
|
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: 20170207 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170210 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6093320 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |