1. 程式人生 > >分散式事物相關概念

分散式事物相關概念

分散式事物

分散式事物:分散式事物是指事物的參與者、支援事物的伺服器、資源伺服器以及事物管理器分別位於不同的分散式系統的不同節點之上。簡單的說,就是一次大的操作由不同小操作組成,這些小操作分佈在不同的伺服器上,且屬於不同的應用,分散式事務需要保證這些小操作要麼全部成功,要麼全部失敗。本質上來說,分散式事物就是為了保證不同資料庫的資料一致性。

本地事物

事物的ACID是通過InnoDB日誌和鎖來保證。事物的隔離性是通過資料庫的機制實現的,永續性是通過Redo Log(重做日誌)來實現,原子性和一致性通過Undo Log來實現。

Undo Log的原理很簡單,為了滿足事物的原子性,在操作任何資料之前,首先將資料備份到一個地方(這個儲存資料備份的地方稱為 Undo Log),然後進行資料修改。如果出現了錯誤或者使用者執行了 Rollback 語句,系統可以利用 Undo Log 中備份的資料將資料恢復到事物開始之前的狀態。和 Undo Log 相反,Redo Log 記錄的是新資料的備份,在事物提交之前,只要將 Redo Log 中的資料持久化即可,不需要講資料持久化。

資料庫中事物的四大特性 ACID

A 原子性:一個事物中的所有操作,要麼全部成功,要麼全部失敗。

C 一致性:一個事物執行之前和執行之後資料庫都必須處於抑制狀態。(轉賬,轉出賬號的和轉入賬號的總金額一致)

I 隔離性:不同事物同時操作相同資料,每個事物都有各自的完整資料空間。(互不干涉)

D 永續性:事物結束後,資料持久化到資料庫