分布式系統關鍵點
分布式系統(distributed system)是建立在網絡之上的軟件系統。正是因為軟件的特性,所以分布式系統具有高度的內聚性和透明性。因此,網絡和分布式系統之間的區別更多的在於高層軟件(特別是操作系統),而不是硬件。內聚性是指每一個數據庫分布節點高度自治,有本地的數據庫管理系統。透明性是指每一個數據庫分布節點對用戶的應用來說都是透明的,看不出是本地還是遠程。在分布式數據庫系統中,用戶感覺不到數據是分布的,即用戶不須知道關系是否分割、有無副本、數據存於哪個站點以及事務在哪個站點上執行等
一、分布式系統計算節點分布和計算節點一致性算法
1、 現分布式15個節點,計算任務分布如下:
計算任務ID
2i-1
(+節點編號)任務分配節點
1
1
2
2
2
3
3
4
5
4
8
9
即在計算節點1上的任務為2、3、5、9,以此類推出個計算節點負責的計算任務編號。
2、 當分布式節點中並未存在計算節點,或分配任務的計算節點掛了,尋找最近計算節點,如當20計算任務分配到18結算節點
3、 當分布式計算節點中加入新的節點後,各節點計算任務重分配問題
當加28計算節點後,2和20計算點首先進行重新計算、當進入新的計算節點後,通過1網相鄰節點傳播,尋找計算節點
二、分布式系統中各類一致性問題
1、 順序一致性
當P1寫入x值後,各計算節點,應該在讀到x值後應該不可回溯
2、 因果一致性
當p1計算節點連續寫入x後,p2計算節點同樣對x進行操作,其他計算節點對x當讀可以存在不一致,但不一致應該是順序的一致性。
3、 客戶一致性
保持計算節點的一致性最終目標是實現系統的客戶一致性,上海客戶到西安出差,讀取西安節點郵件列表,可以只展現最新郵件,但最新郵件必須和上海計算節點一致,對歷史數據加載通過異步實現
4、 接口一致性
IOS和android在使用微信上的用戶體驗差距並沒有太大差別,接口的一致性。
5、 面向數據一致性
三、數據一致性
1、 單調讀
2、 單調寫
3、 讀寫一致
4、 順序讀寫