隨着數據量的激增,單機數據庫存不下了,怎麼辦?這幾乎是全部互聯網公司都會遇到的問題。在過去,一直沒有一個優雅的解決方案從根本上解決傳統關係型數據庫擴展性問題,而一般的作法是業務層要把代碼改個遍,若是業務上已經用了 MySQL ,沒有辦法,只能去拆庫拆表,動中間件,而這個過程對 DBA 是痛苦的,就算不死也要脫層皮。數據庫
最近,一款國人主導開發的開源數據庫項目在國內外混的風生水起,不只在 GitHub 上被推到了 Go Trending 的頭條,而且累積 Star 數已近 10000。而在國內,它在被技術愛好者模仿 DB-Engine 製做出的國產數據庫排行榜中,位居第二,它就是開源分佈式關係型數據庫TiDB 。緩存
▲ PingCAP 聯合創始人兼 CTO 黃東旭微信
本期訪談嘉賓: PingCAP 聯合創始人兼 CTO 黃東旭。熱愛畫畫,美劇,搖滾樂,但更愛寫代碼的狂熱開源愛好者,知名開源軟件做者,表明做品分佈式 Redis 緩存方案 Codis ,以及分佈式關係型數據庫 TiDB 。分佈式
與黃東旭的會面一波三折,由於各自時間緣由及突發事件,最終採訪約定在了 PingCAP駐地,東昇科技園晚上 19 點。其實,由於 DTCC 大會的關係,雖然很早,我就與做爲大會嘉賓的他互添了微信,但與他真正見面,這倒是頭一次。oop
夜幕下的園區少了些許喧囂,清靜了許多。剛走進入 PingCAP 公司的大門,我一眼就看到了橫躺在地下襬弄手中平板電腦的他,身爲 CTO 的他,彷佛並不太在本身的形象,反而和員工打成一片。長髮、T恤、牛仔褲,與微信中的照片如出一轍,彷佛任什麼時候候,他都是這副打扮,識別率很是高。大數據
PingCAP 公司並不大,工位也很少,雖然已是晚上 7 點早該下班了,但還有些工位上依然還有人在辦公,臉上還洋溢着笑容,絲毫看不出加班的鬱悶與不爽,有的小聲交談,有的敲擊鍵盤,有的在撥打電話訂餐,彷佛在家中辦公那樣輕鬆自在,一股很是純粹濃郁的工程師文化向我撲面而來。spa
黃東旭告訴我,公司目前大概有 50 多人,其中八成是工程師,並有三分之一的同事是分散在祖國各地,公司在北京、上海、廣州均有辦公室。做爲崇尚開源精神的公司,上班不須要打卡,並容許員工在家辦公,遠程辦公,氛圍自由而開放。兩個小時的採訪過程當中,愛寫程序技術出身的他,在談到數據庫技術時,眼中充滿了狂熱的光芒。中間件
事實上,不管是在前東家微軟、網易,仍是豌豆莢,黃東旭一直都在從事與基礎軟件領域相關的工做,如分佈式存儲和分佈式系統,在這個過程當中他敏銳的觀察到,傳統關係型數據庫擴展性痛點,而這源自常常拆庫拆表的他,有着切膚之痛。blog
隨着數據量的激增,單機數據庫存不下了,怎麼辦?這幾乎是全部互聯網公司都會遇到的問題。但在過去,一直沒有一個優雅的解決方案從根本上解決傳統關係型數據庫擴展性問題,一般的作法是業務層要把代碼改個遍,若是業務上已經用了 MySQL ,沒有辦法,只能去拆庫拆表,動中間件,而這個過程對 DBA 是痛苦的,就算不死也要脫層皮。既然沒有優雅的解決方案,那爲何咱們不作一個?黃東旭反問本身。創業的動機由此而生,接口
並與另外兩個創始人劉奇、崔秋一拍即合,
PingCAP 的 TiDB 在此基礎上誕生了。
TiDB 最初的靈感來自於 Google Spanner/F1 論文, 有了理論基礎,想法很快就落地成產品,並取名 TiDB ,Ti 是元素週期表中的一種元素,高端金屬材料,既輕又結實。在黃東旭看來,Ti能充分體現數據庫不少特色,並且還很輕,不像 Hadoop 那樣重。
TiDB 與 MySQL 徹底兼容,MySQL 應用無需修改即可直接運行。支持包括傳統 RDBMS 和 NoSQL 的特性,能夠隨着數據增加而無縫水平擴展,只須要經過增長更多的機器來知足業務增加需求,應用層能夠不用關心存儲的容量和吞吐。用他的話說就是「會自生長」。
技術出身的黃東旭,同時也具有產業判斷的視野和格局。中國不缺好的工程師,中國人同樣能夠作出世界一流的產品。而其中的關鍵,在於切入方向的選擇,而不是工程師的問題。他認爲,眼光,必定要放眼全球。而最觸動個人一句話:「定位,決定了你能達到的高度,當在這個領域已經有了不少很是強壯的競爭對手,並且成爲了一個事實標準,你是很難搬搬倒對方的,先入爲主,先得天下爲王。」
大數據時代到來,隨着數據量爆發式的增加,數據庫這層的基礎設施卻並無跟上,這給了 PingCAP 一個很好的機會。分佈式數據庫技術因爲其優良的線性橫向擴展能力和良好的故障隔離性,近幾年也受到了廣泛關注。市場上不只出現了不少新興的分佈式數據庫引擎,老牌的數據庫也在分佈式技術上投入重兵,加緊部署。但這些分佈式解決方案都是商業的,而且這一領域尚未造成一個事實的標準,除了積累外,這是 PingCAP 切入這一領域的主要理由,更爲關鍵的是,優雅的開源分佈式關係型數據庫解決方案目前一個都沒有,這在黃東旭看來就是填補空白的機會。
而他與他的團隊堅信,TiDB 具有成爲一個事實標準的潛質,其次是這個方向的用戶足夠多。他直言不諱道, MySQL 的用戶理論上都會是其客戶,這個天花板足夠高,市場足夠大。
選擇開源這條路,並非趕時髦也不是一時衝動,黃東旭有着本身的理解和洞察,在談到爲什麼 TiDB 會選擇開源這種方式時,他說。基礎軟件領域閉源並非最好的選擇,若是是閉源的,須要鋪很大的銷售團隊,去讓客戶瞭解你。開源能讓客戶更容易瞭解你,更多地 touch 到你的用戶,並在生產環境中去磨練你的產品。他特別強調,開源並非等於免費,開源只是讓用戶能快速的瞭解咱們的產品。
TiDB 能成爲 GitHub 上的明星項目,彷佛在黃東旭意料之中,較爲淡然,之因此能在國內國外取得好的反響,他認爲,不只是 TiDB 自己理論比較新,解決了企業及廣大傳統關係型數據庫擴展的痛點,更爲關鍵的是, PingCAP 是在認真的作這件事情。
在談到應用案例時,黃東旭說,目前,已經有上市遊戲公司在大規模的採用 TiDB 來做爲其遊戲端存儲和大數據分析的平臺,在金融行業,如徵信方面,也有客戶大數據平臺跑在TiDB 上。但他並無透露具體客戶名稱。
在談到 TiDB 今年計劃和重大更新時,黃東旭透露,大的功能特性主要有 2 個:
1、 TiDB 將會深度對接 Spark SQL , Spark SQL 能夠說是目前互聯網數據實時分析標準方案,深度對接後,用戶就能夠用 Spark SQL 在 TiDB 上作數據的查詢,這並非把數據簡單的倒騰到 Spark 裏面,而是在存儲引擎上,讓 Spark SQL 把它的執行計劃推下來,而後作分佈式計算,這的好處在於,一份存儲,多個可插拔查詢引擎( TiDB / Spark SQL ),既能夠用 TiDB 這邊 MySQL 協議查詢,同時能夠用Spark做分析,加強了 TiDB 在 OLAP 上分析場景上的能力。
2、添加文檔型數據的使用接口支持, MySQL 在 5.7.12的 xplugin 裏面的 document store ,相似 MongoDB 訪問 MySQL ,不須要建表,相似 Schema 特性, TiDB 也將添加了相似的支持。