獨家對話RadonDB設計者 暢談開源背後的初心

魚論發表於2022-06-16

導語:5 月 10 日,在DTCC 2018第九屆中國資料庫大會上,青雲QingCloud宣佈開源其基於MySQL研發的新一代分散式關係型資料庫RadonDB,並以 100% 開源的方式託管在 GitHub 。開發者可以自由的提交 issue 和 PR。 專案網址:radondb.io 程式碼地址:https://github.com/radondb

對話設計者 RadonDB到底中介軟體還是資料庫?

  對於青雲RadonDB,其實圈內人士應該並不陌生,它是青雲在去年12月釋出的一款基於MySQL研發的新一代分散式關係型資料庫。筆者在去年也曾釋出過一篇文章《青雲釋出RadonDB 雲端計算跨界搞資料庫已經成為必然》,從架構設計、功能特性、實現原理、效能等多個角度,超詳細的介紹青雲RadonDB 。

對話設計者 RadonDB到底中介軟體還是資料庫?

▲QingCloud 資料庫高階技術專家張雁飛


  不過,上次筆者並沒有機會採訪到RadonDB資料庫背後的設計者,QingCloud 資料庫高階技術專家張雁飛,藉著此次DTCC大會的機會,筆者與張雁飛,就RadonDB研發背景、研發過程,以及為何選擇在DTCC上開源,RadonDB的核心競爭力,RadonDB到底是一箇中介軟體還是資料庫等問題進行了深度溝通。

  為了讓讀者更全面細緻地瞭解這場對話,以下附上QingCloud 資料庫高階技術專家張雁飛的對話實錄:

  從今天大會現場的反饋看,RadonDB開源是成功的。青雲把開源選在DTCC上,是出於怎樣的考慮?

  張雁飛:首先,DTCC是資料庫這個細分領域裡最專業的大會,嘉賓都是來自各個行業的專家,我今天還在大會上遇到以前阿里巴巴、騰訊的同事,參會聽眾的質量很高,都是一線的實踐者。這是我們選擇在DTCC大會上釋出開源的一個主要目的;其次, RadonDB是新一代分散式資料庫,選擇這個場合釋出,大家會更感興趣,通俗的講,就是對口味;最後,大會的主要受眾是DBA,是資料庫的直接使用者,所以選擇DTCC。

  作為設計和研發者,能否給我們講一講RadonDB的研發背景和研發過程。

  張雁飛:RadonDB的研發總時間大概經歷了一年,初期是我一個人,後來團隊慢慢擴大。眾所周知,市面上開源的分佈資料庫很少,從穩定性、安全性、健壯性以及高可用這個層面考慮,很少有能夠拿過來直接用的,雖然也有一些可用的,但使用門檻較高。

  DBA以前比較熟練使用MySQL單機,但是在接觸到一些新的開源分散式資料庫時,就需要一個不同以往的學習過程,而且學習門檻可能會比較高。我們看到這點,同時,因為我們的MySQL使用者佔了大部分,為了讓我們的使用者可以很方便的使用分散式資料庫,所以RadonDB對MySQL語法沒有任何改造,資料遷移過來就可以直接使用,對DBA和我們的使用者來說,不僅使用方便而且沒有學習成本,這是我們打造這個產品第一個目的。

  另外一個目的,我們想把RadonDB打造好,以便讓更多的人蔘與進來,包括對MySQL感興趣的人群,可以來開源社群作出貢獻並一起玩,所以今天我們決定將RadonDB開源。RadonDB裡使用了一些目前比較先進的技術,是DBA過去想過但沒有實現的技術,而如今RadonDB已經實現了。因此,希望大家能基於開源的RadonDB,做一些自己的產品化,從中得到真正的幫助。這是第二個目的,主要是基於以上兩個目的,促使我們研發了RadonDB。

  我看到,青雲最近組織了一場RadonDB體驗日活動,邀請專家現場體驗,有些專家體驗過後覺得RadonDB就是一箇中介軟體,那麼,RadonDB到底中介軟體還是資料庫?

  張雁飛:其實在大會演講前20分鐘,我在某個微信交流群裡,也看到大家有類似疑問。大概意思也就是,RadonDB不就是中介軟體嗎?其實這是一個誤解,首先,為什麼定義RadonDB為新一代分散式資料庫?如果只是中介軟體,我們不敢把它定義為新一代。它的新穎之處在於,RadonDB是把NewSQL、Google Spanner等實踐思想拿過來,跟MySQL結合,而在市面上開源的產品裡從來沒有人這樣做過。關於開源分散式資料庫的研發,大家的做法一般是重新研發一套,並沒有一個是真正基礎於MySQL來做的。

  第一個層面:高可用儲存層。RadonDB基於MySQL開發,並融合了NewSQL的思想,比如我們把Raft選主機制跟MySQL融合起來,這樣我們MySQL叢集的儲存層就具備高可用。如果一個主在執行中掛掉,通過Raft協議會自動顯示一個新的主。另外,我們基於MySQL的原生機制,可並行複製的功能,在選主之後可以讓資料快速的回放,提供即時的資料回放服務。

  我們在剛過去的體驗日上現場演示了一把,大家對於這項功能都很震驚,因為以前沒有遇到過。現場,我們在高壓情況下運算元據庫,啟用64個執行緒併發的去寫資料,過程中我們把主KILL掉,現場演示寫資料受不受影響,影響的時間會有多長,這種服務啟動後新主有沒有切換成功。整個流程下來大家的感受都是非常震驚,其實整個操作過程也就是三秒時間。我認為,現場沒有人敢這麼運算元據庫。

  Radon DB是NewSQL與MySQL的優勢結合,讓彼此威力相互發揮。單獨的NewSQL很難做到並行複製,因為並行複製本身非常複雜,但是MySQL做到了,我們將Raft和MySQL結合起來,打造高可用叢集。

  第二個層面,SQL層。目前階段,我們藉助MySQL的威力完成了分散式事務。後面我們會持續改進,把MySQL紅利儘量發揮出來,讓威力更大,這也是新的地方。

  簡單總結,RadonDB是MySQL和NewSQL相結合,充分發揮兩者的優勢,打造出的新產品。傳統中介軟體的定義,只是一箇中介軟體,是一個路由分發,並沒有高可用的效能,所以RadonDB不是中介軟體。因為RadonDB是由兩部分組成,Radon和Xenon,分別負責SQL層和高可用,是一個完整的產品。

  今天大會上,您介紹RadonDB能夠通過自動分片的支援,讓DBA在分庫分表上面的使用門檻大大降低,除此之外,RadonDB還解決了DBA、運維一直以來面臨的哪些棘手的問題?

  張雁飛:其實在分散式資料庫領域裡,DBA和運維比較擔心的有兩個方面:

  第一個是分片,規則怎麼定的。比如:分散式資料庫需要DBA去配製分片規則,操作既複雜也麻煩,這是讓DBA很頭疼的事情。配好分片規則並生效後,DBA還需要驗證資料起沒起作用,整個過程需要在上線前多次演練,來保證上線以後是否好用,但在所有繁瑣操作後,DBA還是會很擔心結果是否如願。

  第二個是擴容,提到擴容的準確性和安全性,DBA可能就膽戰心驚了。因為資料從一個機器轉移到另一個機器,資料的準確性難以保證。基本每次上線前都需要經過周密的準備,也難以確保擴容不會出現問題。但是現在RadonDB自動把這兩件事做了,自動擴容和自動分庫分表,這讓運維變得更簡單。我們的兩個目的,最終都是為了解放DBA和運維人員。

  這幾年,分散式資料庫很火,除了國外產品外,國內也有不少,比如;螞蟻金服的OceanBase,PingCAP的TIDB,未來在市場上,我覺得不管青雲願不願意,都不可避免與之產生競爭,那RadonDB將如何與競品競爭?您覺得RadonDB核心競爭優勢是什麼?

  張雁飛:首先,有這麼多競爭產品的出現,這對使用者來說是利好的,因為大家多了一個產品選擇。然而,其他家的開源資料庫都不是基於MySQL的研發路線,可能從上面的SQL層,到下面的儲存層,都是企業自己重新研發的,再與高可用融合起來,就變得非常複雜。因為我本身以前是做資料庫核心的,對這個領域比較瞭解,要實現一個類似於MySQL的儲存層,企業的投入會非常大。所以對於完全自研的競品,他們其實會花費非常多的時間和成本,持續的投入改進。

  所以我們在儲存層選擇了MySQL,我們選擇MySQL好處是什麼呢? 可以藉助一整個開源社群的力量,為MySQL的效能做保障。MySQL最近幾年,社群非常活躍,從5.7到現在的8.0,目前已經GA,跟以前已經不太一樣。現在,Oracle也看到了問題所在,如果封閉不努力,就會被其他的競品追上。所以,這就等同於我們背後有這樣強大的社群力量支援,MySQL只要一更新,我們就實時的更新過來,儲存更穩定。我們如果發現需求,也會提醒官方修改,這樣才是真正的互利共贏,這是基於MySQL一個好處。假設我們不基於MySQL,再造個籠子自己研發儲存,估計到現在可能還沒有研發完儲存,更別說整個產品了。

  基於MySQL還有一個好處,它不止有儲存,還有良好的計算能力。而在NewSQL裡面,儲存是單方面的功能,另外的計算能力是必須又投入一波人做計算。RadonDB是將傳統的MySQL和NewSQL的功能融合起來,實現兩者的優勢功能,但整體的技術路線完全不同。

  但是今天從交流來看,很多對分散式資料庫感興趣的專家對這個方案很感興趣,這就是MySQL和NewSQL融合帶來的競爭優勢。MySQL有很好的使用者基礎,包括應用場景也更豐富,在社群力量支撐下,我們可以更專注上層SQL和高可用,相對其他研發路線RadonDB的使用門檻更低。

  下面這個問題來自於社群一個網友,他們發現RadonDB裡有一個高可用獨立工具MySQL Plus,想問,這個工具那裡能夠下載到?

  張雁飛:MySQL Plus是基於高可用工具的產品,隨著RadonDB的開源,MySQL Plus也隨之開源,在開源官網可以找到下載。

  亞馬遜AWS的CEO說,資料庫是雲端計算的下一個戰場,青雲作為一個雲端計算廠商,您作為一個資料庫領域專家,怎麼看待這個問題?

  張雁飛:其實,我們青雲2014年就推出了資料庫服務,比如Redis、MongoDB。推出這些資料庫服務不是因為廠商想佈局什麼,而是切實根據使用者需要而誕生,因為從雲廠商的角度,使用者在雲環境中不僅需要雲主機,還需要周邊配套的生態,比如說優先順序較高考慮的資料庫。所以我們很早就開始提供資料庫服務。

  如果一個雲端計算廠商沒有資料庫服務,只賣主機,我估計前途堪憂了。目前來看,資料庫服務是使用者量比較大,需求比較迫切的服務。

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

相關文章