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
欄位各自顯示 0 個或多個仲裁者的清單,其 ArbitrationRank
分別等於 1 或 2。
管理節點和 API 節點都有資格成為仲裁者。