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或Noconnected_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 節點都有資格成為仲裁器。