MySQL事務提交的三個階段介紹

chenfeng發表於2018-08-24

事務提交分三個階段

– 每階段若干個執行緒進入階段佇列,第一個(leader)執行緒完成每個執行緒的會話的階段任務

– 各階段並行執行,任一個階段只有一組事務

– 第二,三階段可以追加合併到前面一批的佇列,原leader中途變為follower

– flush階段,為每個事務依次做:

• 儲存引擎prepare, 一次性為全組刷儲存引擎事務日誌

• 產生XID_EVENT, 固化事務的binlog cache

• 產生gtid-log-event(事務時間戳,全域性時間戳)

• 寫入事務的binlog到binlog檔案中

– sync階段

• binlog group commit等待

• 一次性刷盤binlog檔案

– commit

• 儲存引擎commit,按照佇列內順序做

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2212775/,如需轉載,請註明出處,否則將追究法律責任。

相關文章