- 分布式實時處理系統:原理、架構與實現
- 盧譽聲
- 760字
- 2019-01-03 10:50:22
1.3.4 并發處理能力
可能讀者已經想到了,分布式系統引發的一個問題就是并發導致的一致性該如何處理?我們舉個例子這個問題就比較清楚了。在分布式系統中,我們假設有兩個節點A和B同時操作一條數據倉庫的記錄,那么數據倉庫中的最終結果是由節點A操作產生的,還是由節點B操作產生的呢?這樣看來,并發請求處理對對象的操作可能相互沖突,產生不一致的結果。我們設計的分布式系統必須確保對象的操作在并發環境中能夠安全使用。因此,對象的并發或同步操作必須確保數據的一致性。
除了一致性之外,我們還希望可以一直對系統進行讀寫,這就是所謂的可用性。而為了一致性,讀取或寫入操作可能需要等待,常常需要緩沖等處理方式,這又是一件非常討厭的事情,因為它犧牲了可用性。
數據庫系統還有另一個性質——分區容錯性,許多人都闡述過,這是數據庫系統必須保證的特性,而在此情況下,從傳統上來講,一致性和可用性我們只能二選其一。分布式存儲具有以下特性(CAP)。
1)Consistency(一致性):同一個數據在集群中的所有節點,同一時刻是否都是同樣的值。
2)Availability(可用性):集群中一部分節點故障后,集群整體是否還能處理客戶端的更新請求。
3)Partition Tolerance(分區容錯性):是否允許數據的分區,分區是指是否允許集群中的節點之間無法通信。
提示 在理論計算機科學中,CAP定理(CAP Theorem)又被稱作布魯爾定理(Brewer' s Theorem),它指出對于一個分布式計算系統來說,不可能同時滿足CAP3個條件。
而由于當前的網絡硬件肯定會出現延遲丟包等問題,所以分區容忍性是我們必須要實現的。所以我們只能在一致性和可用性之間進行權衡,沒有NoSQL系統能同時滿足這三點。有關CAP理論的更多具體解釋,讀者可以參閱:https://en.wikipedia.org/wiki/CAP_theorem。
在一個分布式系統中,CAP定理會使得整個系統變得非常復雜,而且會嚴重影響整個系統的并發性能。如何在盡量滿足CAP定理的前提下提升系統的并發計算與存儲能力,值得我們思考。