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