acid理論?
ACID理論是數(shù)據(jù)庫為了保證事務(wù)正確性而提出的一種理論,它包含四個約束:
原子性(Atomicity):組成事務(wù)的一組操作,要么全部成功,要么全部失敗,不會在中間的某個環(huán)節(jié)結(jié)束。如果在事務(wù)的執(zhí)行過程中,某個操作失敗了,數(shù)據(jù)庫會回滾到事務(wù)開始前的狀態(tài),就像這個事務(wù)從來沒有執(zhí)行過一樣。
一致性(Consistency):事務(wù)執(zhí)行前后,數(shù)據(jù)庫的完整性沒有被破壞,事務(wù)執(zhí)行的前后都是合法的數(shù)據(jù)狀態(tài)。
隔離性(Isolation):數(shù)據(jù)庫允許多個事務(wù)并發(fā)地對數(shù)據(jù)進(jìn)行讀寫。
多個事務(wù)并發(fā)執(zhí)行會造成臟讀,不可重復(fù)讀,幻讀,而隔離性可以防止多個事務(wù)交叉執(zhí)行導(dǎo)致的數(shù)據(jù)不一致問題。事務(wù)的隔離級別有讀未提交,讀已提交,可重復(fù)讀,串行化。
持久性(Durability):事務(wù)提交后,對數(shù)據(jù)的修改是持久的,不會因為外部原因丟失。
ACID理論是對事務(wù)特性的抽象和總結(jié),方便我們實現(xiàn)事務(wù)。也就是說,如果我們使得一組操作具有ACID特性,那么這組操作就可以稱之為事務(wù)。
在單機(jī)上,可以通過鎖、時間序列等機(jī)制保障操作的順序執(zhí)行,讓系統(tǒng)實現(xiàn)ACID特性。但是,分布式系統(tǒng)涉及多個節(jié)點間的操作,單機(jī)ACID的實現(xiàn)方法無能為力。這里就要用到分布式事務(wù)協(xié)議了。