分布事務(wù)管理
1)分布式事務(wù):在分布式數(shù)據(jù)庫系統(tǒng)中,一個(gè)分布式事務(wù)是由若干個(gè)不同站點(diǎn)上的子事務(wù)組成的。
2)分布式事務(wù)與集中式事務(wù)的相同特性:與集中式事務(wù)的特性相同為ACID,原子性、一致性、隔離性和持久性。
分布式事務(wù)與集中式事務(wù)的不同特性:執(zhí)行特性、操作特性和控制報(bào)文。執(zhí)行過程中,分布式事務(wù)要必須創(chuàng)建一個(gè)控制進(jìn)程,協(xié)調(diào)子事務(wù)、數(shù)據(jù)及控制報(bào)文;而集中式事務(wù)僅由并行調(diào)度算法進(jìn)行調(diào)度即可。操作過程中,分布式事務(wù)還要加入大量的通信原語和控制原語。集中式事務(wù)沒有使用控制報(bào)文。
3)分布式數(shù)據(jù)庫故障:分為節(jié)點(diǎn)故障(事務(wù)故障、系統(tǒng)故障、介質(zhì)故障),通信故障(報(bào)文故障、網(wǎng)絡(luò)分割故障)。其中報(bào)文故障包括報(bào)文錯(cuò)、報(bào)文丟失、報(bào)文延遲。
4)分布式數(shù)據(jù)庫的恢復(fù)原則:保證事務(wù)原子性的措施稱為事務(wù)故障恢復(fù),有幾個(gè)原則是,
孤立和逐步退出事務(wù)的原則UNDO;
成功結(jié)束事務(wù)原則REDO;
夭折事務(wù)的原則。(撤消全部事務(wù),恢復(fù)到初態(tài))
在分布式事務(wù)恢復(fù)中,本地事務(wù)的恢復(fù)和集中式事務(wù)的恢復(fù)相同,由本地事務(wù)管理器LTM執(zhí)行。整個(gè)的分布式事務(wù)的恢復(fù)由LTM與DTM(分布式事務(wù)管理器)協(xié)同完成。
5)兩階段提交協(xié)議2PC(準(zhǔn)備提交、建議提交/撤銷、全局提交/撤銷、確認(rèn))
在2PC中,將分布式事務(wù)的某一個(gè)代理指定為協(xié)調(diào)者,其它代理都是參與者。參與者可以進(jìn)行單方面撤銷。2PC可以分為兩個(gè)步驟:先是表決階段,然后是執(zhí)行階段。表決中實(shí)行一票否決。
2PC對(duì)故障的恢復(fù):(1)場(chǎng)地故障 參與者在寫入“建議提交”前發(fā)生故障 : --協(xié)調(diào)者等到超時(shí)后將取消事務(wù),該參與者自行可以 終止事務(wù)。
參與者在寫入“建議提交”后發(fā)生故障: --而其它參與者可以正常結(jié)束事務(wù),該參與者 要訪問協(xié)調(diào)者或其它參與者獲得之前協(xié)調(diào)者作出 的決定并執(zhí)行相應(yīng)的操作。
協(xié)調(diào)者在寫入“準(zhǔn)備提交”后,在寫入“全局提交/撤銷”前發(fā)生故障:
--協(xié)調(diào)者從頭恢復(fù)提交協(xié)議
協(xié)調(diào)者在寫入“全局提交/撤銷”后,在寫入“事務(wù)結(jié)束”記錄前發(fā)生故障:
--協(xié)調(diào)者恢復(fù)時(shí)要給所有的參與者重發(fā)之前的全局決定。
(2)報(bào)文丟失 丟失參與者的回答報(bào)文(建議提交/撤銷): --協(xié)調(diào)者將取消整個(gè)事務(wù)
丟失“準(zhǔn)備提交”報(bào)文: --協(xié)調(diào)者在超時(shí)后將取消整個(gè)事務(wù)
丟失“全局提交/撤銷”報(bào)文: --涉案參與者將請(qǐng)求協(xié)調(diào)者重發(fā)該報(bào)文
丟失“確認(rèn)”報(bào)文: --協(xié)調(diào)者將重發(fā)全局報(bào)文,參與者無論子事務(wù) 提交與否都要給予確認(rèn)。
(3)網(wǎng)絡(luò)分割故障,整個(gè)網(wǎng)絡(luò)被分為2組,協(xié)調(diào)者組和參與者組。各自進(jìn)行故障處理。