中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

MySQL數(shù)據(jù)庫分布式事務(wù)XA的實現(xiàn)原理分析-創(chuàng)新互聯(lián)

  1 原理

成都一家集口碑和實力的網(wǎng)站建設(shè)服務(wù)商,擁有專業(yè)的企業(yè)建站團(tuán)隊和靠譜的建站技術(shù),10余年企業(yè)及個人網(wǎng)站建設(shè)經(jīng)驗 ,為成都數(shù)千家客戶提供網(wǎng)頁設(shè)計制作,網(wǎng)站開發(fā),企業(yè)網(wǎng)站制作建設(shè)等服務(wù),包括成都營銷型網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,同時也為不同行業(yè)的客戶提供成都網(wǎng)站建設(shè)、做網(wǎng)站的服務(wù),包括成都電商型網(wǎng)站制作建設(shè),裝修行業(yè)網(wǎng)站制作建設(shè),傳統(tǒng)機(jī)械行業(yè)網(wǎng)站建設(shè),傳統(tǒng)農(nóng)業(yè)行業(yè)網(wǎng)站制作建設(shè)。在成都做網(wǎng)站,選網(wǎng)站制作建設(shè)服務(wù)商就選創(chuàng)新互聯(lián)。

  關(guān)于MySQL數(shù)據(jù)庫的分布式事務(wù)XA,分布式事務(wù)實現(xiàn)的原理,可見[3];關(guān)于MySQL XA的說明,可見[1][2]。

  MySQL XA分為兩類,內(nèi)部XA與外部XA;內(nèi)部XA用于同一實例下跨多個引擎的事務(wù),由大家熟悉的Binlog作為協(xié)調(diào)者;外部XA用于跨多MySQL實例的分布式事務(wù),需要應(yīng)用層介入作為協(xié)調(diào)者(崩潰時的懸掛事務(wù),全局提交還是回滾,需要由應(yīng)用層決定,對應(yīng)用層的實現(xiàn)要求較高);

  本文,假設(shè)讀者已經(jīng)知道MySQL數(shù)據(jù)庫外部分布式事務(wù)XA的使用,而將重點放在MySQL數(shù)據(jù)庫,如何處理外部分布式事務(wù)XA的crash recover,以及面對不同的crash recover的情形,應(yīng)用程序如何處理,才能夠保證分布式事務(wù)的一致性。最后,本文簡單分析一下目前MySQL數(shù)據(jù)庫外部XA支持存在的問題,以及可選的解決方案。

  源代碼分析基于MySQL 5.1.49,MySQL 5.5.16。

  2 MySQL處理流程

  2.1 MySQL 外部XA – 正常處理流程

  MySQL數(shù)據(jù)庫外部XA的正常處理流程,這里不準(zhǔn)備介紹,可以參考[1][2][3]。接下來我重點描述一下MySQL數(shù)據(jù)庫外部分布式事務(wù)XA的崩潰恢復(fù)流程,畢竟此流程跟應(yīng)用程序如何正確使用外部XA息息相關(guān)。

  2.2 MySQL外部XA – 崩潰恢復(fù)流程

  若一個運(yùn)行外部XA分布式事務(wù)的MySQL數(shù)據(jù)庫節(jié)點發(fā)生崩潰,那么其重啟之后的崩潰恢復(fù),涉及到外部XA處理的流程如下:

  Crash recover:

// 1. 讀取binlog文件,將文件中的xid存入commit_list hash表 
  // 顧名思義,所謂的commit_list,就是說此list中對應(yīng)prepare狀態(tài)的xid 
  // 在崩潰恢復(fù)過程中均可以被提交,而不在commit_list中的xid,均須回滾 
  // binlog中的xid,都是屬于內(nèi)部xid,由MySQL產(chǎn)生,用于內(nèi)部XA 
  Log.cc::TC_LOG_BINLOG::recover 
  // 2. 遍歷底層所有的事務(wù)引擎,收集處于XA_PREPARED狀態(tài)的所有xid 
  // 這些xid列表,既包括內(nèi)部xid,也包括外部xid,存儲引擎內(nèi)部不做區(qū)分 
  Handler.cc::ha_recover(commit_list) 
  // 執(zhí)行各引擎層面提供的recover方法,收集所有的處于prepared狀態(tài)的xid 
  // 根據(jù)xid分類: 
  // 3. 若xid屬于內(nèi)部xid,那么在commit_list中查找此xid, 
  // 若存在,則提交此xid對應(yīng)的事務(wù);否則,回滾此事務(wù) 
  // 4. 若xid屬于外部xid,那么則將xid插入xid_cache hash表 
  // xid_cache中的所有xid,將會通過xa recover命令返回,等待外部程序決策 
  Handler.cc::xarecover_handlerton 
  // 5. 收集InnoDB存儲引擎中,處于prepare狀態(tài)的所有xid,并返回 
  got = hton->recover (innobase_xa_recover) 
  my_xid x = info->list[i].get_my_xid(); 
  if (!x) 
  // 若當(dāng)前為外部xid,那么將xid插入xid_cache hash表 
  xid_cache_insert(&xid_cache, x); 
  else 
  if (x in commit_list) 
  // 若當(dāng)前為內(nèi)部xid,同時此xid在binlog中存在,則提交 
  hton->commit_by_xid(); 
  else 
  // 若當(dāng)前為內(nèi)部xid,同時此xid在binlog中不存在,則回滾 
  hton->rollback_by_xid();

當(dāng)前題目:MySQL數(shù)據(jù)庫分布式事務(wù)XA的實現(xiàn)原理分析-創(chuàng)新互聯(lián)
路徑分享:http://m.2m8n56k.cn/article38/dpogsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計定制開發(fā)做網(wǎng)站企業(yè)建站自適應(yīng)網(wǎng)站網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司
主站蜘蛛池模板: 亚洲成人福利 | 91视频99 | 欧美级毛片 | 三上悠亚免费一区二区在线 | 免费a级黄毛片 | 免费一级毛片免费播放 | 久久99久久精品国产只有 | 欧美日韩一区二区三 | 青青草色久综合网 | 亚洲国产成人久久综合区 | 国产性较精品视频免费 | 国产精品久久精品 | 久草在线青青草 | 失禁h啪肉尿出来高h男男 | 黄色美女视频免费看 | 精品一区二区三区三区 | 国产精品久久久久久久久久直 | 国产成在线观看免费视频成本人 | 久草久热| 一区二区三区视频免费 | 欧美特黄一区二区三区 | 国产高清在线精品一区a | 国产日韩欧美一区二区三区在线 | 美女张开双腿让男人桶 | 亚洲日本视频在线 | 久久网站免费 | 久久精品国产免费看久久精品 | 色视频在线观看视频 | 日本亚洲成高清一区二区三区 | 一个色综合久久 | 最爽的乱淫片免费 | 亚洲美女色成人综合 | gay毛片| 欧美国产合集在线视频 | 国产人成亚洲第一网站在线播放 | 一级做a爱 | 51国产偷自视频区视频手机播器 | 久久香蕉国产线看观看式 | 美女视频免费黄的 | 一级做a爰片久久毛片潮喷 一级做a爰片久久毛片美女 | 国产精品自拍视频 |