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

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

淺析SQL Server實現分布式事務的兩階段提交協議2PC

2024-08-31 00:56:00
字體:
來源:轉載
供稿:網友
淺析SQL Server實現分布式事務的兩階段提交協議2PC

不久之前團隊有個新人問我一個很重要的web服務接口如何保證事務的問題。因為涉及到跨庫事務,當時我只是回答目前我們的SOA框架都不支持跨庫事務。然后就問到了數據庫跨庫事務是如何實現的,我只能憑印象含糊回答多數是基于數據庫日志(后來知道就是所謂的預寫日志Write-Ahead Logging),具體數據庫內部如何控制數據一致性則真的說不清楚。后來一起查了一下事務的資料,原來DB的事務控制除了基于預寫日志還要實現兩階段提交協議(2PC),參考MSDN摘抄兩段加深印象。

一、2PC的兩個階段1、準備階段(PRepare Phase)

When the transaction manager receives a commit request, it sends a prepare command to all of the resource managers involved in the transaction. Each resource manager then does everything required to make the transaction durable, and all buffers holding log images for the transaction are flushed to disk. As each resource manager completes the prepare phase, it returns success or failure of the prepare to the transaction manager.

2、提交階段(Commit Phase)

If the transaction manager receives successful prepares from all of the resource managers, it sends commit commands to each resource manager. The resource managers can then complete the commit. If all of the resource managers report a successful commit, the transaction manager then sends a success notification to the application. If any resource manager reported a failure to prepare, the transaction manager sends a rollback command to each resource manager and indicates the failure of the commit to the application.

二、2PC的原理示例

如何理解2PC實現分布式事務的呢?下面舉例說明下。

假設有A、B、C三個數據庫,A作為一個事務發起者,稱為“主庫”,B和C則稱為”從庫”。假設需要執行一個在A、B和C三個庫的某個表中插入一行數據的事務。

準備階段(Prepare Phase),A鎖定表,并將事務寫入自己的預寫日志;A將事務發給從庫B和C,B和C也各自鎖定自己的表,并把事務寫入預寫日志,完成后返回告訴A準備階段完成;提交階段(Commit Phase),A開始執行自己的事務,并通知B和C提交事務。如果在這個過程中沒有任何錯誤,那么操作將在A、B和C庫中完成;如果發生錯誤,比如從庫C超時無響應,或者從庫C磁盤空間不足…A將通知所有參與事務的B和C回滾該事務,并且回滾A自己的事務。

dbtrans

順便重點再提一下預寫日志,因為數據庫的這種日志無比重要,普通的增刪改查、數據還原、單庫事務以及本文的分布式事務都離不開它,沒有它絕大多數主流數據庫的數據一致性根本無法實現。

到這里大家應該已經看到,相比單庫事務,分布式事務控制更加復雜,而且開銷極大。雖然一些高級開發框架如.net framework提供了較為強大豐富的類庫如TransactionScope來簡化開發分布式事務,但是建議能不用則不用,因為它被反映普遍存在性能問題和無意識的死鎖問題。這種分布式事務的場景如果頻繁出現,重新拆分系統合理規劃架構才是正道。

總結:在大型web應用中如何保持事務這個話題被問得非常多,個人已經是不止一次被問到所維護的站點是如何實現事務的。在分布式多集群環境下,業務邏輯錯綜復雜,保證數據庫完全可靠存儲當然并不容易。但是web應用程序的一個典型特點是讀多寫少,犧牲極少的數據一致性獲得系統的高可擴展性可維護性以及高性能,那么一點點的數據不準確在業務上完全可以容忍,何況我們有日志,后續還有很多補償措施,甚至直接人工介入處理也未嘗不可。

參考:

http://msdn.microsoft.com/en-us/library/ms191440.aspx

http://technet.microsoft.com/zh-cn/library/ms186259(v=SQL.105).aspx

http://www.cnblogs.com/CareySon/archive/2012/02/13/2349751.html

http://www.cnblogs.com/CareySon/archive/2012/02/14/2351149.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久久久久久av| 欧美视频裸体精品| 日韩欧美中文免费| 欧美激情第1页| 亚洲第一网站免费视频| 亚洲第一福利在线观看| 国产精品成人播放| 亚洲精品免费av| 国产成人精品日本亚洲专区61| 日韩视频在线免费| 精品视频久久久久久| 成人h视频在线观看播放| 国产色综合天天综合网| 两个人的视频www国产精品| 亚洲精品国产美女| 欧美成人黑人xx视频免费观看| 97精品在线观看| 日韩高清中文字幕| 欧美中文字幕第一页| 欧美丰满少妇xxxxx做受| 国产精品青草久久久久福利99| 欧美日韩在线视频首页| 日韩av成人在线| 国产精品91久久久| 久久九九免费视频| 亚洲美女av在线| 欧美国产日韩中文字幕在线| 欧美高清电影在线看| 国产亚洲美女精品久久久| 亚洲国产成人久久综合| 韩剧1988在线观看免费完整版| 国产成人自拍视频在线观看| 国产精品久久久久999| 国产一区二区三区在线播放免费观看| 久久精品小视频| 欧美黑人xxx| 亚洲欧美综合区自拍另类| 久久天天躁夜夜躁狠狠躁2022| 国产欧美日韩丝袜精品一区| 亚洲欧美一区二区三区四区| 国产精品第七十二页| 国产免费亚洲高清| 欧美电影院免费观看| 91麻豆国产语对白在线观看| 欧美精品www| 国产精品99久久久久久白浆小说| 欧美精品精品精品精品免费| 欧美老肥婆性猛交视频| 国产精品成人播放| 俺去啦;欧美日韩| 亚洲免费av电影| 97超碰国产精品女人人人爽| 日韩小视频在线| 欧美黄色小视频| 国产欧美在线观看| 国产国产精品人在线视| 成人国内精品久久久久一区| 中文字幕最新精品| 久久久久久久久久国产精品| 97在线免费观看视频| 亚洲爱爱爱爱爱| 精品国偷自产在线视频| 久久在线免费视频| 国产精品久久久| 在线视频日韩精品| 国产精品永久免费观看| 97精品在线视频| 国产精品成人aaaaa网站| 欧美日韩国产影院| 久久久久免费精品国产| 精品久久久久久久久久| 国产精品女人久久久久久| 久久这里有精品视频| 色黄久久久久久| 久久久中文字幕| 欧美床上激情在线观看| 亚洲一区美女视频在线观看免费| 国产视频精品久久久| 亚洲人成电影在线观看天堂色| 亚洲福利视频专区| 国产噜噜噜噜噜久久久久久久久| 亚洲人av在线影院| 国产精品极品尤物在线观看| 欧美二区在线播放| 国产精品综合久久久| 97视频人免费观看| 一区二区三区无码高清视频| 欧美午夜美女看片| 国产精品一区二区在线| 日韩视频免费观看| 日本久久91av| 国产精品入口免费视| 午夜精品一区二区三区在线视| 亚洲四色影视在线观看| 亚洲第一福利在线观看| 亚洲丁香婷深爱综合| 欧美精品成人在线| 精品成人乱色一区二区| 亚洲色图校园春色| 日韩av男人的天堂| 久久久免费观看| 久久视频这里只有精品| 精品久久久精品| 国产亚洲欧洲高清| 国产+成+人+亚洲欧洲| 国产精品视频自拍| 久久久免费观看视频| 欧美激情国产日韩精品一区18| 国产视频精品自拍| 午夜精品视频在线| 欧美性视频在线| 国产精品久久久久久av福利| 久久综合国产精品台湾中文娱乐网| 91国在线精品国内播放| 久久精品国产成人| 成人网在线视频| 91sao在线观看国产| 国产精品久久久久久一区二区| 亚洲女性裸体视频| 欧美大片网站在线观看| 中文字幕av一区中文字幕天堂| 国产suv精品一区二区| 亚洲在线免费视频| 成人免费观看网址| 亚洲精品网址在线观看| 亚洲精品456在线播放狼人| 欧美高清性猛交| 亚洲三级黄色在线观看| 国产精品视频区1| 精品丝袜一区二区三区| 亚洲国产天堂久久综合| 成人黄色av网站| 欧美理论片在线观看| 国产精自产拍久久久久久蜜| 91久久精品美女高潮| 国产999在线观看| 亚洲新声在线观看| 97香蕉久久超级碰碰高清版| 日韩av免费看网站| 精品国产乱码久久久久久天美| 欧日韩不卡在线视频| 伊人久久大香线蕉av一区二区| 亚洲美女精品成人在线视频| 欧美激情2020午夜免费观看| 亚洲国产精品网站| 欧美裸体xxxx极品少妇| 欧美激情在线有限公司| 亚洲国产精品视频在线观看| 久久精品亚洲热| 欧美成人精品一区| 81精品国产乱码久久久久久| 亚洲欧美日韩爽爽影院| 国产精品美女主播在线观看纯欲| 日韩在线观看免费全| 亚洲日韩第一页| 国产mv免费观看入口亚洲| 亚洲图片欧美午夜| 亚洲最大激情中文字幕| 久久成年人免费电影| 欧美午夜视频一区二区| 色偷偷av一区二区三区乱| 爽爽爽爽爽爽爽成人免费观看| 国产亚洲精品一区二区| 亚洲人av在线影院|