1. 程式人生 > >華為雲分散式資料庫中介軟體DDM和開源MyCAT對比

華為雲分散式資料庫中介軟體DDM和開源MyCAT對比

前言

華為雲分散式資料庫中介軟體(Distributed Database Middleware)是解決資料庫容量、效能瓶頸和分散式擴充套件問題的中介軟體服務,提供分庫分表、讀寫分離、彈性擴容等能力,應對海量資料的高併發訪問場景,有效提升資料庫讀寫效能。

圖1:DDM產品介紹

 

DDM前世之:MyCAT

MyCAT的使用情況全國範圍內粗略統計超過600家以上成功案例,涵蓋政府、金融、證券、網際網路、物聯網、電信、遊戲等眾多行業。支援1000億大資料,中國非常活躍的開源分散式資料庫中介軟體。MyCAT成功在於背後有一支強大的技術團隊,其參與者都是5年以上資深軟體工程師、架構師、DBA。

 

DDM與MyCAT的關係:DDM是基於MyCAT1.6.5版本增強而來。基於MyCAT增強的地方如下:

1、運維管理:DDM提供Console介面,可線上對DDM例項、邏輯庫、邏輯表、拆分規則等進行管理和維護

2、叢集高可用:DDM支援叢集高可用,可實現跨AZ,RDS也支援跨AZ

3、安全增強:支援VPC(虛擬私有云)、子網、安全組,與其他租戶網路隔離

4、質量保證:在質量方面補充了大量自動化測試用例(功能、效能),全方位進行質量保障措施

5、低成本:穩定的產品,完善的運維和技術支援,相比開源產品總體價效比更高;多種例項規格配置覆蓋不同業務規模場景,按需購買

6、效能增強:DDM與直連MySQL相比效能損耗得到了大大的降低,並且Sysbench OLTP場景效能得到飛躍的提升,效能資料如表2所示:

表2:OLTP效能測試

 

7、平滑擴容:在資料庫出現儲存容量瓶頸時,DDM支援通過新增新的RDS例項對儲存容量進行擴充套件,無容量上限,擴容無需應用改造,支援字串、數字、日期等多種拆緯度,擴容進度支援視覺化跟蹤,並且平滑擴容業務不中斷。平滑擴容原理如圖3所示:

圖3:平滑擴容原理

 

8、分散式事務:DDM當前支援單機、最大努力提交、最終一致性和強一致性四種分散式事務模型。彌補了開源MyCAT沒有分散式事務的不足。如下針對DDM提供的分散式事務進行介紹

 

DDM事務模型

單機

只能在單個分片上執行,如果事務涉及到多分片,DDM將拒絕執行,返回錯誤。原理如圖4所示。

圖4:單機分散式事務

 

適用場景:適合業務拆分比較合理,在應用層有獨自完善的事務處理框架,到DDM的事務都是單分片事務,單分片事務由底層資料庫提供強一致性的保證。單機事務模型下,如果出現跨分片的事務,會報錯進行提示,避免達不到預期目的。

 

最大努力提交

事務在各分片上分別提交,互不干涉,提交結果盡最大可能保持一致,但有部分提交成功部分提交失敗的可能,原理如圖5所示。

圖5:最大努力提交事務模型

 

適用場景:這種分散式事務適合絕大部分不涉及金錢往來的業務,在效能和一致性之間比較好的一個平衡。事務中的commit往多個節點發送執行,有部分commit成功部分commit失敗的可能性,但是這種情況出現的可能性比較低,只有在commit的時間窗內出現異常才有可能出現。

 

最終一致性

事務在各分片上的提交結果不保證始終一致,如果有分片提交失敗,DDM會對其他提交成功的分片提供補償機制撤消之前的修改,從而確保各分片事務狀態最終一致。

 

說明:最終一致性與強一致性這兩種分散式事務的原理基本一致,區別在於:

最終一致性場景下,如有併發的查詢請求,查詢到的結果可能不是最終狀態,如部分分片已完成提交,部分分片還在提交中,即存在中間狀態。

強一致性場景下,如有併發的查詢請求,查詢結果是事務提交完成後的結果,即不存在中間狀態。

 

適用場景:適合對一致性要求比較高的場景,最終一致性解決了最大努力提交模型下部分commit成功部分失敗的問題。如果對部分讀的sql一致性要求比較高,還可以通過select for update或者lock in share mode來避免讀取到不一致狀態(部分成功部分失敗)。

例如:

select col1, col2,...coln from table1 where col1={拆分鍵} for update;

select col1, col2,...coln from table1 where col1={拆分鍵} lock in share mode;

where條件中建議帶上拆分鍵。

 

強一致性

在最終一致性基礎上,增強了分散式事務始終一致性保證,即任何時間點,各分片的資料都是事務開始前或者事務提交後的。

 

適用場景

適合對事務一致性有極端要求的場景,既要保證提交原子性、並且所有查詢都必須避免髒讀。一致性級別越高,付出效能代價會越大,請根據業務需要選擇合適的模型。

 

華為雲分散式資料庫中介軟體DDM不但針對MyCAT的功能進行增強和效能進行提高,而且把MyCAT存在的bug進行修復。DDM解決了單機關係型資料庫對硬體依賴性強、擴充套件能力有限、資料量增大後擴容困難、資料庫響應變慢等難題,通過分散式叢集架構方案實現了“平滑擴容”,擴容過程中保持業務不中斷。總的來說,分散式資料庫中介軟體(DDM)具有擴容方便、效能卓越、簡單易用、低成本和提供分散式事務等優勢。