分布式系統中ACID和CAP有什麼區別

2021-10-01 08:06:01 字數 1095 閱讀 3687

事務機制acid和cap理論是資料管理和分布式系統中兩個重要的概念,很不巧,這兩個概念中都有相同的「c」代表 "consistency" 一致性,但是實際上是完全不同的意義,下面是比較兩個概念的不同之處。

事務的定義和實現一直隨著資料管理的發展在演進,當計算機越來越強大,它們就能夠被用來管理越來越多資料,最終,多個使用者可以在一台計算機上共享資料,這就導致了乙個問題,當乙個使用者修改了資料而另外乙個還在使用舊資料進行計算過程中,這裡就需要一些機制來保證這種情況不會發生。

acid規則原來是在1970被jim gray定義,acid事務解決了很多問題,但是仍然需要和效能做平衡協調,事務越強,效能可能越低,安全可靠性和高效能是一對矛盾。

乙個事務是指對資料庫狀態進行改變的一系列操作變成乙個單個序列邏輯元操作,資料庫一般在啟動時會提供事務機制,包括事務啟動 停止 取消或回滾。

但是上述事務機制並不真的實現「事務」,乙個真正事務應該遵循acid屬性,acid事務才真正解決事務,包括併發使用者訪問同乙個資料表記錄的頭疼問題。

acid的定義:

cap是分布式系統中進行平衡的理論,它是由 eric brewer發布在2023年。

一般情況下cap理論認為你不能擁有上述三種中兩種,這是乙個實踐總結,當有網路分割槽情況下,也就是分布式系統中,你不能又要有完美一致性和100%的可用性,只能這兩者選擇乙個。在單機系統中,你則需要在一致性和延遲性latency之間權衡。

acid一致性是有關資料庫規則,如果資料表結構定義乙個字段值是唯一的,那麼一致性系統將解決所有操作中導致這個字段值非唯一性的情況,如果帶有乙個外來鍵的一行記錄被刪除,那麼其外來鍵相關記錄也應該被刪除,這就是acid一致性意思。

cap理論的一致性是保證同樣乙個資料在所有不同伺服器上的拷貝都是相同的,這是一種邏輯保證,而不是物理,因為光速限制,在不同伺服器上這種複製是需要時間的,集群通過阻止客戶端檢視不同節點上還未同步的資料維持邏輯檢視。

當跨分布式系統提供acid時,這兩個概念會混淆在一起,google』s spanner system能夠提供分布式系統的acid,其包含acid+cap設計:

分布式事務(ACID特性 CAP定律)

普通事務和分布式事務的區別 普通事務就是一般所說的資料庫事務,事務是資料庫管理系統執行過程中的乙個邏輯單位,由乙個有限的資料庫操作序列構成。當事務被提交給了dbms 資料庫管理系統 則dbms 資料庫管理系統 需要確保該事務中的所有操作都成功完成且其結果被永久儲存在資料庫中,如果事務中有的操作沒有成...

分布式系統 CAP理論

cp 天貓雙十一下單搶購,要保證一致性,沒貨了下單失敗 一般來說,如果不需要儲存服務級別的資訊,且服務例項是通過 nacos client 註冊,並能夠保證心跳上報,那麼就可以選擇 ap 模式。當前主流的服務如 spring cloud 和 dubbo 服務,都適用於 ap 模式,ap模式為了服務的...

分布式系統CAP理論

c是一致性,a是可用性,p是分割槽容錯。前兩個沒什麼好說的,主要是p我不太清楚。然後我看文章中最後的證明,有點明白了。分割槽是指兩個伺服器之間傳送資訊失敗。而分割槽容錯就是系統允許發生這種兩個伺服器之間無法傳輸資料的情況。也就是說c和a如果算是正面的 好的性質,那麼p就是負面的 壞的性質。那為什麼允...