MGR中事務(wù)的執(zhí)行過程是怎樣的

本篇文章為大家展示了MGR中事務(wù)的執(zhí)行過程是怎樣的,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),通許企業(yè)網(wǎng)站建設(shè),通許品牌網(wǎng)站建設(shè),網(wǎng)站定制,通許網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,通許網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

MGR中g(shù)roup_replication插件最重要的功能就是事務(wù)分發(fā)器的功能,這里其分發(fā)的是Binlog Event,事務(wù)分發(fā)器的處理是在事務(wù)執(zhí)行即將結(jié)束的時(shí)候。MGR將這稱作樂觀的事務(wù)執(zhí)行策略,可以帶來更好的性能。但這種策略下,多個(gè)成員上的事務(wù)可能發(fā)生沖突。MGR需要一個(gè)沖突檢測機(jī)制來發(fā)現(xiàn)并處理沖突。根據(jù)事務(wù)處理過程中的不同處理步驟,MGR中事務(wù)分發(fā)器的功能劃分為以下四個(gè)部分。

·本地事務(wù)控制模塊

·成員間的通信模塊

·全局事務(wù)認(rèn)證模塊

·異地事務(wù)執(zhí)行模塊

先來看下本地事務(wù)控制模塊,MySQL通過API向插件提供了事務(wù)執(zhí)行過程中幾個(gè)重要階段的Hook接口,MGR通過這些接口來監(jiān)控和控制事務(wù)的執(zhí)行。MySQL的事務(wù)在提交時(shí),內(nèi)部會分成三個(gè)階段:準(zhǔn)備(prepare)階段,記錄binlog文件階段和提交(commit)階段。MGR對本地事務(wù)的控制邏輯在before_commit這個(gè)接口中執(zhí)行。before_commit是在事務(wù)的prepare階段之后,寫binlog文件階段之前被執(zhí)行的。對本地事務(wù)的控制包括以下三個(gè)步驟。

1.發(fā)送事務(wù)信息

MGR首先將事務(wù)執(zhí)行相關(guān)的信息打包,通過通信模塊的接口發(fā)送給本地的通信模塊,只要本地的通信模塊接收到了消息就返回成功(發(fā)送到其它成員是成員間通信模塊的職責(zé))。事務(wù)信息包括主鍵信息、數(shù)據(jù)庫快照版本和事務(wù)產(chǎn)生的Binlog Event。

·主鍵信息是Server層生成Binlog Event的時(shí)候一同生成的。主鍵信息中記錄的并不是主鍵字段的值,而是字段值加上庫名、表名等哈希值。

·數(shù)據(jù)庫快照版本是當(dāng)前MySQL的全局變量gtid_executed的值。它包含了當(dāng)前事務(wù)提交時(shí)所有已經(jīng)執(zhí)行了的事務(wù)的GTID,代表了當(dāng)前事務(wù)執(zhí)行時(shí)數(shù)據(jù)庫的狀態(tài)。

·當(dāng)發(fā)送事務(wù)信息時(shí),Binlog Event還沒寫入Binlog文件。因此,Binlog Event是從當(dāng)前線程的Binlog Cache中獲取的,而不依賴Binlog文件。

·Transaction_context_log_event,本地成員的UUID、主鍵信息和數(shù)據(jù)庫快照版本會被封裝進(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ù)會被阻塞,開始等待全局事務(wù)認(rèn)證模塊的認(rèn)證結(jié)果。事務(wù)認(rèn)證完成后,全局事務(wù)認(rèn)證模塊會喚醒當(dāng)前事務(wù)的線程,讓事務(wù)繼續(xù)執(zhí)行。

3.認(rèn)證結(jié)果的處理

事務(wù)繼續(xù)執(zhí)行后,會檢測認(rèn)證結(jié)果。如果認(rèn)證成功了,就繼續(xù)提交事務(wù)。如果認(rèn)證失敗了,就會返回錯(cuò)誤。然后由MySQL來執(zhí)行Rollback的邏輯。

上述內(nèi)容就是MGR中事務(wù)的執(zhí)行過程是怎樣的,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站名稱:MGR中事務(wù)的執(zhí)行過程是怎樣的
當(dāng)前URL:http://bm7419.com/article42/psseec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、外貿(mào)建站品牌網(wǎng)站制作、網(wǎng)站營銷、定制開發(fā)、動態(tài)網(wǎng)站

廣告

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

h5響應(yīng)式網(wǎng)站建設(shè)