该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
该节点是否连接到仲裁器
connected_rank1_arbs
连接的 1 级仲裁员
connected_rank2_arbs
连接的 1 级仲裁员
笔记
节点 ID 和节点组 ID 与ndb_mgm -e "SHOW" 报告的相同 。
left_node
并right_node
根据将所有数据节点连接成一个圆圈的模型定义,按照节点 ID 的顺序,类似于钟表上数字的顺序,如下所示:
在这个例子中,我们有 8 个数据节点,编号为 5、6、7、8、12、13、14 和 15,按顺时针顺序排列成一个圆圈。我们 从圆的内部确定“左”和“右” 。节点 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)
名称“ left ”和“ right ” 在事件日志中的使用方式相同。
该president
节点是当前节点视为负责设置仲裁器的节点(请参阅
NDB Cluster Start Phases)。如果总统出现故障或掉线,则当前节点希望IDsuccessor
列中显示的节点成为新总统。该
succession_order
列显示当前节点认为自己拥有的后继队列中的位置。
在普通的 NDB Cluster 中,所有数据节点都应该看到与 相同的节点president
,以及与其相同的节点(总统除外)successor
。此外,现任总统1
在继任顺序中应将自己视为,successor
节点应将自己视为2
,依此类推。
所有节点应显示相同的arb_ticket
值以及相同的arb_state
值。可能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
列分别显示 0 个或多个仲裁员的列表,这些仲裁员
分别ArbitrationRank
等于 1 或 2。
管理节点和 API 节点都有资格成为仲裁员。