資料庫基礎
關於在多台伺服器上放置資料副本的分散式資料庫,下列何者是對CAP定理的適當說明?
- A伺服器之間的網路發生分區時,無法同時完全滿足「從任何伺服器讀取都傳回最新值」的一致性,與「回應所有請求」的可用性
- B只要設計得當,一致性、可用性與分區容錯性三者永遠可以同時滿足
- C分區容錯性是指把線路備援化,使伺服器之間的網路不會被分割
查看答案與解析
正確答案:A. 伺服器之間的網路發生分區時,無法同時完全滿足「從任何伺服器讀取都傳回最新值」的一致性,與「回應所有請求」的可用性
CAP定理指出,分散式資料庫無法同時完全滿足一致性(Consistency:從任何伺服器讀取都傳回最新寫入的結果)、可用性(Availability:未故障的伺服器會回應所有請求)、分區容錯性(Partition tolerance:即使伺服器之間的通訊被切斷,系統仍能持續運作)三者。由於網路分區在現實中無法避免,重點在於發生分區時,必須選擇要優先一致性而停止回應部分請求,還是優先可用性而容許傳回舊值並持續回應。沒有發生分區時,可以同時滿足一致性與可用性。許多NoSQL產品優先可用性,採用隨時間經過副本終將一致的最終一致性。分區容錯性不是把線路備援化,而是即使發生分區也能持續運作的性質。
- A. 正確。發生分區時,必須選擇優先一致性或可用性。
- B. CAP定理指出三者無法同時完全滿足。
- C. 分區容錯性是發生分區時仍能持續運作的性質,而不是防止分區的機制。