本篇文章為大家展示了MGR中事務(wù)的執(zhí)行過(guò)程是怎樣的,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
為陽(yáng)江等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及陽(yáng)江網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、陽(yáng)江網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!MGR中g(shù)roup_replication插件最重要的功能就是事務(wù)分發(fā)器的功能,這里其分發(fā)的是Binlog Event,事務(wù)分發(fā)器的處理是在事務(wù)執(zhí)行即將結(jié)束的時(shí)候。MGR將這稱作樂(lè)觀的事務(wù)執(zhí)行策略,可以帶來(lái)更好的性能。但這種策略下,多個(gè)成員上的事務(wù)可能發(fā)生沖突。MGR需要一個(gè)沖突檢測(cè)機(jī)制來(lái)發(fā)現(xiàn)并處理沖突。根據(jù)事務(wù)處理過(guò)程中的不同處理步驟,MGR中事務(wù)分發(fā)器的功能劃分為以下四個(gè)部分。
·本地事務(wù)控制模塊
·成員間的通信模塊
·全局事務(wù)認(rèn)證模塊
·異地事務(wù)執(zhí)行模塊
先來(lái)看下本地事務(wù)控制模塊,MySQL通過(guò)API向插件提供了事務(wù)執(zhí)行過(guò)程中幾個(gè)重要階段的Hook接口,MGR通過(guò)這些接口來(lái)監(jiān)控和控制事務(wù)的執(zhí)行。MySQL的事務(wù)在提交時(shí),內(nèi)部會(huì)分成三個(gè)階段:準(zhǔn)備(prepare)階段,記錄binlog文件階段和提交(commit)階段。MGR對(duì)本地事務(wù)的控制邏輯在before_commit這個(gè)接口中執(zhí)行。before_commit是在事務(wù)的prepare階段之后,寫binlog文件階段之前被執(zhí)行的。對(duì)本地事務(wù)的控制包括以下三個(gè)步驟。
1.發(fā)送事務(wù)信息
MGR首先將事務(wù)執(zhí)行相關(guān)的信息打包,通過(guò)通信模塊的接口發(fā)送給本地的通信模塊,只要本地的通信模塊接收到了消息就返回成功(發(fā)送到其它成員是成員間通信模塊的職責(zé))。事務(wù)信息包括主鍵信息、數(shù)據(jù)庫(kù)快照版本和事務(wù)產(chǎn)生的Binlog Event。
·主鍵信息是Server層生成Binlog Event的時(shí)候一同生成的。主鍵信息中記錄的并不是主鍵字段的值,而是字段值加上庫(kù)名、表名等哈希值。
·數(shù)據(jù)庫(kù)快照版本是當(dāng)前MySQL的全局變量gtid_executed的值。它包含了當(dāng)前事務(wù)提交時(shí)所有已經(jīng)執(zhí)行了的事務(wù)的GTID,代表了當(dāng)前事務(wù)執(zhí)行時(shí)數(shù)據(jù)庫(kù)的狀態(tài)。
·當(dāng)發(fā)送事務(wù)信息時(shí),Binlog Event還沒(méi)寫入Binlog文件。因此,Binlog Event是從當(dāng)前線程的Binlog Cache中獲取的,而不依賴Binlog文件。
·Transaction_context_log_event,本地成員的UUID、主鍵信息和數(shù)據(jù)庫(kù)快照版本會(huì)被封裝進(jìn)Transaction_context_log_event中,和事務(wù)產(chǎn)生的Binlog Event一起發(fā)出去。Transaction_context_log_event放在其它Binlog Event的前面。
2.等待全局事務(wù)認(rèn)證模塊的認(rèn)證結(jié)果
在事務(wù)信息發(fā)送成功后,事務(wù)會(huì)被阻塞,開(kāi)始等待全局事務(wù)認(rèn)證模塊的認(rèn)證結(jié)果。事務(wù)認(rèn)證完成后,全局事務(wù)認(rèn)證模塊會(huì)喚醒當(dāng)前事務(wù)的線程,讓事務(wù)繼續(xù)執(zhí)行。
3.認(rèn)證結(jié)果的處理
事務(wù)繼續(xù)執(zhí)行后,會(huì)檢測(cè)認(rèn)證結(jié)果。如果認(rèn)證成功了,就繼續(xù)提交事務(wù)。如果認(rèn)證失敗了,就會(huì)返回錯(cuò)誤。然后由MySQL來(lái)執(zhí)行Rollback的邏輯。
上述內(nèi)容就是MGR中事務(wù)的執(zhí)行過(guò)程是怎樣的,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)站欄目:MGR中事務(wù)的執(zhí)行過(guò)程是怎樣的-創(chuàng)新互聯(lián)
文章源于:http://www.rwnh.cn/article18/copcgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站維護(hù)、網(wǎng)站策劃、做網(wǎng)站、靜態(tài)網(wǎng)站、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)