分散式系統關鍵點 分散式系統(distributed system)是建立在網路之上的軟體系統。正是因為軟體的特性,所以分散式系統具有高度的內聚性和透明性。因此,網路和分散式系統之間的區別更多的在於高層軟體(特別是操作系統),而不是硬體。內聚性是指每一個資料庫分佈節點高度自治,有本地的資料庫管理系統 ...
分散式系統關鍵點
分散式系統(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、 順序讀寫