在雲計算的廣泛應用下(xià),多種主流的關系型數據庫也紛紛被移植到了雲上。但伴随着大(dà)數據的發展,數據量的爆發式增長,企業對數據庫性能與存儲規模的要求已越來越高。而在雲計算從1.0時代向2.0時代不斷邁進的背景下(xià),如何在資(zī)源型服務的基礎上提供更好的應用服務則成爲雲服務提供商(shāng)的主要目标之一(yī)。單純地将現有數據庫産品移植到雲上已無法完全滿足企業用戶的需求,無論是雲服務提供商(shāng)還是用戶,都需要一(yī)個完全爲雲打造的優秀的雲原生(shēng)數據庫。
阿裏雲數據庫業務總經理曹偉(鳴嵩)将POLARDB稱作是“承載着阿裏雲數據庫從過去(qù)1.0時代走向2.0時代的一(yī)個标志(zhì)性的産品”。作爲阿裏雲自研的新一(yī)代雲原生(shēng)關系型數據庫,POLARDB除了具備關系型數據庫的核心特征外(wài),同時也更關注如何滿足用戶對雲服務的特殊業務需求,包括成本、業務連續性及可擴展性等各個方面。
三大(dà)核心特性
開(kāi)發雲原生(shēng)數據庫并不意味着建立一(yī)個新的“門派”,不能因爲業務要遷移到雲就必須去(qù)适應一(yī)套新的編程接口,這是不可取的。因此兼容性是阿裏雲數據庫團隊研發POLARDB時的第一(yī)理念。包括目前最主流的、開(kāi)發者最喜歡用的MySQL和PostgreSQL這兩種數據庫生(shēng)态,POLARDB都可以做到100%兼容。用戶一(yī)行代碼都不用改,就可以把業務從原來的開(kāi)源數據庫遷移到POLARDB平台。
談到兼容性的問題時,曹偉的态度甚至有些“強硬”,他表示:“從第一(yī)天起我(wǒ)們就不接受99%的兼容,隻有100%的兼容。在做技術方案選型的時候,即便有一(yī)個方案可能不兼容某些東西,但實現起來更簡單,我(wǒ)們也不會妥協,一(yī)定是100%兼容。”
如果說100%的兼容性是不可妥協的原則,那性能和容量則更像是一(yī)種追求了。性能的重要性自然無需贅述,特别是在如今數據量大(dà)幅暴漲的情況下(xià),用戶對性能的需求早已不同往日。阿裏雲數據庫團隊經過不斷地攻堅、優化,使得POLARDB擁有了行業領先的超高性能。經過Sysbench性能測試工(gōng)具的測試,POLARDB的每秒事務處理量(TPS)可達到22萬,而開(kāi)源數據庫隻有3.5萬次。與開(kāi)源數據庫相比,POLARDB實現了約六倍的性能提升。同時價格不變,爲用戶節省了大(dà)量的成本。
容量擴展也一(yī)直是用戶的一(yī)大(dà)難題。以往用戶的容量不足時,多數通過兩種辦法解決:一(yī)是擴容,通過切分(fēn)業務,将數據庫進行拆分(fēn),再以此實現水平擴展;第二是定期做數據搬移,将訪問頻(pín)次較低的數據遷移到一(yī)個冷數據庫中(zhōng),以獲得可用的存儲空間。但無論是擴容到多個數據庫,還是進行數據搬移,對用戶來說開(kāi)發成本都是非常大(dà)的,同時還涉及到管理與保證業務連續性的問題。作爲雲原生(shēng)數據庫,POLARDB可以支持用戶彈性擴容,最高可達100TB,而這個容量對99%的用戶來說是完全足夠的。
除此之外(wài),POLARDB還有一(yī)個核心優勢就是“一(yī)寫多讀共享同一(yī)份數據”。對于一(yī)些如淘寶這種讀的訪問比寫的訪問多的業務,過去(qù)的做法是用“一(yī)主多從”的技術來實現。簡單來說就是一(yī)個主庫寫,将數據同步給多個從庫,再使用這些從庫完成讀的訪問。但這種模式有很大(dà)的缺點,第一(yī)是造成空間浪費(fèi),需要很多副本;第二是擴容時間長,因爲添加節點時往往需要拷貝數據。POLARDB的做法是讓“一(yī)主多從”共享同一(yī)個數據副本,無需額外(wài)建立多個從庫。而且在幾分(fēn)鍾内就可以增加一(yī)個隻讀節點并啓動服務。
基于以上特性,POLARDB在面向金融保險、電(diàn)商(shāng)、遊戲行業等讀多寫少的業務場景以及大(dà)容量場景如存儲訂單和曆史數據時,都會展現出巨大(dà)的價值。
與Aurora相似又(yòu)不同
2014年,AWS曾發布了雲中(zhōng)的關系型數據庫Aurora,這款數據庫采用共享存儲和讀寫分(fēn)離(lí)的方式,在提高性能的同時解決了可擴展性問題。它同樣也實現了對主流關系型數據庫100%兼容,讓傳統互聯網公司可以無痛遷移到雲上。
阿裏雲自研的POLARDB與AWS的Aurora有很多相似點,首先——據曹偉介紹——大(dà)家有相似的目标,兩家研發雲原生(shēng)關系型數據庫産品的驅動力“其實都來自于我(wǒ)們對用戶的觀察,阿裏雲今天是全球第三的公有雲服務商(shāng),在中(zhōng)國市場占有率在50%以上,有幾十萬的中(zhōng)國客戶。通過幫助這些客戶解決實際業務問題,我(wǒ)們也發現過去(qù)開(kāi)源數據庫直接放(fàng)在雲上賣給用戶,有些問題是很難去(qù)解決的。”
其次POLARDB與Aurora都有很高的性能與容量。但是相對于Aurora,POLARDB的性能更強,能達到前者的近兩倍;容量也更高,Aurora最大(dà)容量爲64TB,而Aurora可達到100TB。兩款産品都是“一(yī)主多從”使用同一(yī)個數據副本的形式,而且都是基于共享存儲的(Share Everything)的企業數據庫。
“Aurora在軟硬件結合上比較保守,它沒有使用RDMA。”曹偉補充道。在談到英特爾的傲騰技術時,曹偉給予了極大(dà)的肯定,他表示:“英特爾傲騰技術有兩個非常大(dà)的優點,一(yī)是讀寫延遲非常低,可以穩定在10微妙量級,SSD把HDD延遲降低了一(yī)個數量級,而英特爾傲騰技術則又(yòu)把SSD降低了一(yī)個數量級;二是QoS(Quality of Service,服務質量)非常高,由于3D XPoint是一(yī)種随機訪問的介質,無需對存儲空間進行整理,因此擁有很強的穩定性。”
在衡量數據庫的QoS時,一(yī)般需要測試95%的請求的響應時間,請求返回的時間則作爲判斷數據庫QoS的指标。據曹偉介紹,在使用了傲騰存儲産品之後,這個指标大(dà)概提升了76%,這種顯著的提升,對使用阿裏雲數據庫的用戶來說也是非常讓人興奮的。
“這是我(wǒ)們的使命”
企業級數據庫對可用性、可靠性、可擴展性等都有很高的要求,對于一(yī)些關鍵的、要求零宕機的業務來說,對數據庫技術本身的要求更苛刻。然而目前我(wǒ)國在數據庫領域仍然有些比上不足,最直接的,當前我(wǒ)國四大(dà)銀行所使用的數據庫都是ORACLE、DB2等。在談到選擇自研POLARDB數據庫的最初願景時,曹偉說道:“數據庫一(yī)定是國之重器。我(wǒ)們做POLARDB目标就是将來在國計民生(shēng)行業,金融企業或者政府核心的業務當中(zhōng),可以使用國産的自研數據庫。我(wǒ)認爲,這是我(wǒ)們這一(yī)代數據庫技術人的使命。”想來,作爲承載着阿裏雲數據庫團隊使命的一(yī)款産品,POLARDB應該是生(shēng)而不凡的。