JP2011008711A - ノード装置、処理プログラム及び分散保存方法 - Google Patents

ノード装置、処理プログラム及び分散保存方法 Download PDF

Info

Publication number
JP2011008711A
JP2011008711A JP2009154092A JP2009154092A JP2011008711A JP 2011008711 A JP2011008711 A JP 2011008711A JP 2009154092 A JP2009154092 A JP 2009154092A JP 2009154092 A JP2009154092 A JP 2009154092A JP 2011008711 A JP2011008711 A JP 2011008711A
Authority
JP
Japan
Prior art keywords
node
storage
determined
replica
charge range
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
Application number
JP2009154092A
Other languages
English (en)
Other versions
JP5272927B2 (ja
Inventor
Kazuhiro Nakamura
和寛 中村
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.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
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 Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2009154092A priority Critical patent/JP5272927B2/ja
Publication of JP2011008711A publication Critical patent/JP2011008711A/ja
Application granted granted Critical
Publication of JP5272927B2 publication Critical patent/JP5272927B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract


【課題】データファイルの保存制御の際にかかる負荷を複数のノード装置に分散させたノード装置、処理プログラム、分散保存方法を提供することを課題とする。
【解決手段】ネットワークを介して互いに通信可能な複数のノード装置間で送受信可能なデータファイルを、所定の複製数に対応した複製番号が割り当てられるレプリカとして複製し、複製された前記レプリカに対応するデータファイルを識別可能であり、前記データファイルに割り当てられるべき複数の識別情報について、前記複数の識別情報を前記複数のノード装置に分散保存させるために、前記所定の複製数の中の所定の複製番号における前記複数の識別情報の中の一部を記憶担当範囲として決定する第1決定手段と、前記第1決定手段により決定された複製番号とは異なる複製番号ごとの記憶担当範囲を、少なくとも第1決定手段により決定された記憶担当範囲分各前記複製番号ごとで異ならせて決定する手段と、決定された記憶担当範囲のレプリカを記憶手段に記憶させる記憶制御手段と、を備える。
【選択図】図3

Description

本発明は、ネットワークを介して互いに通信可能な複数のノード装置を備えたピアツーピア(Peer to Peer(P2P))型の通信システムの技術分野に関する。
この種のピアツーピア型の通信システム(P2Pネットワーク)は、複数のデータファイルの複製データファイルを複数のノード装置に分散して保存(配置)させる。各データファイルは、映画及び音楽などの各種コンテンツのデータファイルである。各ノード装置間で上述のデータファイルを利用可能とした分散保存システムが知られている。これにより、対故障性やアクセスの分散性が高められている。このように分散保存されたレプリカの所在は、特許文献1に開示されるような分散ハッシュテーブル(以下、DHT(Distributed Hash Table)という)を利用して効率良く検索可能になっている。
特開2006−197400号公報
ところで、このような分散保存システムは、一般的に、管理サーバを備える。管理サーバは、複数のデータファイルが保存されている複数のノード装置を示す情報を管理する。具体的には、管理サーバは、ノード装置の故障時には、データファイルがシステムから失われないようデータファイルを再度分散保存させる。また、管理サーバは、新たなノード装置がシステムに参加したときに、データファイルを再分散させる。
この場合、各ノード装置は、定期的に管理サーバへ各ノード装置が保存しているデータファイルを通知する。管理サーバが各ノード装置のデータファイルを把握することで、データファイルの保存制御を行なうことができる。
しかし、このような方法では、管理サーバに過大な処理負担を課すこととなる。分散保存システムにて提供されるデータファイルが増え、分散保存システムに参加するノード装置が増えるほど、管理サーバの処理負担は増大する。
本発明は、以上の問題等に鑑みてなされたものであり、上記データファイルの保存制御の際にかかる負荷を複数のノード装置に分散させたノード装置、処理プログラム、分散保存方法を提供することを課題とする。
上記課題を解決するために、請求項1に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置間で送受信可能なデータファイルを、所定の複製数に対応した複製番号が割り当てられるレプリカとして複製し、複製された前記レプリカに対応するデータファイルを識別可能であり、前記データファイルに割り当てられるべき複数の識別情報について、前記複数の識別情報を前記複数のノード装置に分散保存させるために、前記所定の複製数の中の所定の複製番号における前記複数の識別情報の中の一部を記憶担当範囲として決定する第1決定手段と、前記第1決定手段により決定された複製番号とは異なる複製番号ごとの記憶担当範囲を、少なくとも第1決定手段により決定された記憶担当範囲分各前記複製番号ごとで異ならせて決定する第2決定手段と、前記第1決定手段と前記第2決定手段とにより決定された記憶担当範囲のレプリカを記憶手段に記憶させる記憶制御手段と、を備えることを特徴とするノード装置である。
上記課題を解決するために、請求項2に記載の発明は、前記複数の識別情報の総数を取得する総数取得手段を備え、前記第1決定手段は、前記所定の複製番号における記憶担当範囲が前記総数を前記複製数で割った値以下となるように決定し、前記第2決定手段は、前記第1決定手段により決定された複製番号とは異なる複製番号ごとの記憶担当範囲を、少なくとも第1決定手段により決定された記憶担当範囲分各前記複製番号ごとで異ならせ、且つ、前記第1決定手段により決定された複製番号とは異なる複製番号ごとの記憶担当範囲が、前記総数を各前記複製数で割った値以下となるように決定することを特徴とする請求項1に記載のノード装置である。
上記課題を解決するために、請求項3に記載の発明は、前記複数のノード装置の数を示すノード装置数を取得する装置数取得手段を備え、前記第1決定手段は、前記所定の複製番号における記憶担当範囲が前記総数を前記複製数で割った値以下であり、且つ、前記総数と前記装置数とに基づいて、前記所定の複製番号における前記複数のノード装置ごとの記憶担当範囲が均等になるように決定し、前記第2決定手段は、前記第1決定手段により決定された複製番号とは異なる複製番号ごとの記憶担当範囲が、前記総数を前記複製数で割った値以下であり、且つ、前記総数と前記装置数とに基づいて、前記異なる複製番号ごとにおける前記複数のノード装置の記憶担当範囲が均等になるように決定することを特徴とする請求項2に記載のノード装置である。
上記課題を解決するために、請求項4に記載の発明は、前記分散保存システムから離脱する離脱ノード装置から当該離脱ノード装置の離脱情報を受信する離脱情報受信手段、又は、前記離脱情報を受信した他の前記ノード装置から前記離脱ノード装置の離脱メッセージを受信する離脱メッセージ受信手段と、前記離脱情報受信手段を備える場合には前記離脱情報が受信されたときに、又は、前記離脱メッセージ受信手段を備える場合には前記離脱メッセージが受信されたときに、前記離脱情報または前記離脱メッセージに基づいてノード装置数を更新するノード装置数更新手段と、を備え、前記第1決定手段は、前記ノード装置数更新手段により更新されたノード装置数と前記総数とに基づいて、前記所定の複製番号における前記複数のノード装置ごとの記憶担当範囲が均等になるように再決定し、前記第2決定手段は、前記ノード装置数更新手段により更新されたノード装置数と前記総数とに基づいて、前記異なる複製番号ごとにおける前記複数のノード装置の記憶担当範囲が均等になるように再決定し、前記記憶制御手段は、前記第1決定手段と前記第2決定手段により再決定された記憶担当範囲のレプリカを記憶手段に記憶させることを特徴とする請求項3に記載のノード装置である。
上記課題を解決するために、請求項5に記載の発明は、前記分散保存システムに新たに参加する新規ノード装置から、前記参加メッセージを受信する参加メッセージ受信手段と、前記参加メッセージ受信手段により前記参加メッセージが受信されたとき、前記参加メッセージに基づいて前記ノード装置数を更新するノード装置数更新手段と、を備え、前記第1決定手段は、前記ノード装置数更新手段により更新されたノード装置数と前記総数とに基づいて、前記所定の複製番号における前記複数のノード装置ごとの記憶担当範囲が均等になるように再決定し、前記第2決定手段は、前記ノード装置数更新手段により更新されたノード装置数と前記総数とに基づいて、前記異なる複製番号ごとにおける前記複数のノード装置の記憶担当範囲が均等になるように再決定し、前記記憶制御手段は、前記第1決定手段と前記第2決定手段により再決定された記憶担当範囲のレプリカを記憶手段に記憶させることを特徴とする請求項3または請求項4に記載のノード装置である。
上記課題を解決するために、請求項6に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置間で送受信可能なデータファイルを、所定の複製数に対応した複製番号が割り当てられるレプリカとして複製し、複製された前記レプリカに対応するデータファイルを識別可能であり、前記データファイルに割り当てられるべき複数の識別情報について、前記複数の識別情報を前記複数のノード装置に分散保存させるために、前記所定の複製数の中の所定の複製番号における前記複数の識別情報の中の一部を記憶担当範囲として決定する第1決定ステップと、前記第1決定ステップにより決定された複製番号とは異なる複製番号ごとの記憶担当範囲を、少なくとも第1決定手段により決定された記憶担当範囲分各前記複製番号ごとで異ならせて決定する第2決定ステップと、前記第1決定ステップと前記第2決定ステップとにより決定された記憶担当範囲のレプリカを記憶手段に記憶させる記憶制御ステップと、をコンピュータに実行させるための処理プログラムである。
上記課題を解決するために、請求項7に記載の発明は、ネットワークを介して互いに通信可能な複数のノード装置間で送受信可能なデータファイルを、所定の複製数に対応した複製番号が割り当てられるレプリカとして複製し、複製された前記レプリカに対応するデータファイルを識別可能であり、前記データファイルに割り当てられるべき複数の識別情報について、前記ノード装置が、前記複数の識別情報を前記複数のノード装置に分散保存させるために、前記所定の複製数の中の所定の複製番号における前記複数の識別情報の中の一部を記憶担当範囲として決定する第1決定ステップと、前記ノード装置が、前記第1決定ステップにより決定された複製番号とは異なる複製番号ごとの記憶担当範囲を、少なくとも第1決定手段により決定された記憶担当範囲分各前記複製番号ごとで異ならせて決定する第2決定ステップと、前記ノード装置が、前記第1決定ステップと前記第2決定ステップとにより決定された記憶担当範囲のレプリカを記憶手段に記憶させる記憶制御ステップと、を有することを特徴とする分散保存方法である。
本発明によれば、各ノード装置が複数のレプリカを重複して記憶することができ、かつ、管理サーバを用いることなく、各ノード装置自身が記憶担当のレプリカの記憶制御を自律的に行なうことができる。
本実施形態に係る分散保存システムSにおける各ノード装置の接続態様の一例を示す図である。 ID空間におけるノードIDとファイルIDの説明図である。 階層数が「2」の場合の各階層における各ノードNnの記憶担当範囲の説明図である。(A)は、第1階層における各ノードNnの記憶担当範囲の説明図である。(B)は、第2階層における各ノードNnの記憶担当範囲の説明図である。 (A)は、第1階層(図3(A))における記憶担当範囲の説明図である。(B)は、第2階層(図3(B))における記憶担当範囲の説明図である。 新規ノードN5が分散保存システムSに接続する様態を示す説明図である。 階層数が「3」の場合の各階層における各ノードNnの記憶担当範囲の説明図である。(A)は、第1階層における各ノードNnの記憶担当範囲の説明図である。(B)は、第2階層における各ノードNnの記憶担当範囲の説明図である。(C)は、第3階層における各ノードNnの記憶担当範囲の説明図である。 ノードNnの概要構成例を示すブロック図である。 新規ノードNnが分散保存システムSに接続する際の処理フローであり、(A)は、新規ノードNnにおける制御部11の処理であり、(B)は、既に分散保存システムSに接続しているノードNnにおける制御部11の処理である。 分散保存システムSから離脱ノードが発生した際の各ノードNnの処理フローであり、(A)は、離脱ノードから離脱する旨を示す離脱情報を受けたノードNnにおける制御部11の処理であり、(B)は、離脱メッセージを受信したノードNnにおける制御部11の処理である。 変型例における第2階層の記憶担当範囲の決定方法の説明図であり、(A)は、決定方法1、2、3の第1階層における各ノードNnの記憶担当範囲の説明図である。(B)は、決定方法1の場合の第2階層における各ノードNnの記憶担当範囲の説明図である。(C)は、決定方法2の場合の第2階層における各ノードNnの記憶担当範囲の説明図である。(D)は、決定方法3の場合の第2階層における各ノードNnの記憶担当範囲の説明図である。
以下、本発明の実施形態を図面に基づいて説明する。
1.分散保存システムの構成及び動作概要
始めに、図1等を参照して、本実施形態に係る分散保存システムの構成及び動作概要について説明する。
図1は、本実施形態に係る分散保存システムにおける各ノード装置の接続態様の一例を示す図である。
図1の下部枠101内に示すように、分散保存システムSは、複数のノード装置Nnがインターネットを介して接続されることで構成される。また、図1の下部枠101内に示すように、IX(Internet eXchange)3、ISP(Internet Service Provider)4a,4b、DSL(Digital Subscriber Line)回線事業者(の装置)5a、5b、FTTH(Fiber To The Home)回線事業者(の装置)6、及び通信回線7等によって、ネットワーク8が構築されている。なお、通信回線7は、電話回線や光ケーブル等である。ネットワーク8は、インターネット等の現実世界のネットワークである。図1の例におけるネットワーク8には、データ(パケット)を転送するためのルータが、適宜挿入されているが図示を省略している。
このようなネットワーク8には、複数のノード装置Nn(n=1,2,3・・・の何れか)が接続されている。以下、ノード装置は、「ノード」という。また、各ノードNnには、固有の製造番号およびIP(Internet Protocol)アドレスが割り当てられている。そして、本実施形態に係る分散保存システムSは、これらのノードNnのうち、図1の上部枠100内に示すように、何れか複数のノードNnの接続により形成されるピアツーピア方式のネットワークシステムとなっている。
なお、図1の上部枠100内に示すネットワーク9は、既存のネットワーク8を用いて形成された仮想的なリンクを構成するオーバーレイネットワーク9である。オーバーレイネットワーク9は、論理的なネットワークであり、特定のアルゴリズム、例えば、DHTを利用したアルゴリズムにより実現される。
分散保存システムSに接続している、言い換えれば、オーバーレイネットワーク9に接続している各ノードNnには、ノードIDが割り当てられている。ノードIDは、後述するノードIDの決定方法によって得られる固有の識別情報である。
また、各ノードNnは、夫々、DHTを用いたルーティングテーブルを保持している。このルーティングテーブルは、分散保存システムS上における各種メッセージの転送先を規定している。具体的には、ルーティングテーブルは、ID空間内で適度に離れたノードNnのノードID及びアドレス情報を含むノード情報を複数登録している。アドレス情報は、IPアドレス及びポート番号等である。各ノードNnは、互いに通信しあうことにより、他のノードNnを経由して、或いは、管理サーバ等を経由して、互いのノード情報を知ることができるようになっている。
ところで、分散保存システムSでは、内容の異なる様々なデータファイルの複製データであるレプリカが、所定のファイル形式で複数のノードNnに分散して保存(格納)されている。レプリカは、各ノードNn間で利用可能になっている。例えば、ノードN5には、レプリカの一例として、タイトルがXXXの映画のデータファイルのレプリカが保存されている。一方、ノードN3には、タイトルがYYYの映画のデータファイルのレプリカが保存されている。
また、これらのレプリカには、夫々、ファイルIDやデータファイル名等の情報が付加されている。このファイルIDは、データファイル毎の固有の識別情報である。
ファイルIDは、ID空間において確率的に均等になるように生成され、各レプリカに割り当てられる。各データファイルのレプリカは、所定の複製数だけ生成される。なお、以下の説明において、複製数を重複数と言う場合がある。同じデータファイルのレプリカには、同じファイルIDが割り当てられる。ファイルIDは、例えば「データファイル名+任意の数値」を、SHA−1等のハッシュ関数によりハッシュ化されて生成される。また、データファイルを構成するデータ先頭数バイトが、ハッシュ化して生成されてもよい。また、或いは、システム管理者が、データファイル毎に一意のID値であって、ID空間において確率的に均等になるようなID値をランダムに付与しても良い。ファイルIDはノードIDと同一のID空間への配置定義されるように、ノードIDと同一ビット長とする。ビット長は、例えば160bit等とする。例えば、ファイルID及びノードIDは共に16進数の4桁の数値で表わすこととする。このようなデータファイルのレプリカは、各ファイルIDに基づいて記憶担当として所定の規則に基づいて定められた記憶担当のノードNnに保存される。
本実施形態では、同じデータファイルのレプリカを複数のノードNnに重複させて記憶させるよう構成する。
1−1.ノードIDと記憶担当範囲の決定方法
各ノードNnのノードIDと記憶担当範囲の決定方法について説明する。
図2は、ID空間におけるノードIDとファイルIDとの説明図である。同図において、白丸(○)は、ノードIDを示し、黒丸(●)は、ファイルIDを示す。
図2は、ノードN1、ノードN2、ノードN3及びノードN4の4台のノードNnが分散保存システムSに接続している場合の例である。
本実施形態では、各ノードID及びファイルIDは、4桁の16進数(0000〜ffff)のID値を構成するID空間に配置されることとする。また、ID空間の総数10000(∵ffff+1)とする。
図2に示す例では、ID空間の総数10000を各ノードN1〜N4で均等に区切ってレプリカの記憶担当範囲が定められている。また、各レプリカは、所定の規則に基づいて定められた記憶担当のノードNnに保存される。本実施形態では、ノードIDがファイルID以下であって、かつ、ファイルIDとノードIDとの差が最も小さいノードIDを有するノードNnに保存されることとする。
図2に示す例では、
ノードN1のノードIDは「0000」であり、ノードN1はID空間におけるID(0000〜3fff)エリアのファイルIDを有するレプリカを記憶する。例えば、ファイルID「2fff」等のレプリカを記憶する。
ノードN2のノードIDは「4000」であり、ノードN2はID空間におけるID(4000〜7fff)エリアのファイルIDを有するレプリカを記憶する。例えば、ファイルID「6500」等のレプリカを記憶する。
ノードN3のノードIDは「8000」であり、ノードN3はID空間におけるID(8000〜bfff)エリアのファイルIDを有するレプリカを記憶する。例えば、ファイルID「9000」等のレプリカを記憶する。
ノードN4のノードIDは「c000」であり、ノードN4はID空間におけるID(c000〜ffff)エリアのファイルIDを有するレプリカを記憶する。例えば、ファイルID「d000」等のレプリカを記憶する。
このように、各ノードN1〜N4が、夫々の記憶担当範囲のレプリカを記憶する。
更に、本実施形態では、複数のノードNnに同一のデータファイルのレプリカを重複して記憶させるよう、各ノードN1〜N4の記憶担当範囲を複数のID空間の階層にて定義する。階層数「k」は、2以上の自然数であることを条件とする。また、各ノードNnの記憶担当範囲は、階層数分の1以下となることを条件とする。なお、第1階層、第2階層、・・・、第k階層は、本発明における複製番号の一例である。
1−1−1.階層数が「2」の場合
図3は、階層数が「2」の場合の各階層における各ノードNnの記憶担当範囲の説明図である。
図3(A)は、第1階層における各ノードNnの記憶担当範囲の説明図である。第1階層における各ノードNnのノードID及び記憶担当範囲は、図2と同様であるため説明を省略する。図3(B)は、第2階層における各ノードNnの記憶担当範囲の説明図である。各ノードNnには、第1階層とは異なるノードIDが付与されており、第1階層とは異なる記憶担当範囲が定められている。
図3(B)に示す例では、
ノードN1のノードIDは「8000」であり、ノードN1はID空間におけるID(8000〜bfff)エリアのファイルIDを有するレプリカを記憶する。
ノードN2のノードIDは「c000」であり、ノードN2はID空間におけるID(c000〜ffff)エリアのファイルIDを有するレプリカを記憶する。
ノードN3のノードIDは「0000」であり、ノードN3はID空間におけるID(0000〜3fff)エリアのファイルIDを有するレプリカを記憶する。
ノードN4のノードIDは「4000」であり、ノードN4はID空間におけるID(4000〜7fff)エリアのファイルIDを有するレプリカを記憶する。
同図に示す例の場合、4台のノードNnでID空間を均等に割り振っているため、各ノードNnにおける記憶担当範囲は「1/4」であり、階層数は「2」である。従って、各ノードNnの記憶担当範囲は、階層数分の1以下でなければならないという条件を満たす(∵1/2≧1/4)。
第1階層及び第2階層における各ノードNnのノードIDは、計算により決定することができる。
第1階層の各ノードNnのノードIDは、各ノードNn自身のノード番号と、ID空間の総数と、分散保存システムSに接続しているノードNnの数と、を用いて以下の式(1)に従って決定することができる。なお、「分散保存システムSに接続しているノードNnの数」は、本発明におけるノード装置数の一例であり、以下の説明において「接続ノード数」と言う。
第1階層のノードID=[ノード番号−1]×[総数]/[接続ノード数]・・・式(1)
ノード番号は、分散保存システムSに接続している各ノードNnに割り振られた番号である。ノード番号は、1以上接続ノード数以下の値で、かつ、各ノードNnで夫々異なるように割り振ればどのように割り振ってもよい。例えば、ノードN1のノード番号は「1」、ノードN2のノード番号は「2」、ノードN3のノード番号は「3」、ノードN4のノード番号は「4」である。分散保存システムSに新たにノードNnが接続する場合には、新規ノードNnのノード番号を「5」とする。
第k階層の各ノードNnのノードIDは、各ノードNn自身の第1階層のノードIDと、ID空間の総数と、階層数を用いて以下の式(2)に従って決定することができる。なお、kは2以上の自然数である。
第k階層のノードID=[第1階層のノードID]+([総数]/[階層数])×(k−1)・・・式(2)
なお、ノードIDが、割り切れない値の場合もある。この場合、割り切れなかった値は切り上げられても、切り捨てられても良い。切り上げるか、切り捨てるかは、どちらかに統一して用いる必要がある。
図4(A)は、第1階層(図3(A))における記憶担当範囲の説明図である。各ノードNnのノード番号と、式(1)に従って決定された第1階層のノードIDと、ノードIDに従って定められた記憶担当範囲と、が夫々対応付けられている。
図4(B)は、第2階層(図3(B))における記憶担当範囲の説明図である。式(2)に従って決定された第2階層のノードIDと、ノードIDに従って定められた記憶担当範囲と、が夫々対応付けられている。
以上のように、各ノードNnは、各階層で夫々決定された記憶担当範囲のレプリカを記憶する。例えば、ID(0000〜3fff)エリアのファイルIDを有するレプリカの場合、第1階層ではノードN1に記憶され、第2階層ではノードN3に記憶される。言い換えれば、ID(0000〜3fff)エリアのファイルIDを有するレプリカは、ノードN1とノードN3に重複して記憶される。
このように、全てのレプリカが、各階層にて決定された記憶担当のノードNnに夫々記憶されるよう構成する。そして、分散保存システムSに新たなノードNnが接続する場合や、分散保存システムSからノードNnが離脱する場合には、各ノードNnが自律的に各ノードNn自身のノードIDを再決定する。そして、各ノードNnの担当範囲が変更される。そのため、離脱ノードまたは新規に接続されたノードによって生じた記憶担当範囲の変更に迅速に対応することができる。なお、第1階層にて各ノードNnに割り当てられたノードIDを、各ノードNnの固有の識別情報とする。例えば、第1階層におけるノードIDを、ノードNn間で各種メッセージを送受信する際のルーティングキーとして用いる。
図5は、新規ノードN5が分散保存システムSに接続する様態を示す説明図である。
新規ノードNnが分散保存システムSに接続する前の、接続ノード数に1を加算した数が、新規ノードNnのノード番号と決定される。同図に示す例の場合、新規ノードN5が分散保存システムSに接続する前の、接続ノード数「4」に1を加算した数「5」が、新規ノードN5のノード番号と決定される。
先ず、新規ノードN5は、分散保存システムSに接続している各ノードN1〜N4に、新規ノードN5自身のノード番号を含む参加メッセージを送信する。そして、新規ノードN5は、新規ノードN5の第1階層におけるノードIDと第2階層におけるノードIDを夫々計算する。なお、計算に必要な総数や階層数の情報は、新規ノードNnが既に接続している各ノードN1〜N4や管理サーバに問い合わせるか、或いは、カタログ情報に記述しておき、新規ノードNnがカタログ情報を参照して取得すればよい。
図5に示す例では、新規ノードN5の第1階層のノードIDは、上記式(1)に従って「cccc」と決定され、第2階層のノードIDは、上記式(2)に従って「4CCC」と決定される。
また、各ノードN1〜N4も、新規ノードN5が加わったことにより、接続ノード数「4」から「5」に変更になったため、各ノードN1〜N4は、上記式(1)及び式(2)に従って各ノードN1〜N4自身の各階層のノードIDを再決定する。図5に示す例では、ノードN1の第1階層のノードIDは「0000」、第2階層のノードIDは「8000」である。ノードN2の第1階層のノードIDは「3333」、第2階層のノードIDは「B333」である。ノードN3の第1階層のノードIDは「6666」、第2階層のノードIDは「E666」である。ノードN4の第1階層のノードIDは「9999」、第2階層のノードIDは「1999」である。
そして、各ノードN1〜N5は、第1階層のノードIDに基づいて決定された第1階層の記憶担当範囲のレプリカと、第2階層のノードIDに基づいて決定された第2階層の記憶担当範囲のレプリカを夫々取得して、後述する自己の記憶部に記憶する。
そして、全ノードN1〜N5が記憶担当範囲のレプリカを記憶した後に、各ノードN1〜N5は、記憶部に記憶担当範囲外のデータファイルがあれば、記憶担当範囲外のデータファイルを記憶部から削除する。
なお、ノードNnが分散保存システムSから離脱する場合には、離脱ノードNnが離脱ノードNn自身のノード番号を含む離脱メッセージを各ノードNnに送信する。各ノードNnは離脱メッセージを受信すると、離脱メッセージに含まれる離脱ノードNnのノード番号に基づいて、各ノードNn自身のノード番号を更新する。なお、離脱ノードNnのノード番号によってはノード番号を更新しない場合もある。ノード番号の更新については後に詳述する。
また、離脱ノードNnにより、接続ノード数が変更になったため、各ノードNnは、上記式(1)及び式(2)に従って各ノードNn自身の各階層のノードIDを再決定する。そして、新たに決定された記憶担当範囲のレプリカを記憶する。
このように、新たなノードNnが分散保存システムSに接続する場合や、ノードNnが分散保存システムSから離脱する場合であっても、各ノードNnが自律的に各ノードNn自身の各階層のノードIDを再決定し、各階層における記憶担当範囲を決定する。つまり、各ノードNn自身が記憶担当のレプリカの記憶制御を行なう。
また、各ノードNnは、記憶担当範囲の変更により全ノードNnが新たに記憶担当範囲のレプリカを記憶した後に、記憶担当範囲外のレプリカを記憶部から削除するよう構成した。これにより、記憶担当範囲の変更が生じた際にも、分散保存システムS内で行われているレプリカのやり取りに影響を与えることなく、記憶担当のノードNnへデータファイルを確実に再配置させることができる。
1−1−2.その他の階層数の場合
これまで、階層数が「2」の場合の実施形態について説明してきたが、階層数が「3」以上であっても、上記式(1)及び式(2)に従って、各ノードNnの記憶担当範囲を決定できる。ここでは、階層数が「3」の場合の実施形態について説明する。
図6は、階層数が「3」の場合の各階層における各ノードNnの記憶担当範囲の説明図である。図6は、ノードN1〜N4の4台のノードNnが分散保存システムSに接続している場合の例である。接続ノード数は「4」である。
同図に示す例の場合、4台のノードNnでID空間を均等に割り振っているため、各ノードNnにおける記憶担当範囲は「1/4」であり、階層数は「3」である。従って、各ノードNnの記憶担当範囲は、階層数分の1以下でなければならないという条件を満たす(∵1/3≧1/4)。
図6(A)は、第1階層における各ノードNnの記憶担当範囲の説明図である。第1階層における各ノードNnのノードID及び記憶担当範囲は、図2と同様であるため説明を省略する。
図6(B)は、第2階層における各ノードNnの記憶担当範囲の説明図である。図6(C)は、第3階層における各ノードNnの記憶担当範囲の説明図である。上記式(2)に従って、各ノードN1〜N4の第2階層におけるノードIDと、第3階層におけるノードIDが決定される。なお、式(2)において、第2階層におけるノードIDを決定する場合には、kを「2」とし、第3階層におけるノードIDを決定する場合には、kを「3」とすればよい。
図6(B)及び図6(C)に示す例では、ノードN1の第2階層のノードIDは「5555」、第3階層のノードIDは「aaaa」である。ノードN2の第2階層のノードIDは「9555」、第3階層のノードIDは「eaaa」である。ノードN3の第2階層のノードIDは「d555」、第3階層のノードIDは「2aaa」である。ノードN4の第2階層のノードIDは「1555」、第3階層のノードIDは「6aaa」である。
そして、各ノードN1〜N4は、第1階層のノードIDに基づいて決定された記憶担当範囲のレプリカと、第2階層のノードIDに基づいて決定された記憶担当範囲のレプリカと、第3階層のノードIDに基づいて決定された記憶担当範囲のレプリカを夫々取得して記憶部に記憶する。例えば、ファイルID「3ccc」のレプリカは、第1階層で定義された記憶担当のノードN1と、第2階層で定義された記憶担当のノードN4と、第3階層で定義された記憶担当のノードN3の3つのノードにそれぞれ記憶、保存されることになる。
全ての階層において、各ノードNnの記憶担当範囲は重複しないことが望ましい。複数の階層において、任意のノードNnの記憶担当範囲が一部でも重複した場合、そのノードNnが分散保存システムSから離脱したとき、分散保存システムS上のレプリカの数が2以上減少してしまうからである。なお、任意の階層における任意のノードNnの記憶担当範囲が「総数/階層数」であれば、全ての階層の記憶担当範囲を合計すると総数と等しくなる{(総数/階層数)×階層数=総数}。従って、ノードNnの各階層における記憶担当範囲を「総数/階層数」以下とすると、あるノード装置における各階層の記憶担当範囲の合計が、総数を超えることがない。上述の記憶担当範囲の合計が総数を超えると、記憶担当範囲が確実に重複するが、記憶担当範囲の合計が総数を超えないため、記憶担当範囲が確実に重複することを防ぐことができる。
1−2.レプリカの投入と取得
分散保存システムSにて利用可能なデータファイルのレプリカは、管理サーバ、レプリカ投入サーバ、或いは、各ノードNnから、投入することができる。投入とは、分散保存システムS内で利用可能となるよう、新たなレプリカを分散保存システムSに接続しているノードNnに保存させることである。管理サーバは、分散保存システムSを管理する。レプリカ投入サーバは、レプリカの配信を管理する。ノードNnがレプリカを投入する場合には、上記管理サーバやレプリカ投入サーバ等からレプリカ投入の許可を得たノードNnのみがデータファイルを投入できるよう構成してもよい。以下、ノードNnがレプリカを投入する場合を例に説明する。
レプリカの投入の際には、先ず、ノードNnは、レプリカのファイルIDを決定する。ファイルIDは、上述したように、ノードIDと同一ビット長で、かつ、ID空間に確率的に均一に分散されるランダム値やハッシュ値等が用いられる。
そして、レプリカを投入するノードNnは、所定の規則に基づいて定められた記憶担当のノードNnにレプリカを送信する。レプリカを投入するノードNnが、分散保存システムSに接続している各ノードNnのノード番号等に基づいて、投入するレプリカの各階層における記憶担当のノードNnを知ることができる。なお、各ノードNnのノード番号は、レプリカを投入するノードNnが、管理サーバに問い合わせるか、或いは、カタログ情報に記述しておき、レプリカを投入するノードNnが、カタログ情報を参照して取得すればよい。なお、レプリカを投入するノードNnが、分散保存システムSの全ノードNnのアドレス情報を知らない場合があるが、特開2006−197400号公報等に記載のDHTによるルーティングによりノードIDに基づいて各ノードNnを経由することにより、他のノードNnに問い合わせることができる。
このように、レプリカを投入するノードNnが、各階層におけるレプリカの記憶担当のノードNnに対して夫々レプリカを送信する。送信されたレプリカは、記憶担当の各ノードNnにより受信される。受信されたレプリカは、レプリカを受信した、レプリカの記憶担当である各ノードNnの後述する記憶部に記憶される。以上の動作により、レプリカ投入が完了する。
また、各ノードNnは、レプリカを他のノードNnから取得することができる。
レプリカを取得したいノードNnであるユーザーノードは、管理サーバやレプリカ投入サーバ等から各ノードNnに配布されたカタログ情報を参照する。そして、ユーザーノードは、カタログ情報の記述から、取得したいレプリカのファイルIDを取得する。なお、カタログ情報には、レプリカの属性情報と、各ノードNnのノード番号が記載されている。この属性情報としては、例えば、レプリカのファイルID、データファイルの評価値、レプリカの公開期間、データファイル名、ジャンル、アーティスト名、出演者、監督名等が挙げられる。
その後、ユーザーノードは、各ノードNnのノード番号等に基づいて、各ノードNnのノードIDを計算する。ノードIDは上述したように各階層で異なるものである。どの階層のノードIDを計算するかは、ユーザーノードが例えばランダムに階層を選択して決定すればよい。そして、所望のレプリカのファイルIDと、計算された各ノードNnのノードIDに基づいて、レプリカを記憶しているノードNnに対して、レプリカの送信要求を行なう。なお、ユーザーノードが、分散保存システムSの全ノードNnのアドレス情報を知らない場合があるが、この場合も、特開2006−197400号公報等に記載のDHTによるルーティングによりノードIDに基づいて各ノードNnを経由することにより、他のノードNnに問い合わせることができる。
なお、複数のレプリカを取得する場合には、ユーザーノードが複数の階層をランダムに選択して、選択された階層における記憶担当のノードNnのノードIDを夫々求め、複数のノードNnから分散してレプリカを取得するよう構成することが好ましい。多数のレプリカを取得する際におけるレプリカの取得に伴う負荷を、複数のノードNnで分散することができるからである。この場合には、各階層におけるノードIDを、夫々の階層における各ノードNnの固有の識別情報として用いる。そして、各階層におけるノードIDを、各種メッセージの送受信の際のルーティングキーとして用いる。
このように、各ノードNnは、レプリカを分散保存システムSに投入し、或いは、取得を所望するレプリカを取得することができる。
2.ノードNnの構成及び機能
次に、図7を参照して、ノードNnの構成及び機能について説明する。
図7は、ノードNnの概要構成例を示すブロック図である。
各ノードNnは、制御部11と、記憶部12と、バッファメモリ13と、デコーダ部14と、映像処理部15と、表示部16と、音声処理部17と、スピーカ18と、通信部20と、入力部21とから構成される。制御部11、記憶部12、バッファメモリ13、デコーダ部14、通信部20、及び入力部21はバス22を介して相互に接続されている。
制御部11は、演算機能を有するCPU,作業用RAM,各種データおよびプログラムを記憶するROM等から構成される。制御部11は、本実施形態のコンピュータとして機能する。記憶部12は、レプリカ、各種データ及び各種プログラム等を記憶保存(格納)するハードディスク(HD)等から構成される。例えば、記憶部12は、記憶担当となったレプリカ、ルーティングテーブルを記憶する。バッファメモリ13は、受信されたレプリカ等を一時蓄積する。デコーダ部14は、エンコードされたビデオデータ(映像情報)およびオーディオデータ(音声情報)等をデコード(データ伸張や復号化等)する。レプリカが映像や音声を含む場合に、デコーダ部14は、レプリカに含まれるエンコードされたビデオデータおよびオーディオデータ等をデコードする。映像処理部15は、デコードされたビデオデータ等に対して所定の描画処理を施しビデオ信号として出力する。表示部16は、映像処理部15から出力されたビデオ信号に基づき映像表示するCRT,液晶ディスプレイ等である。音声処理部17は、上記デコードされたオーディオデータをアナログオーディオ信号にD(Digital)/A(Analog)変換した後これをアンプにより増幅して出力する。スピーカ18は、音声処理部17から出力されたオーディオ信号を音波として出力する通信部20は、ネットワーク8を通じて他のノードNn等間の情報の通信制御を行なう。入力部21は、ユーザーからの指示を受け付け、指示に応じた指示信号を制御部11へ通信する。入力部21は、例えば、キーボード、マウス、或いは、操作パネル等である。なお、ノードNnとしては、パーソナルコンピュータ、STB(Set Top Box)、通信カラオケ装置、或いは、TV受信機等が適用可能である。
記憶部12には、ノードNn自身のアドレス情報が記憶されている。
また、ノードNnが、分散保存システムSに接続した後は、記憶部12には、ノードNn自身のノード番号の情報、接続ノード数の情報、階層数の情報が記憶される。
また、記憶部12には、ノードNn自身のノードID及び記憶担当範囲のファイルIDの情報も記憶されている。
更に、記憶部12には、カタログ情報及び管理テーブルが記憶されている。管理テーブルには、記憶部12に記憶しているレプリカに関する情報(タイトル、ファイルID、公開期間等)が登録されている。
このような構成において、制御部11は、CPUが記憶部12等に記憶されたプログラムを読み出して実行することにより、全体を統括制御する。
また、制御部11は、本発明の処理プログラムを実行することにより、本発明における第1決定手段、第2決定手段、記憶制御手段、総数取得手段、装置数取得手段、離脱情報受信手段、離脱メッセージ受信手段、ノード装置数更新手段、参加メッセージ受信手段等として機能する。なお、上記処理プログラムは、例えば、ネットワーク8上の所定のサーバからダウンロードされるようにしてもよいし、例えば、CD−ROM等の記録媒体に記録されて記録媒体のドライブを介して読み込まれるようにしても良い。
3.ノードNnの処理
ノードNnにおける処理を、図を参照して、詳しく説明する。
3−1.新規ノードNn接続時の各ノードNnの処理フロー
図8は、新規ノードNnが分散保存システムSに接続する際の処理フローである。図8(A)は、新規ノードNnにおける制御部11の処理である。図8(B)は、既に分散保存システムSに接続しているノードNnにおける制御部11の処理である。
図8(A)を参照して新規ノードNnの処理から説明する。
先ず、新規ノードNnの制御部11は、新規ノードNn自身のノード番号を設定する(ステップS10)。具体的には、新規ノードNnが分散保存システムSに接続する前の、ノードNnの数に1を加算した数が、新規ノードNn自身のノード番号として設定される。設定されたノード番号の情報は記憶部12に記憶される。なお、分散保存システムSに接続しているノードNnの数の情報は、新規ノードNnが既に接続しているノードNnや管理サーバ等に問い合わせる。或いは、カタログ情報に記述しておき、新規ノードNnがカタログ情報を参照して取得すればよい。
次いで、制御部11は、参加メッセージ送信手段として機能し、分散保存システムSに接続している他の全ノードNnに参加メッセージを送信する(ステップS11)。制御部11は、参加メッセージに、新規ノードNn自身のノード番号の情報を含ませる。
次に、制御部11は、第1決定手段及び第2決定手段として機能し、新規ノードNn自身の各階層における記憶担当範囲を決定する。先ず、制御部11は、各階層における新規ノードNn自身のノードIDを式(1)式(2)に従って計算し決定する(ステップS12)。制御部11は、決定結果を記憶部12に記憶する。
そして、制御部11は、決定された各階層における新規ノードNn自身のノードIDに基づいて、各階層における記憶担当範囲を決定する。そして、制御部11は、記憶制御手段として機能し、記憶担当範囲のファイルIDを有するレプリカを取得して記憶部12に記憶する(ステップS13)。なお、記憶担当範囲のレプリカのうち、既に記憶部12に記憶しているレプリカが有る場合には、記憶していないレプリカのみを他のノードNnから取得して記憶部12に記憶する。重複記憶を防ぐためである。
そして、記憶担当範囲となった全てのレプリカを記憶部12に記憶させると、制御部11は、記憶担当となったレプリカの取得(記憶)が完了したことを示す取得完了メッセージを分散保存システムSに接続している他の全ノードNnに、送信する(ステップS14)。例えば、ステップS14で送信された取得完了メッセージは、後述するステップS23の処理にて受信されることとなる。
次に、制御部11は、分散保存システムSに接続している他の全ノードNnから取得完了メッセージを受信する(ステップS15)。このとき、制御部11は、分散保存システムSに接続している他の全ノードNnから取得完了メッセージを受信するまで待機する。
なお、ここで受信する取得完了メッセージは、後述する他のノードNnが実行する図8(B)のステップS22にて送信された取得完了メッセージである。制御部は、例えば、接続ノード数から自己のノードNn分「1」を引いた数(接続ノード数−1)だけ取得完了メッセージを受信したときに、他の全ノードNnから取得完了メッセージを受信したとして判定すればよい。
そして、制御部11は、全ノードNnから取得完了メッセージを受信すると、ノードNn自身の記憶担当範囲外のレプリカが記憶部12に記憶されている場合には、その記憶担当範囲外のレプリカを記憶部12から削除して(ステップS16)、処理を終了する。
続いて、図8(B)を参照して、分散保存システムSに接続しているノードNnにおける制御部11の処理を説明する。分散保存システムSに既に接続しているノードNnにおける制御部11の処理は、制御部11が参加メッセージ受信手段として機能し、新規ノードNnから参加メッセージを受信したことにより開始される。
先ず、制御部11は、ノード装置数更新手段として機能し、接続ノード数の情報を更新する。また、制御部11は、各階層におけるノードNn自身のノードIDを上記式(1)及び式(2)に従って再決定する(ステップS20)。制御部11は、更新後の接続ノード数及び再決定したノードIDを記憶部12に記憶する。
次に、制御部11は、第1決定手段及び第2決定手段として機能し、再決定されたノードIDに基づき新規ノードNn自身の各階層における記憶担当範囲を決定する。そして、制御部11は、記憶制御手段として機能し、記憶担当範囲のファイルIDを有するレプリカを他のノードNnから取得して記憶部12に記憶する(ステップS21)。なお、記憶担当範囲のレプリカのうち、既に記憶部12に記憶しているレプリカが有る場合には、重複記憶を防ぐため、制御部11は、記憶していないレプリカのみを他のノードNnから取得して記憶部12に記憶する。
そして、制御部11は、記憶担当範囲となった全てのレプリカを記憶部12に記憶させると、取得完了メッセージを分散保存システムSに接続している他の全ノードNnに送信する(ステップS22)。このとき送信された取得完了メッセージは、新規ノードNnが上記ステップS15にて受信することとなる。なお、ステップS22で送信された取得完了メッセージは、他のノードNnがそれぞれ実行する図8(B)の処理フローのステップS23においても受信される。
次に、制御部11は、取得完了メッセージ受信手段として機能し、分散保存システムSに接続している他の全ノードNnから取得完了メッセージを受信する(ステップS23)。このとき、制御部11は、分散保存システムSに接続している他の全ノードNnから取得完了メッセージを受信するまで待機する。なお、ここで受信する取得完了メッセージは、他のノードNnが実行する図8(A)のステップS14又は図8(B)のステップS22にて送信された取得完了メッセージである。他の全ノードNnから取得完了メッセージを受信したか否かの判定は、上記ステップS15にて説明した方法と同様の方法等で判定すればよい。
そして、制御部11は、全ノードNnから取得完了メッセージを受信すると、担当範囲の変更により、記憶担当範囲外となったレプリカを記憶部12から削除して(ステップS25)、処理を終了する。
なお、上記ステップS13及びステップS21にて、他のノードNnから担当するレプリカを取得できない場合には、制御部11は、レプリカの配信を管理するレプリカ投入サーバ等からレプリカを取得してもよい。
上記ステップS10にて、分散保存システムSに接続しているノードNnの数に「1」を加算した数を、新規ノードNnのノード番号としたが、新規ノードNnのノード番号を「1」としてもよい。新規ノードNnのノード番号を「1」とした場合には、分散保存システムSに接続している各ノードNnは、各ノードNn自身のノード番号を「1」づつ繰り上げてノード番号を更新するよう構成する。この場合、新規ノードNnは、設定したノードNn自身のノード番号を他のノードNnに通知し、各ノードNnは1以上、接続ノード数以下の範囲で他のノードNnと重複しないよう各ノード番号を設定する。そして、各ノードNnは設定後のノード番号を他のノードNnに送信すればよい。
3−2.ノード離脱時の処理フロー
図9は、分散保存システムSから離脱ノードが発生した際の各ノードNnの処理フローである。図9(A)は、離脱ノードから離脱する旨を示す離脱情報を受信したノードNnにおける制御部11の処理である。図9(B)は、離脱メッセージを受信したノードNnにおける制御部11の処理である。
図9(A)を参照して離脱ノードから離脱する旨を示す離脱情報を受けたノードNnの処理から説明する。
先ず、制御部11は、離脱情報受信手段として離脱ノードから離脱情報を受信すると、離脱メッセージ送信手段として機能し、分散保存システムSに接続している他の全ノードNnに離脱メッセージを送信する(ステップS30)。離脱メッセージは、離脱情報を受信したことを知らせるためのメッセージであり、制御部11は、離脱メッセージに、離脱ノードのノード番号の情報を含ませる。なお、離脱ノードのノード番号は、離脱情報に含まれているものとする。
次に、制御部11は、判定手段として機能し、記憶部12に記憶しているノードNn自身のノード番号が、離脱ノードのノード番号よりも大きいか否かを判定する(ステップS31)。判定の結果、記憶部12に記憶しているノードNn自身のノード番号が、離脱ノードのノード番号より小さい場合(ステップS31:No)には、ステップS33に移行する。一方、ステップS41の判定の結果、記憶部12に記憶しているノードNn自身のノード番号が、離脱ノードのノード番号よりも大きい場合(ステップS31:Yes)には、制御部11は、ノード番号更新手段として機能し、記憶部12に記憶しているノード番号を1デクリメント(減算)して更新する(ステップS32)。
続いて、制御部11は、ノード装置数更新手段として機能し、接続ノード数を更新し、各階層におけるノードNn自身のノードIDを上記式(1)及び式(2)に従って再決定する(ステップS33)。具体的には、記憶部12に記憶している接続ノード数を1デクリメント(減算)して更新してノードIDの再決定を行なう。制御部11は、更新後の接続ノード数及び再決定したノードIDを記憶部12に記憶する。
次に、制御部11は、第1決定手段及び第2決定手段として機能し、再決定されたノードIDに基づきノードNn自身の各階層における記憶担当範囲を決定する。そして、制御部11は、記憶制御手段として機能し、記憶担当範囲のファイルIDを有するレプリカを他のノードNnから取得して記憶部12に記憶する(ステップS34)。なお、記憶担当範囲のレプリカのうち、既に記憶部12に記憶しているレプリカが有る場合には、重複記憶を防ぐため、制御部11は、記憶していないレプリカのみを他のノードNnから取得して記憶部12に記憶する。
そして、制御部11は、記憶担当範囲となった全てのレプリカを記憶部12に記憶させると、取得完了メッセージを分散保存システムSに接続している他の全ノードNnに送信する(ステップS35)。このとき送信された取得完了メッセージは、他のノードNnが後述するステップS46にて受信することとなる。
次に、制御部11は、取得完了メッセージ受信手段として機能し、分散保存システムSに接続している他の全ノードNnから取得完了メッセージを受信する(ステップS36)。このとき、制御部11は、分散保存システムSに接続している他の全ノードNnから取得完了メッセージを受信するまで待機する。なお、ここで受信する取得完了メッセージは、後述する他のノードNnが実行する図9(B)のステップS45にて送信された取得完了メッセージである。他の全ノードNnから取得完了メッセージを受信したか否かの判定は、上記ステップS15にて説明した方法と同様の方法等で判定すればよい。
そして、制御部11は、全ノードNnから取得完了メッセージを受信すると、担当範囲の変更により、記憶担当範囲外となったレプリカを記憶部12から削除して(ステップS37)、処理を終了する。
続いて、図9(B)を用いて離脱メッセージを受信したノードNnにおける制御部11の処理を説明する。当該処理は、制御部11が離脱メッセージ受信手段として機能し、離脱メッセージを受信したことにより開始される。
先ず、制御部11は、判定手段として機能し、記憶部12に記憶しているノードNn自身のノード番号が、離脱メッセージに含まれる離脱ノードのノード番号よりも大きいか否かを判定する(ステップS41)。判定の結果、記憶部12に記憶しているノードNn自身のノード番号が、離脱ノードのノード番号より小さい場合(ステップS41:No)には、ステップS43に移行する。一方、ステップS41の判定の結果、記憶部12に記憶しているノードNn自身のノード番号が、離脱ノードのノード番号よりも大きい場合(ステップS41:Yes)には、制御部11は、ノード番号更新手段として機能し、記憶部12に記憶しているノード番号を1デクリメント(減算)して更新する(ステップS42)。
続いて、制御部11は、ノード装置数更新手段として機能し、接続ノード数を更新し、各階層におけるノードNn自身のノードIDを上記式(1)及び式(2)に従って再決定する(ステップS43)。具体的には、記憶部12に記憶している接続ノード数を1デクリメント(減算)して更新してノードIDの再決定を行なう。制御部11は、更新後の接続ノード数及び再決定したノードIDを記憶部12に記憶する。
次に、制御部11は、第1決定手段及び第2決定手段として機能し、再決定されたノードIDに基づきノードNn自身の各階層における記憶担当範囲を決定する。そして、制御部11は、記憶制御手段として機能し、記憶担当範囲のファイルIDを有するレプリカを他のノードNnから取得して記憶部12に記憶する(ステップS44)。なお、記憶担当範囲のレプリカのうち、既に記憶部12に記憶しているレプリカが有る場合には、重複記憶を防ぐため、制御部11は、記憶していないレプリカのみを他のノードNnから取得して記憶部12に記憶する。
そして、制御部11は、記憶担当範囲となった全てのレプリカを記憶部12に記憶させると、取得完了メッセージを分散保存システムSに接続している他の全ノードNnに送信する(ステップS45)。
次に、制御部11は、取得完了メッセージ受信手段として機能し、分散保存システムSに接続している他の全ノードNnから取得完了メッセージを受信する(ステップS46)。このとき、制御部11は、分散保存システムSに接続している他の全ノードNnから取得完了メッセージを受信するまで待機する。なお、ここで受信する取得完了メッセージは、他のノードNnが実行する図9(A)のステップS35及び図9(B)のステップS45にて送信された取得完了メッセージである。他の全ノードNnから取得完了メッセージを受信したか否かの判定は、上記ステップS15にて説明した方法と同様の方法等で判定すればよい。
そして、制御部11は、全ノードNnから取得完了メッセージを受信すると、担当範囲の変更により、記憶担当範囲外となったレプリカを記憶部12から削除して(ステップS47)、処理を終了する。
なお、上述した実施形態では、記憶担当外となったデータファイルを削除するよう構成したが、記憶部12の使用率が所定値未満である場合など、記憶部12に余裕がある場合には、削除せず記憶しておいてもよい。
また、上述した実施形態では、ステップS11、S30において、各ノードNnのノード番号の情報をノードNn間で互いに送受信するよう構成したが、これらの情報をカタログ情報に記述してもよい。この場合、各ノードNnは、必要に応じてカタログ情報を参照し、各ノードNnのノード番号を取得すればよい。
以上説明したように、データファイルのレプリカを複数生成し、生成された各レプリカが、複数のノードNnに重複して記憶されるよう構成した。各ノードNnが各階層で定義された複数の記憶担当範囲を自律的に決定し、決定された記憶担当範囲のレプリカを記憶するよう構成した。具体的には、各ノードNnが第1階層の記憶担当範囲に属するレプリカと、第1階層の記憶担当範囲とは異なる記憶担当範囲である第2階層の記憶担当範囲に属するレプリカを、記憶するよう構成した。
これにより、管理サーバを用いることなく、各ノードNn自身が記憶担当のレプリカの記憶制御を行なうことができる。
また、記憶担当範囲を、総数や接続ノード数や階層数等に従って上記式(1)及び式(2)に基づいて決定するよう構成した。これにより、新たにノードNnが分散保存システムSに参加する場合や、離脱ノードがある場合であっても、各ノードNnが自律的に記憶担当範囲を再決定し、各ノードNn自身が記憶担当のレプリカの記憶制御を行なうことができる。
また、本実施形態では、各ノードNnの記憶担当範囲は、階層数分の1以下となるよう構成したので、各ノードNnの記憶担当範囲を各階層にて異ならせることができる。従って、各レプリカは、必ず階層数分の異なるノードNnに記憶させることができる。従って、何れかのノードNnが離脱した場合であっても、レプリカの重複数は、1しか減少しない。つまり、最大で(階層数−1)台のノードが同時に離脱した場合であっても、少なくとも1つのレプリカは、分散保存システムS内に残るよう保障できる。
また、本実施形態では、各ノードNnの各階層における記憶担当範囲は、階層数分の1以下となるよう構成したがこれに限定されるものではない。階層数の中の所定の階層における記憶担当範囲が決定され、所定の階層以外の階層ごとの記憶担当範囲が、上述の所定の階層における記憶担当範囲分各階層で異ならせて決定されればよい。このように構成することで、少なくとも所定の階層以外の階層では、所定の階層と異なる記憶担当範囲が決定される。そのため、少なくとも所定の階層と、所定の階層以外の階層との間で、記憶担当範囲が重複することを防ぐことができる。「少なくとも所定の階層と記憶担当範囲が重複することを防ぐことができる。」に関してさらに説明すれば、各ノードNnの記憶担当範囲が階層数分の1より大きいと、所定の階層と記憶担当範囲が一部重複する場合がある。これは例えば、あるノードNnの1階層分の担当範囲が全範囲の3分の2である場合は、他のどの階層の担当範囲も少なくとも3分の1は重複することになる。重複を完全に防ぐためには少なくとも各ノードNnの記憶担当範囲が階層数分の1以下である必要がある。
なお、上記分散保存システムSは、DHTを利用したアルゴリズムによって形成されることを前提として説明したが、本発明はこれに限定されるものではない。
4.変型例
上述した実施形態では、分散保存システムSに接続する各ノードNnの記憶担当範囲を、ID空間において各ノードNnに均等に割り当てたが、均等に割り当てなくともよい。この場合、各ノードNnの記憶担当範囲は、階層数分の1以下となるよう構成しなくともよい。
例えば、各ノードNnの記憶部12のハードディスク(HD)容量に応じて決定する。例えば、HD容量が大きいノードNnほど、記憶担当範囲を大きくするよう構成し、各ノードNnのHD使用率が均一になるよう構成することもできる。なお、各ノードNnのHD使用率が均一になるよう構成する場合には、例えば、本願出願人による特許出願第2009−123364号に詳細に記載している手法を用いればよい。
ここでは、第1階層にて、各ノードNnの記憶担当範囲を均一に割り当てなかった場合における第2階層の記憶担当範囲の決定方法について説明する。言い換えれば、“記憶担当範囲のずらし方”の変型例である。何れも、ノードN1、N2の2台のノードNnが分散保存システムSに接続している場合の例である。
図10は、変型例における第2階層の記憶担当範囲の決定方法の説明図である。
図10(A)は、第2階層の決定方法1、2、3に共通する、第1階層における各ノードNnの記憶担当範囲の説明図である。第1階層の記憶担当範囲は、上述したように各ノードNnのHD容量に応じて決定する等すればよい。図10(A)に示す例では、ノードN1のノードIDは「0000」、ノードN2の第1階層のノードIDは「a000」である。
4−1.変型例における第2階層の記憶担当範囲の決定方法1
図10(B)は、決定方法1の場合の第2階層の各ノードNnの記憶担当範囲の説明図である。上記式(2)に従って、各ノードN1、N2の第2階層におけるノードIDが決定される。図10(B)に示す例では、ノードN1のノードIDは「8000」、ノードN2のノードIDは「2000」である。
この構成の場合、記憶担当範囲が階層数分の1以下であるノードN2が離脱した場合、レプリカの重複数は1しか減少しない。一方で、記憶担当範囲が階層数分の1を超えているノードN1が離脱した場合、レプリカの重複数が1以上減少してしまう。このように、レプリカの重複数が1以上減少してしまう場合もあるが、複数のノードNnの記憶担当範囲を決定する方法として有効な構成である。
4−2.変型例における第2階層の記憶担当範囲の決定方法2
図10(C)は、決定方法2の場合の第2階層の各ノードNnの記憶担当範囲の説明図である。以下の式(3)に従って、各ノードN1、N2の第2階層におけるノードIDが決定される。なお、kは2以上の自然数であり、ここではkは2とする。
第k階層のノードID=[第1階層のノードID]+[最も記憶担当範囲が大きいノードNnの記憶担当範囲]×(k−1)・・・式(3)
最も記憶担当範囲が大きいノードNnは、ノードN1であるため、第2階層の各ノードNnのノードIDは、ノードN1の記憶担当範囲分だけずらした値として決定される。図10(C)に示す例では、ノードN1のノードIDは「4000」、ノードN2のノードIDは「a000」である。
この構成の場合、記憶担当範囲が階層数分の1を超えているノードNn(ノードN1)があるため、いずれのノードNnが離脱した場合にも、レプリカの重複数が1以上減少してしまう可能性がある。しかし、複数のノードNnの記憶担当範囲を決定する方法として有効な構成である。
4−3.変型例における第2階層の記憶担当範囲の決定方法3
図10(D)は、決定方法3の場合の第2階層の各ノードNnの記憶担当範囲の説明図である。以下の式(4)に従って、各ノードN1、N2の第2階層におけるノードIDが決定される。なお、kは2以上の自然数であり、ここではkは2とする。
第k階層のノードID=[第1階層のノードID]+[最も記憶担当範囲が小さいノードNnの記憶担当範囲]×(k−1)・・・式(4)
最も記憶担当範囲が小さいノードNnは、ノードN1であるため、第2階層の各ノードNnのノードIDは、ノードN1の記憶担当範囲分だけずらした値として決定される。図10(D)に示す例では、ノードN1のノードIDは「6000」、ノードN2のノードIDは「0000」である。
この構成の場合、いずれのノードNnが離脱した場合にも、レプリカの重複数が1以上減少してしまう可能性がある。しかし、複数のノードNnの記憶担当範囲を決定する方法として有効な構成である。
3 IX
4a、4b ISP
5a、5b DSL回線業者
6 FTTH回線業者
7 通信回線
8 ネットワーク
9 オーバーレイネットワーク(P2Pネットワーク)
11 制御部
12 記憶部
13 バッファメモリ
14 デコーダ部
15 映像処理部
16 表示部
17 音声処理部
18 スピーカ
20 通信部
21 入力部
22 バス
Nn ノード

Claims (7)

  1. ネットワークを介して互いに通信可能な複数のノード装置間で送受信可能なデータファイルを、所定の複製数に対応した複製番号が割り当てられるレプリカとして複製し、
    複製された前記レプリカに対応するデータファイルを識別可能であり、前記データファイルに割り当てられるべき複数の識別情報について、
    前記複数の識別情報を前記複数のノード装置に分散保存させるために、前記所定の複製数の中の所定の複製番号における前記複数の識別情報の中の一部を記憶担当範囲として決定する第1決定手段と、
    前記第1決定手段により決定された複製番号とは異なる複製番号ごとの記憶担当範囲を、少なくとも第1決定手段により決定された記憶担当範囲分各前記複製番号ごとで異ならせて決定する第2決定手段と、
    前記第1決定手段と前記第2決定手段とにより決定された記憶担当範囲のレプリカを記憶手段に記憶させる記憶制御手段と、
    を備えることを特徴とするノード装置。
  2. 前記複数の識別情報の総数を取得する総数取得手段を備え、
    前記第1決定手段は、前記所定の複製番号における記憶担当範囲が前記総数を前記複製数で割った値以下となるように決定し、
    前記第2決定手段は、前記第1決定手段により決定された複製番号とは異なる複製番号ごとの記憶担当範囲を、少なくとも第1決定手段により決定された記憶担当範囲分各前記複製番号ごとで異ならせ、且つ、前記第1決定手段により決定された複製番号とは異なる複製番号ごとの記憶担当範囲が、前記総数を各前記複製数で割った値以下となるように決定することを特徴とする請求項1に記載のノード装置。
  3. 前記複数のノード装置の数を示すノード装置数を取得する装置数取得手段を備え、
    前記第1決定手段は、前記所定の複製番号における記憶担当範囲が前記総数を前記複製数で割った値以下であり、且つ、前記総数と前記装置数とに基づいて、前記所定の複製番号における前記複数のノード装置ごとの記憶担当範囲が均等になるように決定し、
    前記第2決定手段は、前記第1決定手段により決定された複製番号とは異なる複製番号ごとの記憶担当範囲が、前記総数を前記複製数で割った値以下であり、且つ、前記総数と前記装置数とに基づいて、前記異なる複製番号ごとにおける前記複数のノード装置の記憶担当範囲が均等になるように決定することを特徴とする請求項2に記載のノード装置。
  4. 前記分散保存システムから離脱する離脱ノード装置から当該離脱ノード装置の離脱情報を受信する離脱情報受信手段、又は、前記離脱情報を受信した他の前記ノード装置から前記離脱ノード装置の離脱メッセージを受信する離脱メッセージ受信手段と、
    前記離脱情報受信手段を備える場合には前記離脱情報が受信されたときに、又は、前記離脱メッセージ受信手段を備える場合には前記離脱メッセージが受信されたときに、前記離脱情報または前記離脱メッセージに基づいてノード装置数を更新するノード装置数更新手段と、を備え、
    前記第1決定手段は、前記ノード装置数更新手段により更新されたノード装置数と前記総数とに基づいて、前記所定の複製番号における前記複数のノード装置ごとの記憶担当範囲が均等になるように再決定し、
    前記第2決定手段は、前記ノード装置数更新手段により更新されたノード装置数と前記総数とに基づいて、前記異なる複製番号ごとにおける前記複数のノード装置の記憶担当範囲が均等になるように再決定し、
    前記記憶制御手段は、前記第1決定手段と前記第2決定手段により再決定された記憶担当範囲のレプリカを記憶手段に記憶させることを特徴とする請求項3に記載のノード装置。
  5. 前記分散保存システムに新たに参加する新規ノード装置から、前記参加メッセージを受信する参加メッセージ受信手段と、
    前記参加メッセージ受信手段により前記参加メッセージが受信されたとき、前記参加メッセージに基づいて前記ノード装置数を更新するノード装置数更新手段と、を備え、
    前記第1決定手段は、前記ノード装置数更新手段により更新されたノード装置数と前記総数とに基づいて、前記所定の複製番号における前記複数のノード装置ごとの記憶担当範囲が均等になるように再決定し、
    前記第2決定手段は、前記ノード装置数更新手段により更新されたノード装置数と前記総数とに基づいて、前記異なる複製番号ごとにおける前記複数のノード装置の記憶担当範囲が均等になるように再決定し、
    前記記憶制御手段は、前記第1決定手段と前記第2決定手段により再決定された記憶担当範囲のレプリカを記憶手段に記憶させることを特徴とする請求項3または請求項4に記載のノード装置。
  6. ネットワークを介して互いに通信可能な複数のノード装置間で送受信可能なデータファイルを、所定の複製数に対応した複製番号が割り当てられるレプリカとして複製し、
    複製された前記レプリカに対応するデータファイルを識別可能であり、前記データファイルに割り当てられるべき複数の識別情報について、
    前記複数の識別情報を前記複数のノード装置に分散保存させるために、前記所定の複製数の中の所定の複製番号における前記複数の識別情報の中の一部を記憶担当範囲として決定する第1決定ステップと、
    前記第1決定ステップにより決定された複製番号とは異なる複製番号ごとの記憶担当範囲を、少なくとも第1決定手段により決定された記憶担当範囲分各前記複製番号ごとで異ならせて決定する第2決定ステップと、
    前記第1決定ステップと前記第2決定ステップとにより決定された記憶担当範囲のレプリカを記憶手段に記憶させる記憶制御ステップと、
    をコンピュータに実行させるための処理プログラム。
  7. ネットワークを介して互いに通信可能な複数のノード装置間で送受信可能なデータファイルを、所定の複製数に対応した複製番号が割り当てられるレプリカとして複製し、
    複製された前記レプリカに対応するデータファイルを識別可能であり、前記データファイルに割り当てられるべき複数の識別情報について、
    前記ノード装置が、前記複数の識別情報を前記複数のノード装置に分散保存させるために、前記所定の複製数の中の所定の複製番号における前記複数の識別情報の中の一部を記憶担当範囲として決定する第1決定ステップと、
    前記ノード装置が、前記第1決定ステップにより決定された複製番号とは異なる複製番号ごとの記憶担当範囲を、少なくとも第1決定手段により決定された記憶担当範囲分各前記複製番号ごとで異ならせて決定する第2決定ステップと、
    前記ノード装置が、前記第1決定ステップと前記第2決定ステップとにより決定された記憶担当範囲のレプリカを記憶手段に記憶させる記憶制御ステップと、
    を有することを特徴とする分散保存方法。
JP2009154092A 2009-06-29 2009-06-29 ノード装置、プログラム及び分散保存方法 Expired - Fee Related JP5272927B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009154092A JP5272927B2 (ja) 2009-06-29 2009-06-29 ノード装置、プログラム及び分散保存方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009154092A JP5272927B2 (ja) 2009-06-29 2009-06-29 ノード装置、プログラム及び分散保存方法

Publications (2)

Publication Number Publication Date
JP2011008711A true JP2011008711A (ja) 2011-01-13
JP5272927B2 JP5272927B2 (ja) 2013-08-28

Family

ID=43565246

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009154092A Expired - Fee Related JP5272927B2 (ja) 2009-06-29 2009-06-29 ノード装置、プログラム及び分散保存方法

Country Status (1)

Country Link
JP (1) JP5272927B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012121316A1 (ja) * 2011-03-08 2012-09-13 日本電気株式会社 分散ストレージシステムおよび方法
WO2013027784A1 (ja) * 2011-08-22 2013-02-28 日本電気株式会社 データ処理装置、データ分散処理システム、データ処理方法およびプログラム記憶媒体
JP2013182575A (ja) * 2012-03-05 2013-09-12 Nippon Telegr & Teleph Corp <Ntt> サーバおよびプログラム
JP2014146151A (ja) * 2013-01-29 2014-08-14 Nippon Telegr & Teleph Corp <Ntt> ノード離脱処理システム
JP2016189105A (ja) * 2015-03-30 2016-11-04 日本電気株式会社 ストレージシステム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101149A (ja) * 1999-09-30 2001-04-13 Nec Corp 分散並列型データ処理装置及び分散並列型データ処理プログラムを記録した記録媒体並びに分散並列型データ処理システム
JP2006155486A (ja) * 2004-12-01 2006-06-15 Brother Ind Ltd データ共有システム、及び複製コンテンツデータ保存制御装置等
JP2007018407A (ja) * 2005-07-11 2007-01-25 Hitachi Ltd データ複製システム
JP2007219984A (ja) * 2006-02-20 2007-08-30 Brother Ind Ltd コンテンツ配信システム、コンテンツデータ管理装置及びその情報処理方法並びにそのプログラム
JP2008204206A (ja) * 2007-02-20 2008-09-04 Nec Corp データ分散格納システム及びデータ分散方法、それに用いる装置並びにそのプログラム
JP2008210295A (ja) * 2007-02-27 2008-09-11 Brother Ind Ltd コンテンツ配信システム及びその情報処理方法並びにコンテンツ管理装置及びそのプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101149A (ja) * 1999-09-30 2001-04-13 Nec Corp 分散並列型データ処理装置及び分散並列型データ処理プログラムを記録した記録媒体並びに分散並列型データ処理システム
JP2006155486A (ja) * 2004-12-01 2006-06-15 Brother Ind Ltd データ共有システム、及び複製コンテンツデータ保存制御装置等
JP2007018407A (ja) * 2005-07-11 2007-01-25 Hitachi Ltd データ複製システム
JP2007219984A (ja) * 2006-02-20 2007-08-30 Brother Ind Ltd コンテンツ配信システム、コンテンツデータ管理装置及びその情報処理方法並びにそのプログラム
JP2008204206A (ja) * 2007-02-20 2008-09-04 Nec Corp データ分散格納システム及びデータ分散方法、それに用いる装置並びにそのプログラム
JP2008210295A (ja) * 2007-02-27 2008-09-11 Brother Ind Ltd コンテンツ配信システム及びその情報処理方法並びにコンテンツ管理装置及びそのプログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012121316A1 (ja) * 2011-03-08 2012-09-13 日本電気株式会社 分散ストレージシステムおよび方法
JP5765416B2 (ja) * 2011-03-08 2015-08-19 日本電気株式会社 分散ストレージシステムおよび方法
US9342574B2 (en) 2011-03-08 2016-05-17 Nec Corporation Distributed storage system and distributed storage method
WO2013027784A1 (ja) * 2011-08-22 2013-02-28 日本電気株式会社 データ処理装置、データ分散処理システム、データ処理方法およびプログラム記憶媒体
JP2013182575A (ja) * 2012-03-05 2013-09-12 Nippon Telegr & Teleph Corp <Ntt> サーバおよびプログラム
JP2014146151A (ja) * 2013-01-29 2014-08-14 Nippon Telegr & Teleph Corp <Ntt> ノード離脱処理システム
JP2016189105A (ja) * 2015-03-30 2016-11-04 日本電気株式会社 ストレージシステム

Also Published As

Publication number Publication date
JP5272927B2 (ja) 2013-08-28

Similar Documents

Publication Publication Date Title
US8321586B2 (en) Distributed storage system, node device, recording medium in which node processing program is recorded, and address information change notifying method
CN101714987B (zh) P2p播放方法及系统
JP5272927B2 (ja) ノード装置、プログラム及び分散保存方法
CN103095727A (zh) P2p资源定位方法
JP4655986B2 (ja) ノード装置、記憶制御プログラム及び情報記憶方法
JP4506387B2 (ja) 情報通信システム、ノード装置、及びオーバーレイネットワーク形成方法等
JP4998197B2 (ja) コンテンツ取得装置、プログラム、コンテンツ取得方法、およびコンテンツ取得システム
WO2007023636A1 (ja) 情報配信システム、情報配信方法、情報配信システムに含まれるノード装置および情報処理プログラムを記憶した記憶媒体
JP2010271933A (ja) 分散保存システム、ノード装置、ノード処理プログラム及びデータファイル保存方法
JP6029936B2 (ja) 通信制御装置、通信装置およびプログラム
JP4877107B2 (ja) 情報配信システムにおける端末装置及び情報処理プログラム、並びに端末装置の情報処理方法
JP5375272B2 (ja) ノード装置、ノード処理プログラム、情報通信システム及びコンテンツデータ管理方法
JP5338461B2 (ja) 管理装置、情報生成プログラム、及び情報生成方法
JP2011053844A (ja) 情報処理システム、情報処理装置、ノード装置及びノード装置用プログラム並びに情報処理方法
US20090028070A1 (en) Node device, information process method, and recording medium recording node device program
JP2008059398A (ja) 識別情報割当装置及びその情報処理方法並びにそのプログラム
JP4899990B2 (ja) 情報通信システムに含まれるノード装置及びその情報処理プログラム
JP5423497B2 (ja) 情報通信システム、ノード装置、情報通信方法、及びプログラム
JP5071262B2 (ja) 情報配信システム、同情報配信システムにおける端末装置、配信サーバ及び投入サーバ並びにそのプログラム
JP2011008657A (ja) コンテンツ配信システム、ノード装置、コンテンツ配信方法及びノードプログラム
JP5157770B2 (ja) ノード装置、プログラム及び保存指示方法
JP4947106B2 (ja) 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置、情報処理プログラムおよびノード装置のプログラム
JP5293457B2 (ja) 分散保存システム、ノード装置、並びにその処理方法及びプログラム
JP2009129161A (ja) コンテンツ分散保存システム、コンテンツ評価値決定方法、配信装置、及び配信処理プログラム
JP5278151B2 (ja) 分散保存システム、ノード装置、ノードプログラム、及びページ情報取得方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130314

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: 20130416

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130429

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees