membership
テーブルは、ノードグループのメンバーシップ、プレジデントノード、アービトレータ、アービトレータの後継ノード、アービトレータの接続状態、およびその他の情報を含む、各データノードがクラスタ内のほかのすべてのノードについて保持するビューを示します。
membership
テーブルには、次のカラムがあります:
-
node_id
このノードのノード ID
-
group_id
このノードが属するノードグループ
-
left node
前のノードのノード ID
-
right_node
次のノードのノード ID
-
president
プレジデントのノード ID
-
successor
プレジデントの後継ノードのノード ID
-
succession_order
このノードがプレジデントの任務を継承する順序
-
Conf_HB_order
-
-
arbitrator
アービトレータのノード ID
-
arb_ticket
アービトレーションを追跡するために使用される内部識別子
-
arb_state
アービトレーションの状態
-
arb_connected
このノードがアービトレータに接続されているかどうか (
Yes
またはNo
のいずれか) -
connected_rank1_arbs
接続されたランク 1 のアービトレータ
-
connected_rank2_arbs
接続されたランク 1 のアービトレータ
メモ
ノード ID およびノードグループ ID は、ndb_mgm -e "SHOW" でレポートされるものと同じです。
left_node
および right_node
は、次に示すように、時計文字板上の数字の順序と同様に、すべてのデータノードを、それらのノード ID の順序で円形に接続するモデルに関して定義されます。
この例では、円形に右回りの順序で、5、6、7、8、12、13、14、15 の番号が付けられた 8 つのデータノードがあります。 「左」と「右」は、円の内側から判断します。 ノード 5 の左側にあるノードはノード 15 であり、ノード 5 の右側にあるノードはノード 6 です。 次のクエリーを実行し、その出力を調査することで、これらの関係をすべて確認できます。
mysql> SELECT node_id,left_node,right_node
-> FROM ndbinfo.membership;
+---------+-----------+------------+
| node_id | left_node | right_node |
+---------+-----------+------------+
| 5 | 15 | 6 |
| 6 | 5 | 7 |
| 7 | 6 | 8 |
| 8 | 7 | 12 |
| 12 | 8 | 13 |
| 13 | 12 | 14 |
| 14 | 13 | 15 |
| 15 | 14 | 5 |
+---------+-----------+------------+
8 rows in set (0.00 sec)
「左」と「右」の指定は、イベントログでも同様に使用されます。
president
ノードは、現在のノードから、アービトレータを設定する責任を持つものとして見られるノードです (NDB Cluster Start Phasesを参照してください)。 プレジデントで障害が発生したり、切断されたりすると、現在のノードは、successor
カラムに ID が示されたノードが新しいプレジデントになることを期待します。 succession_order
カラムは、現在のノードが自分自身で持っているとみなす後継キュー内の場所を示します。
通常の NDB Cluster では、すべてのデータノードに president
と同じノードが表示され、その successor
と同じノード (社長以外) が表示されます。 さらに、現在のプレジデントは、自分自身を後継順序の 1
とみなし、successor
ノードは、自分自身を 2
とみなす、というようにするべきです。
すべてのノードで同じ arb_state
の値、および同じ arb_ticket
の値を示すべきです。 可能性のある arb_state
の値は ARBIT_NULL
、ARBIT_INIT
、ARBIT_FIND
、ARBIT_PREP1
、ARBIT_PREP2
、ARBIT_START
、ARBIT_RUN
、ARBIT_CHOOSE
、ARBIT_CRASH
、および UNKNOWN
です。
arb_connected
は、このノードの arbitrator
として示されているノードに、このノードが接続されているかどうかを示します。
connected_rank1_arbs
および connected_rank2_arbs
の各カラムには、ArbitrationRank
がそれぞれ 1 または 2 と等しい 0 個以上のアービトレータのリストが表示されます。
管理ノードと API ノードの両方に、アービトレータになる資格があります。