25.6.17.45 ndbinfo membership 表
该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)
设计ations “左” 和 “右” 在事件日志中使用相同的方式。
节点 president
是当前节点认为负责设置仲裁者的节点(见NDB 集群启动阶段)。如果总统失败或断开连接,当前节点将期望 ID 在 successor
列中的节点成为新的总统。succession_order
列显示当前节点认为自己在继承队列中的位置。
在正常的 NDB 集群中,所有数据节点都应该看到相同的节点作为president
,并且看到相同的节点(除了总统)作为其successor
。此外,当前总统应该将自己视为1
在继承顺序中,后继者节点应该将自己视为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节点都有资格成为仲裁员。