JP2017167783A - ノードおよびデータ配置方法 - Google Patents
ノードおよびデータ配置方法 Download PDFInfo
- Publication number
- JP2017167783A JP2017167783A JP2016051977A JP2016051977A JP2017167783A JP 2017167783 A JP2017167783 A JP 2017167783A JP 2016051977 A JP2016051977 A JP 2016051977A JP 2016051977 A JP2016051977 A JP 2016051977A JP 2017167783 A JP2017167783 A JP 2017167783A
- Authority
- JP
- Japan
- Prior art keywords
- node
- invalid
- information
- data
- original data
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【解決手段】分散処理システムを構成するノード1は、ID空間上における各ノード1の担当領域を示す振り分けID情報200、および、ノード1それぞれについて、原本データを配置しないノードであることを示す無効ノードであるか否かの情報が格納される無効ノード情報300、が記憶される記憶部30を備え、被災確率情報を受信し、所定の閾値以上のノード1を無効ノードに決定し、受信したメッセージを担当するノード1を振り分けID情報200を参照して抽出し、抽出したノード1が、無効ノードとして設定されている場合に、ID空間上で次のノード1を、メッセージを処理するノード1として特定する。
【選択図】図3
Description
これらのコンシステント・ハッシュ法や仮想ID等を用いた技術により、ノード間で担当するデータを均一化し負荷を分散させることが可能となる。
図11(a)に示すように、コンシステント・ハッシュのID空間上に、原本データ「G1」がノード「D」の担当領域に配置されている。また、その複製データ「g1」が、ID空間上で時計回りに次のノードであるノード「E」と、さらにその次のノード(次々ノード)であるノード「A」に配置されているものとする。このような原本データと複製データの管理手法において、次に新たなデータを配置する場合を考える。その際に、ノード「C」は、例えば非特許文献2に記載の技術により、信頼性の低いノード(以下、「低信頼のノード」と称する場合がある。)であると判定されたノードであるとする。また、新たに配置するデータ(原本データ)のIDが、低信頼のノード「C」の担当領域に含まれるデータであるとする。
なお、図11(b)に示すように、非特許文献3に記載の技術を、コンシステント・ハッシュ法を利用する分散処理システムに適用した場合には、その結果として、原本データから複製データに降格した複製データが、システムに設定された冗長度(図11においては、原本データ「1」と複製データ「2」とで、冗長度「3」である。)を超えて、ID空間上に複製データを配置する結果となってしまう(図11においては、ノード「C」の複製データ「g2」が冗長度の設定を超えて記憶されたままとなる。)。これにより、当該ノードの記憶資源を無駄に占有することとなる。
よって、一度低信頼のノードに原本データを配置した後に、無効ノードではない高信頼のノードに原本データを移管する処理を不要とすることができ、不要なレプリケーションを行わないようにすることができる。また、無効ノードには、複製データを配置することができるため、低信頼の無効ノードの記憶資源を有効に活用することができる。
まず、本発明を実施するための形態(以下、「本実施形態」と称する。)に係るノード1を含む分散処理システム1000について説明する。
図1は、本実施形態に係るノード1を含む分散処理システム1000の全体構成を示す図である。
次に、分散処理システム1000を構成するノード1について、具体的に説明する。
まず、本実施形態に係るノード1の処理の概要を説明する。
本実施形態に係るノード1は、分散処理システム1000を構成するノード1それぞれについて、低信頼と判定されるノードであるか、若しくは、高信頼(低信頼ではない)と判定されるノードであるかを示す情報(後記する、「被災確率情報」)を取得し、低信頼のノード1に関して、「無効ノード」として設定しておく。本実施形態において、無効ノードとは、原本データの配置先として設定しないノード、つまり、原本データを配置しないノードを意味する。なお、後記するように、無効ノードには、原本データは配置されないが、複製データは配置される。
本実施形態に係るノード1は、新規原本データの設定や、リクエスト等を受信した際に行われる、コンシステント・ハッシュ法に基づくID空間上での時計回り探索において、無効ノードとして設定されたノード1はスキップする。そして、次の非無効ノード(無効ノードとして設定されてない通常の(高信頼の)ノード)が見つかったとき、そのノード1に原本データを配置する、若しくは、そのノード1が担当する原本データを用いて信号処理を実行する。以下、図2を参照して具体的に説明する。
次に、本実施形態に係る分散処理システム1000を構成するノード1について、具体的に説明する。なお、本実施形態に係るノード1は、分散処理システム1000を構成する複数のノード1のうち、後記するノード識別子管理情報100(図4参照)、振り分けID情報200(図5参照)および無効ノード情報300(図6参照)を管理する特権ノードとなる場合と、特権ノードからノード識別子管理情報100、振り分けID情報200および無効ノード情報300を受け取り、各情報を更新して記憶する非特権ノードとなる場合とが存在する。なお、特権ノードが行う処理等については、後記する。
図3に示すように、ノード1は、制御部10と、入出力部20と、記憶部30とを含んで構成される。
具体的には、ノード識別子管理部11は、自身が属する分散処理システム1000へのノードの離脱(減設)や追加(増設)が発生した場合に、その情報を外部から受信し、分散処理システム1000を構成するノード1の識別情報等が記憶されたノード識別子管理情報100(図4)を更新する。
図4に示すように、ノード識別子管理情報100には、分散処理システム1000を構成する各ノード1のノード識別子101とアドレス102(例えば、IPアドレス)とが対応付けられて格納される。
図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として管理する。
図6に示すように、無効ノード情報300には、ノード識別子301に対応付けて、そのノード1が無効ノードか否かを示す無効フラグ302が格納される。このノード識別子301は、図4のノード識別子101および図5のノード識別子201と同様の情報である。無効フラグ302は、ノード識別子301で示されるノード1が、無効ノードか否かを示すフラグである。例えば、ノード識別子301が「C」のノード1(ノード「C」)は、無効フラグ302が「ON」であるため、ノード「C」が無効ノードであることを示している。なお、無効ノードとは、上記のように、原本データの配置先として設定しないノードを意味する。また、無効ノード以外のノード、つまり、無効フラグ302が「OFF」のノードを高信頼のノードとする。
一方、振り分け部13は、抽出したノード1が無効ノードであれば、振り分けID情報200(図5)および無効ノード情報300(図6)を参照し、その無効ノードのID空間上で時計回りに次に位置する無効ノードではないノード(高信頼のノード)を、振り分け先のノード1として特定する。そして、振り分け部13は、特定したノード1(高信頼のノード)へメッセージの振り分け(送信)を行う。
この信号処理部14は、信号処理後に送付するメッセージに、例えば、SIP(Session Initiation Protocol)においては「Call-id」をもとに算出したハッシュ値を振り分けキーとして埋め込む(SIPにおいては、例えばTo/FromヘッダのTagに記載する。)ようにしてもよい。これにより、振り分け部13がそのメッセージの後続呼を受信した場合に、振り分けキーとして埋め込まれたハッシュ値を用いて、ノード識別子管理情報100(図4)を参照し、その後続呼を担当するノード1を特定することができる。
原本データ移管部15は、無効ノード情報300(図6)において、自身の無効フラグ302が、「OFF」から「ON」に変更されたことを確認した場合には、自身が記憶する原本データについてレプリケーションを実行した上で、当該原本データを削除する処理を行う。つまり、ノード1は、原本データを削除する前に、原本データと複製データとの同期をとるためのレプリケーションを実行し、複製データを最新の状態にする。一方、ノード1は、自身が無効ノードとなった場合には、原本データの処理を行わない。よって、無効ノードとなったノード1は、当該原本データを保持する必要がないため削除する。
次に、本実施形態に係るノード1が実行する、メッセージ処理の流れについて説明する。なお、ここでは、ノード1が、新規データを登録する処理を例に説明する。また、各ノード1のノード識別子管理部11により、ノード識別子管理情報100および振り分けID情報200についての最新の情報が各ノード1の記憶部30に格納されているものとする。
図7は、本実施形態に係るノード1が実行するメッセージ処理の流れを示すフローチャートである。
特権ノードのノード1(無効ノード設定部12)は、ネットワーク管理装置(図示省略)等から、分散処理システム1000内の各ノード1の被災確率情報を受信する(ステップS10)。
ステップS10〜S13の処理を所定の時間間隔で繰り返し、各ノード1には常に最新の無効ノード情報300を格納させておく。
具体的には、メッセージを受信したノード1の振り分け部13は、受信したメッセージ内の情報(「振り分けキー」)をもとに「hash(key)」を算出し、振り分けID情報200を参照して、そのメッセージの処理を担当するノード1を抽出する。そして、振り分け部13は、その抽出したノード1について、無効ノード情報300を参照し、当該ノードが無効ノードであるか否かを確認する。振り分け部13は、当該ノードが無効ノードでなければ、その抽出したノード1を、メッセージの処理を担当するノードとして特定する。一方、振り分け部13は、抽出したノード1が無効ノードであれば、その無効ノードのID空間上で時計回りに次に位置する無効ノードではないノード(高信頼のノード)を、振り分けID情報200および無効ノード情報300を参照して抽出し、その抽出したノードを、メッセージの処理を担当するノード1として特定する。
そして、振り分け部13は、特定したノード1にメッセージを送信する。なお、振り分け部13は、自身のノード1をメッセージの処理を担当するノードとして特定する場合もある。
また、信号処理部14は、振り分けID情報200(図5)を参照し、冗長度に応じて、自身のノード1からID空間上で時計回りに次のノードというようにして、原本データの複製(複製データ)の配置先となるノード(複製ノード)を決定し、その複製データの送信(レプリケーション)を実行する(ステップS17)。そして、メッセージ処理(新規データの登録処理)を終了する。
次に本実施形態の変形例に係るノード1a(図9参照)について説明する。
本実施形態の変形例に係るノード1aは、分散処理システム1000の各ノード1aの負荷を分散するように、つまり、特定のノード1aに負荷が偏らないように、リバランシングを実行する際に、不要なレプリケーションが発生しないようにすることを特徴とする。
ここでは、図8(a)に示すように、低信頼のノード「C」が無効ノードとして設定されているとする。そして、そのノード「C」が本来担当すべきID空間上の領域に配置されている原本データ「G2」について、本実施形態においては、無効ノードであるノード「C」ではなく、ID空間上で時計回りに次に位置する無効ノードないノード(高信頼ノード)であるノード「D」が担当している。よって、ノード「D」により、複製ノード「g2」が、ID空間上で時計回りに次のノードであるノード「E」と、さらにその次のノードであるノード「A」に配置されている。また、ID空間上において、原本データ「G3」が、高信頼のノード「A」の担当領域に配置され、その複製データ「g3」が、ID空間上で時計回りに次のノードであるノード「B」と、さらにその次のノードである低信頼のノード「C」に配置されているとする。
本実施形態の変形例に係るノード1aでは、上記したレプリケーションの発生を不要とする。以下、具体的に説明する。
図9に示すように、本実施形態の変形例に係るノード1aは、図3に示すノード1の各構成に加えて、制御部10にリバランシング部16を備える。
このリバランシング部16は、リバランシング処理を実行する際に、レプリケーションの発生を不要とするため、以下の所定のロジックに基づき、リバランシングを実行する。
・無効ノードと高信頼ノードの位置関係を保つ。
図8において説明したように、無効ノードの担当領域に、新たに増設するノードを配置すると、無効ノードと高信頼ノードとのID空間上での位置関係が変更され、必ずレプリケーションが発生してしまう。そのため、リバランシング部16は、リバランシングを実行する際に、無効ノードの担当領域には増設ノードを配置せず、無効ノードと高信頼ノードとのID空間上での位置関係を保つようにする。
具体的には、リバランシング部16は、無効ノードのID空間上のID値を、反時計回りで最初のノード1の次のID値、つまり、反時計回りで最初のノード1のID値に「+1」としたID値に設定する。なお、このID値の設定は、特権ノードのノード識別子管理部11を介して、振り分けID情報200(図5参照)を更新することにより行われる。
このようにすることにより、無効ノードの担当領域に、新たなノードが配置されることを防いだ上で、無効ノードには、複製ノードを配置することが可能となる。
本実施形態の変形例に係るノード1aでは、図10(a)に示すように、無効ノード設定部12により、低信頼のノード「C」が無効ノードとして設定されるとともに、リバランシング部16により、ノード「C」のID空間上の位置が、反時計回りで最初のノード1であるノード「B」の次の値(「+1」した値)として設定される。
また、原本データ「G2」が、高信頼のノード「D」に配置され、その複製データ「g2」が、ID空間上で時計回りに次のノードであるノード「E」と、さらにその次のノードであるノード「A」に配置されている。さらに、原本データ「G3」が、高信頼のノード「A」に配置され、その複製データ「g3」が、ID空間上で時計回りに次のノードであるノード「B」と、さらにその次のノードである無効ノードのノード「C」に配置されているとする。
2 クライアント
3 ロードバランサ
10 制御部
11 ノード識別子管理部
12 無効ノード設定部
13 振り分け部
14 信号処理部
15 原本データ移管部
16 リバランシング部
20 入出力部
30 記憶部
100 ノード識別子管理情報
200 振り分けID情報
300 無効ノード情報
400 データ
1000 分散処理システム
Claims (4)
- クラスタを構成する複数のノードそれぞれに、コンシステント・ハッシュ法によりメッセージを振り分けて処理させる分散処理システムの前記ノードであって、
ID空間上における各ノードの担当領域を示す振り分けID情報、および、前記ノードそれぞれについて、原本データを配置しないノードであることを示す無効ノードであるか否かの情報が格納される無効ノード情報、が記憶される記憶部と、
前記ノード毎の被災により障害が発生する確率を示す被災確率情報を受信し、前記被災確率情報の値が所定の閾値以上のノードを前記無効ノードに決定し、前記無効ノード情報に記憶する無効ノード設定部と、
受信したメッセージを担当する前記ノードを、前記振り分けID情報を参照して抽出し、前記抽出したノードが、前記無効ノードとして設定されているか否かを、前記無効ノード情報を参照して判定し、前記判定したノードが無効ノードとして設定されている場合に、前記振り分けID情報および前記無効ノード情報を参照し、前記ID空間上における所定回りで前記無効ノードとして設定されていない次のノードを、前記メッセージを処理するノードとして特定し、前記特定したノードに前記メッセージを送信する振り分け部と、
前記送信されたメッセージを受信し、当該メッセージに基づく処理結果を原本データとして自身の前記記憶部に記憶するとともに、前記原本データの複製を記憶させる複製ノードを、前記振り分けID情報を参照し、前記ID空間上における所定回りで冗長度に応じた数だけ前記無効ノードとして設定されているノードも含めて決定し、前記決定した複製ノードに、前記原本データの複製データを送信することにより記憶させる信号処理部と、
を備えることを特徴とするノード。 - 前記ID空間上での前記ノードの配置を、前記無効ノードと前記無効ノードとして設定されていないノードとの位置関係を保った上で、リバランシングを実行するリバランシング部を、さらに備えること、
を特徴とする請求項1に記載のノード。 - クラスタを構成する複数のノードそれぞれに、コンシステント・ハッシュ法によりメッセージを振り分けて処理させる分散処理システムの前記ノードによるデータ配置方法であって、
前記ノードは、
ID空間上における各ノードの担当領域を示す振り分けID情報、および、前記ノードそれぞれについて、原本データを配置しないノードであることを示す無効ノードであるか否かの情報が格納される無効ノード情報、が記憶される記憶部を備えており、
前記ノード毎の被災により障害が発生する確率を示す被災確率情報を受信し、前記被災確率情報の値が所定の閾値以上のノードを前記無効ノードに決定し、前記無効ノード情報に記憶するステップと、
受信したメッセージを担当する前記ノードを、前記振り分けID情報を参照して抽出し、前記抽出したノードが、前記無効ノードとして設定されているか否かを、前記無効ノード情報を参照して判定し、前記判定したノードが無効ノードとして設定されている場合に、前記振り分けID情報および前記無効ノード情報を参照し、前記ID空間上における所定回りで前記無効ノードとして設定されていない次のノードを、前記メッセージを処理するノードとして特定し、前記特定したノードに前記メッセージを送信するステップと、
前記送信されたメッセージを受信し、当該メッセージに基づく処理結果を原本データとして自身の前記記憶部に記憶するとともに、前記原本データの複製を記憶させる複製ノードを、前記振り分けID情報を参照し、前記ID空間上における所定回りで冗長度に応じた数だけ前記無効ノードとして設定されているノードも含めて決定し、前記決定した複製ノードに、前記原本データの複製データを送信することにより記憶させるステップと、
を実行することを特徴とするデータ配置方法。 - 前記ノードは、
前記ID空間上での前記ノードの配置を、前記無効ノードと前記無効ノードとして設定されていないノードとの位置関係を保った上で、リバランシングを実行するステップを、
さらに含むことを特徴とする請求項3に記載のデータ配置方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016051977A JP6473425B2 (ja) | 2016-03-16 | 2016-03-16 | ノードおよびデータ配置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016051977A JP6473425B2 (ja) | 2016-03-16 | 2016-03-16 | ノードおよびデータ配置方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017167783A true JP2017167783A (ja) | 2017-09-21 |
JP6473425B2 JP6473425B2 (ja) | 2019-02-20 |
Family
ID=59909031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016051977A Active JP6473425B2 (ja) | 2016-03-16 | 2016-03-16 | ノードおよびデータ配置方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6473425B2 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008112358A (ja) * | 2006-10-31 | 2008-05-15 | Hitachi Software Eng Co Ltd | バックアップシステム |
JP2014164554A (ja) * | 2013-02-26 | 2014-09-08 | Nippon Telegr & Teleph Corp <Ntt> | 負荷分散判定システム |
JP2015162099A (ja) * | 2014-02-27 | 2015-09-07 | 日本電信電話株式会社 | サーバリソース管理装置 |
-
2016
- 2016-03-16 JP JP2016051977A patent/JP6473425B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008112358A (ja) * | 2006-10-31 | 2008-05-15 | Hitachi Software Eng Co Ltd | バックアップシステム |
JP2014164554A (ja) * | 2013-02-26 | 2014-09-08 | Nippon Telegr & Teleph Corp <Ntt> | 負荷分散判定システム |
JP2015162099A (ja) * | 2014-02-27 | 2015-09-07 | 日本電信電話株式会社 | サーバリソース管理装置 |
Also Published As
Publication number | Publication date |
---|---|
JP6473425B2 (ja) | 2019-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10122595B2 (en) | System and method for supporting service level quorum in a data grid cluster | |
JP7270755B2 (ja) | 分散システムでのメタデータルーティング | |
US20190075084A1 (en) | Distributed Lock Management Method, Apparatus, and System | |
US20130346513A1 (en) | Migrating a chat message service provided by a chat server to a new chat server | |
JP6582445B2 (ja) | シンクライアントシステム、接続管理装置、仮想マシン稼働装置、方法、および、プログラム | |
CN105493474A (zh) | 用于支持用于同步分布式数据网格中的数据的分区级别日志的系统及方法 | |
CN113010313A (zh) | 一种负载均衡方法、装置、电子设备及计算机存储介质 | |
JP5969315B2 (ja) | データ移行処理システムおよびデータ移行処理方法 | |
CN107508700B (zh) | 容灾方法、装置、设备及存储介质 | |
US8230086B2 (en) | Hidden group membership in clustered computer system | |
JP6473425B2 (ja) | ノードおよびデータ配置方法 | |
US20240176762A1 (en) | Geographically dispersed hybrid cloud cluster | |
JP5658621B2 (ja) | 信号振分複製先決定システム、信号振分複製先決定方法およびプログラム | |
JP6322161B2 (ja) | ノード、データ救済方法およびプログラム | |
JP6506156B2 (ja) | ノードおよびグラビテーション抑止方法 | |
JP5815000B2 (ja) | ノードおよびプログラム | |
JP5711771B2 (ja) | ノード離脱処理システム | |
JP5711772B2 (ja) | クラスタシステム | |
JP2017220846A (ja) | 保守減設システム、ノードおよび保守減設方法 | |
CN110958182B (zh) | 一种通信方法及相关设备 | |
CN110221916B (zh) | 一种内存扩容方法、装置、配置中心系统及电子设备 | |
JP6714547B2 (ja) | 負荷分散装置、負荷分散方法、および、負荷分散プログラム | |
JP5890452B2 (ja) | クラスタシステムのサーバ装置およびそのプログラム | |
JP5845298B2 (ja) | ノードおよびプログラム | |
JP6127005B2 (ja) | クラスタシステムのサーバ装置およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180220 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181127 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190109 |
|
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: 20190122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190125 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6473425 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |