newsence

Jepsen 測試報告:MariaDB Galera Cluster 12.1.2 安全性分析

Hacker News·20 天前

這份 Jepsen 報告分析了 MariaDB Galera Cluster 12.1.2 並發現了嚴重的致性問題,包含在協調崩潰期間的寫入遺失,以及即使在集群健康狀態下也會發生的更新遺失現象。

背景

這篇文章源自分散式系統測試專家 Kyle Kingsbury(以 Jepsen 系列聞名)對 MariaDB Galera Cluster 12.1.2 版本進行的深度安全性分析。Galera Cluster 作為 MariaDB 的主動-主動(Active-Active)複製系統,長期以來宣稱能提供強一致性與無延遲的同步複製,然而 Jepsen 的測試揭露了該系統在處理網路分區、節點故障甚至在正常運作的集群中,依然存在嚴重的資料遺失與一致性漏洞。

社群觀點

針對 Jepsen 的這份報告,Hacker News 上的討論呈現出實務經驗與理論嚴謹性之間的拉鋸。有使用者指出,這份報告的標題雖然中規中矩,但其內容揭示的「資料遺失」情況極為嚴重,認為標題應該更直接地反映出系統在特定條件下會導致資料損毀的事實。這種觀點反映了開發者社群對於資料庫系統「安全性宣傳」與「實際表現」之間落差的警覺,特別是當官方文件多次強調其具備同步複製與無損交易的特性時,Jepsen 的發現無疑是一記警鐘。

在實務應用層面,部分資深工程師分享了對 Galera Cluster 的正面評價,認為它在低流量的集群環境中表現優異。例如有使用者在管理數千名用戶的郵件伺服器時,利用其多主機架構來儲存帳戶資訊與日誌,且穩定運行超過十年。這類觀點認為,儘管 Jepsen 提出的極端故障測試揭露了架構缺陷,但在許多實際的商業場景中,Galera 依然是一個可靠且勤勉的工具,其多主機寫入的便利性在特定規模下具有不可替代的價值。

然而,討論中也出現了對系統基礎設計的質疑。最令社群感到不安的並非僅是故障時的表現,而是 Jepsen 提到 Galera 在「健康集群」中也會出現陳舊讀取(Stale Read)與更新遺失(Lost Update)等現象。這被視為一個極其根本的問題,因為這意味著即便在沒有網路波動或硬體損壞的情況下,開發者也無法完全信任資料庫的一致性保證。這種爭論點出了分散式系統設計中的核心矛盾:在追求高可用性與寫入便利的同時,往往必須在一致性模型上做出妥協,而 Galera 顯然在文件宣稱與實際行為之間存在著模糊地帶。

整體而言,社群對於這份報告的反應是謹慎且帶有批判性的。一方面認可 Galera 在特定規模下的實戰穩定性,另一方面也對其在一致性保證上的誤導性宣傳感到憂心。對於依賴強一致性交易的應用程式來說,Jepsen 的測試結果提醒了開發者,不能僅憑官方文件對隔離級別的描述就盲目信任系統的安全性。

https://jepsen.io/analyses/mariadb-galera-cluster-12.1.2