根據"Guide to Scaling Web Databases with MySQL Cluster",MySQL Cluster 7.3在使用同步更新複製時可以實現99,999%的可用性。 這將與CAP Theorem相反,因爲它表明完美的可用性(99,999%可以被看作是這個,不是?),並且在分佈式系統中一致性是不可行的。MySQL Cluster 7.3如何實現99,999%的可用性?與CAP的對立理論
如果負責副本的數據節點不可達,羣集如何響應更新?對於同步更新複製,它必須阻止,這會影響可用性。
該指南指出:
- 一個數據節點中的數據同步複製至該節點組內的所有節點 。如果一個數據節點失敗,那麼總是有至少一個其他數據節點存儲相同的信息。
- 如果發生數據節點故障,MySQL服務器或應用程序可以使用節點組中的任何其他數據節點來執行事務處理 。應用程序只需重試該事務,其餘數據節點將成功滿足該請求。
但如何才能,如果一個節點組由兩個節點和一個崩潰(例如here)的這項工作?據我所知,沒有Node會將更新複製到使用同步更新複製的更新失敗?!當複製節點不存在寫入複製副本時,複製是否暫停?
也許我們有讀取的可用性,但是如果我們每個節點組只剩下一個節點並且副本數量定義爲兩個,那麼其餘節點不能接受寫入,因爲它無法更新第二個副本?或者我在這裏得到錯誤? – NorRen
@NorRen否,如果所有節點都是**主**,它們將接受更新請求並將與其餘節點同步。如果一個節點死了,當然,它不能被更新。如果一個節點死亡,系統將繼續運行,這就是爲什麼你有多個節點而不是一個節點; **如果您不希望系統停止接受更新請求,您應該擁有多個主控制器**,而不是主從式架構。這個或一個**從節點被提升爲新的主**。 –