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 排序,類似於時鐘錶盤上的數字順序,如下所示
在此範例中,我們有 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)
“左” 和 “右” 的指定在事件記錄中以相同方式使用。
president
節點是目前節點所檢視的負責設定仲裁器的節點(請參閱 NDB 叢集啟動階段)。如果主節點失敗或中斷連線,目前節點會預期在 successor
欄位中顯示 ID 的節點成為新的主節點。succession_order
欄位顯示目前節點認為自身在繼承佇列中所處的位置。
在正常的 NDB 叢集中,所有資料節點應將相同的節點視為 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
欄位各自顯示具有等於 1 或 2 的 ArbitrationRank
的 0 個或多個仲裁器列表。
管理節點和 API 節點都有資格成為仲裁器。