通訊異常sql
- 單機內存延時在納秒級(10ns)
- 正常一次網絡通訊延時在(0.1ms--1ms)
- 相差100倍
網絡分區數據庫
- 因爲網絡發生異常,致使分佈式系統中部分網絡延時加大,最終致使僅僅有部分系節點能使用,叫作網絡分區
三態網絡
- 三種狀態,每次請求存在三種狀態:成功、失敗、超時
- 超時的緣由:
- 可能根本沒發送到接收方
- 接收方返回的結果沒發回發送方
節點故障併發
ACID事務的隔離性、一致性、原子性、持久性分佈式
- 原子性
- 一致性
- 隔離性
- 標準sql 定義了4個隔離級別
- 未受權讀
- 一個事務還沒完成,另外一個事務能夠讀取其正在操做的數據
- 受權讀
- 可重複讀取
- 讀取值都和事務開始時刻一致,可能致使幻讀
- 幻讀:不一樣時刻,同一事務執行結果不一樣
- 串行化
- 最嚴格的事務隔離級別
- 全部事務都串行執行,不能併發執行
- 事務隔離級別越高,完整性一致性越強,同時對併發性能影響越大
- 對於絕大多數應用程序,設置爲受權讀取
持久性性能
分佈式事務blog
- 也稱嵌套型事務
- 實現嚴格的事務,就要犧牲分佈式系統可用性
- 可用性與一致性的妥協
CAP理論進程
- 分佈式系統不能同時知足C(consitency)一致性、A(availablity)可用性、P(partition tolerance)分區容錯性
- 最多隻能同時知足倆
- 一致性
- 數據在多個副本之間是否保持一致
- 一個節點上數據更新後,在其餘節點上能讀到更新後的數據,稱爲一致
- 可用性
- 用戶的操做須要在「有限的時間內」 「返回結果」(兩者缺一 都不叫可用)
- 分區容錯性
- 分佈式系統遇到任何網絡分區故障的時候,仍然能提供一致性和可用性的服務
- 分區容錯性每每是分佈式系統的一個基本要求,所以,大多數分佈式系統都是在一致性和可用性之間作平衡
BASE 理論事務
- BA(基本可用)、S(軟狀態)、E(最終一致性)
- BASE 是對CAP 理論可用性、一致性權衡的結果,是大型互聯網系統分佈式實踐的總結
- 基本可用
- 是指系統遇到不可預知故障時,容許損失部分可用性(好比雙十一,部分次要功能下線)
- 好比時間上損失(搜索結果不是0.5秒返回結果,1--2秒返回)
- 好比雙十一部分消費者被引導到降級頁面
- 軟狀態
- 容許出現中間狀態,容許在不一樣節點之間複製數據延時
- 最終一致性
- 五大類變種:
- 因果一致性
- A更新數據後通知B,B操做要基於A更新後的值
- 不相關的 C操做無限制
- 讀本身所寫
- 會話一致性
- 單調讀一致性
- 一個進程從系統中讀取數據項某個值,該進程不能讀到比這個值更舊的值
- 單調寫一致性
- 能夠將上述5項中,部分項結合起來構建最終一致性的分佈式系統