保證事務ACID特性

2021-10-09 12:52:15 字數 609 閱讀 1102

1)2pc 二階段提交

第一階段:提交事務請求:事務沒有真正提交,只是請求過去執行。

第二階段:真正提交,或者中斷事務。

中斷事務:1、發回滾請求

2、參與者節點回滾

3、參與者反饋結果給協調者

4、協調者接受參與者ack(完整無誤後)後回滾

問題:存在同步阻塞(參與者節點在提交處於同步阻塞狀態,無法做其他操作,卡)、單點問題(協調者節點出故障,會破壞事務一致性)、腦裂導致資料不一致(服務宕機或阻塞時)等問題

2)3pc 三階段提交

將提交事務請求分為了兩步走,三個階段分別是cancommit、precommit、docommit;在參與者提交事務請求給協調者上做判斷,引入超時時間概念,在一定時間內,如果參與者事務請求傳送過去沒有得到響應,則發生參與者訊息,讓其他參與者事務不在等待,不響應參與者不進行處理,並回滾協調者中關於無響應參與者部分的問題。

解決了同步阻塞、單點問題,但是沒有解決腦裂導致資料不一致問題(網路分割槽問題)。

引入paxos演算法,(該演算法是一種分布式系統容錯性的一致性演算法),來解決3pc中網路分割槽問題。

paxos演算法,「過半原則」概念,少數服從多數。

zk就是基於fast paxos的。

事務特性(ACID)

原子性 是指事務乙個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生。不能夠單獨執行。把一組操作放入事務中 一致性 事務的執行的前後,資料的完整性要得到保證。隔離性 強調的是多個使用者併發訪問資料庫的時候,乙個使用者事務不能被其他使用者的事務所干擾到,多個併發事務之間的資料要相互隔離。解決多...

事務ACID特性

所謂事務,它是乙個操作序列,這些操作要麼都執行,要麼都不執行,它是乙個不可分割的工作單位。例如,銀行轉帳工作 從乙個帳號扣款並使另乙個帳號增款,這兩個操作要麼都執行,要麼都不執行。資料庫事務必須具備acid特性,acid是atomic 原子性 consistency 一致性 isolation 隔離...

事務ACID特性

所謂事務,它是乙個操作序列,這些操作要麼都執行,要麼都不執行,它是乙個不可分割的工作單位。例如,銀行轉帳工作 從乙個帳號扣款並使另乙個帳號增款,這兩個操作要麼都執行,要麼都不執行。資料庫事務必須具備acid特性,acid是atomic 原子性 consistency 一致性 isolation 隔離...