JP6093320B2 - 分散処理システム - Google Patents

分散処理システム Download PDF

Info

Publication number
JP6093320B2
JP6093320B2 JP2014038834A JP2014038834A JP6093320B2 JP 6093320 B2 JP6093320 B2 JP 6093320B2 JP 2014038834 A JP2014038834 A JP 2014038834A JP 2014038834 A JP2014038834 A JP 2014038834A JP 6093320 B2 JP6093320 B2 JP 6093320B2
Authority
JP
Japan
Prior art keywords
data
replication
management server
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.)
Active
Application number
JP2014038834A
Other languages
English (en)
Other versions
JP2015162216A (ja
Inventor
信 浜田
信 浜田
俊之 森谷
俊之 森谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2014038834A priority Critical patent/JP6093320B2/ja
Publication of JP2015162216A publication Critical patent/JP2015162216A/ja
Application granted granted Critical
Publication of JP6093320B2 publication Critical patent/JP6093320B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、複数のサーバを備えた分散処理システムで扱うデータのレプリケーション技
術に関する。
近年、クラウドコンピューティングの隆盛に伴い、多量のデータの処理や保持を効率的に行うことが求められている。そこで、複数のサーバを協調動作させることにより効率的な処理を実現する分散処理技術が発展している。
分散処理を行う際には、処理対象(管理対象)のデータを、クラスタを構成する各サーバ(以下、「クラスタメンバ」または「メンバ」とも称する。)に振り分けておく必要がある。このとき、クラスタ全体での処理能力を高めるためには、各クラスタメンバが担当するデータ数(データ量)は、平均化されていることが望ましい。
代表的なデータの振り分け手法として、各データのkeyをハッシュ関数にかけた値(以下、「hash(key)」と称する。)をクラスタメンバ数Nで割った余り、すなわち「hash(key) mod N」を番号として持つクラスタメンバにデータを振り分ける手法がある。この場合、各クラスタメンバに対して、事前に「0」から「N−1」までの番号を割り当てていることが前提となる。このような振り分け手法を用いた場合、クラスタメンバを追加すると、Nの値が変化して、多くのデータについて、担当するクラスタメンバが変更になるため、担当するデータの再配置が必要になる。
そこで、クラスタメンバの追加に伴い担当するクラスタメンバが変更になるデータ数を約1/Nに抑える手法として、コンシステント・ハッシュ法(Consistent Hashing)を用いた振り分け手法(非特許文献1参照)がある。
このコンシステント・ハッシュ法を用いたデータ振り分け手法では、クラスタメンバとデータの双方にID(IDentifier)を割り当て、データのIDから環状のID空間を時計回りに辿った場合に最初に出合ったクラスタメンバを、そのデータの担当とする。
また、多量のデータの管理をクラスタ構成の分散処理システムで行う場合、あるクラスタメンバに障害が発生した場合でも他のクラスタメンバで処理を継続することができるように、データの複製を保持することでデータ冗長化を実現する必要がある。これは、コンシステント・ハッシュ法によるデータ管理手法を用いた分散処理システムにおいても同様である。
図4に示すように、コンシステント・ハッシュ法では、クラスタメンバ(メンバ1〜4)及びデータ(データA〜D。黒丸で表示)の双方にIDを割り当て、データのIDからID空間を時計回りに辿り、最初に出会ったクラスタメンバを、そのデータの担当として決定する。
そして、担当するクラスタメンバのさらに右隣(時計回りに辿って次)のクラスタメンバに複製データを担当させる。
例えば、図4においては、データ(原本データ)Aについては、ID空間上を時計回りに辿って最初に出会ったメンバ1が担当となり、データAの複製データについては、ID空間上でメンバ1の右隣にあたるメンバ2が担当となる。このように、原本データ及び複製データを担当するクラスタメンバを決定することで、クラスタメンバに離脱があった場合でも、離脱したクラスタメンバが担当していたデータAの複製データを所持しているクラスタメンバが、当該データAを担当する新たなクラスタメンバとなることで対応することができるという利点がある。なお、複製データを複数個作成する場合には、さらに右隣のクラスタメンバに2個目の複製データを担当させるようにすることもできる。
ここで、このような手法に使用できるデータベースサーバとしては、例えば、Cassandra(非特許文献2)等に記載されている、複数サーバが動的にクラスタに参加・離脱することが可能な分散データベースサーバが挙げられる。非特許文献2に記載の技術では、コンシステント・ハッシュ法を用いたデータの均等な分散及び高速アクセスが実現されている。また、複製データを複数のサーバに対して持たせることで、耐故障性を高めることができる。複製データを複数のサーバに対して持たせると、対故障性を高めることができる一方で、複製にかかる処理負荷、複数サーバ間における複製情報の整合性、複製情報を保持するためのデータ蓄積量の増大等を招くことから、通常は、同じ複製データを保持するサーバを複数設けることはしない。
また、例えばセッション制御サーバのようにリクエストの応答時間が厳しい処理を実現する場合、リクエストの応答内容と複製データとを同期させてからリクエストの応答を返信するのでは処理時間が厳しいので、リクエストの応答は先に返信し、管理対象の複製データの作成は、リクエストの応答とは非同期に行うことで、応答時間を確保することになる。
David Karger et al., " Consistent Hash ing and Random Tre es: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web", [online], 1997, ACM, [2014年2月28日検索], インターネット<URL:http://dl.acm.org/citation.cfm?id=258660> Avinash Lakshman et al., "Cassandra - A Decentralized Structured Storage System" , [online], [2014年2月28日検索], インターネット<URL:http://www.cs.cornell.edu/projects/ladis2009/papers/lakshman-ladis2009.pdf>
しかしながら、クラスタ内における処理遅延等によって、複製データの作成に失敗しても、サーバがクライアントマシンにリクエストに対して正常に返信しているために、リクエストの再送を期待することができず、原本データと複製データとがアンマッチのままクラスタが運用されることになり、原本データを管理するサーバがダウンした場合に、データを消失してしまうおそれがある。
そこで、本発明は、前記事情に鑑みてなされたものであり、管理対象となるデータのリクエスト処理とは非同期のデータ複製処理が失敗した場合でも、データ複製処理の再実行が可能な分散処理システムを提供することを課題とする。
前記の目的を達成するために、本発明は、複数のサーバがデータを管理する分散処理システムであって、一の前記データに関して、前記複数のサーバのうちの一台のサーバが前記データの原本データを管理する原本管理サーバとなり、他のサーバのいずれかが前記データの複製データを管理する複製管理サーバとなり、一の前記データに関して前記原本管理サーバとなる前記サーバは、一の前記データに関する前記原本データが記憶されるとともに、一の前記データに関する前記原本データ及び前記複製データが前記複数のサーバのいずれによって管理されているかを示す複製管理情報が記憶される記憶部と、クライアントマシンからのリクエストを処理することによって前記記憶部に記憶された前記原本データを更新し、かかるリクエストの処理とは非同期に、更新された前記原本データを前記複製管理サーバに送信して前記複製データを作成させる処理部を備え、前記複製管理情報は、一の前記データに関して、前記サーバごとに当該サーバに記憶された一の前記データが前記原本データとしての管理であるか前記複製データとしての管理であるか複製失敗の状態であるかを示す複製状態を含み、一の前記データに関して前記原本管理サーバとなる前記サーバの前記処理部は、前記複製管理サーバによる前記複製データの作成状態を監視し、前記複製データの作成に失敗した場合に、前記複製状態を複製失敗として前記複製管理情報を更新するとともに前記複製データの作成に失敗した前記複製管理サーバを当該分散処理システムから離脱させ、前記複数のサーバのうちの他のサーバを新たな前記複製管理サーバとし、新たな前記複製管理サーバに前記複製データを作成させ、前記複製データの作成に成功した新たな前記複製管理サーバに関する前記複製管理情報を作成して前記記憶部に記憶させ、一の前記データに関して前記複製管理サーバとなる前記サーバは、一の前記データに関する前記複製データが記憶されるとともに、前記複製管理情報が記憶される記憶部と、前記複製データを前記記憶部に記憶させる処理部を備え、一の前記データに関して前記複製管理サーバとなる前記サーバの前記処理部は、前記複製データの作成中に前記原本管理サーバがダウンした場合には、作成しようとした前記複製データの中で作成済みの前記複製データを当該複製管理サーバの前記記憶部に記憶させるとともに、一の前記データに関して当該複製管理サーバが原本管理サーバとなり作成済みの前記複製データが前記原本データとなるように前記複製管理情報を更新することを特徴とする。
かかる構成によると、リクエスト処理とは非同期に複製データを作成するとともに、複製データの作成に失敗した場合に、複製データの作成に失敗した複製管理サーバを当該分散処理システムから離脱させ、複数のサーバのうちの他のサーバを新たな複製管理サーバとし、新たな複製管理サーバに複製データを作成させるので、原本データと複製データとがアンマッチのまま分散処理システムが運用されることを防ぐことができる。
また、かかる構成によると、複製データの作成が全て完了する前に原本管理サーバがダウンした場合には、作成済みの複製データを原本データとして当該複製管理サーバの記憶部に記憶させるので、複製データの作成中に原本管理サーバがダウンした場合においても、データの完全消失を防ぐことができる。
前記複製管理サーバは、環状のID(IDentifier)空間に、処理対象の複数の前記データのID、及び、クラスタを構成し前記データに関するリクエストを処理する前記複数のサーバのIDが割り当てられ、前記ID空間において前記データのIDから所定方向回りに辿って最初に遭遇した前記サーバまでの間に位置する前記データを、当該サーバが前記原本管理サーバとなって前記原本データとして保持するとともに、前記クラスタ内の前記原本管理サーバ以外のサーバのいずれかが前記複製管理サーバとなって前記複製データを保持する構成であってもよい。
かかる構成によると、環状のID空間にデータ及びサーバが配置される、いわゆるコンシステント・ハッシュ法を採用した分散処理システムにおいて、原本データと複製データとがアンマッチのまま分散処理システムが運用されることを防ぐことができる。
本発明によれば、本発明によれば、分散処理システムにおいてリクエスト処理とは非同期に複製データを作成する場合においても、データの損失を効率的に防ぐことができる。
本発明の実施形態に係るクライアントマシン及び分散処理システムを模式的に示すブロック図である。 ID空間管理情報の一例を示す図である。 複製管理情報の一例を示す図である。 コンシステント・ハッシュ法のID空間において原本データ及び複製データを管理するサーバを説明するための図である。 本発明の実施形態に係る原本管理サーバの動作例を説明するためのフローチャートである。 本発明の実施形態に係る複製管理サーバの動作例を説明するためのフローチャートである。
以下、本発明の実施形態について、適宜図面を参照して説明する。同様の構成には同一の符号を付し、重複する説明を省略する。
<分散処理システム>
図1に示すように、本発明の実施形態に係る分散処理システム1000は、負荷分散装置3と、クラスタ100を構成する複数のサーバ4と、を備えている。負荷分散装置3は、インターネット等のネットワーク2を介して、複数のクライアントマシン1と接続されている。
ここで、分散処理システム1000全体の主な動作について説明する。まず、負荷分散装置3は、クライアントマシン1からのリクエストを、ネットワーク2経由で受信する。負荷分散装置3は、受信したリクエストを、複数のサーバ4のいずれかに振り分ける。リクエストを振り分けられたサーバ4は、振り分けられたリクエストの処理を行うとともに、他の(本実施形態では、1つ)のサーバ4にデータの複製の記憶を要求する。
<負荷分散装置>
続いて、負荷分散装置3の構成について説明する。負荷分散装置3は、記憶部31と、処理部32と、入力部33と、表示部34と、通信部35と、を備える。
記憶部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に関する説明を省略する。
処理部32は、記憶部31に格納された情報に基づいて演算処理を行う手段であり、例えばCPU(Central Processing Unit)によって構成される。処理部32は、クラスタ100へのサーバ4の離脱等によりID空間管理情報311を更新し、更新された最新のID空間管理情報311をすべてのサーバ4に送信する。
また、処理部32は、ID空間管理情報311に基づいて、通信部35が受信したクライアントマシン1からのリクエストを複数のサーバ4のどれに振り分けるかについて決定する。
入力部33は、サーバ4の管理者が情報を入力する手段であり、例えば、キーボード、マウス等によって実現される。
表示部34は、情報を表示する手段であり、例えば、LCD(Liquid Crystal Display)によって実現される。
通信部35は、外部装置との通信に用いられる通信インタフェースである。
<サーバ>
続いて、サーバ4の構成について説明する。サーバ4は、負荷分散装置3によって振り分けられたクライアントマシン1からのリクエストを処理するコンピュータ装置である。なお、前記したように、コンシステント・ハッシュ法では、管理対象の複数のデータ、及び、データを管理しクラスタ100を構成する複数のサーバ4、が環状のID空間に割り振られ、それぞれのサーバ4が、ID空間において自身から反時計回り(所定方向回り)に次のサーバ4までの間に位置するデータ(原本データ)を記憶して管理する原本管理サーバとして機能するとともに、当該次のサーバ4から反時計回り(所定方向回り)にさらに次のサーバ4までの間に位置するデータの複製(複製データ)を記憶して管理する複製管理サーバとして機能することを前提とする。
サーバ4は、記憶部41と、処理部42と、通信部43と、を備える。
記憶部41は、情報を記憶する手段であり、RAMやROM等のメモリ、HDD等によって構成される。記憶部41には、当該サーバ4に対応する原本データ及び複製データが格納されているとともに、負荷分散装置3から受信したID空間管理情報311及び複製管理情報312が、それぞれID空間管理情報411及び複製管理情報412として格納されている。なお、記憶部41には、処理部42を具現化する動作プログラム等も格納されている。
処理部42は、記憶部41に格納された情報に基づいて演算処理を行う手段であり、例えばCPUによって構成される。処理部42は、負荷分散装置3によって振り分けられたクライアントマシン1からのリクエストを処理する。すなわち、処理部42は、リクエストに対応するデータ(原本データ)を記憶部41内において更新する。
処理部42は、さらに、ID空間管理情報411を参照してID空間における自身から所定方向回りに次のサーバ4に当該リクエストの処理に用いたデータの複製の記憶を要求する。ここで、処理部42は、記憶部41に記憶された原本データのうち、リクエストによって更新された原本データのみの複製の記憶を要求する構成であってもよく、全ての原本データの複製の記憶を要求する構成であってもよい。また、複製管理サーバの処理部42は、複製データを作成して(すなわち、原本管理サーバの処理部42から送信されたデータを受信して複製データとし)、作成した複製データを複製管理サーバの記憶部41に記憶させる。
なお、処理部42は、レスポンスタイムを短くするために、次のサーバ4におけるデータの複製の記憶が完了する前に、クライアントマシン1からのリクエストに対して返信し、データの複製を、リクエストの処理とは非同期に行うものとする。また、処理部42は、かかるリクエストの処理及びデータの複製に応じて複製管理情報412を更新したり、複製管理情報412の更新結果を他のサーバ4及び負荷分散装置3に送信したりすることができる。
通信部43は、外部装置との通信に用いられる通信インタフェースである。なお、サーバ4は、入力部や表示部を備えていてもよい。
ID空間管理情報411は、管理対象のデータについて、所定のハッシュ値変換によって算出されたIDを用いて、そのデータを担当するサーバ4を管理するための情報である。IDは、環状のID空間における位置を示す固有の値であり、サーバ4が管理を担当するデータの領域を特定するために格納され、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までの値の識別子に属するデータを担当することを示している。
複製管理情報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を複製管理サーバから原本管理サーバに昇格させる。
<原本管理サーバの動作例>
続いて、図4に示すID空間を例にとり、あるデータAを原本データとして管理する原本管理サーバ(メンバ1)であるサーバ4による処理について説明する。
図5に示すように、ステップS1において、原本管理サーバ(メンバ1)の処理部42は、クライアントマシン1からのリクエストを、負荷分散装置3から受信したか否かを判定する。ステップS1でYesの場合は、本フローはステップS2に進み、ステップS1でNoの場合は、本フローはステップS1に戻る。
ステップS2において、原本管理サーバ(メンバ1)の処理部42は、受信したリクエストに対するデータ処理を行う。詳細には、処理部42は、受信したリクエストに基づいて、記憶部41に記憶された原本データを更新し、リクエストを送信したクライアントマシン1に対して、リクエストに対する返信を行う。
ステップS3において、原本管理サーバ(メンバ1)の処理部42は、クライアントマシン1からのリクエストとは非同期に、記憶部41のID空間管理情報411を参照して、ID空間における時計回りに隣のサーバ4にデータの複製の記憶を要求する。詳細には、処理部42は、記憶部41に記憶された原本データを、複製データ管理サーバ(メンバ2)である隣のサーバ(メンバ2)4へ送信する。複製管理サーバ(メンバ2)であるサーバ4の処理部42は、原本データを受信すると、受信した原本データを複製データとして記憶部41に記憶させる。
ステップS4において、原本管理サーバ(メンバ1)の処理部42は、クライアントマシン1からのリクエストとは非同期に、複製管理サーバ(メンバ2)からのデータの複製の完了通知(レスポンス)を監視する。
複製管理サーバ(メンバ2)においてデータの複製が正常に完了しない場合(ステップS4でNo)は、原本管理サーバ(メンバ1)の処理部42は、記憶部41に記憶されたID空間管理情報411を参照して、ID空間における時計回りにさらに次のサーバ(メンバ3)4を新たな複製管理サーバとし、当該複製管理サーバに対して複製データの作成を要求する。
すなわち、図2において、IPアドレスが「192.168.2.15」のサーバ4が、データAにとっての複製管理サーバとして正常に応答しない場合は、次のIPアドレスが「192.168.8.5」のサーバ4が、データAにとっての新たな複製管理サーバに該当することとなる。
なお、ステップS4において、複製データの作成が正常に完了しない場合の判断として、複製管理サーバの処理部42が複製失敗通知を送信し、原本管理サーバの処理部42が複製失敗通知を受信した場合、原本管理サーバの処理部42が一定時間内に正常な完了通知を受信することができなかった場合等も同様に扱うことができる。
また、ステップS4において、原本管理サーバの処理部42が複製失敗通知を受信した場合には、当該処理部42が、差分の更新に失敗したリトライとして原本データ全体を再送する場合がある。この場合には、処理部42は、原本データ全体を複製管理サーバへ再送するのと同時に、ステップS5を実行して次の複製管理サーバ候補に対する複製データの作成を要求することによって、早期に冗長性を保つことができる。
ステップ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として予め指定されたものである。なお、各原本管理サーバが当該管理サーバとして機能する構成であってもよい。
また、ステップS6において、新たな複製管理サーバ(メンバ3)においてデータの複製が正常に完了しない場合(ステップS6でNo)は、原本管理サーバ(メンバ1)の処理部42は、記憶部41に記憶されたID空間管理情報411を参照して、ID空間における時計回りにさらに次のサーバ(メンバ4)4を新たな複製管理サーバとし、当該複製管理サーバに対して複製データの作成を要求する(ステップS5)。
ステップS6において、図2の例では、管理サーバは、IPアドレス「192.168.2.15」の行をID空間管理情報411から削除する。なお、管理サーバは、複製データの作成の完了通知を待たずに、元の複製管理サーバのクラスタ100からの離脱を開始してもよい。この場合には、離脱した元の複製管理サーバに記憶された複製データの原本データ化は行われないことになる。
また、ステップS4でYesの場合、及び、ステップS6でYesの場合には、原本管理サーバの処理部42は、対応する複製管理情報412を更新し、更新結果を複製管理情報412の更新結果を他のサーバ4及び負荷分散装置3に送信する。
<複製管理サーバの動作例>
続いて、図4に示すID空間を例にとり、あるデータAの複製データを管理する複製管理サーバ(メンバ2)であるサーバ4による処理について説明する。
図6に示すように、ステップS11において、複製管理サーバ(メンバ2)の処理部41は、原本管理サーバ(メンバ1)から複製データの作成を要求されると、複製データを作成する、すなわち、複製管理サーバ(メンバ2)の処理部42は、原本管理サーバ(メンバ1)が原本データを送信すると、送信された原本データを受信し、受信した原本データを複製データとして記憶部41に記憶させる。
複製データの作成が成功した場合(ステップS12でYes)には、ステップS13において、複製管理サーバ(メンバ2)の処理部42は、複製データの作成の完了通知を原本管理サーバ(メンバ1)へ送信する。
また、複製データの作成が失敗した場合(ステップS12でNo)であって、かつ、失敗の理由が複製データの作成中に原本管理サーバ(メンバ1)がダウンしたことではない場合(ステップS14でNo)には、ステップS15において、複製管理サーバ(メンバ2)の処理部41は、複製データの作成の失敗通知を原本管理サーバ(メンバ1)へ送信する。
また、複製データの作成が失敗した場合(ステップS12でNo)であって、かつ、失敗の理由が複製データの作成中に原本管理サーバ(メンバ1)がダウンしたことである場合(ステップS14でYes)には、ステップS16において、複製管理サーバ(メンバ2)の処理部41は、作成しようとした複製データのうち、作成済みの複製データを原本データとして記憶部41に記憶させる(すなわち、原本管理サーバがダウンする前に送信されて受信に成功したデータを記憶部41に記憶させ、当該データの複製管理情報412の複製状態を「0」に設定する)ことにより、データAの完全消失を防ぐ。この場合には、前記したステップS7における複製管理サーバの離脱は、実施されない。ここで、複製管理サーバが原本管理サーバのダウンを検知する手法としては、複製管理サーバ及び原本管理サーバが相互間でハートビート信号を送受信してお互いに監視してダウンを検知する手法等、任意の公知の手法が採用可能である。また、複製管理サーバから原本管理サーバに昇格したサーバ4は、前記した元の複製管理サーバのクラスタ100からの離脱と同様の手法によって、元の原本管理サーバをクラスタ100から離脱させることができる。
また、ステップS13の実行後、及び、ステップS16の実行後において、複製管理サーバの処理部42は、対応する複製管理情報412を更新し、更新結果を複製管理情報412の更新結果を他のサーバ4及び負荷分散装置3に送信する。
本発明の実施形態に係る分散処理システム1000は、リクエスト処理とは非同期に複製データを作成するとともに、複製データの作成に失敗した場合に、複製データの作成に失敗した複製管理サーバを当該分散処理システム1000から離脱させ、クラスタ100を構成する複数のサーバ4のうちの他のサーバ4を新たな複製管理サーバとし、新たな複製管理サーバに複製データを作成させるので、原本データと複製データとがアンマッチのままクラスタ100が運用されることを防ぐことができる。したがって、分散処理システム1000は、リクエスト処理とは非同期に複製データを作成する場合においても、データの損失を効率的に防ぐことができる。
また、分散処理システム1000は、複製データの作成が全て完了する前に原本管理サーバがダウンした場合には、作成済みの複製データを原本データとして当該複製管理サーバの記憶部41に記憶させるので、複製データの作成中に原本管理サーバがダウンした場合においても、データの完全消失を防ぐことができる。
以上、本発明の実施形態について説明したが、本発明は前記実施形態に限定されず、本発明の要旨を逸脱しない範囲で適宜変更可能である。例えば、本発明の分散処理システムは、コンシステント・ハッシュ法を用いるシステムに限定されず、原本管理サーバが保持する原本データを他のサーバ(複製管理サーバ)に複製データとして保持させるシステム全般に適用可能である。また、前記実施形態では、冗長度が2(すなわち、1つのデータに対して原本管理サーバが1つで複製管理サーバが1つ)のケースを例にとって説明したが、本発明は、冗長度が3以上(すなわち、1つのデータに対して原本管理サーバが1つで複製管理サーバが2つ以上)の分散処理システムにも適用可能である。
100 クラスタ
1000 分散処理システム
4 サーバ(原本管理サーバ、複製管理サーバ)
41 記憶部
411 ID空間管理情報
412 複製管理情報
42 処理部

Claims (2)

  1. 複数のサーバがデータを管理する分散処理システムであって、
    一の前記データに関して、
    前記複数のサーバのうちの一台のサーバが前記データの原本データを管理する原本管理サーバとなり、他のサーバのいずれかが前記データの複製データを管理する複製管理サーバとなり、
    一の前記データに関して前記原本管理サーバとなる前記サーバは、
    一の前記データに関する前記原本データが記憶されるとともに、一の前記データに関する前記原本データ及び前記複製データが前記複数のサーバのいずれによって管理されているかを示す複製管理情報が記憶される記憶部と、
    クライアントマシンからのリクエストを処理することによって前記記憶部に記憶された前記原本データを更新し、かかるリクエストの処理とは非同期に、更新された前記原本データを前記複製管理サーバに送信して前記複製データを作成させる処理部を備え、
    前記複製管理情報は、一の前記データに関して、前記サーバごとに当該サーバに記憶された一の前記データが前記原本データとしての管理であるか前記複製データとしての管理であるか複製失敗の状態であるかを示す複製状態を含み、
    一の前記データに関して前記原本管理サーバとなる前記サーバの前記処理部は、前記複製管理サーバによる前記複製データの作成状態を監視し、前記複製データの作成に失敗した場合に、前記複製状態を複製失敗として前記複製管理情報を更新するとともに前記複製データの作成に失敗した前記複製管理サーバを当該分散処理システムから離脱させ、前記複数のサーバのうちの他のサーバを新たな前記複製管理サーバとし、新たな前記複製管理サーバに前記複製データを作成させ、前記複製データの作成に成功した新たな前記複製管理サーバに関する前記複製管理情報を作成して前記記憶部に記憶させ、
    一の前記データに関して前記複製管理サーバとなる前記サーバは、
    一の前記データに関する前記複製データが記憶されるとともに、前記複製管理情報が記憶される記憶部と、
    前記複製データを前記記憶部に記憶させる処理部を備え、
    一の前記データに関して前記複製管理サーバとなる前記サーバの前記処理部は、前記複製データの作成中に前記原本管理サーバがダウンした場合には、作成しようとした前記複製データの中で作成済みの前記複製データを当該複製管理サーバの前記記憶部に記憶させるとともに、一の前記データに関して当該複製管理サーバが原本管理サーバとなり作成済みの前記複製データが前記原本データとなるように前記複製管理情報を更新する
    ことを特徴とする分散処理システム。
  2. 環状のID(IDentifier)空間に、処理対象の複数の前記データのID、及び、クラスタを構成し前記データに関するリクエストを処理する前記複数のサーバのIDが割り当てられ、前記ID空間において前記データのIDから所定方向回りに辿って最初に遭遇した前記サーバまでの間に位置する前記データを、当該サーバが前記原本管理サーバとなって前記原本データとして保持するとともに、前記クラスタ内の前記原本管理サーバ以外のサーバのいずれかが前記複製管理サーバとなって前記複製データを保持する
    ことを特徴とする請求項1に記載の分散処理システム。
JP2014038834A 2014-02-28 2014-02-28 分散処理システム Active JP6093320B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014038834A JP6093320B2 (ja) 2014-02-28 2014-02-28 分散処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014038834A JP6093320B2 (ja) 2014-02-28 2014-02-28 分散処理システム

Publications (2)

Publication Number Publication Date
JP2015162216A JP2015162216A (ja) 2015-09-07
JP6093320B2 true JP6093320B2 (ja) 2017-03-08

Family

ID=54185233

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014038834A Active JP6093320B2 (ja) 2014-02-28 2014-02-28 分散処理システム

Country Status (1)

Country Link
JP (1) JP6093320B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102105478B1 (ko) * 2015-12-16 2020-04-28 아브 이니티오 테크놀로지 엘엘시 고 쓰루풋, 고 신뢰성의 데이터 처리 시스템

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000163300A (ja) * 1998-11-24 2000-06-16 Toshiba Corp バックアップシステム
JP4214832B2 (ja) * 2002-07-30 2009-01-28 株式会社日立製作所 記憶装置システム
JP2009070143A (ja) * 2007-09-13 2009-04-02 Hitachi Ltd Nas装置の差分リモートバックアップにおけるデータ復旧方法及び計算機システム
JP2012221419A (ja) * 2011-04-13 2012-11-12 Hitachi Ltd 情報記憶システム及びそのデータ複製方法

Also Published As

Publication number Publication date
JP2015162216A (ja) 2015-09-07

Similar Documents

Publication Publication Date Title
US11770447B2 (en) Managing high-availability file servers
US11481139B1 (en) Methods and systems to interface between a multi-site distributed storage system and an external mediator to efficiently process events related to continuity
US10803015B2 (en) Caching system and method
JP6073246B2 (ja) 大規模記憶システム
US9483482B2 (en) Partitioning file system namespace
CA2903841A1 (en) A computer implemented method for dynamic sharding
US9396076B2 (en) Centralized version control system having high availability
JP5629281B2 (ja) 管理装置およびプログラム
JP5969315B2 (ja) データ移行処理システムおよびデータ移行処理方法
JP5723309B2 (ja) サーバおよびプログラム
JP2012008934A (ja) 分散ファイルシステム及び分散ファイルシステムにおける冗長化方法
JP6093320B2 (ja) 分散処理システム
JP6055197B2 (ja) データベースシステム
JP5918802B2 (ja) ノードおよびプログラム
JP5745445B2 (ja) 管理装置およびプログラム
JP5690296B2 (ja) 負荷分散プログラムおよび負荷分散装置
JP5711771B2 (ja) ノード離脱処理システム
JP6714547B2 (ja) 負荷分散装置、負荷分散方法、および、負荷分散プログラム
JP5845298B2 (ja) ノードおよびプログラム
JP2011180658A (ja) 分散ファイルシステムにおける冗長化方法
JP5815000B2 (ja) ノードおよびプログラム
JP6588484B2 (ja) 復旧装置、復旧方法、および復旧プログラム
JP2009205568A (ja) クラスタシステム及びその動作方法
JP2014146153A (ja) クラスタシステム
JP6127005B2 (ja) クラスタシステムのサーバ装置およびプログラム

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 Written amendment

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