JP5695324B2 - スプリットブレイン状況におけるメジャーグループを決定するための方法、システム、及びコンピュータ読み取り可能な記録媒体 - Google Patents

スプリットブレイン状況におけるメジャーグループを決定するための方法、システム、及びコンピュータ読み取り可能な記録媒体 Download PDF

Info

Publication number
JP5695324B2
JP5695324B2 JP2010021344A JP2010021344A JP5695324B2 JP 5695324 B2 JP5695324 B2 JP 5695324B2 JP 2010021344 A JP2010021344 A JP 2010021344A JP 2010021344 A JP2010021344 A JP 2010021344A JP 5695324 B2 JP5695324 B2 JP 5695324B2
Authority
JP
Japan
Prior art keywords
group
nodes
major
node
distributed environment
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
JP2010021344A
Other languages
English (en)
Other versions
JP2010186472A (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.)
Naver Corp
Original Assignee
Naver 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 Naver Corp filed Critical Naver Corp
Publication of JP2010186472A publication Critical patent/JP2010186472A/ja
Application granted granted Critical
Publication of JP5695324B2 publication Critical patent/JP5695324B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/042Network management architectures or arrangements comprising distributed management centres cooperatively managing the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、ネットワークベースの分散コンピューティング環境(または、分散環境)で発生するスプリットブレイン(Split−Brain)状況におけるメジャーグループを決定するための方法、システム、及びコンピュータ読み取り可能な記録媒体に関する。より詳しくは、スプリットブレイン状況におけるノードの履歴情報を参照してメジャーグループを決定するための方法、システム、及びコンピュータ読み取り可能な記録媒体に関する。
現在のIT環境では、多様なネットワークベースの分散システムを効率よく管理し、統制することができる方法が必要である。分散環境では、複数のコンピュータを物理的かつ論理的に接続し、このように接続された複数のコンピュータの処理能力を用いて、巨大な計算問題を解決することが一般的である。この際、分散環境に参加するコンピュータまたはプロセスが数十個レベルであれば、分散環境を管理する運営者によって分散環境が適切に維持され得るが、分散環境が数千個または数万個のコンピュータまたはプロセスを含む規模である場合は、これを総体的に同期化し、調整することができるソリューションとして管理システムが必要とされているといえる。
管理システムにおいて最も重要な条件は、耐故障性(fault tolerance)の保障といえるが、特に、クラスターを構成するそれぞれのノード間のリンクの不安定によって、ネットワークが異常に分離される障害状況での対処が最も重要なものの一つである。
図1は、スプリットブレイン状況を例示した図である。図1において、分散環境管理システムは、5つのサーバで構成されるクラスターを含み、クラスターを構成するそれぞれのサーバは、リアルタイムでデータを複製し、同一の状態情報を保持しているものと仮定して示した。
図1の状態において、スプリットブレインが発生し、クラスターが2つのサーバグループに分けられる場合、グループ♯1のサーバは、グループ♯2の全てのサーバがダウンした(すなわち、不能状態に陥った)とみなし、同時にグループ♯2のサーバも、グループ♯1のサーバがダウンしたとみなすだろう。したがって、ネットワーク上の前記2つのグループが自身をメジャーグループと判断し、クライアントは、前記自身をメジャーグループと判断した2つのグループにそれぞれ接続して作業を行うようになる。例えば、グループ♯1に接続したクライアントグループ♯1は、平素通り読みまたは書き作業を行い、グループ♯2に接続したクライアントグループ♯2も、読みまたは書き作業を行うようになる。
しかしながら、上記のような状況では、以降、スプリットブレインが復旧され、分けられた2つのグループが再び一つに合わせられなければならない場合、どのグループのデータが正しいデータであり、どのグループのデータが削除されなければならないかを判断する方法がなかった。すなわち、従来の技術によると、スプリットブレイン状況において、サービスの連続性やデータの整合性に問題が生じるという短所があった。
韓国公開特許第2000‐0076513号公報 韓国公開特許第2004‐0073274号公報
本発明は、上述した従来技術の問題点を解決することをその目的とする。
また、分散コンピューティングに参加する複数のコンピュータを総体的に同期化し、調整することができるソリューションを提供することを他の目的とする。
また、スプリットブレインが発生した状況でも、サービスの連続性とデータの整合性を最大限に保障することをまた他の目的とする。
上記目的を達成するために、本発明の一実施形態によると、ネットワークベースの分散環境において、複数のノードで構成された初期グループが分離されて生成された2つ以上のグループのうちから、メジャーグループを決定するための方法であって、第1グループのノード数と第2グループのノード数とを比較し、前記第1グループのノード及び前記第2グループのノードの履歴情報を取得し、前記ノード数の比較結果及び前記履歴情報の少なくともいずれかを用いて、前記第1グループまたは前記第2グループをメジャーグループと決定する方法が提供される。
本発明の他の実施形態によると、複数のノードで構成される分散環境管理システムであって、前記複数のノードの履歴情報を含み、前記複数のノードの少なくとも一つは、初期グループが2つ以上のグループに分離される場合、前記分離された各グループのノード数及び前記履歴情報の少なくともいずれかを用いて、前記2つ以上のグループのうち一つをメジャーグループと決定する分散環境管理システムが提供される。
その他、本発明を具現するための他の方法、システム、及び、前記方法を実行するためのコンピュータプログラムを記録するためのコンピュータ読み取り可能な記録媒体がさらに提供される。
本発明によると、分散コンピューティングに参加する複数のコンピュータを総体的に同期化し、調整することができるソリューションが提供される。また、スプリットブレインが発生した状況でも、サービスの連続性とデータの整合性を最大限に保障することができるようになる。
スプリットブレイン状況を例示した図である。 本発明の一実施形態による分散環境を概略的に示す図である。 分散環境管理システム200が提供するロック機能を例示した図である。 スプリットブレイン状況にコーラムアルゴリズムを適用した様子を示す図である。 履歴テーブルに基づいた動的コーラム方式を適用してスプリットブレインを解決する過程を例示した図である。 スプリットブレイン発生時、メジャーグループを決定する方法を例示した図である。
後述する本発明についての詳細な説明は、本発明が実施可能な特定の実施形態を例示として示す添付図面を参照する。これらの実施形態は、当業者が本発明を十分に実施することができるように詳細に説明される。本発明の様々な実施形態は、互いに異なるが、相互排他的である必要はない。例えば、ここに記載されている特定の形状、構造及び特性は、一実施形態と関連して、本発明の精神を逸脱しない範囲内で他の実施形態に具現されてもよい。また、それぞれの開示された実施形態内の個別構成要素の位置または配置は、本発明の精神を逸脱しない範囲内で変更され得る。従って、後述する詳細な説明は、限定的な意味として解釈されてはならず、本発明の範囲は、適切に説明されれば、その請求項が主張するものと均等な全ての範囲と共に、添付の請求項によってのみ限定される。図面において、類似した参照符号は、いくつかの側面にわたって同一または類似の機能を表す。
以下、本発明の属する技術の分野における通常の知識を有する者が、本発明を容易に実施することができるようにするため、添付した図面に基づき、本発明の好適な実施形態について詳述する。
全体システムの構成
図2は、本発明の一実施形態による分散環境を概略的に示す図である。
図2に示すように、本発明の一実施形態による全体システムは、通信網100と、分散環境においてロックサービスを提供する分散環境管理システム200と、分散環境管理システム200が提供するサービスを用いる複数のクライアント300と、で構成される。
先ず、通信網100は、有線及び無線等のようなその通信の様態によらずに構成され、ローカルエリアネットワーク(LAN:Local Area Network)、都市規模ネットワーク(MAN:Metropolitan Area Network)、広域ネットワーク(WAN:Wide Area Network)等、多様な通信網で構成されてもよい。
本発明の一実施形態によると、分散環境管理システム200は、数個のサーバ(以下では、主に「ノード」と表す)で構成されてもよく、多様なシステム資源を共有する複数のクライアント300間において、データの整合性が保障されるようにするため、クライアント300にロックサービスを提供することができる。
また、分散環境管理システム200は、クライアント300が分散環境管理システム200内の特定ノードと通信可能に、セッションを生成/維持/解除する機能を行い、クライアント300と通信する特定ノードに障害が発生した場合、クライアント300が待機中である他のノードと通信可能にスイッチングサービスを提供することができる。
また、分散環境管理システム200は、複数のノード間の同期化を行い、様々なイベントを処理する機能を行うことができる。
本発明の一実施形態によると、分散環境管理システム200は、クラスターマネージャー、イベントマネージャー、及び場合に応じてクライアントライブラリ(図示せず)を含めてもよい。
本発明の一実施形態によると、クラスターマネージャーは、分散環境管理システム200のノードの集合であるクラスター内の全ノードを管理する機能を行うことができる。より具体的には、クラスターマネージャーは、クラスター内のノードを管理する機能と、クライアントライブラリと通信しながらロック動作を処理する機能を行うことができる。また、クライアント300において、特定の経路またはデータに対してロック動作を行おうとすると、クラスターマネージャーは、要求したクライアント300が該当ロック動作の権限を持っているか否かを確認し、即時に(いわゆる、ノンブロッキングモード)ロック取得の有無を真(True)または偽(False)の値として返還することができる。また、クラスターマネージャーは、クライアント300のロック動作処理またはロック動作に伴うイベント処理に関する機能を行うことができるが、例えば、ロックの類型に応じて、該当経路またはデータにロックがかかったことを他のクライアント300に知らせるためのイベントを生成し、これを、イベントマネージャーに伝達する機能を行うことができる。
本発明の一実施形態によると、クライアントライブラリとの通信は、マスタークラスターマネージャーを通じてのみ行われ、他の補助クラスターマネージャーは、マスタークラスターマネージャーの状態情報のレプリカをリアルタイムで保持することができる。マスタークラスターマネージャーの障害時は、補助クラスターマネージャーのうち、新たなマスタークラスターマネージャーが選出される。
次に、本発明の一実施形態によると、イベントマネージャーは、クラスターマネージャーと同様に、一つのマスターイベントマネージャーと複数の補助イベントマネージャーとで構成され、イベントが通知されるべきクライアント300のリストを管理し、イベントが発生する場合、該当クライアント300にイベントに対する通知を伝達する機能を行うことができる。より具体的には、イベントマネージャーは、大別してロックイベントと汎用イベントのような2つのイベントを行うことができる。前記イベントの処理過程をより詳述すると、先ず、ロックイベントの場合、マスタークラスターマネージャーがロックイベントに関する情報をマスターイベントマネージャーに伝達し、イベントマネージャーは、登録された複数のクライアント300にマルチキャスト方式でイベントを伝送する方式で処理されてもよい。次に、汎用イベントの場合、ロック動作にかかわらず、クライアント300が、一般のパブリッシュ・サブスクライブ方式で、イベントマネージャーにイベントの生成を要求または登録し、イベントマネージャーからイベントを伝達される方式で処理されてもよい。
また、本発明の一実施形態によると、クライアントライブラリは、クライアント300が分散環境管理システム200のロックサービス及びイベントサービスを容易に用いることができるように、ライブラリの形態で提供されるプログラムであって、その少なくとも一部が分散環境管理システム200内に含まれるものであってもよい。勿論、必要に応じて、クライアントライブラリの少なくとも一部がクライアント300内に含まれてもよい。
本発明の一実施形態によると、クライアント300は、クライアントライブラリが提供する機能を用いて、分散環境管理システム200と通信するようになる。より具体的には、クライアントライブラリは、遠隔で分散環境管理システム200が提供するサービスを用いるように、クライアント300に提供されるライブラリの集合である。本発明の一実施形態によると、使用者は、このライブラリを、自身のプログラム内にプラグインとして組み込んで使うことができ、初期化の場合は、プロキシオブジェクトを生成し、クラスターに接続して、RPC形態でロック作業を行うこともできる。クライアントライブラリは、遠隔のクラスター内で発生するマスターノードの選出、フェイルオーバー、メンバー変更等の多様な状況を抽象化することにより、使用者が、単に安全であり抽象化した遠隔サービスを、ローカルサービスを用いる場合と同様に使用することができるよう、助ける機能を行う。
ロックサービスの提供
分散環境では、複数のプロセスまたはスレッドが一つの作業を協働して行うことが多いが、プロセスまたはスレッドに含まれた複数のトランザクションが一つのデータに対して同時に読みまたは書き作業を行う場合、誤った結果をもたらすことがあるので、複数のトランザクションから共通にアクセス可能なデータの保護が必要である。これは、分散環境に含まれたそれぞれのコンピュータが互いにデータを共有する場合も、同様である。したがって、分散環境において、一つのトランザクションによって用いられるデータに、他のトランザクションがアクセスできないようにするロック機能も必要とされ得る。
したがって、以下では、本発明の一実施形態によって、分散環境管理システム200がクライアント300に提供するロックサービスについて詳述する。
図3は、分散環境管理システム200が提供するロック機能を例示した図である。一方、図3は、一つのサービスが3つのクライアント300において同時に実行される状況を仮定して示している。
図3を参照すると、クライアント1(310)、クライアント2(320)、及びクライアント3(330)が、共有データに対する読みまたは書き作業を行おうとする場合、本発明の一実施形態による分散環境管理システム200のマスタークラスターマネージャーに、該当データに対するロックを要求することができることが分かる。図3のクライアント1(310)がロックを要求するとき、クライアント2(320)及びクライアント3(330)が、該当データに対するロックを要求していなければ、クライアント1(310)は、あまり無理なくロックを取得することができる。しかし、図3に示すように、少なくとも2つ以上のクライアントが競争的にロックを要求していれば、そのうち一つのクライアントにのみロックが付与される。
それぞれのクライアント310、320、330が競争的にロックを要求する場合に備えるための一つの方法として、それぞれのクライアント310、320、330がロックを取得するまで、分散環境管理システム200に持続的にロックを要求することを想定することができるが、これは、以下のようなプログラムコードを用いて実現されてもよい。
特定のクライアント300にロックが付与されると、マスタークラスターマネージャーは、該当クライアント300のロック情報をデータベースまたはメモリ等のような保存装置に記録することができる。
また、上述したように、マスタークラスターマネージャーによって更新されたロック情報は、周期的または非周期的に補助クラスターマネージャーに複製されるので、マスタークラスターマネージャーに記録された情報と補助クラスターマネージャーに記録された情報との間の整合性が維持される。
本発明の一実施形態によると、分散環境管理システム200から取得されたロックは、該当ロックを要求したプロセスまたはスレッドにのみ使用が許可される。また、本発明の他の実施形態によると、分散環境管理システム200から取得されたロックは、該当ロックを取得したクライアント300内の全てのプロセスまたはスレッドに使用が許可されてもよい。
スプリットブレイン状況におけるマスターノードの選出
上述したように、分散コンピューティングの条件として、耐故障性の保障が必須であるといえるが、本発明の一実施形態によると、分散環境に参加するクライアント300のロック情報及びクライアント300に対するイベント通知処理は、分散環境管理システム200に含まれたクラスターマネージャー及びイベントマネージャーによって管理されるので、クラスターマネージャーまたはイベントマネージャーに障害が発生する場合、分散環境に参加した全てのクライアント300の作業が正常に行われなくなるという問題点が生じる。
したがって、本発明の分散環境管理システム200は、複数のクラスターマネージャーを含み、そのうちの一つをマスタークラスターマネージャーと設定し、クライアントとの直接的な通信を行わせるのに対して、その他の補助クラスターマネージャーは、マスタークラスターマネージャーのロック情報を複製して保存することにより、マスタークラスターマネージャーに障害が発生しても、補助クラスターマネージャーのうち一つを用いて、サービスの連続性やデータの整合性が保障されるようにすることができる。上記のような構成は、イベントマネージャーにも、同様に適用されてもよい(以下では、マスタークラスターマネージャーとマスターイベントマネージャーを包括する意味として「マスターノード」との用語を用いる)。
もっとも、上記のような構成のみでは、スプリットブレインに適切に対処することができない。これは、上述したように、スプリットブレイン状況で分けられたそれぞれのグループは、他のグループのノードが全てダウンしたものと判断するようになるので、それぞれのグループ毎にマスターノードが生成され、したがって、障害が復旧された後、それぞれのグループに属していたノード間のデータの整合性に問題が生じるからである。
したがって、以下では、本発明の一実施形態によって、スプリットブレイン状況でマスターノードを選出する方法について、かかる問題の解決を含め、より詳細に説明する。
1.コーラムに基づくマスターノード選出
本発明の一実施形態によると、分散環境管理システム200は、スプリットブレインが感知される場合、コーラムアルゴリズムを適用してマスターノードを選出するようになる。以下では、図4を参照して、より具体的に説明する。
図4は、スプリットブレイン状況にコーラムアルゴリズムを適用した様子を示す図である。
図4を参照すると、全7つのノードで構成されたクラスターにスプリットブレインが発生し、4つのノードを含むグループAと3つのノードを含むグループBに分けられたことが分かる。
上記のような状況において、グループAは、全ノード数(すなわち、7つ)の過半数に該当するノードを確保しているので、コーラムを満足し、メジャーグループに分類される。これにより、メジャーグループに含まれたノードのうち一つが、マスターノードに指定され、該当マスターノードを介してクライアント300との通信が行われる。また、マスターノードは、データに対する読みまたは書き作業を許容される。
これに対して、グループBは、全ノード数の過半数に該当するノードを確保していないので、マイナーグループに分類される。このようなマイナーグループからはマスターノードが選出されない。
スプリットブレイン状況において、それぞれのグループが、自身がメジャーグループであるかマイナーグループであるかを判断するためには、スプリットブレインが発生する前の初期グループに、どれほど複数のノードが存在したかに関する情報が、スプリットブレインが発生した後のそれぞれのグループの少なくとも一つのノードに保存されていなければならないが、本発明の一実施形態によると、マスターノードに保存された情報は、これに対応している補助ノードに複製されるので、初期グループに、どれほど複数のノードが存在したかに関する情報をマスターノードに保存することにより、前記要求が達成され得る。
次に、図4のように、スプリットブレインが発生した状況において、再度スプリットブレインが発生して、グループAが、3つのノードを含むグループA1と1つのノードを含むグループA2に分類され、グループBが、2つのノードを含むグループB1と1つのノードを含むグループB2に分離された状況を仮定してみると、いずれのグループも、初期グループに属していたノードの過半数に該当する4つ以上のノードを含んでいないので、コーラムを満足するグループを特定することができないという問題が生じる。
このような問題点を解決するために、本発明の一実施形態によると、コーラムは、グループを構成するノード数の変化に応じて動的に再設定されてもよい。より具体的には、動的コーラムを具現するためには、先ず、グループの再設定時間を設定しなければならない。本発明の一実施形態によると、グループの再設定時間は、30秒に設定されてもよいが、この場合、グループ内のノードの数が30秒間変わらないと、この時点を基準としてグループが再設定される。グループが再設定されることにより、コーラムの算定の基準となるグループ内のノード数が初期化され、よって、コーラムも変更されるようになる。
上述した例の場合、最初のスプリットブレインが発生する前には、グループに含まれたノードの総数が7であるので、コーラムは4に設定される。その後、第一のスプリットブレインが発生すると、グループAの場合、4つのノードが含まれるので、コーラムが3に再設定され、グループBの場合、3つのノードが含まれるので、コーラムが2に再設定される。これにより、第二のスプリットブレインが発生しても、グループA1及びグループB1がコーラムを満足するようになる。
しかし、グループB1の場合、第一のスプリットブレインが発生した時点でマイナーグループに分類されたので、たとえ、第二のスプリットブレインが発生して、過半数のノードを確保したとしても、メジャーグループに分類されず、グループA1のみがメジャーグループに分類される。このため、マスターノードは、スプリットブレインが発生する前のグループにどれほど複数のノードが存在したかに関する情報と共に、スプリットブレインが発生する前に該当グループがメジャーグループであったかマイナーグループであったかに関する情報も一緒に保存してもよい。
以下、図4を参照して、スプリットブレインが復旧された場合の処理について説明する。マイナーグループであったグループBに含まれたノードは、メジャーグループであるグループAに含まれたノードから最新の状態情報を取り込んでアップデートを行い、これにより、7つの全てのノードが再度一つのグループとして機能できる。
上記の方法で、スプリットブレイン状況でも、データ整合性が保障されるようになる。
しかし、上記のようにコーラムアルゴリズムのみを採用すると、いくつかの場合において、サービスの連続性やデータの整合性を保障できないという短所がある。例えば、6つのノードで構成されたグループが、それぞれ3つのノードを含む2つのグループに分離される場合、いずれのグループも、過半数のノードを含まないので、サービスが持続できない。また、持続的なスプリットブレインにより、それぞれ1つのノードを含むグループが生成した場合も、同様にサービスが持続されない。すなわち、静的な方式でコーラムを適用するときは、特に、サービスの連続性の側面において、以下のような制約がある。
‐初期グループの総ノード数:2N+1
‐コーラムの最小数:N+1
‐書き作業が可能な最小限のノード個数=コーラムの個数=N+1(Nは整数)
2.履歴に基づくマスターノードの選出
本発明の一実施形態によると、分散環境管理システム200は、履歴テーブルを用いて、データの整合性を保障すると共に、サービスの連続性をさらに高度化することができる。
本発明の一実施形態によると、履歴テーブルは、最初にグループが構成される時点でのノードID情報、グループ合流時点情報、ノード状態情報、及びグループ状態情報を含めてもよい。下記表は、履歴テーブルに保存されるデータを例示的に示している。
上記のような履歴テーブルは、グループが最初に構成されるときに生成されてもよく、グループの機能が終了するまで維持されてもよい。前記履歴テーブルにおいて、第三のフィールドであるノード状態情報は、新たなマスターノードが選出されるたびにマスターまたはスレーブに変更され、グループ状態情報は、スプリットブレインが発生することにより、メジャーまたはマイナーに変更されてもよい。
本発明の一実施形態による分散環境管理システム200は、スプリットブレインにより、一つのグループが同一のノード数を有する2つのグループに分離された場合、前記履歴テーブルを用いてメジャーグループを決定することができる(もちろん、前記履歴テーブルは、必ず同一のノード数を有する2つのグループのうち、メジャーグループを決定する場合のみならず、ノード数の差が所定の基準値以下である2つのグループのうち、メジャーグループを決定する場合も用いられることは、当業者にとって容易に理解される)。より具体的には、スプリットブレインが発生する前にメジャーグループに属しており、グループに合流した時点が最も早いノードが含まれたグループを、新たなメジャーグループと決定することができる。また、本発明の一実施形態によると、グループに合流した時点が最も早いノードを、当該グループのマスターノードと決定してもよい。それでも、コーラムを満足する唯一のグループがない場合は、スプリットブレインが発生する直前のグループ状態がメジャーであり、直近においてマスターに選出されたノード(すなわち、グループに合流した時点が最も早いノード)のあるグループを、新たなメジャーグループと決定してもよい。
図5は、履歴テーブルに基づいた動的コーラム方式を適用してスプリットブレインを解決する過程を例示した図である。以下では、図5に示すステップによって履歴テーブルが変更する過程を記述することにより、履歴テーブルに基づいた動的コーラム方式をより具体的に説明する。
ステップ1:スプリットブレインが発生する前の、6つのノードで構成されたグループであって、であり、全てのノードがメジャーグループに属している。Node#1のグループ合流時点が最も早いので、マスターノードに選出される。
ステップ2:スプリットブレインが発生し、同一の数のノードを有する2つのグループに分離される。障害以前にメジャーグループに属していたノードのうち、グループ合流時点が最も早いノードは、Node#1であるので、左グループがメジャーグループと決定され、右グループは、マイナーグループに変更される。
ステップ3〜4:ステップ2を経て、メジャーグループは、Node#1、Node#3、及びNode#5を含むグループに再設定され(これにより、コーラムは2に再設定される)、以降、再度スプリットブレインが発生し、Node#1を含むグループとNode#3及びNode#5を含むグループに分離される。Node#3及びNode#5を含むグループが、コーラムを満足するので、メジャーグループと決定され、Node#1を含むグループは、マイナーグループに変更される。一方、Node#3のグループ合流時点が最も早いので、新たなマスターノードに選出される。
ステップ5:2つのノード(Node#3及びNode#5)で構成されたグループに再度スプリットブレインが発生し、2つのグループに分けられる。ステップ2におけると同様に、以前にメジャーグループに含まれていたノードのうち、グループ合流時点が最も早いNode#3が属しているグループが新たなメジャーグループと決定される。
このように履歴テーブルを活用することにより、グループが、同一のノードを含む2つのグループに分離される場合、または、持続的な障害により単に1つのノードを含むグループのみが存在する場合も、サービスの連続性を保障することができるようになる。
図6は、スプリットブレイン発生時、メジャーグループを決定する方法を例示した図である。スプリットブレインが発生し、2つ以上のグループに分けられた場合、分散環境管理システムは、既存のグループにあった全ノード数、及び分けられたそれぞれのグループに該当するノード数を確認して比較する。また、上述した履歴テーブルを活用して、分けられたそれぞれのグループのノードの履歴情報を確認する。履歴情報の具体例については詳細に上述したので、省略する。図面上では、便宜上、ノード数を確認及び比較するステップが、ノード履歴情報の確認ステップよりも先に行われるように示されているが、前記2つのステップの実行順序は特に限定されない。すなわち、この順序は、図示されているものと反対に行われてもよく、また、2つのステップがそれぞれ同時に行われてもよい。前の2つのステップから出たノード数の比較結果及び確認された履歴情報の少なくとも一つを用いて、2つ以上に分けられたそれぞれのグループのうち、どのグループがメジャーグループであるかを決定することができる。
上述した本発明による実施形態は、多様なコンピュータ構成要素を介して実行され得るプログラム命令語の形態で実現され、コンピュータ読み取り可能な記録媒体に記録されてもよい。前記コンピュータ読み取り可能な記録媒体は、プログラム命令語、データファイル、データ構造等を単独または組み合わせて含むことができる。前記コンピュータ読み取り可能な記録媒体に記録されるプログラム命令語は、本発明のために特別に設計され構成されたものであり、または、コンピュータソフトウェア分野の当業者に公知で使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気‐光媒体、及びROM、RAM、フラッシュメモリ等のようなプログラム命令語を保存して実行するように特別に構成されたハードウェア装置が挙げられる。プログラム命令語の例としては、コンパイラによって作られるような機械語コードのみならず、インタープリター等を用いてコンピュータによって実行可能な高級言語コードも含まれる。前記ハードウェア装置は、本発明による処理を行うために、一つ以上のソフトウェアモジュールとして作動するように構成されてもよく、その逆も同様である。
以上、本発明が、具体的な構成要素等のような特定事項と、限定された実施形態及び図面によって説明されているが、これは、本発明のさらなる全般的な理解のためのものであるだけで、本発明が上記した実施形態に限定されるものではなく、本発明の属する分野における通常の知識を有する者であれば、このような記載から様々な修正及び変形を図ることができる。
従って、本発明の思想は、上述された実施形態に局限されて定められてはならず、後述する特許請求の範囲のみならず、この特許請求の範囲と均等にまたは等価的に変形された全てのものは、本発明の思想の範疇に属するものと言える。
100 通信網
200 分散環境管理システム
300 クライアント

Claims (12)

  1. ネットワークベースの分散環境において、複数のノードで構成された初期グループが第1グループと第2グループに分離された場合、前記複数のノードのうち少なくとも一つのノードが、前記第1のグループまたは前記第2グループのうちからメジャーグループを決定するための方法であって、
    前記第1グループのノード数と前記第2グループのノード数とを比較し、
    前記ノード数の差が所定の基準値を超える場合、前記第1グループ及び前記第2グループのうち、より多くのノードを含むグループを前記メジャーグループと決定し、
    前記第1グループのノード数と前記第2グループのノード数との差が、前記所定の基準値以下である場合、前記第1グループのノード及び前記第2グループのノードの履歴情報を取得し、履歴テーブルに保存された前記履歴情報を用いて、前記第1グループまたは前記第2グループをメジャーグループと決定する
    ことを特徴とするメジャーグループの決定方法。
  2. 前記履歴情報は、前記第1グループのノード及び前記第2グループのノードが前記初期グループに合流した時点の情報を含むことを特徴とする請求項1に記載のメジャーグループの決定方法。
  3. 前記履歴情報を用いて、前記第1グループまたは前記第2グループをメジャーグループと決定することは、前記第1グループ及び前記第2グループのうち、前記初期グループに合流した時点が最も早いノードが含まれたグループを前記メジャーグループと決定することを特徴とする請求項2に記載のメジャーグループの決定方法。
  4. 前記履歴情報を用いて、前記第1グループまたは前記第2グループをメジャーグループと決定することは、前記第1グループ及び前記第2グループのうち、前記初期グループにおいてマスターノードであったノードが含まれたグループを前記メジャーグループと決定することを特徴とする請求項1に記載のメジャーグループの決定方法。
  5. 前記第1グループ及び前記第2グループは、前記初期グループが少なくとも2回分離されることにより生成され、
    前記履歴情報を用いて、前記第1グループまたは前記第2グループをメジャーグループと決定することは、前記第1グループ及び前記第2グループが、最近、共通に属していたグループがメジャーグループであった場合にのみ、前記第1グループまたは前記第2グループをメジャーグループと決定することを特徴とする請求項1に記載のメジャーグループの決定方法。
  6. 特定のデータに対する読みまたは書き作業は、前記メジャーグループに属するノードに対してのみ許容されることを特徴とする請求項1に記載のメジャーグループの決定方法。
  7. 前記特定のデータは、前記分散環境におけるロック情報であることを特徴とする請求項6に記載のメジャーグループの決定方法。
  8. 前記履歴情報は、前記複数のノードのそれぞれに複製された履歴テーブルに含まれた情報であることを特徴とする請求項1に記載のメジャーグループの決定方法。
  9. 前記履歴テーブルは、前記複数のノードのそれぞれが、前記初期グループに合流した時点に関する情報を含むことを特徴とする請求項8に記載のメジャーグループの決定方法。
  10. 請求項1から9のいずれか一項に記載のメジャーグループの決定方法を実行するためのコンピュータプログラムを記録するコンピュータ読み取り可能な記録媒体。
  11. 複数のノードで構成される分散環境管理システムであって、
    前記複数のノードの履歴テーブルに保存された履歴情報を含み、
    前記複数のノードの少なくとも一つは、初期グループが第1グループと第2グループに分離された場合には、前記第1グループのノード数と前記第2グループのノード数とを比較し、
    前記第1グループのノード数と前記第2グループのノード数との差が、所定の基準値を超える場合、前記第1グループ及び前記第2グループのうち、より多くのノードを含むグループを前記メジャーグループと決定し、
    前記第1グループのノード数と前記第2グループのノード数との差が、所定の基準値以下である場合、前記履歴情報かを用いて、前記第1グループまたは前記第2グループをメジャーグループと決定することを特徴とする分散環境管理システム。
  12. 前記履歴情報には、前記複数のノードのそれぞれが、前記初期グループに合流した時点に関する情報、及び前記複数のノードのそれぞれが、最近、属していたグループの状態に関する情報が含まれることを特徴とする請求項11に記載の分散環境管理システム。
JP2010021344A 2009-02-12 2010-02-02 スプリットブレイン状況におけるメジャーグループを決定するための方法、システム、及びコンピュータ読み取り可能な記録媒体 Active JP5695324B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2009-0011636 2009-02-12
KR1020090011636A KR101042908B1 (ko) 2009-02-12 2009-02-12 네트워크 분리 장애 상황에서 메이저 그룹을 결정하기 위한방법, 시스템, 및 컴퓨터 판독 가능한 기록 매체

Publications (2)

Publication Number Publication Date
JP2010186472A JP2010186472A (ja) 2010-08-26
JP5695324B2 true JP5695324B2 (ja) 2015-04-01

Family

ID=42541281

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010021344A Active JP5695324B2 (ja) 2009-02-12 2010-02-02 スプリットブレイン状況におけるメジャーグループを決定するための方法、システム、及びコンピュータ読み取り可能な記録媒体

Country Status (3)

Country Link
US (1) US8412790B2 (ja)
JP (1) JP5695324B2 (ja)
KR (1) KR101042908B1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101882808B1 (ko) * 2011-09-30 2018-07-30 삼성전자 주식회사 혼합 네트워크 기반의 멀티 코어 프로세서
KR102243793B1 (ko) 2013-06-18 2021-04-26 시암벨라 리미티드 코드 가상화 및 원격 프로세스 호출 생성을 위한 방법 및 장치
US10747475B2 (en) 2013-08-26 2020-08-18 Vmware, Inc. Virtual disk blueprints for a virtualized storage area network, wherein virtual disk objects are created from local physical storage of host computers that are running multiple virtual machines
US11016820B2 (en) 2013-08-26 2021-05-25 Vmware, Inc. Load balancing of resources
US9672115B2 (en) 2013-08-26 2017-06-06 Vmware, Inc. Partition tolerance in cluster membership management
US9887924B2 (en) 2013-08-26 2018-02-06 Vmware, Inc. Distributed policy-based provisioning and enforcement for quality of service
US9811531B2 (en) 2013-08-26 2017-11-07 Vmware, Inc. Scalable distributed storage architecture
US9619122B2 (en) 2014-01-10 2017-04-11 Ciambella Ltd. Method and apparatus for automatic device program generation
US9363732B2 (en) 2014-06-24 2016-06-07 Google Inc. Mesh network commissioning
US9723064B1 (en) 2014-09-02 2017-08-01 Amazon Technologies, Inc. Hybrid quorum policies for durable consensus in distributed systems
CN105450717A (zh) * 2014-09-29 2016-03-30 中兴通讯股份有限公司 集群脑裂处理方法和装置
WO2016106682A1 (zh) * 2014-12-31 2016-07-07 华为技术有限公司 一种集群脑裂后仲裁处理方法、仲裁存储装置以及***
WO2016161266A1 (en) 2015-04-02 2016-10-06 Google Inc. Efficient network stack for wireless application protocols
CN107750356B (zh) 2015-05-08 2020-02-14 西安姆贝拉有限公司 用于一组基于控制器的装置的自动软件开发的方法和设备
US10067490B2 (en) 2015-05-08 2018-09-04 Ciambella Ltd. Method and apparatus for modifying behavior of code for a controller-based device
US10049011B2 (en) * 2016-05-03 2018-08-14 International Business Machines Corporation Continuing operation of a quorum based system after failures
CN106027634B (zh) * 2016-05-16 2019-06-04 白杨 消息端***换服务***
CN107919977B (zh) * 2016-10-11 2021-09-03 阿里巴巴集团控股有限公司 一种基于Paxos协议的在线扩容、在线缩容的方法和装置
US20180144279A1 (en) * 2016-11-22 2018-05-24 Sap Se Network separator for transportation resource planning
SG11201908483SA (en) 2017-03-14 2019-10-30 Ciambella Ltd Method and apparatus for automatically generating and incorporating code in development environments
JP6984437B2 (ja) 2018-01-24 2021-12-22 富士通株式会社 処理の引継ぎ方法、クラスタ構築プログラム及びクラスタ構築装置
US11544228B2 (en) * 2020-05-07 2023-01-03 Hewlett Packard Enterprise Development Lp Assignment of quora values to nodes based on importance of the nodes
CN112003916B (zh) 2020-08-14 2022-05-13 苏州浪潮智能科技有限公司 一种基于异构存储的集群仲裁的方法、***、设备及介质
CN113810216B (zh) * 2020-12-31 2024-06-18 京东科技控股股份有限公司 一种集群的故障切换方法、装置及电子设备
WO2023148976A1 (ja) * 2022-02-07 2023-08-10 株式会社Pfu ノード装置、クラスタ再構成方法、プログラム及びクラスタシステム
WO2023148977A1 (ja) * 2022-02-07 2023-08-10 株式会社Pfu ノード装置、クラスタ管理方法、プログラム及びクラスタシステム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999712A (en) * 1997-10-21 1999-12-07 Sun Microsystems, Inc. Determining cluster membership in a distributed computer system
US6437804B1 (en) * 1997-10-23 2002-08-20 Aprisma Management Technologies, Inc Method for automatic partitioning of node-weighted, edge-constrained graphs
JP3134864B2 (ja) * 1997-12-09 2001-02-13 日本電気株式会社 システム結合装置のリカバリシステムおよびリカバリプログラムを記録した記録媒体
US6363495B1 (en) * 1999-01-19 2002-03-26 International Business Machines Corporation Method and apparatus for partition resolution in clustered computer systems
US6542929B1 (en) * 1999-08-31 2003-04-01 International Business Machines Corporation Relaxed quorum determination for a quorum based operation
US6662219B1 (en) * 1999-12-15 2003-12-09 Microsoft Corporation System for determining at subgroup of nodes relative weight to represent cluster by obtaining exclusive possession of quorum resource
US7792977B1 (en) * 2001-02-28 2010-09-07 Oracle International Corporation Method for fencing shared resources from cluster nodes
US6950855B2 (en) * 2002-01-18 2005-09-27 International Business Machines Corporation Master node selection in clustered node configurations
KR100553920B1 (ko) * 2003-02-13 2006-02-24 인터내셔널 비지네스 머신즈 코포레이션 컴퓨터 클러스터 운영 방법
JP3808874B2 (ja) * 2004-03-12 2006-08-16 東芝ソリューション株式会社 分散システム及び多重化制御方法
US7403945B2 (en) * 2004-11-01 2008-07-22 Sybase, Inc. Distributed database system providing data and space management methodology
US7739677B1 (en) * 2005-05-27 2010-06-15 Symantec Operating Corporation System and method to prevent data corruption due to split brain in shared data clusters
JP4958034B2 (ja) * 2006-04-28 2012-06-20 克秀 浅沼 グループ分けシステム、グループ分け管理サーバ及びグループ分けプログラム
JP4505763B2 (ja) * 2007-01-31 2010-07-21 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. ノードクラスタの管理
US8001413B2 (en) * 2008-05-05 2011-08-16 Microsoft Corporation Managing cluster split-brain in datacenter service site failover
US8024432B1 (en) * 2008-06-27 2011-09-20 Symantec Corporation Method and apparatus for partitioning a computer cluster through coordination point devices

Also Published As

Publication number Publication date
US8412790B2 (en) 2013-04-02
KR101042908B1 (ko) 2011-06-21
US20100205273A1 (en) 2010-08-12
JP2010186472A (ja) 2010-08-26
KR20100092331A (ko) 2010-08-20

Similar Documents

Publication Publication Date Title
JP5695324B2 (ja) スプリットブレイン状況におけるメジャーグループを決定するための方法、システム、及びコンピュータ読み取り可能な記録媒体
US10127123B2 (en) Locality based quorums
US7143123B2 (en) Well-known transactions in data replication
US6889253B2 (en) Cluster resource action in clustered computer system incorporation prepare operation
KR100326982B1 (ko) 높은 크기 조정 가능성을 갖는 고 가용성 클러스터 시스템 및 그 관리 방법
JP4637842B2 (ja) クラスタ化されたコンピューティングシステムにおける高速なアプリケーション通知
US20150161016A1 (en) Method and system of self-managing nodes of a distributed database cluster with a consensus algorithm
WO2016070375A1 (zh) 一种分布式存储复制***和方法
WO2018107772A1 (zh) 写入请求处理方法、装置及设备
JP6059216B2 (ja) 分散構成管理のための方法および装置
JP7389793B2 (ja) 分散型異種ストレージシステムにおけるデータ一貫性のリアルタイムチェックのための方法、デバイス、およびシステム
US6968359B1 (en) Merge protocol for clustered computer system
US8943082B2 (en) Self-assignment of node identifier in a cluster system
US10367676B1 (en) Stable leader selection for distributed services
US9069571B2 (en) Propagation of unique device names in a cluster system
US8788465B2 (en) Notification of configuration updates in a cluster system
CN106462475A (zh) 用于支持分布式数据网格中的分布式数据结构的***和方法
CN110830582B (zh) 一种基于服务器集群选主方法和装置
US20080313330A1 (en) Hidden Group Membership in Clustered Computer System
US10169441B2 (en) Synchronous data replication in a content management system
Diack et al. CAP theorem between claims and misunderstandings: what is to be sacrificed
US20120209821A1 (en) Validation of access to a shared data record subject to read and write access by multiple requesters
JP2022503583A (ja) 分散コンピューティング環境で分散調整エンジンを非破壊的にアップグレードする方法、装置およびシステム
Pankowski Consistency and availability of Data in replicated NoSQL databases
CN116974983A (zh) 数据处理方法、装置、计算机可读介质及电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131217

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140317

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140320

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141007

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150106

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150206

R150 Certificate of patent or registration of utility model

Ref document number: 5695324

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250