Zookeeper學習筆記一:分佈式一致性的一些基本概念

關於分佈式系統的一些基本概念

  • 事務
  • ACID
  • CAP
  • BASE理論

事務

事務(Transaction)是由一系列對系統中數據進行訪問與更新的操作組成的一個程序執行邏輯單元,狹義上的事務特指數據庫事務,事務具有四個特徵,分別是原子性,一致性,隔離性和持久性,簡稱爲事務的ACID特性。

ACID

  1. 原子性
    指事務必須是一個原子的操作序列單元,這裏不是指事務只包含一個操作,而是說在整個事務的一次執行過程中,要麼全部執行成功,要麼全部不執行。

  2. 一致性
    事務的執行不能破壞數據庫數據的完整性和一致性,事務執行的結果必須是使數據庫從一個一致性狀態轉移到另一個一致性狀態。

  3. 隔離性
    併發的事務是相互隔離的,一個事務的執行不能被其他事務干擾。在SQL標準中,定義了四種不同的事務隔離級別:未授權讀取,授權讀取,可重複讀取和串行化
    舉個例子,如果有兩個事務A和B,分別是把數據庫中某個源數據1自增到10,從10自增到20,那麼對於這四種不同的隔離級別,分別會有如下不同的結果:

隔離級別 結果
未授權讀取 可讀取到1~20中任意一個值
授權讀取 只可能讀取到1,10和20
可重複讀取 只能讀取到1
串行話 不可訪問

4. 持久性
一個事務一旦提交,它對數據庫中對應數據的狀態變更就應該是永久性的

CAP

CAP 理論:一個分佈式系統不可能同時滿足一致性,可用性和分區容錯性這三個基本需求,最多隻能同時滿足其中的兩項

BASE理論

BASE是指Basically Available(基本可用),Soft state(軟狀態),Eventually consistent(最終一致性)。

  1. 基本可用
    典型例子是響應時間上的損失和功能上的損失

  2. 弱狀態
    允許系統中的數據存在中間狀態,並認爲該狀態不會影響系統的整體可用性,即允許不同節點的數據副本同步之間出現延遲

  3. 最終一致性
    指經過一定的時間後,系統中所有節點的數據副本必須達到一個一致的狀態

[1]: 《從Paxos到Zookeeper 分佈式一致性原理與實踐》 倪超著

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章