21.5.14.25 ndbinfo 成员资格 table
membership
table 描述了每个数据节点在集群中所有其他数据节点所具有的视图,包括节点组成员身份,主席节点,仲裁者,仲裁者后继者,仲裁者连接状态以及其他信息。
membership
table 包含以下列:
node_id
该节点的节点 ID
group_id
该节点所属的节点组
left node
前一个节点的节点 ID
right_node
下一个节点的节点 ID
president
总裁的节点 ID
successor
总裁的后继节点 ID
succession_order
该节点成功担任主席的 Sequences
Conf_HB_order
-
arbitrator
仲裁者的节点 ID
arb_ticket
内部标识符,用于跟踪仲裁
arb_state
Arbitration state
arb_connected
该节点是否连接到仲裁器; Yes
或No
connected_rank1_arbs
等级 1 的关连仲裁员
connected_rank2_arbs
等级 1 的关连仲裁员
Notes
节点 ID 和节点组 ID 与ndb_mgm -e“显示”报告的相同。
left_node
和right_node
是根据一个模型定义的,该模型将所有数据节点按照其节点 ID 的 Sequences 连接成一个圆圈,类似于钟盘上的数字 Sequences,如下所示:
图 21.39 NDB 群集节点的循环安排
在此示例中,我们有 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 群集开始阶段)。如果总裁失败或断开连接,则当前节点希望其 ID 在successor
列中显示的节点成为新总裁。 succession_order
列显示当前节点认为自己具有的在继承队列中的位置。
在普通的 NDB 群集中,所有数据节点应与president
看到相同的节点,并与successor
看到相同的节点(除总裁外)。此外,现任总统应按继承 Sequences 将自己视为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 或更多个仲裁器的列 table,这些仲裁器的ArbitrationRank分别等于 1 或 2.
Note
Management 节点和 API 节点都有资格成为仲裁者。