MySQL 群組複寫是一個 MySQL 外掛程式,它建構在現有的 MySQL 複寫基礎架構之上,利用二進位日誌、以列為基礎的日誌記錄和全域交易識別碼等功能。它與目前的 MySQL 架構 (例如效能結構描述或外掛程式和服務基礎架構) 整合。下圖顯示了描述 MySQL 群組複寫整體架構的方塊圖。
MySQL 群組複寫外掛程式包含一組用於擷取、套用和生命週期的 API,這些 API 控制外掛程式與 MySQL 伺服器互動的方式。有一些介面可讓資訊從伺服器流向外掛程式,反之亦然。這些介面將 MySQL 伺服器核心與群組複寫外掛程式隔離,並且大部分是放置在交易執行管線中的掛勾。從伺服器到外掛程式的一個方向,有關於伺服器啟動、伺服器復原、伺服器準備好接受連線以及伺服器即將提交交易等事件的通知。在另一個方向上,外掛程式會指示伺服器執行動作,例如提交或中止進行中的交易,或將交易排入中繼日誌的佇列中。
群組複寫外掛程式架構的下一層是一組元件,這些元件會在通知路由到它們時做出反應。擷取元件負責追蹤與正在執行的交易相關的內容。套用程式元件負責在資料庫上執行遠端交易。復原元件管理分散式復原,並負責透過選取捐贈者、管理趕上程序以及對捐贈者故障做出反應,使加入群組的伺服器保持最新狀態。
繼續向下堆疊,複寫協定模組包含複寫協定的特定邏輯。它會處理衝突偵測,並接收交易並將其傳播到群組。
群組複寫外掛程式架構的最後兩層是群組通訊系統 (GCS) API,以及基於 Paxos 的群組通訊引擎 (XCom) 的實作。GCS API 是一個高階 API,它抽象了建構複寫狀態機所需的屬性 (請參閱第 20.1 節,「群組複寫背景」)。因此,它將訊息傳遞層的實作與外掛程式的其餘上層分開。群組通訊引擎會處理與複寫群組成員的通訊。