分散式相關概念:ACID特性,CAP理論,BASE理論
彙總一下幾個常見的理論的概念:
1.ACID特性
資料庫管理系統中事務(transaction)的四個特性:
原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、永續性(Durability)
1、原子性
原子性是指事務是一個不可再分割的工作單元,事務中的操作要麼全部成功,要麼全部失敗。
2、一致性
一致性是指在事務開始之前和事務結束以後,資料庫的完整性約束沒有被破壞。這是說資料庫事務不能破壞關係資料的完整性以及業務邏輯上的一致性。
3、隔離性
多個事務併發訪問時,事務之間是隔離的,一個事務不應該影響其它事務執行效果。
4、永續性
永續性,意味著在事務完成以後,該事務對資料庫所作的更改便持久的儲存在資料庫之中,並不會被回滾。
2.CAP理論
CAP理論,指的是在一個分散式系統中,不可能同時滿足Consistency(一致性)、 Availability(可用性)、Partition tolerance(分割槽容錯性)這三個基本需求,最多隻能滿足其中的兩項。
1、一致性:
指資料在多個副本之間是否能夠保持一致的特性。當執行資料更新操作後,仍然可以保證系統資料處於一致的狀態。
2、可用性:
系統提供的服務必須一直處於可用的狀態。對於使用者的每一個操作請求總是能夠在“有限的時間內”返回結果。這個有限時間是系統設計之初就指定好的系統執行指標。返回的結果指的是系統返回使用者的一個正常響應結果,而不是“out ot memory error”之類的系統錯誤資訊。
3、分割槽容錯性:
分散式系統在遇到任何網路分割槽故障的時候,仍然需要能夠保證對外提供滿足一致性和可用性的服務,除非是整個網路環境都發生了故障。組成分散式系統的每個節點的加入與退出都可以看成是一個特殊的網路分割槽。
3.BASE理論
BASE理論是指:Basically Available(基本可用)、Soft-state( 軟狀態/柔性事務)、Eventual Consistency(最終一致性)。是基於CAP定理演化而來,是對CAP中一致性和可用性權衡的結果。
核心思想:即使無法做到強一致性,但每個業務根據自身的特點,採用適當的方式來使系統達到最終一致性。
1、基本可用:
指分散式系統在出現故障的時候,允許損失部分可用性,保證核心可用。但不等價於不可用。比如:搜尋引擎0.5秒返回查詢結果,但由於故障,2秒響應查詢結果;網頁訪問過大時,部分使用者提供降級服務,等。
2、軟狀態:
軟狀態是指允許系統存在中間狀態,並且該中間狀態不會影響系統整體可用性。即允許系統在不同節點間副本同步的時候存在延時。
3、最終一致性:
系統中的所有資料副本經過一定時間後,最終能夠達到一致的狀態,不需要實時保證系統資料的強一致性。最終一致性是弱一致性的一種特殊情況。