青雲釋出RadonDB資料庫 你想知道的都在這裡

老魚筆記發表於2018-05-07

   細心的人可能會發現,這幾年雲端計算廠商釋出會上,資料庫的份量越來越重,新資料庫服務的釋出也越來越多,廠商正在不斷涉入資料庫領域,並有愈演愈烈之勢。

  亞馬遜AWS此前就推出了Aurora,DynamoDB、Redshift等自研資料庫服務,前不久又推出了一大批資料庫服務,其中包含新的圖資料庫Neptune。阿里雲也在今年9月份釋出了基於第三代分散式共享儲存架構自研的新一代關係型資料庫POLARDB,其早期自研的分散式關係型資料庫OceanBase也同步在阿里雲上開放公測。而就在上週,青雲QingCloud也推出了自研的新一代分散式資料庫服務RadonDB。

  看起來,雲端計算廠商們似乎有些不務正業,跨界玩的很嗨,如你也是這樣認為,那就out啦,原因顯然沒那麼簡單。

  90%以上業務都是圍繞資料庫構建

  雲端計算中,SaaS才是利潤最豐厚、對使用者粘性最強的部分。容器技術的發展讓企業把業務負載從一個IaaS雲上遷移到另一個IaaS上變得更容易,但SaaS卻截然不同,如SAP,Oracle和Salesforce等公司的軟體產品,因為與業務深度整合,企業要想從一個SaaS供應商切換到另一個SaaS供應商變得非常困難。而在SaaS中,資料庫服務卻是最為核心又極為基礎的能力。

  青雲QingCloud CTO甘泉在釋出會上就表示,在關鍵業務裡一個最普遍的業務形態就是資料庫,90%以上的業務都是圍繞著資料庫構建的。這就是青雲為什麼一定要提供一個分散式資料庫RadonDB的原因。

  亞馬遜AWS執行長Andy Jassy在剛結束不久的AWS re:Invent 2017大會上也指出,雲端計算的下一個競爭戰場是資料庫,他認為資料庫將會是另一個可以讓所有人都能看到巨大變化的領域。

  阿里雲資料庫掌門人褚霸則對筆者說過,為了讓使用者用的更爽,自研資料庫也就成了一種必然的選擇,這也是時代發展的一種必然。而自研資料庫也是競爭力的體現,意味著阿里雲從生產組裝到獨立研發的轉變。

  他還表示,今天不只是阿里雲要做這樣做,而是所有的雲端計算廠商都不可避免的要經歷這樣一個階段。他認為,在未來2-3年內,沒有自研資料庫的雲端計算廠商將會被逐漸淘汰出局。

  關於亞馬遜與阿里雲釋出的新資料庫服務不是本文重點,有興趣的可以看看老魚之前的文章。

  1、與Oracle戰爭或將升級,AWS又釋出了一大批新的資料庫服務

  2、對話褚霸:阿里雲釋出POLARDB資料庫意味著什麼?

  今天,本文將從架構設計、功能特性、實現原理、效能等多個角度,超詳細的介紹青雲剛剛出爐的分散式資料庫-----RadonDB 。

青雲釋出RadonDB 看本文你就全知道了

  以下內容來自青雲QingCloud資料庫高階技術專家張雁飛的演講(不代表老魚觀點),老魚在不改變演講所表達的意思基礎上僅略作修改。

  青雲為何要釋出RadonDB?

  “隨著資料量膨脹式發展,部分場景的資料量已經達到了指數級增長,原有單機資料庫已經無法承載如此大的資料量,這就需要一款新的分散式資料庫,這就是青雲研發RadonDB的初衷。“張雁飛說。

  RadonDB定位是新一代分散式關係型資料庫,基於 MySQL 研發,注意是基於MySQL 研發,“新”的體現就在這裡。分散式關係型資料庫並不少見,大都是完全重寫,基於MySQL的幾乎沒有,原因就在把流行的分散式演算法和MySQL結合起來很難,不僅考驗對分散式的理解,更考驗對資料庫的理解。

青雲釋出RadonDB 看本文你就全知道了

  而基於MySQL的分散式資料庫其好處除了上圖表述外。更意味著,使用者原來基於單機版MySQL開發的應用程式,基本不用做任何的修改就可以直接遷移到RadonDB上,不再需要去考慮分庫分表、讀寫分離等各方面讓人頭疼的問題。

  RadonDB的五大新特性

青雲釋出RadonDB 看本文你就全知道了

  RadonDB的特性主要有5個方面:

  第一,可擴充套件,使用者只需用滑鼠點選兩下,就可以增加更多的節點,獲得更大的容量和更高的效能,它的擴充套件是線性的;

  第二,高可用,RadonDB上層的SQL節點和下層的儲存節點都是分散式的,且完全無中心化,不會出現單點故障,當副本出現問題的時候,可以秒級自動切換,無需人工干預;

  第三,強一致,RadonDB具備分散式事務的能力,意味著可以滿足金融客戶的需求,雖然是分散式資料庫,依然可以保證其強一致性;

  第四,易部署,因為沒有中心化,所以很容易跟雲平臺相結合,也可以獨立部署;

  第五,MyNewSQL,從MySQL到NoSQL,然後到現在比較流行的NewSQL,而青雲現在已經走到了MyNewSQL這條道路上,就是MySQL和NewSQL相結合,充分發揮兩者的優勢。

  RadonDB的架構設計

青雲釋出RadonDB 看本文你就全知道了

  RadonDB的架構主要有兩大部分組成:分散式SQL節點+分散式的儲存節點。

  分散式SQL節點的作用,是把使用者的請求生成分散式執行計劃和分散式執行器,這些執行器在後端的儲存節點上並行執行。據瞭解,青雲已經做到了對使用者的每個SQL都可以並行執行,這是RadonDB高效能的一種體現。

  底層是分散式儲存節點,每一個儲存節點其實就是一個MySQL Plus,MySQL Plus是一個一主兩從的MySQL叢集,具備高可用、強一致的能力。

  這兩大部分就組成了RadonDB的整體架構。

  張雁飛表示,這是青雲基於MySQL做的分散式資料庫中的創新。其中,底層儲存副本是用MySQL, MySQL不僅提供儲存能力,還可以提供計算能力。這樣可以把SQL層的使用者請求中的計算下推到儲存層,減少了SQL層和儲存層的網路互動。

  RadonDB如何解決大容量問題?

青雲釋出RadonDB 看本文你就全知道了

  分散式本來就是為了解決大容量的問題,因此大容量是RadonDB首先要解決的一個問題。RadonDB實現了智慧化擴容,當使用者需要擴容的時候,RadonDB會採集一些資料,擴容機器人透過分析這些擴容資料,生成擴容建議,並將資料從一個地方遷移到另一個地方,這就是智慧化擴容。

  另外,青雲還提供了兩種儲存引擎供使用者選擇,一個是比較常用的InnoDB,另一個就是高壓縮的引擎——TokuDB,壓縮比較高,當資料量較大時,青雲建議選擇TokuDB引擎。

  如何做到高可用、強一致?

青雲釋出RadonDB 看本文你就全知道了

  上面提到SQL層是分散式、無狀態的,因此,可以隨便切換。那麼,儲存層如何做到高可用呢?

  從上面這張PPT的圖中可以看出,MySQL Plus是三副本,每一個副本都是一個MySQL。當主節點故障時,青雲使用Raft協議(Raft協議是當今分散式比較流行的、大家普遍採用的一個協議)。青雲還結合GTID並行複製,包括Semi-sync複製技術,保證主從切換後,資料零丟失且強一致,這是RadonDB達到金融級高可用、強一致的原因。

青雲釋出RadonDB 看本文你就全知道了

  為了保證資料一致性,RadonDB提供了分散式事務能力,當某個節點更新失敗時,其他節點的資料會自動回滾。單個節點內多個副本間透過Raft、GTID,甚至Semi-sync做到副本間的強一致。這兩個層面結合起來,就可以實現整個資料庫的強一致。張雁飛表示這是青雲為了滿足金融級使用者的需求而做的功能。

  OLTP和OLAP

青雲釋出RadonDB 看本文你就全知道了

  在傳統的解決方案裡,一般都是兩套系統,就是兩個埠。在需要事務和需要分析的時候,分別在兩個埠處理,中間透過ETL通道進行資料同步。但是,在RadonDB裡就一個埠,如果是OLAP的操作,青雲會自動路由到計算節點,而且OLTP和OLAP這兩個計算的資源是隔離的,互不影響。

  RadonDB的效能,跑個分!

青雲釋出RadonDB 看本文你就全知道了

  從張雁飛展示的這頁PPT可以看到,這是一個單機MySQL和四個儲存節點的RadonDB的對比測試。

  用sysbench16個表、512個執行緒,隨機寫了5000萬條資料,測試得出來的結果,RadonDB基本上可以做到26,589 TBS,單機是9346 TBS,在TBS層面RadonDB效能是單機的近三倍,延遲卻只有的三分之一。

  RadonDB的應用場景

  最後,我們來看看RadonDB應用場景,都可以用在哪裡?

青雲釋出RadonDB 看本文你就全知道了

  因為支援OLTP和OLAP,所以RadonDB能夠支援高併發、大規模線上事務處理,也能夠支援海量資料實時分析,並且兩者互不干擾。

  張雁飛特別強調了後面三個場景,首先是替代傳統的分散式資料庫中介軟體。

  他指出,RadonDB是一個整體的解決方案,並非像傳統分散式資料庫中介軟體,只負責分散式的SQL層,很少涉及儲存層,所以RadonDB完全可以替代分散式資料庫中介軟體。

  最後兩個是替代大型傳統資料庫和傳統資料庫一體機。結合本次與RadonDB一同上線的另兩款新產品:Bare Metal物理主機和NeonSAN共享塊儲存,青雲給使用者提供了一個價格更低,容量和效能更高的整體解決方案。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11310314/viewspace-2153952/,如需轉載,請註明出處,否則將追究法律責任。

相關文章