前言html
華爲雲分佈式數據庫中間件(Distributed Database Middleware)是解決數據庫容量、性能瓶頸和分佈式擴展問題的中間件服務,提供分庫分表、讀寫分離、彈性擴容等能力,應對海量數據的高併發訪問場景,有效提高數據庫讀寫性能。sql
圖1:DDM產品介紹數據庫
DDM前世之:MyCAT安全
MyCAT的使用狀況全國範圍內粗略統計超過600家以上成功案例,涵蓋政府、金融、證券、互聯網、物聯網、電信、遊戲等衆多行業。支持1000億大數據,中國很是活躍的開源分佈式數據庫中間件。MyCAT成功在於背後有一支強大的技術團隊,其參與者都是5年以上資深軟件工程師、架構師、DBA。網絡
DDM與MyCAT的關係:DDM是基於MyCAT1.6.5版本加強而來。基於MyCAT加強的地方以下:架構
一、運維管理:DDM提供Console界面,可在線對DDM實例、邏輯庫、邏輯表、拆分規則等進行管理和維護併發
二、集羣高可用:DDM支持集羣高可用,可實現跨AZ,RDS也支持跨AZ框架
三、安全加強:支持VPC(虛擬私有云)、子網、安全組,與其餘租戶網絡隔離運維
四、質量保證:在質量方面補充了大量自動化測試用例(功能、性能),全方位進行質量保障措施分佈式
五、低成本:穩定的產品,完善的運維和技術支持,相比開源產品整體性價比更高;多種實例規格配置覆蓋不一樣業務規模場景,按需購買
六、性能加強:DDM與直連MySQL相比性能損耗獲得了大大的下降,而且Sysbench OLTP場景性能獲得飛躍的提高,性能數據如表2所示:
表2:OLTP性能測試
七、平滑擴容:在數據庫出現存儲容量瓶頸時,DDM支持經過添加新的RDS實例對存儲容量進行擴展,無容量上限,擴容無需應用改造,支持字符串、數字、日期等多種拆緯度,擴容進度支持可視化跟蹤,而且平滑擴容業務不中斷。平滑擴容原理如圖3所示:
圖3:平滑擴容原理
八、分佈式事務: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)具備擴容方便、性能卓越、簡單易用、低成本和提供分佈式事務等優點。