事務(wù)的4大特征

事務(wù)具有四個(gè)特征:

原子性( Atomicity )

一致性( Consistency )

隔離性( Isolation )

持續(xù)性( Durability )。

這四個(gè)特性簡稱為 ACID 特性。


原子性(獨(dú)立操作)

原子性任務(wù)是一個(gè)獨(dú)立的操作單元,是一種要么全部是,要么全部不是的原子單位性的操作。

一致性(只包含成功提交的結(jié)果)

一個(gè)事務(wù)可以封裝狀態(tài)改變(除非它是一個(gè)只讀的)。事務(wù)必須始終保持系統(tǒng)處于一致的狀態(tài),不管在任何給定的時(shí)間并發(fā)事務(wù)有多少。

一致性有下面特點(diǎn):

如果一個(gè)操作觸發(fā)輔助操作(級聯(lián),觸發(fā)器),這些也必須成功,否則交易失敗。

如果系統(tǒng)是由多個(gè)節(jié)點(diǎn)組成,一致性規(guī)定所有的變化必須傳播到所有節(jié)點(diǎn)(多主復(fù)制)。如果從站節(jié)點(diǎn)是異步更新,那么我們打破一致性規(guī)則,系統(tǒng)成為“最終一致性”。

一個(gè)事務(wù)是數(shù)據(jù)狀態(tài)的切換,因此,如果事務(wù)是并發(fā)多個(gè),系統(tǒng)也必須如同串行事務(wù)一樣操作。

在現(xiàn)實(shí)中,事務(wù)系統(tǒng)遭遇并發(fā)請求時(shí),這種串行化是有成本的, Amdahl法則描述如下:它是描述序列串行執(zhí)行和并發(fā)之間的關(guān)系。

“一個(gè)程序在并行計(jì)算情況下使用多個(gè)處理器所能提升的速度是由這個(gè)程序中串行執(zhí)行部分的時(shí)間決定的?!?/p>

大多數(shù)數(shù)據(jù)庫管理系統(tǒng)選擇(默認(rèn)情況下)是放寬一致性,以達(dá)到更好的并發(fā)性。

隔離性(讀已提交,讀未提交,不可重復(fù)讀,串行化)

事務(wù)是并發(fā)控制機(jī)制,他們交錯使用時(shí)也能提供一致性。隔離讓我們隱藏來自外部世界未提交的狀態(tài)變化,一個(gè)失敗的事務(wù)不應(yīng)該破壞系統(tǒng)的狀態(tài)。隔離是通過用悲觀或樂觀鎖機(jī)制實(shí)現(xiàn)的。

SQL標(biāo)準(zhǔn)規(guī)定了四個(gè)隔離水平:

READ_UNCOMMITTED

READ_COMMITTED

REPETABLE_READ

SERIALIZABLE


持久性(持久更新)

一個(gè)成功的事務(wù)將永久性地改變系統(tǒng)的狀態(tài),所以在它結(jié)束之前,所有導(dǎo)致狀態(tài)的變化都記錄在一個(gè)持久的事務(wù)日志中。如果我們的系統(tǒng)突然受到系統(tǒng)崩潰或斷電,那么所有未完成已提交的事務(wù)可能會重演。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容