阿里雲發佈了一個跑分超過AWS的數據庫, 我們跟產品負責人聊了聊

三年前,AWS宣布推出關係型數據庫亞馬遜極光(Amazon Aurora)

「那時候,我們Amazon Aurora覺得簡直是世界巔峰。」阿里雲數據庫總負責人余峰在接受36氪專訪的時候感嘆。不過在昨天的發佈會上,他們發佈的新產品毫不客氣地在跑分上超過了Amazon Aurora。

9月21日的發佈會上,阿里雲正式梳理了他們整套雲數據庫家族,包括主流的關係型、NoSQL非關係型數據庫(適用於內容緩存和Web應用等場景,包括鍵值型、文檔型等)、面向大數據和AI的混合分析數據庫、對面搜索和物聯網等場景的搜索和時序數據庫。為了方便用戶將數據庫上雲,阿里雲還有配套的遷移管理服務和工具。

不過,發佈會現場的重點,還是上面提到的跑分超過了Amazon Aurora的新產品——阿里雲自研的商用關係型數據庫POLARDB。據阿里雲方面介紹,該數據庫採用第三代分佈式共享存儲架構,實現計算節點和存儲節點分離,使計算引擎和存儲引擎均擁有快速擴展能力,一個數據庫即可滿足多類數據庫的混合使用效果。目前,該產品已經開始公測。

POLARDB第三代分佈式共享存儲架構

數據庫的無處不在和軟硬一體

「每一個公司都需要一個數據庫。」在信息技術的世界裡,數據庫幾乎無處不在,小到一台計算器、藍牙音箱,大到一台電腦,只要涉及到通訊或者數據的存儲與計算,都離不開數據庫。我們可以拿平時用的電腦來理解,每一次命令,都需要用到數據庫。

那麼,如何衡量數據庫的好壞?性能、數據的可靠性和安全性,是三個最基本的維度。

余峰解釋,數據庫最重要的就是存東西,並且在需要的時候把它取出來,因此存的效率怎麼樣,取的時候又怎麼樣(性能)非常重要。比如,淘寶系統,有着數以億計的賬戶名和密碼,同時有三十萬人登錄很正常,如何同時讀取三十萬個,完全不會變慢,高併發讀寫是數據庫非常重要的能力之一。

他又打了一個比方,「你的錢在銀行系統里,可能就是一行代碼,一旦這個信息丟了,就不得了。」這就像數據的可靠性。至於,數據誰能改、誰不能改,這就是安全性。

影響數據庫表現的因素又有什麼?

「數據庫是一個軟硬一體化的東西,涉及到方方面面。」

一方面是硬件。數據需要存儲,涉及磁盤等存儲介質;但又不能全都放在硬盤裡,否則很慢,因此內存必不可少;取出來之後需要計算,所以對CPU的要求也很高;算完之後怎麼給到用戶,涉及到網絡。

 另一方面是算法。算法牽涉的東西更為複雜,余峰並無細講,同樣是舉了幾個例子。

首先,數據庫很重要的是要支持高併發,一旦用的人多了,就很容易相互受影響,如果做好隔離,保證效率。

再者是事務能夠正常運行和回滾的能力。比如,轉賬作為一個事務,其實涉及到三個動作:先查一下A的錢夠不夠、然後從A那兒扣錢、最後加到B那兒去,如果任何一步無法繼續,這個事務就不能完成,數據要保證一旦出錯,能夠回滾到事務的初始狀態,不能有中間狀態。

另外,異地災備的情況下如何保證事務的一致性,假設同步三節點中,如果有一條線路傳輸出現問題,要如何處理。

上述這些,都涉及都算法。

阿里雲的PolarBD跑分超過AWS Aurora?

就算你不知道什麼是數據庫,但說起數據庫,你肯定想到這個領域的巨頭Oracle(甲骨文)。這家公司甚至已經成為了數據庫的代名詞。

正如余峰所言,數據庫需要軟硬件一體化。Oracle的缺點是,不僅軟件極貴,如果要把的數據庫的性能發揮到極致,需要維持「Oracle數據庫+IBM小型機+EMC存儲」這個組合,後續開支龐大,對管理員的能力極高。

後來,彼時互聯網巨頭雅虎開始使用開源的MySQL數據庫,MySQL本身擁有靈活和性價比高等優勢,加上雅虎的示範,MySQL數據庫成為了不少互聯網公司的選擇。隨着雲計算的發展,雲數據庫開始出現,後者使用門檻低、便於快速擴展。2015年的AWS re:Invent大會上,亞馬遜宣布了Amazon Aurora。Aurora是一個關係型數據庫,可以跨3個可用區域複製6份數據,其設計目標是提供高性能和高可用性(99.99%)。

阿里雲昨天推出的POLARDB,明顯對標的就是Amazon Aurora,它跟後者採用了相同的設計理念,底層同樣基於MySQL作出大量改進。

在昨天的發佈會上,阿里雲又來了一次現場跑分,表示在標準場景下,POLARDB性能是MySQL的6倍,單實例實現100T級存儲容量;而在雲數據庫廠商中,阿里雲POLARDB則實現了AWS Aurora性能的1.2倍。余峰解釋,這算是阿里雲的后發優勢,POLARDB用了最新的RDMA網卡,同時對數據庫的細節做了優化。

據余峰介紹,整套PolarBD的解決方案大體可以分成三部分:兼容MySQL的數據庫軟件、新一代的計算機節點、阿里雲的第三代分佈式共享存儲方案。

新一代的計算節點的CPU和網卡,以及存儲的SSD磁盤與FPGA卡,都是單獨為數據庫定製的。這些可以說都是數據庫服務中硬件部分的體現。

在算法部分,阿里雲這次重點介紹的,是POLARDB的第三代分佈式共享存儲方案。

余峰介紹,整個國內外雲廠商的數據庫服務,在存儲部分經過了三代的發展。

第一代傳統數據庫跑在單機上,計算(CPU)和存儲綁定,用的是本地盤,意味着每一個計算節點,都要掛一個盤,它的問題是每一個節點的存儲空間是有限的。
第二代的集中式存儲,計算與儲存分離,把存儲集中起來管理,解決了存儲擴展的問題。因為每份計算都有一份數據,在這個體系下有很多的數據副本,導致成本非常高。此外,不同的節點之間數據可能出現不同步,數據一致性很難解決。「EMC做儲存很厲害,但是為什麼做數據庫沒有火,就是因為延遲特別大。Amazon和阿里的優勢就在於延遲非常小。」

第三代數據庫與第二代的不同,是計算節點之間的通訊效率非常高。這相當於所有的計算節點是一個集群,節點可以無限增加,儲存都在一個盤陣里。阿里雲介紹,產品架構上,POLARDB採用了節點間共享存儲架構,讓數據庫實現極速擴展,通過重新設計的文件系統PolarStore,實現相同數據更新操作減少了50%的磁盤寫入量,並縮短了寫數據的路徑,使寫性能顯著提高,對讀事務實現了優化。

上面介紹的數據庫系統,昨天剛啟動公測,究竟用起來效果怎麼樣,還需要拭目以待。不過,余峰表示,一般的企業忽然換數據庫的動力不太,除非是原來的數據庫服務太貴、對數據可靠性和對性能的要求有更大的要求,或者是新業務在新數據庫服務上跑得不錯,會考慮更換。

為了方便客戶數據庫上雲,阿里還推出「IaaS的價格,PaaS的服務」的基礎辦雲服務器,意味着你買一個包含了雲服務器的數據庫服務,跟只買雲服務器價格一樣。同時為了慫恿客戶用POLARDB,阿里雲表示,原來在用阿里雲的MySOL數據庫服務的客戶,直接遷移到POLARDB上,收費甚至比較前者更便宜。

這不就是傳說中的補貼嗎?很好,這模式很滴滴……


想在手機閱讀更多業界資訊資訊?下載【香港矽谷】Android應用
分享到Facebook
技術平台: Nasthon Systems