基本信息
概述
在計算機科學領域,分散式一致性問題是一個相當重要,且被廣泛論證與探索的問題。通常存在於分散式記憶體共享,分散式存儲(例如:分散式檔案系統,資料庫,快取)等分散式系統中。
問題原型
假設有下列場景:
-節點N_1和N_2上存放著數據X的拷貝
-客戶端A更新節點N_1上的數據X
-一段時間之後,客戶端從節點N_2上讀取數據X
在這個場景中,客戶端B從節點N_2上是否可以讀取到客戶端A在節點N!上的數據更新取決於系統的實現,而這便是分散式一致性問題。
一致性算法
Paxos算法是萊斯利·蘭伯特(Leslie Lamport,就是
LaTeX中的La,供職於微軟研究院)於1990年提出的一種基於訊息傳遞且具有高度容錯特性的一致性算法,是至今為止最優秀的分散式一致性算法。
Basic PaxosMulti-PaxosCheap PaxosFast PaxosGeneralized PaxosByzantine Paxos工程實現
zookeeper
zookeeper是Hadoop的正式子項目,它是一個針對大型分散式系統的可靠協調系統,提供的功能包括:配置維護、名字服務、分散式同步、組服務等。ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的接口和性能高效、功能穩定的系統提供給用戶。
Chubby
來自Google的Paxos實現,是一個分散式鎖服務。
spanner
Spanner是谷歌公司研發的、可擴展的、多版本、全球分散式、同步複製資料庫。它是第一個把數據分布在全球範圍內的系統,並且支持外部一致性的分散式事務。本文描述了Spanner的架構、特性、不同設計決策的背後機理和一個新的時間API,這個API可以暴露時鐘的不確定性。這個API及其實現,對於支持外部一致性和許多強大特性而言,是非常重要的,這些強大特性包括:非阻塞的讀、不採用鎖機制的唯讀事務、原子模式變更。
IBM SVC
IBM SVC異構存儲整合解決方案實現了虛擬存儲層(Virtualization Layer)的功能,將存儲智慧型加入到SAN的網路中。用戶可以按照套用不斷變化的需求來分配存儲,而不再受制於存儲子系統設備在功能和性能上的限制。
SVC又是一個SAN網路的中心管理控制點,而且它對伺服器的作業系統和存儲子系統透明。
Microsoft AutoPilot
AutoPilot是微軟用於維護大規模網際網路服務的工具利器,採用簡單的模型和設計思想,AutoPilot負責自動化的運維數據中心中提供服務的大規模機器。