《分佈式計算--原理、算法與系統》讀書筆記

Distributed Computing —— Principles, Algorithms, and Systems

分佈式計算是指由計算機網絡連接的多處理平臺的各種形式的計算、信息訪問與信息交換。

第一章 引言

分佈式軟件也稱中間件
OMG(對象管理工作組),CORBA(公用對象請求代理體系結構),RPC(遠程過程調用),DCOM(分佈式組件對象模型),RMI(遠程方法調用),MPI(消息傳遞接口)
因爲各個進程需要按順序進行,所以需要分佈式計算。
並行系統:1.多處理器系統,可訪問共享內存 2.多處理器系統,處理器不能直接訪問共享內存
3.陣列處理器
拓撲:Omega,蝴蝶互聯,網,環,圓環面,立方體,超立方體
處理模式:SISD,SIMD(單指令流,多數據流),MISD,MIMD
耦合:4種MIMD體系結構
並行:加速比,累積衡量
併發:本地操作和全局操作的比例
粒度:計算總量與通信總量的比例
消息傳遞系統與共享內存系統
阻塞/非阻塞,同步/異步原語,緩衝/非緩衝
無錯誤系統中,基本系統類別AMP,SMP,SSM,ASM
主題,系統挑戰,算法挑戰,應用


第二章 分佈式計算模型

有向圖建模,節點表示處理器,邊表示單向通信信道
分佈式計算的全局狀態:各個進程的狀態以及所有通信信道的狀態。
原子動作:內部事件,消息發送事件,消息接收事件。
邏輯併發,物理併發
通信網絡模型:FIFO,非FIFO,因果序
分佈式系統的全局狀態:個組成部件本地狀態的集合,包括所有處理器本地狀態以及通信信道狀態的集合。
處理器本地狀態:處理器寄存器狀態、堆棧狀態、本地內存狀態等等,依賴於分佈式應用的本地語義。
信道狀態:信道中傳輸的消息集合。
一致性全局狀態,非一致性全局狀態。
運行分割:PAST集合和FUTURE集合。 一條分割線對應一個全局狀態。 一致性分割,非一致性分割。
時間的過去和未來錐面。
進程通信模型:同步通信和異步通信。


第三章 邏輯時間

邏輯時間:標量時間,矢量時間,矩陣時間
偏序(先發生,因果優先),全序,線性排序
虛擬時間,時間變形(前視-回滾,本地控制機制,全局控制機制)
網絡時間協議(NTP)


第四章 記錄全局狀態與快照算法

分佈式系統的每個組件都有一個本地狀態,進程的狀態由其本地存儲器和活動歷史描述。
通道狀態由沿通道發送的消息減去沿通道接收的消息的集合描述。
分佈式系統的全局狀態是其組件的本地狀態的集合。
一致性全局狀態。
計算消息,控制消息。
FIFO,非FIFO,消息的因果傳送。
分佈式系統的一個全局快照是來自每個進程的每個檢查點和集合。 一致性全局快照的任何2個不同的檢查點之間不存在一條因果路徑(必要條件)。
一致性全局快照的充分必要條件是任何2個不同的檢查點之間不存在zigzag路徑或環路。


第五章 術語和基本算法

物理拓撲結構,邏輯拓撲結構(邏輯通道,邏輯鏈),重疊拓撲結構(樹、環、網狀、超立方)
分類:集中式算法和分佈式算法,對稱算法和非對稱算法,匿名算法,一致算法,自適應算法,確定性執行對非確定性執行,執行抑制,同步系統和異步系統,聯機算法與脫機算法,故障模型(7個進程故障模型(同步系統含3個計時故障),3個通信故障模型(同步系統也有計時故障)),無需等待算法,通信信道。
空間複雜度(節點和系統),時間複雜度(節點和系統),消息複雜度(空間和時間部分,消息數,消息尺寸,消息時間複雜度)。 無向無權重圖的系統結構,圖的直徑是指從任意節點到其他所有節點的遍歷需要走過的最小邊數。
併發順序進程(CSP)
經典路由算法在分佈式計算的環境下的難度加大。
同步工具:簡單同步,α,β,γ。
最大獨立集合(MIS),該集合的節點均不直接相連。
連通支配集(CDS),N的支配集N‘使N/N‘的每個節點有一條通向N‘中某個節點的邊。 CDS和最小連通支配集(MCDS)尺寸最壞情況下的比率爲近似因子。 伸縮因子。
緊湊路由表:分層路由模式,樹標記模式,間隔路由模式,前綴路由模式

同步:順序進行。
異步:各自執行各自的。


第六章 消息序與組通信

本章不考慮內部事件。
消息序:非先進先出序/異步執行過程(A),先進先出序(FIFO),因果序(Casual Order,CO),同步序(SYNC/RSC)。
皇冠。
非確定性,回合
組通信:多播。
全序。
多播術語:SSSG,MSSG(多源單目的地羣組),SSMG,MSMG
多播傳播樹。
應用層多播算法分類:基於通信歷史,基於優先級,活動定序器,固定定序器,目的地契約,
容錯組通信,常規特色和統一特色。
網絡層多播算法:洪泛約束的反向路徑轉發,Steiner樹,核基樹


第七章 終止檢測

判斷分佈式計算進程是否結束
全局終止,本地終止
正常計算:基本消息
終止檢測(Termination Detection, TD):控制消息

進程狀態: 活躍/繁忙,空閒/被動


第八章 知識推理

Muddy children:n個孩子,k個有泥巴,k大於等於1。 
問k次,k個有泥巴的孩子都會回答有泥巴。 實際上,第k次問之前,孩子已經知道自己有無泥巴了。
k大於等於1爲關鍵點,爲系統的共識。 沒有該條件,不論問多少次,所有人都回答不確定。
E(每個進程知道),K(某個進程知道),C(共同知識)
克里普克結構


第九章 分佈式互斥算法

任何給定時刻只允許一個進程執行臨界區(critical section,CS)
消息傳遞是實現分佈式互斥的唯一方法,信號量或局部內核無法實現分佈式互斥。
基本方法:1.令牌 2.非令牌 3.仲裁團
性質:
1.安全性:互斥
2.活性:無死鎖和飢餓
3.公平性:機會公平
性能指標:消息複雜度,同步延遲,響應時間,系統吞吐量


第十章 死鎖檢測

死鎖預防,死鎖避免,死鎖檢測(最好方法)
進程的2種狀態:運行,阻塞
WFG圖,成環或結即存在死鎖
死鎖檢測:檢測現存的死鎖,解鎖
死鎖檢測算法:中心式算法,分佈式算法,分層算法
死鎖模型:單資源模型,AND模型,OR模型,AND-OR模型,(p q)模型,無限制模型
分佈式死鎖檢測算法:路徑推送算法,邊探測算法,基於計算分散的算法和基於全局狀態檢測的算法
死鎖檢測的2個任務:構造和維護WFG圖,在WFG圖中查找死鎖條件(環或結)


第十一章 全局謂詞的檢測

系統狀態謂詞
謂詞的形態:Possibly,Definitely
穩定謂詞:死鎖,終止
不穩定謂詞
關係謂詞,合取謂詞,本地謂詞,穩定謂詞,析取謂詞,觀察者無關謂詞


第十二章 分佈式共享內存

分佈式共享內存(Distributed Shared Memory,DSM)
內存一致性模型:可被允許的內存訪問次序集合
內存一致性模型6種:無一致性,PRAM/處理器一致性,順序一致性,線性/原子一致性/強一致性,因果一致性,慢內存
其他原則的一致性模型:弱一致性,釋放一致性,入口一致性
共享內存的互斥
等待無關性

寄存器的4種劃分:3類型(安全寄存器,普通寄存器,原子寄存器),2變量值(布爾,多值),2讀方式(SR,MR),2寫方式(SW,MW)。 把寄存器分爲24種類型。

快照爲系統運行過程中瞬間的全局狀態。


第十三章 檢查點和捲回恢復

檢查點:分佈式系統保存的狀態
捲回恢復:從前一個檢查點狀態重新開始的過程
連鎖回滾會形成多米諾效應,捲回傳播可能回退到計算的初始狀態,丟棄故障前運行的所有工作。
獨立檢查點或者非協同檢查點。
協同檢查點。通信誘導檢查點。
基於檢查點和日誌的捲回恢復。
捲回恢復定義:如果一個系統內部狀態與它在發生錯誤之前觀察到的行爲是一致的,那麼這個系統正確恢復。

本地檢查點。 本地檢查。
OWP外部世界進程。
輸出提交問題。
消息的不同類型:傳輸中的消息,丟失消息,延遲消息,孤兒消息,重複消息

基於檢查點的恢復技術:
1.無協作檢查點
2.協作式檢查點:阻塞,非阻塞
3.通信引導檢查點:模型,索引

確定事件和非確定事件
基於日誌的捲回恢復協議:悲觀日誌協議,樂觀日誌協議,因果日誌協議


第十四章 共識和協定算法

各個進程達成共識/一致
假設:1.故障模型 2.同步/異步通信 3.網絡連接 4.發送方身份識別 5.通道可靠性 6.認證消息與未經認證的消息 7.協定變量
拜占庭協定,共識問題,交互一致性問題
可靠廣播問題,k-set共識問題,ε協定問題,重命名問題
全局狀態的價
不可解問題:異步系統達成共識,領導人選舉問題,廣播-匯聚數據流模型中網絡端全局函數的計算,結束可靠的廣播,原子性廣播
共識數,共識層級,共識對象(對象即操作原語),RMW(Read-modify-write)
本章覆蓋的共識問題:1.有故障的同步消息傳遞系統 2.有故障的異步消息傳遞系統 3.異步系統中無等待的共享內存共識問題


第十五章 失效檢測

檢測進程是否失效/崩潰。
進程p在時間t崩潰:進程p在時間t後不能進行任何動作。 失效是永久性的,無法恢復。 正確進程是不會崩潰的進程。
失效模式F:F(t)表示到時間t已崩潰的進程集合
環境E是失效模式的集合,描述一個系統中能發生的崩潰
一般來說,我們考慮包含所有可能失效模式的環境,即崩潰進程數不受限制。
每個進程都有一個本地失效檢測程序模塊D。
重要範式:一致/共識,原子廣播
同步系統限定執行時間和傳輸延遲,異步系統不限制處理器的速度、時鐘的漂移、消息傳送的延遲。
完備性要求一個失效檢測程序最終能懷疑所有已崩潰的進程
準確性限制一個失效檢測程序產生錯誤(即一個正確的進程懷疑另一個正確的進程)
完備性定義:存在一個時間,在這個時間之後,已崩潰的每個進程都會被正確進程永久地懷疑
準確性定義:存在一個時間,在這個時間之後,一個正確的進程永遠不會被任何正確的進程懷疑
最終準確性:不要求每個進程在全部時間裏滿足準確性,而是要求最終滿足準確性
2種完備性和4種準確性,共8類失效檢測程序。
可約性:一個失效檢測程序能轉換成另一個失效檢測程序

共識問題:終止,統一完整,一致,一致有效

原子廣播要求所有的正確進程以相同的順序發送相同的消息集(即發送相同的消息序列)。
原子廣播定義爲全序可靠廣播。
全序性:如果兩個正確進程p和q發送兩個消息m和m’,那麼p在m’之前發送m當且僅當q在m’之前發送m。
在有崩潰失效的異步系統中,共識和原子廣播是等效的/可互相簡約的。


第十六章 分佈式系統中的驗證

認證協議
認證:識別+驗證
基於認證的祕密信息:共有信息(共享密鑰),持有信息(智能卡),內在信息(生物識別)
需要識別的實體/認證的主體:主機,用戶,進程(客戶端,服務器)
認證協議的分類:
1.密碼系統的類型(對稱與非對稱)
2.認證的相互性(雙向與單向)
3.密鑰交換
4.第三方的實時參與(在線與離線)
5.第三方的信任需求類型
6.安全保證的類型和機密的存儲

在密碼學中Nonce是一個只被使用一次的任意或非重複的隨機數值

密碼協議的設計原則11條


第十七章 自穩定

自穩定:不管系統的初始狀態如何,系統都能夠保證在給定的時間內自己聚集到合法的狀態,不需要外在的介入。
進程P,通信連接,FIFO隊列Q。
系統模型:處理元素的圖(模型化的狀態機)。元素之間的邊表示單向或雙向通信連接。
網絡直徑,靜態,動態。
在動態系統中,自穩定指最終連接或節點故障的時間。
共享內存模型,合成原子性,讀/寫原子性。
進程的狀態,通信寄存器的內容。

一個系統S關於謂詞P是自穩定的,如果滿足閉包、收斂的性質。
S的狀態滿足P稱作P,稱作合法狀態/安全,若不滿足稱爲非法狀態/不安全。

可達集合:在正常程序執行中從一組合法的起始狀態可達到的狀態爲安全是合理的,這些狀態被稱作可達集合。
瞬時故障:臨時的(短時存在)且不會持久的故障。
自穩定性分爲隨即自穩定性,概率自穩定性。
僞穩定系統和自穩定系統的區別,沒有和不能偏離意向中的規範。
合法狀態的4個約束:
1.活動或非死鎖
2.封閉性
3.不飢餓
4.可達到性

匿名網絡/一致網絡中,每個進程是匿名的,即它們是沒有區別的且運行相同的算法。
有一個進程(根)運行不同的算法,則這個網絡是半一致網絡。
一致性是一個理想的性質,大多數自穩定算法是非一致的(即它們使用至少一個特權機)。
中央和分佈式守護程序。 決定哪一個有特權的狀態機將產生下一次移動。
自穩定的開銷:收斂範圍,響應範圍。 輪數。

自穩定性系統常用技術:分層和模塊化。
結構化機制原語:共用鎖原語和基於拓撲的原語。

通信協議是在網絡通信鏈上交換信息的進程集合。
5類錯誤。3個性質。

自穩定算法的時間複雜度(輪數),空間複雜度(狀態數量)。
分佈式系統中,獨立集合被定義爲成對的、非相鄰節點的最大子集。最大獨立集合是這樣一些節點的集合,不在這個集合中的每一個節點與在這一集合中的某個節點相鄰。

編譯:把用一種語言寫的程序轉換成用另一種語言寫的等價程序。
容錯:容許瞬時故障。
自穩定系統能夠處理的瞬時故障:非一致初始化,改變模式,傳輸錯誤,進程故障和恢復,內存損壞。

阻礙自穩定的因素:對稱,停止(終止),孤立,相似的配置。
自穩定的侷限:需要一個特殊的機器,收斂-響應平衡,僞穩定,自穩定系統驗證。

自穩定算法:中央和分佈式守護程序,一致和非一致網絡算法
自穩定通信協議:滑動窗口協議,雙路握手協議和交替位協議


第十八章 對等計算及覆蓋網絡

對等網絡系統(P2P)使用應用層覆蓋網路組織,對存儲於網絡上的各種資源(比如文件,多媒體文檔等)進行靈活的共享。
著名的P2P網絡系統:Napster,Gnutella,Freenet,Pastry,Chord,CAN,Tapestry。
網絡擾動:在P2P網絡中,不同節點不斷加入或推出記憶所存儲對象不斷被動態插入和刪除的現象。
P2P搜索使用P2P覆蓋網絡(Overlay,也稱重疊網絡,應用層的覆蓋網絡,代表一種邏輯上多對多的連通性)。
P2P覆蓋網絡結構化:超立方體結構,網格結構,蝴蝶網絡結構,德布魯因圖結構等。
P2P覆蓋網絡非結構化:不使用任何特定的圖結構。  結構鬆散。搜索:洪泛,隨機行走等。
數據索引:集中式,分佈式(如DHT,分佈式哈希表),本地式。
數據索引:語義(支持關鍵字查找,範圍查找,近似查找),非語義
P2P網絡拓撲:冪律隨機圖(PLRG),普通隨機圖

靜態複製策略:均勻複製,按比例複製,平方根複製
對象查詢的效率指標:成功率,延遲或跳數,消息數,節點覆蓋率,重複消息數,單節點的最大消息數,召回數,消息有效性
有指導查找和無指導查找。
洪泛:覈實法,TTL或跳數計數,擴展環
隨機行走:checking-cum-TTL

內容尋址網絡(CAN)本質上是一種將對象映射到其網絡位置的索引機制。
CAN支持三種基本操作:鍵值對(key,value)的插入,查找,刪除。
CAN維護:TAKEOVER協議。
CAN優化:多維度,多現實,延遲,共享協同區域,多哈希函數,拓撲敏感覆蓋網絡

浸出或搭便車:節點具有自私的傾向,只下載文件,不允許別人下載它們自己本地所存的文件
囚徒困境,帕累托最優方案,以牙還牙法。
信任,中間人攻擊,Sybil女巫攻擊。

路由表大小和網絡直徑間的基本漸進式取捨。 弱均勻,強均勻,節點非擁塞/邊界非擁塞。

複雜網絡:計算機科學,社會網絡,語言學,電力網絡,自然。
隨即圖模型,即Erdos-Renyi(ER)模型。
小世界網絡,集羣,度分佈。
拓撲:WWW,INTNET,AS,ACT,AUTH,SUBSTRATE,PROT,PHON,CITE,WORDOCC,WORDSYN,POWER

Internet圖,Web站點訪問的流行度,齊普夫(Zipf)模型,帕累託(Pareto)模型,冪律模型
Internet的特性:1.排序指數/齊普夫模型 2.度指數冪/PDF和CDF 3.特徵指數ε 4.Hop-plot指數h
中介中心指標。
指數網絡,規模無關網絡。 錯誤和攻擊容忍。

小世界網絡:高聚類係數和低路徑長度。

演化網絡:BA模型。優選,生長,局部事件,生長限制,競爭,受引導的擇優。

非結構化網絡的不同查找機制:洪泛查找,受約束的洪泛查找,盲查找

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