【IT168 評論】各位觀眾大家好,我們很榮幸地邀請到了青雲QingCloud資料庫高級技術專家張雁飛老師來接受我們的採訪,歡迎張老師的到來,張老師您好。
張雁飛:你好。
2.剛才您的演講題目是《RadonDB:新一代分布式關係型資料庫》,那您可以給我們解釋一下什麼是新一代分布式關係型資料庫嗎?
張雁飛:「新」主要體現在:我們把NewSQL領域的技術與MySQL資料庫融合起來,目前看還沒有人這樣嘗試過,所以我們叫它「新一代」。這是一個非常有挑戰,也非常有意思的一個方向。
3.為什麼要基於MySQL來實現呢?
張雁飛:因為MySQL不僅有存儲能力,還有計算能力,所以我們就利用MySQL的計算能力,把上層的計算工作儘量下推到下層存儲節點的MySQL中。
4.RadonDB是如何將MySQL GTID並行複製技術與分布式一致性協議Raft完美結合的?
張雁飛:分為兩個部分,第一部分是Raft,其實就是一個Agent,它對MySQL源碼是沒有侵入的,外部的Agent會檢查MySQL的狀態,一旦發現不正常,就需要重新選主。另一部分是GTID並行複製,這是MySQL 5.7的功能。我們把Agent與MySQL部署在同一臺機器上,(Agent)其實就相當於MySQL的保姆,幫它管理、給它打雜,兩個配對,就可以運行起來了。
5.RadonDB是如何實現同時支持高可用、強一致、可擴展的三個特性的?
張雁飛:這三個特性是分布式資料庫、NewSQL資料庫的基本特性。MySQL給人的固有印象是擴容和遷移都很複雜,我們通過把一個大表拆成多個小表簡化了這一過程,將小表遷移到空閒的機器上就是一個擴容的過程,這就實現了可擴展性;正如剛才所說,Raft與MySQL結合就可以做到單個存儲節點內副本間的高可用和強一致性;而分布事務可以確保存儲節點間操作的原子性,所以整體就是強一致的。
6.和傳統的資料庫相比,RadonDB的優勢在哪裡?
張雁飛:「傳統」包括兩個方面,一是傳統資料庫,比如說MySQL就沒有成熟的高可用解決方案,需要DBA自己做主從,如果節點壞了需要自己用工具去檢測、做切換。主節點掛了之後,從節點成為新的主節點必須有一個控制節點,但是RadonDB沒有中心節點,因為它用的是Raft,這種做法還過,目前市面上的產品還沒有MySQL和Raft結合的,這是高可用性層面的區別。 二是傳統分布式資料庫,目前市面上的分布式資料庫還只是Proxy代理層,它們不像RadonDB一樣是一個完整的產品,將下層的高可用(存儲節點)和上層的代理層(SQL節點)融合在一起。我們明年會開源RadonDB,只要是按照我們的指南部署完成之後,它就是一個自動運維的分布式資料庫;而傳統的分布式資料庫必須自己開發高可用等功能。
7.您剛才說RadonDB明年會開源,那開源之後你們的發展方向是什麼?之後打算怎麼推進RadonDB的發展?
張雁飛: RadonDB在12月12日正式上線,等上線之後肯定還有很多需求,其中比較好的需求,我們也會去完善。等到開源之後,大家都會參與進來,技術層面的需求會越來越多。因此我們主要從這兩個方面著手,不停地把RadonDB推向成熟。
8.有沒有具體的一些推進的方案或方向?
張雁飛:目前還沒有,因為開源會在明年,但是具體時間還不能確定。
9.肯定是會開源的,對吧?
張雁飛:對。
10.那在RadonDB構建的過程中您有沒有印象特別深的,或者有什麼特別想分享的經驗嗎?
張雁飛: RadonDB的構建是一個非常有意思,也非常有挑戰的過程,因為像RadonDB這種分布式資料庫的研發,你不僅要對分布式有了解,也要對MySQL資料庫非常了解,否則做不到兩者的融合。所以在構建RadonDB的過程中,我對MySQL有了一個新的認識,也對分布式及其與MySQL融合過程有了一個新的認識,對自己來說也是一個提升。
11.您覺得未來的分布式資料庫的技術發展會往哪個方向走呢?
張雁飛:我感覺是MyNewSQL的方向,即MySQL和NewSQL結合的方向走。分布式資料庫普遍來說,就是上層SQL層和下層存儲層。大家會發現存儲層做到最後越來越像MySQL,其實就是我們現在的方向。 InfoQ: 那今天非常感謝張老師接受我們的採訪,今天的分享就到這裡,謝謝。