解救DBA,教你優雅解決MySQL擴展問題

序:隨著數據量的激增,單機數據庫存不下了,怎麼辦?這幾乎是所有互聯網公司都會遇到的問題。在過去,一直沒有一個優雅的解決方案從根本上解決傳統關係型數據庫擴展性問題,而通常的做法是業務層要把代碼改個遍,如果業務上已經用了MySQL,沒有辦法,只能去拆庫拆表,動中間件,而這個過程對DBA是痛苦的,就算不死也要脫層皮。

解救DBA,教你優雅解決MySQL擴展問題

最近,一款國人主導開發的開源數據庫項目在國內外混的風生水起,不僅在GitHub上被推到了Go Trending的頭條,並且累積 Star 數已近 10000。而在國內,它在被技術愛好者模仿DB-Engine製作出的國產數據庫排行榜中,位居第二,它就是開源分佈式關係型數據庫TiDB。

解救DBA,教你優雅解決MySQL擴展問題

▲PingCAP聯合創始人兼CTO黃東旭

本期訪談嘉賓:PingCAP聯合創始人兼CTO黃東旭。熱愛畫畫,美劇,搖滾樂,但更愛寫代碼的狂熱開源愛好者,知名開源軟件作者,代表作品分佈式 Redis 緩存方案Codis,以及分佈式關係型數據庫 TiDB。

與黃東旭的會面一波三折,因為各自時間原因及突發事件,最終採訪約定在了PingCAP駐地,東昇科技園晚上19點。其實,因為DTCC大會的關係,雖然很早,我就與作為大會嘉賓的他互添了微信,但與他真正見面,這卻是頭一次。

夜幕下的園區少了些許喧囂,清靜了許多。剛走進入PingCAP公司的大門,我一眼就看到了橫躺在地下襬弄手中平板電腦的他,身為CTO的他,似乎並不太在自己的形象,反而和員工打成一片。長髮、T恤、牛仔褲,與微信中的照片一模一樣,似乎任何時候,他都是這副打扮,識別率非常高。

PingCAP公司並不大,工位也不多,雖然已經是晚上7點早該下班了,但還有些工位上依然還有人在辦公,臉上還洋溢著笑容,絲毫看不出加班的鬱悶與不爽,有的小聲交談,有的敲擊鍵盤,有的在撥打電話訂餐,似乎在家中辦公那樣輕鬆自在,一股非常純粹濃郁的工程師文化向我撲面而來。

黃東旭告訴我,公司目前大概有50多人,其中八成是工程師,並有三分之一的同事是分散在祖國各地,公司在北京、上海、廣州均有辦公室。作為崇尚開源精神的公司,上班不需要打卡,並允許員工在家辦公,遠程辦公,氛圍自由而開放。兩個小時的採訪過程中,愛寫程序技術出身的他,在談到數據庫技術時,眼中充滿了狂熱的光芒。

TiDB誕生源自MySQL擴展的切膚之痛

事實上,無論是在前東家微軟、網易,還是豌豆莢,黃東旭一直都在從事與基礎軟件領域相關的工作,如分佈式存儲和分佈式系統,在這個過程中他敏銳的觀察到,傳統關係型數據庫擴展性痛點,而這源自經常拆庫拆表的他,有著切膚之痛。

隨著數據量的激增,單機數據庫存不下了,怎麼辦?這幾乎是所有互聯網公司都會遇到的問題。但在過去,一直沒有一個優雅的解決方案從根本上解決傳統關係型數據庫擴展性問題,通常的做法是業務層要把代碼改個遍,如果業務上已經用了MySQL,沒有辦法,只能去拆庫拆表,動中間件,而這個過程對DBA是痛苦的,就算不死也要脫層皮。既然沒有優雅的解決方案,那為什麼我們不做一個?黃東旭反問自己。創業的動機由此而生,並與另外兩個創始人劉奇、崔秋一拍即合,PingCAP的TiDB 在此基礎上誕生了。

TiDB最初的靈感來自於Google Spanner/F1論文, 有了理論基礎,想法很快就落地成產品,並取名TiDB,Ti是元素週期表中的一種元素,高端金屬材料,既輕又結實。在黃東旭看來,Ti能充分體現數據庫很多特點,而且還很輕,不像Hadoop那樣重。

TiDB與MySQL完全兼容,MySQL應用無需修改便可直接運行。支持包括傳統 RDBMS 和 NoSQL 的特性,可以隨著數據增長而無縫水平擴展,只需要通過增加更多的機器來滿足業務增長需求,應用層可以不用關心存儲的容量和吞吐。用他的話說就是“會自生長”。

TiDB火爆開源社區,定位決定高度!

技術出身的黃東旭,同時也具備產業判斷的視野和格局。中國不缺好的工程師,中國人一樣可以做出世界一流的產品。而其中的關鍵,在於切入方向的選擇,而不是工程師的問題。他認為,眼光,一定要放眼全球。而最觸動我的一句話:“定位,決定了你能達到的高度,當在這個領域已經有了很多非常強壯的競爭對手,而且成為了一個事實標準,你是很難搬搬倒對方的,先入為主,先得天下為王。”

大數據時代到來,隨著數據量爆發式的增長,數據庫這層的基礎設施卻並沒有跟上,這給了PingCAP一個很好的機會。分佈式數據庫技術由於其優良的線性橫向擴展能力和良好的故障隔離性,近幾年也受到了普遍關注。市場上不僅出現了很多新興的分佈式數據庫引擎,老牌的數據庫也在分佈式技術上投入重兵,加緊部署。但這些分佈式解決方案都是商業的,並且這一領域還沒有形成一個事實的標準,除了積累外,這是PingCAP切入這一領域的主要理由,更為關鍵的是,優雅的開源分佈式關係型數據庫解決方案目前一個都沒有,這在黃東旭看來就是填補空白的機會。

而他與他的團隊堅信,TiDB具備成為一個事實標準的潛質,其次是這個方向的用戶足夠多。他直言不諱道,MySQL的用戶理論上都會是其客戶,這個天花板足夠高,市場足夠大。

開源才是基礎軟件出路

選擇開源這條路,並不是趕時髦也不是一時衝動,黃東旭有著自己的理解和洞察,在談到為何TiDB會選擇開源這種方式時,他說。基礎軟件領域閉源並不是最好的選擇,如果是閉源的,需要鋪很大的銷售團隊,去讓客戶瞭解你。開源能讓客戶更容易瞭解你,更多地touch到你的用戶,並在生產環境中去磨練你的產品。他特別強調,開源並不是等於免費,開源只是讓用戶能快速的瞭解我們的產品。

TiDB能成為GitHub上的明星項目,似乎在黃東旭意料之中,較為淡然,之所以能在國內國外取得好的反響,他認為,不僅是TiDB本身理論比較新,解決了企業及廣大傳統關係型數據庫擴展的痛點,更為關鍵的是,PingCAP是在認真的做這件事情。

在談到應用案例時,黃東旭說,目前,已經有上市遊戲公司在大規模的採用TiDB來作為其遊戲端存儲和大數據分析的平臺,在金融行業,如徵信方面,也有客戶大數據平臺跑在TiDB上。但他並沒有透露具體客戶名稱。

獨家揭秘,TiDB今年2大重要更新!

在談到TiDB今年計劃和重大更新時,黃東旭透露,大的功能特性主要有2個:

一、TiDB將會深度對接Spark SQL,Spark SQL可以說是目前互聯網數據實時分析標準方案,深度對接後,用戶就可以用Spark SQL在TiDB上做數據的查詢,這並不是把數據簡單的倒騰到Spark裡面,而是在存儲引擎上,讓Spark SQL把它的執行計劃推下來,然後做分佈式計算,這的好處在於,一份存儲,多個可插拔查詢引擎(TiDB / Spark SQL),既可以用TiDB這邊MySQL協議查詢,同時可以用Spark作分析,增強了TiDB在OLAP上分析場景上的能力。

二、添加文檔型數據的使用接口支持,MySQL在5.7.12的xplugin裡面的document store,類似MongoDB訪問MySQL,不需要建表,類似Schema特性,TiDB也將添加了類似的支持。


分享到:


相關文章: