説明

ピアツーピアネットワークのノードの個別再起動

本発明は、ノードN1、N2、N3、N4、N5のセットから形成されるピアツーピアネットワークNを再起動するための方法に関する。上記の方法は、再起動すべき第1のノードおよびこのノードから既知のノードのセットを特定し、各再起動すべきノードが再起動の前に実行されるステップと、既知のノードの中から次のノードを選択するステップと、(前のステップで選択された)次のノードの識別子を含むメッセージMを既知のノードに送信するステップとを含む。メッセージを受け取ると、各ノードは、上記ノードと再起動すべきノードとの間で複製されるセッションDを特定すること、さらに上記セッションの複製を含む、複製されたセッションをバックアップするステップと、メッセージの内容に基づいて、上記ノードが次のノードであるかどうかを確認し、上記の場合、該ノードを再起動すべきノードとみなすステップとを実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ピアツーピアネットワークに関する。こうしたネットワークは、自己管理する相互に接続されたノードのセットで構成される。
【背景技術】
【0002】
こうしたピアツーピアネットワークは、様々な用途、特に通信に使用することができる。これらの用途の一部については、ノードはデータを保存しなければならない。このデータは、通信セッションに関連するデータである可能性があり、同じセッションに属するいかなる新しいイベントに対しても再び見つけられなければならない。ピアツーピアネットワークは、分散メモリとして使用することができ、各ノードが、分散ハッシュテーブルを介してアクセスできるデータの一部を保存する。
【0003】
一部の用途では、高い耐障害性を必要とする。したがって、ネットワークのノードのうちの1つの障害が、このノードが保存していたデータの部分を不可逆的に破壊しないようにするために、別のノードにこのデータを複製することができる。この従来の冗長メカニズムは、「バディレプリケーション(buddy replication)」として知られ、ピアツーピアネットワークに影響を及ぼす大多数の障害に対する耐性をシステムに与える。
【0004】
こうしたピアツーピアネットワークの実装については、Ian Stoica、Robert Morris、David Karger、M.Frans Kaashoek、およびHari Balakrishnanによる論文、「Chord: A Scalable Peer−to−peer Lookup Service for Internet Applications」、ACP SIGCOMM 2001、San Diego、CA、2001年8月、149−160頁にさらに詳細に説明されている。
【0005】
「コード(Chord)」ネットワークにおいて耐障害性を向上させる方法を説明する論文がある。例えば、Haifeng Yu、Philip B.Gibbons、およびSuman Nathによる論文、「Availability of multi−object operations」は、このようなネットワークでデータがどのように複製されるかを調べることを提案する。
【0006】
ネットワークのノードのそれぞれは、システムが機能できるようにするソフトウェアモジュールを含んでいる。こうしたソフトウェアモジュールにより、ノードはあらかじめ定義されたプロトコルを使用して通信すること、他のノードからもしくはピアツーピアネットワーク外のシステムからの要求を処理すること、データの複製を管理することなどができる。
【0007】
こうしたソフトウェアモジュールは時々変更する、または更新する必要がある可能性がある。たとえ行われているのは単に軽微な問題を修正する、または新しいが二次的な機能を提供する新しいバージョンのインストールであっても、ソフトウェア更新メカニズムはノードを一時的にシャットダウンする必要がある。
【0008】
しかしながら、ピアツーピアネットワークでは、この再起動には2つの問題がある。
【0009】
第1に、ノードはデータを保存していたので、再起動段階中にこのデータは保持されなければならない。
【0010】
第2に、通信用途のような一部の用途については、ピアツーピアネットワークのサービスの連続性を保証することが重要である。言い換えれば、ノードを再起動中に、ピアツーピアネットワークは動作し続けて、そのサービスのユーザの装置に対して透過的に、意図されたアプリケーションサービスを提供しなければならない。
【先行技術文献】
【非特許文献】
【0011】
【非特許文献1】Ian Stoica、Robert Morris、David Karger、M.Frans Kaashoek、Hari Balakrishnan、「Chord: A Scalable Peer−to−peer Lookup Service for Internet Applications」、ACP SIGCOMM 2001、San Diego、CA、2001年8月、149−160頁
【非特許文献2】Haifeng Yu、Philip B.Gibbons、Suman Nath、「Availability of multi−object operations」
【発明の概要】
【発明が解決しようとする課題】
【0012】
本発明の目的は、こうした2つの問題を解決することである。
【課題を解決するための手段】
【0013】
そのために、本発明は、ノードのセットで構成されるピアツーピアネットワークを再起動するための方法から成る。この方法は、再起動すべき第1のノードおよび再起動すべき該ノードに既知のノードのセットを特定するステップを含み、再起動すべき各ノードが、再起動前に:
既知のノードの中から1つのノードを選択するステップと、
再起動すべきノードが既知のノードに、(前述のステップ中に選択された)次のノードの識別子を含むメッセージを送信するステップと
を実行するという点、
および、メッセージを受信すると各ノードが、
そのノードと再起動すべきノードとの間の複製セッションを特定すること、およびこれらを再び複製することから成る、複製セッションをバックアップするステップと、
メッセージの内容に基づいて、このノードが次のノードであるかどうかを確認し、そうである場合は該ノードを再起動すべきノードとみなすステップと
を実行するという点で革新的である。
【0014】
本発明の一実施形態によれば、バックアップするステップは、再起動すべきノードが再起動されるまで待機し、次いでそのノードに複製されたセッションを複製することから成る。
【0015】
メッセージは、次のノードの識別子を含むこともでき、その場合、バックアップするステップは、次のノードおよび再起動すべきノードを除く、既知のノードのいずれか1つに複製セッションを複製することから成る。
【0016】
選択のステップは、再起動すべきノードが配置された処理装置とは異なる処理装置に配置されたノードの中から次のノードを特定することから成ることができる。
【0017】
本発明のさらなる目的は、複数のノードの少なくとも一部が前述の方法を実施する、複数のノードを含むピアツーピアネットワークである。
【0018】
したがって、本発明は、ネットワーク内で複製されたデータを動的に再配置するための戦略と結合されたノードを順次的に再起動するためのメカニズムを提案する。常に、再起動中でないノードが十分にアプリケーションサービスを提供することができる。
【0019】
さらにこのメカニズムは、人の介入を必要とせず、各ノードが再起動すべき次のノードを自動的に特定する。
【0020】
さらにノードは、このメカニズムを個別に実行することができる。このメカニズムは、中央装置または外部装置を必要としない。
【0021】
本発明およびその利点は、ピアツーピアネットワークを概略的に示す添付の図面を参照して、次の説明においてさらに明確にわかるようになるであろう。
【図面の簡単な説明】
【0022】
【図1】ピアツーピアネットワークRを示す図である。
【発明を実施するための形態】
【0023】
図1に示すピアツーピアネットワークRは、ノードN1、N2、N3、N4、N5で構成されている。ノード内に保存された各データは、他の別個のノードに複製される。したがって、ノードN1内に保存されたデータDは、ノードN3に複製される。このように、ノードN1が作動しなくなる場合、このデータDはピアツーピアネットワークR内で今まで通り利用できることになる。
【0024】
ノードは、このデータの他に、ソフトウェアモジュールを有する。
【0025】
こうしたソフトウェアモジュールは、ピアツーピアネットワークを管理する特定のメカニズムおよびアルゴリズムを実行するために使用される。こうした特定のメカニズムおよびアルゴリズムは、例えば上述の「コード」ドキュメントに従うものであることが可能である。
【0026】
本発明によればノードは、前述のソフトウェアモジュールを更新するように構成されたソフトウェアモジュールをさらに有する。
【0027】
後に説明するように、こうしたソフトウェアモジュールは、2つの機能、すなわち1つは再起動メッセージが受信されるとトリガされる機能、およびもう1つは再起動時にトリガされる機能を含む。
【0028】
ノードのすべてが同じソフトウェアモジュールを有すると仮定する。この仮定により、本発明の概要を簡略化することができるが、本発明は、差別化されたノードを含むネットワークに適用するように構成されることが可能である。
【0029】
発明の方法は、起動する第1のノードを特定する第1のステップを含む。
【0030】
この方法の初期化は、外部装置が特定されたノードにメッセージを送信することによって行われる。この外部装置は、ピアツーピアネットワークの制御卓(control console)であることが可能であり、これによってプログラマーは、ノードに組み込まれたソフトウェアモジュールの更新または交換をトリガすることができる。
【0031】
このメッセージは、特定されたノードによって受信され、これにより再起動機能がトリガされる。
【0032】
この再起動機能は、特定されたノードに既知のノードの中から次のノードを選択するステップを含む。
【0033】
この既知のノードのセットは、起動時は、ノードのセットに等しい。しかしながら、再起動が行われるとき、2つのセットは異なるものとなる。これは、ノードが再起動するとき、ノードは新しい識別子を取得し、同じマシンであるが、機能上異なるノードであるためである。結果として、発明の方法を通して、最初の既知のノードのセットに属するノードが徐々に少なくなる。
【0034】
その(最初の)既知のノードのセット内で、自身の後に再起動することになるノードを選ばなければならない。この選択は、様々な基準を用いて行うことができる。
【0035】
1つの効果的な基準は、自身の処理装置とは異なる処理装置に配置されたノードを選択することである。これは、ピアツーピアネットワークでは、一般にノードより少ない数のマシンまたは処理装置のセットにノードが配置されるからである。実際には、1つのマシンに通常複数のノードが配置される。再起動処理中のネットワークN上の負荷の不均衡を防ぐために、処理装置に依存する時間とともにノードの再起動を分散させることは有益である。このオプションは、一部のマシンが、所与の時間に他のノードよりもはるかに多くのノードを有し、それによってシステム性能の低下を引き起こす状況を防ぐ。
【0036】
別の実装は、ピアツーピアネットワークに配置された分散ハッシュテーブル(DHT)のリングに従うことから成ることが可能である。こうした2つの実装は、結合することもできる。
【0037】
当然ながら、他の代替形態もまた可能であるが、次のノードは、外部の集中型装置が介入することなく、ピアツーピアネットワークのノード自体によって特定されることに注意することが重要である。本発明の利点の1つは、ピアツーピアネットワークによって管理される完全に独立した処理を提供することである。
【0038】
再起動機能の第2のステップは、既知のノードのサブセットにメッセージMを送信するステップである。このメッセージは、次のノードの識別子を含んでいる。このメッセージはまた、特定されたノード(メッセージの送信者)の識別子および既知のノードのサブセットの中のノードの識別子を含むことができる。
【0039】
一組のメッセージMが正常に送信されると、ノードは再起動することができる。当業者には知られているように、再起動は、他のノードとの開かれた(open)通信チャネル(すなわちソケット)を終了するなど、いくつかの前処理操作を含むことができる。
【0040】
再起動機能は、ノードが新しいセッションの作成をやめるクリティカルセクションに対応することができる。
【0041】
本発明の方法はまた、前述のメッセージを受信することによってトリガされる受信機能を含む。
【0042】
この受信機能は、複製されたセッションをバックアップするステップを含む。このステップは、メッセージを受信したノードとメッセージを送信したノードとの間で複製されるセッションを意味する、影響を受けたセッションをまず特定することから成る。どのノードが「最初の(primary)」バージョンを有し、どれがコピーを有するかを知ることは重要ではなく、こうした2つのノード間で複製されるセッションを特定することのみが重要である。
【0043】
送信ノードが再起動しなければならないとき、2つのコピーのうちの1つは、結局ピアツーピアネットワークから消滅することになり、ネットワークNの起動段階中でも情報の冗長を維持することが課題である。
【0044】
そのためには、いくつかの実施形態が可能である。
【0045】
第1の実施形態では、ノードは、送信ノードが再起動するまで待機する。送信ノードが再びアクティブになる度に、ノードは事前に特定されたセッションのデータを送信ノード上に複製するステップをトリガする。
【0046】
第2の実施形態では、ノードは安全なノードの特定をトリガし、その安全なノード上にセッションデータを複製する。
【0047】
この安全なノードは、送信ノード、および再起動すべき次のノード(メッセージパラメータとして送信することができる)を除く、既知のノードのサブセット中のいかなるノードであってもよい。
【0048】
受信機能はまた、受信ノードが送信ノードによって特定された次のノードであるかどうかを確認するステップを含む。そのためには、次のノードの識別子が、メッセージ内に含まれなければならない。この場合、受信ノードは、再起動すべきノードとみなされなければならず、その結果、再起動機能は自動的にトリガされる。
【0049】
ノードのすべてが再起動すると、すなわち、最初の既知のノードのセットに属するいかなるノードももはや残っていない(これらのすべてが再起動し、識別子を変更した)とき、プロセスは終了する。
【0050】
発明の方法によってセッションデータは保存され、プロセスを通して利用可能であり、ピアツーピアネットワークは作動し続ける。さらに、セッションデータは相変わらず複製され、ピアツーピアネットワークは耐障害性の要求を満たし続ける。

【特許請求の範囲】
【請求項1】
ノード(N1、N2、N3、N4、N5)のセットから形成されたピアツーピアネットワーク(N)を再起動するための方法であって、再起動すべき第1のノードおよび前記再起動すべきノードに既知のノードのサブセットを特定するステップを含み、再起動すべき各ノードが、再起動の前に、
既知のノードの中から1つのノードを選択するステップと、
前記再起動すべきノードが前記既知のノードに、前記次のノードの識別子を含んでいるメッセージ(M)を送信するステップと
を実行すること、ならびに、
メッセージを受信すると、各ノードが、
前記ノードと前記再起動すべきノードとの間で複製されるセッション(D)を特定すること、およびこれらを再び複製することから成る、複製セッションをバックアップするステップと、
メッセージの内容に基づいて前記ノードが前記次のノードであるかどうかを確認し、そうである場合前記ノードを再起動すべきノードとみなすステップと
を実行することを特徴とする、方法。
【請求項2】
前記バックアップするステップが、前記再起動すべきノードが再起動するまで待機し、次いで前記複製されたセッションをこのノードに複製することから成る、請求項1に記載の方法。
【請求項3】
前記バックアップするステップが、前記次のノードおよび前記再起動すべきノードを除く、前記既知のノードのいずれか1つに前記複製セッションを複製することから成る、請求項1に記載の方法。
【請求項4】
選択のステップが、前記再起動すべきノードが配置される処理装置とは異なる処理装置に配置されたノードの中から次のノードを特定することから成り得る、請求項1から3のいずれか一項に記載の方法。
【請求項5】
複数のノードを含むピアツーピアネットワークであって、これらのノードの少なくとも一部が、次のノードの識別子を含んでいる、再起動すべきノードからのメッセージを受信すると、
前記ノードと前記再起動すべきノードとの間で複製されるセッション(D)を特定すること、およびこれらのセッションを再び複製することから成る、複製セッションをバックアップするステップと、
メッセージの内容に基づいて、前記ノードが前記次のノードであるかどうかを確認し、そうである場合は前記ノードを再起動すべきノードとみなすステップと
を実行するための手段を所有する、ピアツーピアネットワーク。

【図1】
image rotate


【公表番号】特表2013−516669(P2013−516669A)
【公表日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願番号】特願2012−546484(P2012−546484)
【出願日】平成22年11月22日(2010.11.22)
【国際出願番号】PCT/FR2010/052470
【国際公開番号】WO2011/080431
【国際公開日】平成23年7月7日(2011.7.7)
【出願人】(391030332)アルカテル−ルーセント (1,149)
【Fターム(参考)】