第10章 大数据与云数据库管理
以下圖片來自西安交通大學侯迪老師的ppt,僅供學習和復習使用,請勿轉載或他用
云數據管理的理論基礎(重點)
1. CAP定理
C:consistency 一致性 即分布式系統中的所有數據備份在同一時刻是相同的
A:availablility 可用性 即使一些節點故障,整體還是能夠響應客戶端的讀寫請求(總是能有結果)
P:partition tolerance 分區容忍性
一個分布式系統里面,節點組成的網絡本來應該是連通的。然而可能因為一些故障,使得有些節點之間不連通了,整個網絡就分成了幾塊區域。數據就散布在了這些不連通的區域中。這就叫分區。
當你一個數據項只在一個節點中保存,那么分區出現后,和這個節點不連通的部分就訪問不到這個數據了。這時分區就是無法容忍的。
提高分區容忍性的辦法就是一個數據項復制到多個節點上,那么出現分區之后,這一數據項就可能分布到各個區里。容忍性就提高了。
然而,要把數據復制到多個節點,就會帶來一致性的問題,就是多個節點上面的數據可能是不一致的。要保證一致,每次寫操作就都要等待全部節點寫成功,而這等待又會帶來可用性的問題。
總的來說就是,數據存在的節點越多,分區容忍性越高,但要復制更新的數據就越多,一致性就越難保證。為了保證一致性,更新所有節點數據所需要的時間就越長,可用性就會降低。
作者:鄔江 鏈接:CAP理論中的P到底是個什么意思? - 知乎 來源:知乎 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
CAP中只能滿足任意2個
2. 一致性模型
-
強一致性
強一致性(即時一致性)假如A先寫入一個值到存儲系統,存儲系統保證后續的讀操作都返回最新值。 例如:文件系統,RDBMS都是強一致性的。
-
弱一致性
假如A先寫入了一個值到存儲系統,存儲系統不能保證后續讀取操作能夠讀到最新值。 這種情況下有一個“不一致性窗口”,它特指從A寫入值,到后續操作A,B,C讀取到最新值這一段時間。 例如:某些cache系統,網絡游戲其它玩家的數據和你沒什么關系,或是百度搜索引擎。
-
最終一致性
最終一致性是弱一致性的一種特例 假如A首先write了一個值到存儲系統,存儲系統保證,如果在A,B,C后續讀取之前沒有其他寫操作更新同樣的值的話,最終所有的讀取操作都會讀取到A寫入的最新的值。 這種情況下,如果沒有失敗發生的話,“不一致性窗口”的大小依賴以下的幾個因素:
-
交互延遲
-
系統的負載
-
復制架構中replica的個數(可以理解為master/slave模式中,slave的個數)
例如:DNS,電子郵件。
服務器一致性(重點)
要保證強一致性,則必須W+R>N
同時要保證寫操作的高可用(寫的節點少即寫的時間少則可用性高):W=1,R=N
同時要保證讀的高可用:R=1,W=N
平衡:W=R=N/2+1,這里除是整除
詳細分析見:
https://segmentfault.com/a/1190000002802797
3.BASE性質
犧牲高一致性
4. 一致性哈希
5. PAXOS算法(略)
第10章習題
總結
以上是生活随笔為你收集整理的第10章 大数据与云数据库管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu18.04安装分析
- 下一篇: mysql分组查询学生平均年龄_8.21