JP2017091248A - ノードおよびグラビテーション抑止方法 - Google Patents
ノードおよびグラビテーション抑止方法 Download PDFInfo
- Publication number
- JP2017091248A JP2017091248A JP2015221115A JP2015221115A JP2017091248A JP 2017091248 A JP2017091248 A JP 2017091248A JP 2015221115 A JP2015221115 A JP 2015221115A JP 2015221115 A JP2015221115 A JP 2015221115A JP 2017091248 A JP2017091248 A JP 2017091248A
- Authority
- JP
- Japan
- Prior art keywords
- node
- data
- space
- replication
- management unit
- 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
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】分散処理システムを構成する各ノード1は、ID空間上における各ノード1の担当領域を示す振り分けID情報(振り分けIDテーブル200)を記憶する記憶部30と、ID空間上において自身の担当領域に位置する原本データを格納するノード1から、ID空間上で時計回りに最初に位置するノードおよび反時計回りに最初に位置するノードを、原本データの複製データを配置するノードに決定し、原本データの複製データを決定したノードに記憶させるレプリケーションデータ管理部14とを備える。
【選択図】図3
Description
図10(a)に示すように、原本データ「G1」「G2」がID空間上においてノード「D」の担当領域に配置され、その複製データ「g1」「g2」がID空間上で時計回りに次のノードであるノード「E」と、さらにその次のノード(次々ノード)であるノード「A」に配置されているものとする。この場合において、ノード「D」が減設された場合を考える。
一方、減設されたノード「D」が保持していた原本データ「G2」については、ノード「C」が複製データ「g2」を保持していないため、その複製データ「g2」を保持する例えばノード「E」からのグラビテーション(原本移管)を行う。これにより、ノード「C」は、原本データを保持することができる。なお、ノード「C」は、グラビテーションの終了後に、レプリケーションを実行する。
よって、ノード減設時において、減設ノードの担当領域を引き継ぐノードには必ず複製データが配置されていることになるため、グラビテーション(原本移管)を抑止し、システムの冗長度回復までの時間を短縮することができる。
よって、ノードは、複製データを原本データに昇格し、即時にレプリケーションを実行することが可能となる。
まず、本発明を実施するための形態(以下、「本実施形態」と称する。)に係るノード1を含む分散処理システム1000について説明する。
図1は、本実施形態に係るノード1を含む分散処理システム1000の全体構成を示す図である。
次に、分散処理システム1000を構成するノード1について、具体的に説明する。
まず、本実施形態に係るノード1の処理の概要を説明する。
本実施形態に係るノード1は、前記したように、分散処理システム1000を構成するノードの減設時において、グラビテーション(原本移管)が発生しないようにするため、自身が保持する原本データの複製データを、従来技術のように、ID空間上で時計回り方向に位置するノードだけでなく、ID空間上で反時計回り方向に位置するノードにも配置する。このようにすることにより、減設ノードの担当領域が、減設ノードの時計回り側のノードと、減設ノードの反時計回り側のノードとで、分割された場合においても、グラビテーションの発生を抑止することができる。
次に、本実施形態に係る分散処理システム1000を構成するノード1について、具体的に説明する。なお、本実施形態に係るノード1は、分散処理システム1000の複数のノード1のうち、後記するノード識別子管理テーブル100(図4参照)および振り分けIDテーブル200(図5参照)を管理する特権ノードとなる場合と、特権ノードからノード識別子管理テーブル100および振り分けIDテーブル200の情報を受け取り自身のノード識別子管理テーブル100および振り分けIDテーブル200を更新する非特権ノードとなる場合とが存在する。なお、特権ノードが行う処理等については、後記する。
図3に示すように、ノード1は、制御部10と、入出力部20と、記憶部30とを含んで構成される。
具体的には、ノード識別子管理部11は、自身が属する分散処理システム1000へのノードの離脱(減設)や追加(増設)が発生した場合に、その情報を外部から受信し、分散処理システム1000を構成するノード1の識別情報等が記憶されたノード識別子管理テーブル100(図4)を更新する。
図4に示すように、ノード識別子管理テーブル100には、分散処理システム1000を構成する各ノード1のノード識別子101とアドレス102(例えば、IPアドレス)とが対応付けられて格納される。
具体的には、ノード識別子管理部11は、既存のノード1が減設した場合には、例えば、その減設ノードのID空間上において時計回りで次のノード1と、減設ノードのID空間上において反時計回りで次のノードとで、担当領域を2分割するように、減設ノードの反時計回りで次のノードの担当領域を変更する。
また、ノード識別子管理部11は、新たなノード1を増設した場合には、例えば、既存の各ノード1のID空間上の担当領域の大きさを検索し、担当領域が最も大きいノード1の担当領域を2分割するID空間上の位置に、新たなノード1を配置する。
ノード識別子管理部11は、既存の負荷分散処理を実行することにより得られたノードIDの変更情報に基づき、ノード識別子管理テーブル100を更新(ノード1の減設・増設を反映)し、さらに、ノード1のID空間上での担当領域を変更するため、振り分けIDテーブル200(図5)を更新する。
図5に示すように、振り分けIDテーブル200には、ノード識別子201に対応付けて、そのノード1が担当するID空間202(担当領域)が格納される。このノード識別子201は、図4のノード識別子101と同様の情報である。図5に示す例では、ID空間の全ID数が「0」〜「999」の1000であり、例えば、ノード識別子201が「A」のノード1が、担当するID空間202として「0〜199」について担当することを示している。また、この振り分けIDテーブル200において、ノード識別子201が「A」のノード1(ノード「A」)のID空間上のノードIDは、「199」であり、以下同様に、ノード「B」のID空間上でのノードIDは「399」であり、ノード「C」のID空間上でのノードIDは「599」であり、ノード「D」のID空間上でのノードIDは「799」であり、ノード「E」のID空間上でのノードIDは「999」である。そして、ノード識別子管理部11は、振り分けIDテーブル200において、各ノード1のノードIDを昇順にソートし、連続したID空間202として管理する。
この信号処理部13は、信号処理後に送付するメッセージに、例えば、SIP(Session Initiation Protocol)においては「Call-id」をもとに算出したハッシュ値を振り分けキーとして埋め込む(SIPにおいては、例えばTo/FromヘッダのTagに記載する。)ようにしてもよい。これにより、振り分け部12がそのメッセージの後続呼を受信した場合に、振り分けキーとして埋め込まれたハッシュ値を用いて、ノード識別子管理テーブル100(図4)を参照し、その後続呼を担当するノード1を特定することができる。
具体的は、レプリケーションデータ管理部14は、以下に示す処理を実行する。
図6に示すように、データ属性情報310には、データ番号311に対応付けて、そのデータのデータ識別子(ハッシュ値)312、レプリカフラグ313、データへのアクセス(ポインタ)314が格納される。
データ識別子(ハッシュ値)312は、各データをID空間上において一意に特定するための識別子であり、ここでは、ID空間上に配置されるそのデータのハッシュ値が格納される。
データへのアクセス(ポインタ)314は、当該データの実体を記憶している記憶部30(ハードディスク等)の位置情報を示す。
このデータ属性情報310には、新たなデータを保存する度に、1行(1レコード)の情報がレプリケーションデータ管理部14により格納される。
なお、レプリケーションデータ管理部14は、冗長度が「2」の場合には、原則として自身の時計回りで次のノード1に複製データを格納するように決定する。また、冗長度が「4」以上の場合においては、ID空間上で時計回り側に次のノードと、反時計回り側に次のノードとを、複製データを送信するノード1として決定した後、時計回りにその次のノード1から複製ノードを順次格納するか、反時計回りにその次のノード1から複製ノードを順次格納するか、他のノード1の中からランダムに選んだノード1に複製ノードを格納するか等のロジックを予め設定しておく。レプリケーションデータ管理部14は、複製データを格納することを決定したノード1に対してレプリケーションを実行する。
次に、本実施形態に係るノード1が実行する、グラビテーション抑止方法に基づく処理の流れについて説明する。
図7は、本実施形態に係るノード1が実行するグラビテーションを抑止する処理の流れを示すフローチャートである。
また、ノード識別子管理部11は、既存の負荷分散処理を実行し、各ノード1の負荷ができるだけ分散されるように、各ノード1のID空間上の担当領域を変更する。例えば、ノード識別子管理部11は、その減設ノードのID空間上において時計回りで次のノード1と、減設ノードのID空間上において反時計回りで次のノードとで、減設ノードの担当領域を2分割するように、減設ノードの反時計回りで次のノードの担当領域を変更する。具体的には、ノード識別子管理部11は、振り分けIDテーブル200(図5)において、減設ノードのレコードを削除した上で、減設ノードの反時計回りで次のノードのID空間と、減設ノードの時計回りで次のノードのID空間とを更新する(ステップS2)。
そして、特権ノードのノード識別子管理部11は、更新したノード識別子管理テーブル100(図4)および更新した振り分けIDテーブル200(図5)を、更新情報として分散処理システム1000内の各ノード1に送信する(ステップS3)。
ここで、レプリケーションデータ管理部14は、自身の担当領域のデータについて、複製データとして保持しているデータがなければ(ステップS5→No)、つまり、全て原本データとして保持している場合には、処理を終了する。一方、レプリケーションデータ管理部14は、自身の担当領域のデータについて、一つでも複製データとして保持しているデータがあれば(ステップS5→Yes)、次のステップS6に進む。
次に、図7のステップS7において実行される、複製データの配置先ノード決定処理について、図8および図9を参照して説明する。
図8は、本実施形態に係るノード1のレプリケーションデータ管理部14が実行する複製データの配置先ノード決定処理の流れを示すフローチャートである。図9は、複製データの配置先ノード決定処理の具体例を説明するための図である。なお、この処理は、各ノード1のID空間上に、原本データが新たに配置された場合にも、同様の処理を実行する。また、図9においては、冗長度が「4」であるとして説明する。
ここで、ノード番号とは、各ノード1に割り振られる一意の番号であり、例えば、振り分けIDテーブル200(図5)の各ノード1のノード識別子201の昇順に、「0」〜「総ノード数−1」の値が設定される。図9に示す例では、各ノード1に、ノード番号が「0」〜「4」の値で設定されている。なお、総ノード数は5である。
図8においては、ステップS11に示すように、追加されるデータ(原本データ)のデータ識別子を[i]とし、データ[i]が属するノード番号「N」から「1」を減算した値を「start」として設定する。
例えば、図9では、原本データが属するノード1のノード番号が「0」であり、start=0−1=−1となる例を示している。
ステップS13において、レプリケーションデータ管理部14は、次の式(1)を計算する。
dst=start + j ・・・式(1)
ここでは、start=−1であり、j=0であるので、式(1)は、
dst=−1+0=−1
となる。
ここでは、レプリケーションデータ管理部14は、j=0であるので、「j」が「1」でなく(ステップS14→No)、ステップS15に進む。
dst mod 総ノード数 ・・・式(2)
そして、式(2)の計算結果で示されるノード番号のノード1を、複製データの配置先として決定する。
ここでは、図9に示すようにj=0の場合に、「−1 mod 5 = 4」となり、ノード番号「4」のノード1を、複製データの配置先として決定する。そして、ステップS16において、j=0の処理を終了し、ステップS12に戻る。
ステップS12において、レプリケーションデータ管理部14は、「j」に1を加え、j=1とする。
ここでは、start=−1であり、j=1であるので、式(1)は、
dst=−1+1=0
となる。
ここでは、レプリケーションデータ管理部14は、j=1であるので(ステップS14→Yes)、ステップS16に進み、j=1の処理を終了し、ステップS12に戻る。
つまり、このj=1であることの条件により、原本データが格納されるノード1(図9においては、ノード番号「0」のノード1)には、複製データを配置しないこととなる。
ステップS12において、レプリケーションデータ管理部14は、「j」に1を加え、j=2とする。
ここでは、start=−1であり、j=2であるので、式(1)は、
dst=−1+2=1
となる。
ここでは、レプリケーションデータ管理部14は、j=2であるので(ステップS14→No)、次のステップS15に進む。
ここでは、図9に示すようにj=2の場合に、「1 mod 5 = 1」となり、ノード番号「1」のノード1を、複製データの配置先として決定する。そして、ステップS16において、j=2の処理を終了し、ステップS12に戻る。
ステップS12において、レプリケーションデータ管理部14は、「j」に1を加え、j=3とする。
ここでは、start=−1であり、j=3であるので、式(1)は、
dst=−1+3=2
となる。
ここでは、レプリケーションデータ管理部14は、j=3であるので(ステップS14→No)、次のステップS15に進む。
ここでは、図9に示すようにj=3の場合に、「2 mod 5 = 2」となり、ノード番号「2」のノード1を、複製データの配置先として決定する。
そして、j<冗長度(ここでは「4」)の条件の処理が終了したため(ステップS16)、レプリケーションデータ管理部14は、配置先ノード決定処理を終了する。この処理により、図9においては、原本データを保持するノード番号「0」のノード1が、ノード番号「4」「1」「2」のノード1を、複製データの配置先ノードとして決定する。
2 クライアント
3 ロードバランサ
10 制御部
11 ノード識別子管理部
12 振り分け部
13 信号処理部
14 レプリケーションデータ管理部
20 入出力部
30 記憶部
100 ノード識別子管理テーブル
200 振り分けIDテーブル(振り分けID情報)
300 データ
310 データ属性情報
1000 分散処理システム
Claims (3)
- クラスタを構成する複数のノードそれぞれに、コンシステント・ハッシュ法によりデータを振り分けて処理させる分散処理システムの前記ノードであって、
ID空間上における各ノードの担当領域を示す振り分けID情報を記憶する記憶部と、
前記ID空間上において自身の前記担当領域に位置する原本データを格納するノードから、前記ID空間上で時計回りに最初に位置するノードおよび反時計回りに最初に位置するノードを、前記原本データの複製データを配置するノードに決定し、前記原本データの複製データを前記決定したノードに記憶させるレプリケーションデータ管理部と、
を備えることを特徴とするノード。 - 前記振り分けID情報の更新情報を受信した場合に、前記レプリケーションデータ管理部は、受信した更新情報の前記振り分けID情報で示される自身のノードの前記ID空間上の担当領域において前記複製データとして記憶しているデータを前記原本データに昇格させること
を特徴とする請求項1に記載のノード。 - クラスタを構成する複数のノードそれぞれに、コンシステント・ハッシュ法によりデータを振り分けて処理させる分散処理システムの前記ノードのグラビテーション抑止方法であって、
前記ノードは、
ID空間上における各ノードの担当領域を示す振り分けID情報を記憶部に記憶しており、
前記ID空間上において自身の前記担当領域に位置する原本データを格納するノードから、前記ID空間上で時計回りに最初に位置するノードおよび反時計回りに最初に位置するノードを、前記原本データの複製データを配置するノードに決定し、前記原本データの複製データを前記決定したノードに記憶させるステップを
実行することを特徴とするグラビテーション抑止方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015221115A JP6506156B2 (ja) | 2015-11-11 | 2015-11-11 | ノードおよびグラビテーション抑止方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015221115A JP6506156B2 (ja) | 2015-11-11 | 2015-11-11 | ノードおよびグラビテーション抑止方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017091248A true JP2017091248A (ja) | 2017-05-25 |
JP6506156B2 JP6506156B2 (ja) | 2019-04-24 |
Family
ID=58771563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015221115A Active JP6506156B2 (ja) | 2015-11-11 | 2015-11-11 | ノードおよびグラビテーション抑止方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6506156B2 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012174020A (ja) * | 2011-02-22 | 2012-09-10 | Kddi Corp | 分散データベースの制御方法 |
WO2013153646A1 (ja) * | 2012-04-12 | 2013-10-17 | 株式会社日立製作所 | 計算機システム、データ配置管理方法及びプログラム |
-
2015
- 2015-11-11 JP JP2015221115A patent/JP6506156B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012174020A (ja) * | 2011-02-22 | 2012-09-10 | Kddi Corp | 分散データベースの制御方法 |
WO2013153646A1 (ja) * | 2012-04-12 | 2013-10-17 | 株式会社日立製作所 | 計算機システム、データ配置管理方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP6506156B2 (ja) | 2019-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109492049B (zh) | 用于区块链网络的数据处理、区块生成及同步方法 | |
JP5969315B2 (ja) | データ移行処理システムおよびデータ移行処理方法 | |
CN102833273A (zh) | 临时故障时的数据修复方法及分布式缓存系统 | |
JP6059558B2 (ja) | 負荷分散判定システム | |
JP6025679B2 (ja) | 分散データベースシステム | |
JP2016099969A (ja) | 情報処理装置、データ保存システム、及びデータ保存方法 | |
JP5945252B2 (ja) | 分散処理システム | |
US10122789B1 (en) | Log information transmission integrity | |
JP5918802B2 (ja) | ノードおよびプログラム | |
US20240176762A1 (en) | Geographically dispersed hybrid cloud cluster | |
JP2017091248A (ja) | ノードおよびグラビテーション抑止方法 | |
JP5956364B2 (ja) | クラスタシステム | |
JP5711771B2 (ja) | ノード離脱処理システム | |
JP5690296B2 (ja) | 負荷分散プログラムおよび負荷分散装置 | |
JP6564349B2 (ja) | 保守減設システム、ノードおよび保守減設方法 | |
JP5658621B2 (ja) | 信号振分複製先決定システム、信号振分複製先決定方法およびプログラム | |
JP6714547B2 (ja) | 負荷分散装置、負荷分散方法、および、負荷分散プログラム | |
JP6473425B2 (ja) | ノードおよびデータ配置方法 | |
JP6093320B2 (ja) | 分散処理システム | |
JP5711772B2 (ja) | クラスタシステム | |
JP2014032530A (ja) | 分散処理システムおよび分散処理方法 | |
JP6197872B2 (ja) | データ処理システム、データ処理方法およびデータ処理プログラム | |
JP5815000B2 (ja) | ノードおよびプログラム | |
JP2013182553A (ja) | 管理装置およびプログラム | |
JP5845298B2 (ja) | ノードおよびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171221 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180831 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180911 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181025 |
|
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: 20190326 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190328 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6506156 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |