MySQL DBA如何從刪庫跑路到carry全場

tianxiaoxu發表於2018-08-15

小王,中學成績普普通通,畢業之後在一所名不轉經傳的本科學校讀了計算機專業,併成為了一名MySQL DBA。DBA這份工作卻不簡單,進階路上出現了不少攔路虎。

攔路虎NO1: 小王滿心歡喜的進入到現在的公司,以為肯定能在技術總監的照拂下快速成長。哪想到,領導技術雖牛,但是卻很難纏,每次完成工作都免不了被三番兩次的“找茬兒”,而且領導還總喜歡用“我們是家大公司”來懟自己,這讓小王感覺DBA這份工作真是不好做!

攔路虎NO2: 不久前,小王所在的公司迎來躍進式發展,站在風口上飛起來了。小王還沒來得及為公司高興,就發現資料量正以火箭般的速度增長,很快單機資料庫就存不下了。

向下要解決資料暴漲的資料庫問題,向上要面對不斷“找茬兒”的技術總監,小王鬱鬱寡歡。本來每天的工作就已經夠苦逼了,這下還得把業務層的程式碼全都改個遍,動中介軟體,分庫分表,小王頂著濃濃的黑眼圈感嘆“這是要搞死我啊。”

為了消滅這些攔路虎,小王絞盡腦汁,抓狂之餘甚至想刪庫跑路。小王急得如熱鍋上的螞蟻,不得不去網上遍搜寶典,沒成想還真讓他給找到了。江湖上流傳著一種結合了MySQL和分散式演算法的祕籍——RadonDB,原來基於單機版MySQL開發的應用程式幾乎不用做任何修改就可以遷移其上!

遷移之後,讓小王頭疼不已的分庫分表問題就迎刃而解了,RadonDB支援自動分庫分表,預設可支援單表最大4PB的容量。在小王的解決方案中整張表有4096個slots,他把整張表劃分成32個小表,其中每個小表是128slots。在擴容時,RadonDB優先以小表為單位進行全量遷移,記錄下當時遷移的位點,增量追加。遷移過程中小王驚喜的發現,因為都是MySQL表,所以操作很簡單,而且除了擴容還可以縮容。

搞定這一切之後,小王高興的去向技術總監交差,技術總監看過遷移效果後,驚訝之餘繼而發問:“嗯,這個分庫分表是解決了,但我們們是一家大公司呀,少不了要進行高併發查詢和跨物理節點的查詢,如何解決查詢時的效能問題呢?”

“呃…效能問題其實也好解決呀,”小王抹了抹額頭上滲出的汗,心裡慶幸的想,還好之前做足了功課,“RadonDB的設計中有個很大的亮點——計算節點,當SQL節點對SQL請求解析之後確定出複雜SQL,會將請求路由至計算節點。而計算節點儲存的是全量資料,並通過binlog對資料進行增量更新,所以,所有複雜的SQL都會在這裡進行計算然後將結果返回給客戶端,這就解決了複雜查詢時的效能問題。而且這個計算節點是外掛式的,我們甚至可以用強大的AP資料庫來充當。”

“好好好,這個我瞭解了,但小王你要知道我們是家大公司呀,一分鐘幾千萬資料浮動的那種,你這個方法在分庫分表和擴容方面確實簡單,但是在高可用方面可靠嗎?你要知道當機一秒鐘,你我就只有跑路的份兒,你呀還是太年輕。”

“哎呀,領導,你說高可用這麼重要的事兒我能忘嗎?放心,我早就搞定了!”小王心想技術總監還真是不能糊弄的,“想要做到高可用,無非就要做到以下三個方面:一是選主策略,二是與原Master資料同步,三是新的主節點快速應用資料,對外提供服務。如何實現高可用呢?RadonDB爆出了一個極品裝備——xenon。”

“說到這個xenon,它有兩大神器,分別是Raft選主協議和MySQL GTID。Raft 選主協議,顧名思義就是用來選主的,當主副本出現故障不可用時,從副本會自動發起選主請求,這時與主副本資料完全一致的從副本就可以成功上位成為主副本。”

“那麼問題就來了,怎麼樣才能做到和主副本資料一致呢?這就是要講到MySQL GTID了,強Semi-Sync-Replication技術可以確保至少有一個從副本與主副本的資料是完全同步的。這種高可用的方式,領導你覺得這麼樣啊?”

聽小王得意洋洋的講完,技術總監心中一驚,嘿,沒看出來這小子準備還挺充分,結巴道:“你看,我們是一家大公司……考慮問題就是要這麼全面!”小王心中一喜,哎呀,可算是過關了。

寫在最後

雖然這是一個虛擬的小故事,但是RadonDB這款產品確是真實存在的,故事中解決的業務場景也是真實存在的。相比於以往的資料庫產品,RadonDB不僅在容量控制方面有獨到的方法,自動分片,動態擴容,而且還創新性的引入了計算節點,使得複雜SQL可以透明計算,是資料庫發展歷程上跨越式的里程碑。

此外,RadonDB充分發掘了新一代英特爾至強可擴充套件處理器的能力,特別是其整合的全新英特爾AVX-512帶來的更為強悍的運算能力,進一步優化了自身的資料庫效能。RadonDB也將採用3D XPoint技術的英特爾傲騰固態盤作為分散式資料庫快取,進一步提升吞吐量和更低的訪問延遲,給使用者帶來最佳體驗。

2018年5月10日,RadonDB在第九屆中國資料庫技術大會上正式宣佈開源(GitHub地址:https://github.com/radondb/radon)。知數堂創始人吳炳錫在筆者採訪中曾表示,RadonDB的開源向我們展示了更多的技術創新性,而這種創新將給DBA的技術生涯帶來更多的機會和創新思路的借鑑。


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

相關文章