事物的特性:ACID數據庫
原子性(Atomicity)安全
一個事務涉及的操做,要麼所有成功執行,要麼所有回滾分佈式
一致性(Consistency)spa
事務中相關聯的數據在事務操做結束後是一致的,一切都是對的(在分佈式場景下可理解爲全部節點數據在事務完成後都要是正確的)。例如:銀行有總金額9元,有三個用戶各3元,3個用戶之間不管怎麼轉賬,銀行總額使終是9元。若是當轉賬過程當中出現問題,那麼原子性就發揮做用了,那就不轉賬,但數據的結果仍是正確的。在這個轉賬的過程當中,必定是由一個狀態變爲另外一個狀態的,即一旦一個事務完成,未來的全部事務都必須基於這個完成後的狀態事務
一致性分爲強一致(A向B轉賬B立刻就能夠收到),弱一致(A向B轉賬不保證當即到賬,也不保證何時能到賬),最終一致(弱一致的特殊形式,A向B轉賬,不必定當即到賬,但保證必定能到賬)ci
隔離性(Isolation)it
也稱做獨立性,未完成的事務與其餘事務之間相互不干擾不交錯.例如:一個事務是A向B轉賬3元,別外一個事務也是A向B轉賬3元,其實在執行時它們是相互不干擾的,因此都有可能執行成功,可是因爲它們多是同時獲得A 的金額3元,若是兩個事務都執行成功,邏輯上就悲劇了,爲了保證數據安全通常咱們會加一些鎖機制。此外事務的隔離級別也正是對隔離性各類表現的一種應對方案io
持久性(Durabiltiy)數據
事務一旦提交,數據庫就保證數據的存儲。數據會寫入硬盤,並且發生故障還能夠恢復。也就是說:一旦一個事務完成,就是持久的co