1. 程式人生 > >萬字長文剖析AliSQL X-Cluster|基於X-Paxos的高效能強一致MySQL資料庫

萬字長文剖析AliSQL X-Cluster|基於X-Paxos的高效能強一致MySQL資料庫

 MySQL資料庫從誕生以來就以其簡單、易用、開源為其主打特點,成為不少開發者首選的資料庫系統。阿里在2008年開始提出"去IOE"的口號,其中,使用大量的MySQL,配合業務的改造替代原有的商業版Oracle系統。

MySQL資料庫從誕生以來就以其簡單、易用、開源為其主打特點,成為不少開發者首選的資料庫系統。阿里在2008年開始提出"去IOE"的口號,其中,使用大量的MySQL,配合業務的改造替代原有的商業版Oracle系統。自此集團邁入了MySQL資料庫的時代。根據阿里交易型應用的特點,以及雙十一這樣業界罕有的需求推動下,我們在官方的MySQL基礎上增加了非常多實用的功能、效能補丁,打造了AliSQL這個業界響噹噹的MySQL分支品牌。

時間很快走到2014年,隨著業務高速的增長,同城主備AliSQL部署的方式已經無法滿足阿里對可擴充套件的部署、國際化、以及容災方面的需求。“異地多活”成為了公司應用的新標準。“異地多活”也給底層的資料庫提出了新的容災要求。傳統的Master-Slave架構下,主備如果不使用強同步模式就會存在資料丟失的可能,然而強同步下一旦有節點異常則整體不可服務。而且這套架構下需要HA工具來進行選主的仲裁和控制。

過去阿里巴巴的DBA們開發了高效可靠的HA以及一整套工具和流程來做主備切換後資料和日誌的校驗和訂正。然而我們相信技術的發展能帶來更大的運維便利性以及更好的使用者體驗。以Google Spanner以及Amazon Aruora 為代表的NewSQL系統為資料庫的資料一致性給出了與以往不同的思路:基於一致性協議搭建分散式的多副本資料庫。

本文字數近萬字,建議對資料庫感興趣的童鞋收藏細看。

AliSQLX-Cluster 介紹

AliSQL X-Cluster(本文中簡稱X-Cluster)是阿里巴巴資料庫團隊推出的相容MySQL 5.7,提供資料強一致功能,支援全球部署的分散式資料庫叢集產品。

說到AliSQL X-Cluster就不能不提其分散式核心,一致性協議。

X-Paxos是阿里巴巴自主研發的一致性協議庫,目標是填補市面上高效能、易接入的一致性協議庫的空白。而市面上已開源的一致性協議實現,包括etcd以及其他廠商等都存在或效能不夠,或功能上無法滿足複雜的現實應用場景需求的問題。

有了X-Paxos,可基於它打造一套強一致的分散式系統,X-Cluster是第一個接入X-Paxos生態的重要產品,利用了X-Paxos實現了自動選主,日誌同步,叢集內資料強一致,線上叢集配置變更等功能。同時X-Cluster基於MySQL生態,相容最新版本的MySQL 5.7,集成了AliSQL過去的各種功能增強。 MySQL的使用者可以零成本遷移到X-Cluster上。