獨家對話RadonDB設計者 暢談開源背後的初心
導語:5 月 10 日,在DTCC 2018第九屆中國資料庫大會上,青雲QingCloud宣佈開源其基於MySQL研發的新一代分散式關係型資料庫RadonDB,並以 100% 開源的方式託管在 GitHub 。開發者可以自由的提交 issue 和 PR。 專案網址:radondb.io 程式碼地址:https://github.com/radondb
對於青雲RadonDB,其實圈內人士應該並不陌生,它是青雲在去年12月釋出的一款基於MySQL研發的新一代分散式關係型資料庫。筆者在去年也曾釋出過一篇文章《青雲釋出RadonDB 雲端計算跨界搞資料庫已經成為必然》,從架構設計、功能特性、實現原理、效能等多個角度,超詳細的介紹青雲RadonDB 。
不過,上次筆者並沒有機會採訪到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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CSO面對面|對話迷你世界,暢談遊戲行業的安全建設遊戲行業
- 淺談《動物森友會》背後的設計理念
- 對話楊傳輝:國產資料庫新戰績背後,OceanBase堅持自研的初心與決心資料庫
- 再談程式設計正規化—程式語言背後的思想程式設計
- 獨家 | 揭祕2021雙11背後的資料庫硬核科技資料庫
- IBM對話設計指南:對話聊天框設計挑戰IBM
- 對話Games Vessel CEO王玥:暢談出海實戰經驗GAM
- 談談對程式設計師的管理程式設計師
- 墨者安全淺談音樂版權的獨家與共享
- Spring Cloud Alibaba 開源背後的故事 | 開源中國專訪SpringCloud
- 華為鴻蒙智家品牌升級背後:開拓者,引領者,賦能者鴻蒙
- 開源筆記軟體 Joplin 背後的故事筆記
- 產業安全專家談 | 廣告刷量背後的攻與防產業
- 對話微拍堂張華偉:百億交易額背後的黑產對抗
- 敏捷史話(十七):維基(Wiki)背後的靈感來源—— Ward Cunningham敏捷
- 即將開源 | 2億使用者背後的Flutter應用框架Fish ReduxFlutter框架Redux
- 《破曉傳說》GI 獨家前瞻及開發者訪談:摸索新舊元素的平衡
- 產品設計背後的心理學思考
- 再談談這個沉重的話題--程式設計師的出路程式設計師
- 黑神話首支紀錄片獨家首播: 路在腳下|對話楊奇:《黑神話:悟空》的美術開發之路
- 架構與體驗,在戰棋遊戲關卡設計背後的雜談架構遊戲
- 細談unity資源管理的設計Unity
- Magicodes.IE 3.0重磅設計暢談
- 《蔚藍》音效設計師介紹遊戲獨特的對話聲音系統遊戲
- 獨家對話阿里雲函式計算負責人不瞋:你所不知道的 Serverless阿里函式Server
- 開源網格VPN meshboi及其背後原理
- 面試Java後端開發之後想和Java程式設計師談談我的感受面試Java後端程式設計師
- ChatGPT 背後核心技術的白話版ChatGPT
- gRPC 的特性和背後設計的原則(一)RPC
- ChatGLM3-6B:新一代開源雙語對話語言模型,流暢對話與低部署門檻再升級模型
- 獨立畫素遊戲《光明旅者Hyper Light Drifter》與它背後的故事遊戲
- 淺談電商網站開發中使用者會話管理機制的設計和實現原理網站會話
- 開源分散式資料庫RadonDB的核心技術與實現分散式資料庫
- 加入紅帽一年,我發現了這家開源軟體公司成功背後的秘密
- 談一談我對‘模板方法’設計模式的理解(Template)設計模式
- 等級提升背後的隱藏公式——結合《鬥破蒼穹》淺談經驗設計公式
- 程式設計師背後的心酸日常,你懂多少?程式設計師
- 程式碼背後的智慧:20條程式設計感悟程式設計