OceanBase、X-DB、POLARDB 分佈關係型數據庫各自的優勢是什麼

OceanBase:

一、高擴展性

傳統關係型數據庫,比如Oracle或者MySQL功能已經很完善,但數據庫本身不可擴展,隨著數據量的增大和業務內容的豐富,需要拆庫拆表,然後再進行訪問路由,將相應的SQL解析路由到指定的數據庫中。數據庫的運維人員需要花費大量的時間來做數據庫擴容,包括讀寫分離、垂直拆分、水平拆分等等。

OceanBase使用了分佈式技術和無共享架構,來自業務的訪問會自動分散到多臺數據庫主機上。在相關技術的支持下,OceanBase還能夠採用廉價的PC服務器作為其數據庫主機。通過這兩個方面的變革,運維人員可以愉快地通過增加服務器數量來增加系統的容量和性能。(PC服務器的價格也比小型機、大型機低很多)

即使是遇到雙十一這種併發訪問量超級高的需求,阿里也可以通過“買買買”的方式,確保數據庫系統擁有足夠的容量和性能。

二、低成本

傳統商業企業採用的“IOE”體系,實際上代表了一種高成本、高維護費、很不互聯網(不擅長處理大規模高併發的互聯網行為)的商用數據庫系統。特別是阿里盤子越來越大,所需要付出的升級硬件和維護的代價也會越來越驚人,阿里巴巴採用數據切分的策略,將部分海量數據應用從集中式Oracle切換到分佈式集群,從縱向擴展到水平擴展,解決了數據庫擴展性的問題,並用PC服務器替換了小型機。

由此帶來的一個重要變革,就是成本的極大降低。與傳統數據庫公司的產品相比,OceanBase的升級維護不需要昂貴的共享存儲、高可靠的服務器、數據庫軟件的許可費,可以將商業數據庫成本降到一半以下。

伴隨著去IOE運動的全面開展,收入方面也誕生了新的機會:為應對海量高併發業務而採購的PC服務器資源,在低峰可以打包成雲計算產品出租給中小企業,在一定程度上抵消了一部分日常運維成本,甚至還有可能帶來盈利,真正意義上實現開源、節流的雙向拓展。

三、高可靠性

數據庫系統通常由數據庫軟件、運行數據庫軟件的數據庫服務器硬件以及保存數據庫數據的數據庫存儲硬件(即共享存儲)組成。數據庫系統的穩定可靠,也取決於這三個部分。使用PC服務器能夠帶來高擴展性、降低成本的同時,其硬件的可靠性卻對應有些下降。

如何保證系統的可靠性?OceanBase的一個基本假設就是硬件(服務器、存儲、網絡等)是不可靠的,因此,OceanBase必須保證任何時刻出現的少量硬件(服務器、存儲、網絡等)異常不影響業務。

為此,OceanBase引入了Paxos協議,每一筆事務,主庫執行完成後,要同步到半數以上庫(包括主庫自身),例如3個庫中的2個庫,或者5個庫中的3個庫,事務才成功。這樣,少數庫(例如3個庫中的1個庫,或者5個庫中的2個庫)異常後業務並不受影響。

分佈式事務一致性協議paxos主要用於保證一個數據在分佈式系統裡是可靠的。當在機器裡多數派都成功了之後,只要壞的機器是少數派,三個裡少數派是一個,多數派是兩個。三個機器裡面有兩個成功了,那就可以告訴用戶這個數據保證不會丟了。這個時候機可能會損壞,但是損壞任何一臺機器,至少還有另外一臺機器恢復過來,這是在系統內部自動去做容災。任何一臺機器壞了,或者有一臺機器落後,比如三個及其是一主拖著另外兩個成功了之後,就會把數據補上,肯定會保證另外兩份是OK的,最終三份是OK了,壞一臺機器都不會有問題。

X-DB :

1、生態 100% 兼容 MySQL

新一代分佈式關係型數據庫是對傳統關係型數據庫的傳承和革新。分佈式數據庫雖然在高可能、強一致、高性能、低成本、高伸縮等多個方面作出了劃時代的變革;但其依舊傳承了傳統數據庫強大的 SQL 接口,系統管理能力。NoSQL 的衰弱和 NewSQL 的興起,恰恰證明了這一點。一個新的分佈式數據庫,如果沒有傳承,自建一個新的生態,將會極大的提高用戶的學習和使用成本,整個工具和支持配套也將面臨很大的困難。因此,X-DB 作為一個新一代分佈式關係型數據庫,設計之初就選了業界相對開放和成熟的 MySQL 開源生態作為自己的基礎。這樣不單可以讓 MySQL 生態中的用戶零成本的切換到 X-DB 中,快速賦予業務分佈式數據庫所帶來的多種能力;同時可以讓 MySQL 生態中的各種周邊工具和 DBA 等生態的參與者平滑的切換到分佈式時代,賦予其支撐分佈式數據庫的能力。

事實證明 X-DB 選擇的這條路是正確的。在阿里集團及生態下的子公司內部,X-DB 在短短的幾個月內、在非常少的人力參與下,迅速的完成了對大量傳統 MySQL/AliSQL 集群的換代升級,使得阿里數據庫整體進入了分佈式時代,整個過程業務幾乎零參與。同時 X-DB 對 MySQL 生態下的運維繫統 / 工具、知識體系也實現了兼容,整個 MySQL 時代的支撐平臺,支撐人員都可以平滑的過度到分佈式數據庫時代,擁有了支撐下一代數據庫的能力,這個是非常難得的。

2. 跨 Region/ 全球強同步能力

業界支持分佈式強一致的數據庫很多,但是其強一致都是有範圍的,有些支持 AZ 內強一致,有些支持跨 AZ 強一致,真正能做到跨 Region/ 跨國強一致的卻是鳳毛麟角。目前業界主流數據庫中,只有 Spanner 宣稱自己是 Global Distribution,包括 Amazon Aurora 在內的其他主流數據庫目前都不支持跨 Region 的強一致。X-DB 是真正做到了跨 Region/ 跨國強一致的分佈式數據庫,並且在業務上得到了驗證。今年音視頻服務全站遷移 X-DB,同時 X-DB 支撐了音視頻服務國際化等多個國際化項目,實現跨國部署。包括核心交易系統、核心物流系統、核心 IM 系統在內的大量業務集群以跨 Region 強同步模式部署,使得業務擁有了城市級容災情況下,數據零丟失,服務秒級恢復的能力。核心物流系統、核心 IM 系統在雙 11 前夕分別進行了中心 Region 全不可用的容災演練,X-DB 在 15 秒內自動完成跨 Region 的重新激活,數據零丟失,這在整個行業都是先行者。

POLARDB:

POLARDB 是阿里雲數據庫團隊研發的基於第三代雲計算架構下的商用關係型雲數據庫產品,實現 100% 向下兼容 MySQL5.6 的同時,支持單庫容量擴展至上百TB以及計算引擎能力及存儲能力的秒級擴展能力,對比 MySQL 有 6 倍性能提升及相對於商業數據庫實現大幅度降低成本。

首先,受益於第三代分佈式共享存儲架構,使 POLARDB 實現了計算節點(主要做 SQL 解析以及存儲引擎計算的服務器)與存儲節點(主要做數據塊存儲,數據庫快照的服務器)的分離,提供了即時生效的可擴展能力和運維能力。

眾所周知,在傳統數據庫上做擴容、備份和遷移等操作,花費的時間和數據庫的容量成正比,往往上TB的數據庫容量加個只讀副本就需要一到兩天時間。POLARDB 的存儲容量可以實現無縫擴展,不管數據量有多大,2分鐘內即可實現只讀副本擴容,1分鐘內即可實現全量備份,為企業的快速業務發展提供了彈性擴展能力。

其次,與傳統雲數據庫一個實例一份數據拷貝不同, POLARDB 同一個實例的所有節點(包括讀寫節點和只讀節點)都實現訪問存儲節點上的同一份數據,使得 POLARDB 的數據備份耗時實現秒級響應。(備份時間與底層數據量無關)

最後,藉助優秀的 RDMA 網絡以及最新的塊存儲技術,實現服務器宕機後無需搬運數據重啟進程即可服務,滿足了互聯網環境下企業對數據庫服務器高可用的需求。