亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > 文庫 > 正文

從一個線上問題分析binlog與內部XA事務提交步驟

2024-09-07 22:13:04
字體:
來源:轉載
供稿:網友
       從一個線上問題分析binlog與內部XA事務提交步驟:

  1. 問題
  業務上新增一條訂單記錄,用戶接收到BinLake拉取的MySQL從庫數據消息后,馬上根據消息內的訂單號去查詢同一個MySQL從庫,發現有些時候無法查到該條數據,等待大約500ms~1000ms后再去查詢數據庫,可以查詢到該條數據。
  注: BinLake為京東商城數據庫技術部自研的一套訂閱和消費MySQL數據庫binlog的組件,本例所描述的問題是業務方希望根據訂閱的binlog來獲取實時訂單等業務消息。
  2. Binlog與內部XA
  2.1. XA的概念
  XA(分布式事務)規范主要定義了(全局)事務管理器(TM: Transaction Manager)和(局部)資源管理器(RM: Resource Manager)之間的接口。XA為了實現分布式事務,將事務的提交分成了兩個階段:也就是2PC (tow phase commit),XA協議就是通過將事務的提交分為兩個階段來實現分布式事務。
  兩階段
  1)prepare 階段
  事務管理器向所有涉及到的數據庫服務器發出prepare"準備提交"請求,數據庫收到請求后執行數據修改和日志記錄等處理,處理完成后只是把事務的狀態改成"可以提交",然后把結果返回給事務管理器。即:為prepare階段,TM向RM發出prepare指令,RM進行操作,然后返回成功與否的信息給TM。
  2)commit 階段
  事務管理器收到回應后進入第二階段,如果在第一階段內有任何一個數據庫的操作發生了錯誤,或者事務管理器收不到某個數據庫的回應,則認為事務失敗,回撤所有數據庫的事務。數據庫服務器收不到第二階段的確認提交請求,也會把"可以提交"的事務回撤。如果第一階段中所有數據庫都提交成功,那么事務管理器向數據庫服務器發出"確認提交"請求,數據庫服務器把事務的"可以提交"狀態改為"提交完成"狀態,然后返回應答。即:為事務提交或者回滾階段,如果TM收到所有RM的成功消息,則TM向RM發出提交指令;不然則發出回滾指令。

  2.2. redo與binlog的一致性問題
  我們MySQL為了兼容其它非事務引擎的復制,在server層面引入了 binlog, 它可以記錄所有引擎中的修改操作,因而可以對所有的引擎使用復制功能; 然而這種情況會導致redo log與binlog的一致性問題;MySQL通過內部XA機制解決這種一致性的問題。
  第一階段:InnoDB prepare, write/sync redo log;binlog不作任何操作;
  第二階段:包含兩步,1> write/sync Binlog; 2> InnoDB commit (commit in memory);
  當然在5.6之后引入了組提交的概念,可以在IO性能上進行一些提升,但總體的執行順序不會改變。
  當第二階段的第1步執行完成之后,binlog已經寫入,MySQL會認為事務已經提交并持久化了(在這一步binlog就已經ready并且可以發送給訂閱者了)。在這個時刻,就算數據庫發生了崩潰,那么重啟MySQL之后依然能正確恢復該事務。在這一步之前包含這一步任何操作的失敗都會引起事務的rollback。
  第二階段的第2大部分都是內存操作,比如釋放鎖,釋放mvcc相關的read view等等。MySQL認為這一步不會發生任何錯誤,一旦發生了錯誤那就是數據庫的崩潰,MySQL自身無法處理。這個階段沒有任何導致事務rollback的邏輯。在程序運行層面,只有這一步完成之后,事務導致變更才能通過API或者客戶端查詢體現出來。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲女同精品视频| 亚洲欧美国产精品va在线观看| 成人激情在线播放| 成人观看高清在线观看免费| 91亚洲va在线va天堂va国| 久久久久久国产精品| 欧美日韩在线影院| 久久久久日韩精品久久久男男| 色悠悠久久88| 色天天综合狠狠色| 久久久精品2019中文字幕神马| 久久人人爽人人爽人人片亚洲| 亚洲综合在线中文字幕| 久久久久久久久久久免费| 国产精品av在线播放| 日韩精品电影网| 亚洲午夜色婷婷在线| 久久精品国产精品亚洲| 粗暴蹂躏中文一区二区三区| 欧美一级免费视频| 久久久久久久999| 亚洲剧情一区二区| 久久久久久久久久久久av| 国产日韩欧美电影在线观看| 57pao成人永久免费视频| 国产精品欧美久久久| 日韩中文字幕视频在线| 亚洲乱码一区av黑人高潮| 日韩精品欧美国产精品忘忧草| 国产成人精品免高潮费视频| 91国产美女在线观看| 91免费的视频在线播放| 国产精品久久久久久久午夜| 亚洲综合在线播放| 欧美日韩爱爱视频| 伊是香蕉大人久久| 久久久久久国产精品美女| 亚洲国产精品久久久久秋霞蜜臀| 在线日韩第一页| 亚洲色图五月天| 日韩电影中文 亚洲精品乱码| 成人黄色免费在线观看| 亚洲国产精品福利| 九九热这里只有在线精品视| 国产剧情日韩欧美| 欧美午夜激情小视频| 成人黄色av免费在线观看| 欧美性猛交xxxx| 久久亚洲一区二区三区四区五区高| 色婷婷综合久久久久| 性色av香蕉一区二区| 中文字幕亚洲在线| 欧美一级黑人aaaaaaa做受| 欧美在线不卡区| 国内精品伊人久久| 亚洲第一精品自拍| 欧美成人精品激情在线观看| 在线日韩第一页| 欧美在线日韩在线| 深夜成人在线观看| www.欧美视频| 亚洲欧美日韩另类| 国产精品18久久久久久麻辣| 4438全国亚洲精品在线观看视频| 亚洲精品自拍第一页| 久久久亚洲影院| 亚洲性日韩精品一区二区| 久久成年人视频| 日韩av中文在线| 激情久久av一区av二区av三区| 日韩欧美aaa| 亚洲高清在线观看| 日韩精品高清视频| 国产精品久久久av久久久| 亚洲福利精品在线| 亚洲欧美一区二区三区情侣bbw| 欧美一区二区三区精品电影| 日韩欧美亚洲范冰冰与中字| 久久久av亚洲男天堂| 欧美日本亚洲视频| 亚洲国产精品专区久久| 欧美一区二区大胆人体摄影专业网站| 国产精品免费看久久久香蕉| 日韩欧美在线视频观看| 国产精品视频精品视频| 久久精品电影一区二区| 7m第一福利500精品视频| 亚洲成人999| 热久久这里只有精品| 亚洲视频第一页| 日韩在线视频播放| 成人中文字幕+乱码+中文字幕| 91精品国产777在线观看| 少妇av一区二区三区| 在线看片第一页欧美| 狠狠躁夜夜躁人人爽天天天天97| 国产精品久久久久国产a级| 国产精品91视频| 国产精品永久在线| 九九久久综合网站| 久久青草精品视频免费观看| 亚洲天堂av网| xxxxx成人.com| 在线精品播放av| 午夜精品www| 欧美另类在线播放| 欧美性极品xxxx做受| 插插插亚洲综合网| 午夜欧美不卡精品aaaaa| 日韩av成人在线| 欧美乱大交xxxxx| 久久久亚洲天堂| 欧美精品一区二区免费| 亚洲免费av电影| 日韩av在线免费观看一区| 91国产精品91| 国产精品爽爽ⅴa在线观看| 中文字幕在线日韩| 26uuu国产精品视频| 欧美精品日韩三级| 91久久精品一区| 按摩亚洲人久久| 中文字幕亚洲欧美一区二区三区| 日韩av影视综合网| 欧美激情在线狂野欧美精品| 亚洲va欧美va国产综合久久| 亚洲黄色有码视频| 91亚洲精品一区二区| 日韩一区二区三区国产| 国产精品极品美女粉嫩高清在线| 亚洲欧洲日产国码av系列天堂| 97视频在线看| 精品高清一区二区三区| 中文字幕亚洲自拍| 亚洲人成绝费网站色www| 欧美视频在线免费| 亚洲图片欧洲图片av| 国产欧美一区二区三区久久| xvideos成人免费中文版| 97av在线播放| 亚洲国产精品99| 欧美视频中文在线看| 国产精品免费久久久| 国产精品一区二区久久久久| 日韩免费观看av| 国产精品视频男人的天堂| 欧美专区国产专区| 久久久久成人网| 国产成人av在线| 欧美中文在线观看| 色综合久久久久久中文网| 91po在线观看91精品国产性色| 日韩一中文字幕| 亚洲男人天堂2023| 中文字幕日韩视频| 蜜臀久久99精品久久久无需会员| 一色桃子一区二区| 亚洲国产福利在线| 国产色综合天天综合网| 国产欧美婷婷中文| 欧美精品videossex88| 亚洲精品国偷自产在线99热| 久久人人爽亚洲精品天堂| 欧美疯狂性受xxxxx另类|