什麼是分割槽容錯性?
一個分散式系統裡面,節點組成的網路本來應該是連通的。然而可能因為一些故障,使得有些節點之間不連通了,整個網路就分成了幾塊區域。資料就散佈在了這些不連通的區域中。這就叫分割槽。
當你一個數據項只在一個節點中儲存,那麼分割槽出現後,和這個節點不連通的部分就訪問不到這個資料了。這時分割槽就是無法容忍的。
提高分割槽容忍性的辦法就是一個數據項複製到多個節點上,那麼出現分割槽之後,這一資料項就可能分佈到各個區裡。容忍性就提高了。
然而,要把資料複製到多個節點,就會帶來一致性的問題,就是多個節點上面的資料可能是不一致的。要保證一致,每次寫操作就都要等待全部節點寫成功,而這等待又會帶來可用性的問題。
總的來說就是,資料存在的節點越多,分割槽容忍性越高,但要複製更新的資料就越多,一致性就越難保證。為了保證一致性,更新所有節點資料所需要的時間就越長,可用性就會降低。
分類: 分散式
什麼是分割槽容錯性?
一個分散式系統裡面,節點組成的網路本來應該是連通的。然而可能因為一些故障,使得有些節點之間不連通了,整個網路就分成了幾塊區域。資料就散佈在了這些不連通的區域中。這就叫分割槽。
當你一個數據項只在一個節點中儲存,那麼分割槽出現後,和這個節點不連通的部分就訪問不到這個資料了。這時分割槽就是無法容忍的。
提高分割槽容忍性的辦法就是一個數據項複製到多個節點上,那麼出現分割槽之後,這一資料項就可能分佈到各個區裡。容忍性就提高了。
然而,要把資料複製到多個節點,就會帶來一致性的問題,就是多個節點上面的資料可能是不一致的。要保證一致,每次寫操作就都要等待全部節點寫成功,而這等待又會帶來可用性的問題。
總的來說就是,資料存在的節點越多,分割槽容忍性越高,但要複製更新的資料就越多,一致性就越難保證。為了保證一致性,更新所有節點資料所需要的時間就越長,可用性就會降低。
分類: 分散式