PingCAP馬曉宇:TiDB的HTAP之路

李雪薇發表於2019-05-27

HTAP是目前資料庫領域比較熱門的一個概念,它既能支援OLTP(線上事務處理),又能支援OLAP(線上分析處理),可以涵蓋大部分企業級應用的需求,一站式解決他們的問題。本次,小編有幸採訪到PingCAP分析型產品負責人馬曉宇先生,就TiDB的HTAP之路作出分享。

PingCAP馬曉宇:TiDB的HTAP之路

▲PingCAP分析型產品負責人馬曉宇

TiDB= X% TP+Y% AP =HTAP

TiDB是一個分散式NewSQL資料庫,它支援水平彈性擴充套件、ACID事務、標準SQL、MySQL語法和MySQL協議,具有資料強一致的高可用特性,是一個不僅適合OLTP場景,還適合OLAP場景的混合資料庫。

追溯TiDB的發展史,要從其“上古時代”說起。馬曉宇表示,“起初,由於受到Google Spanner/F1的啟發,PingCAP開始著手研發TiDB。”彼時國外已經出現了 CockroachDB(蟑螂資料庫)等一系列解決TP問題的新興資料庫廠商,但國內研發這類資料庫的公司寥寥無幾,TiDB的出現填補了這塊市場空白。

最開始,TiDB只是解決TP問題,但在實際應用過程中,使用者對TiDB資料庫的查詢功能提出了更高的要求。為此,TiDB調整了自己的資料庫執行器,增加了AP的功能擴充。如此以來,TiDB就同時具備TP和AP的功能。

馬曉宇透露,“客戶一直對‘TiDB適用於100%TP和80%AP場景’中的80%抱有懷疑態度,為什麼是80%,不是75%,也不是85%?所以,後來我們就改用了一個比較精確(時髦)的說法:TiDB是一款HTAP資料庫。”

TiDB資料庫的架構優勢

TiDB的整體架構分為TiDB和TiKV兩層。TiDB是一層無狀態的SQL Layer,對外暴露MySQL網路協議,負責解析使用者的SQL語句,生成分散式的Query Plan,翻譯成底層Key Value操作傳送給TiKV。“通俗的講,TiDB是XXXXXXXXXXXL版本的MySQL。”馬曉宇說道。

PingCAP馬曉宇:TiDB的HTAP之路

▲TiDB資料庫的原始架構

TiDB的關鍵立足點在於,它是一個能擴充套件的關係型資料庫。馬曉宇補充道,“除了可以替換分庫分表MySQL做TP業務,TiDB也非常適合中臺場景,可輕鬆同步MySQL生產庫、透明無障礙的跨分片查詢,實現資料實時落地、海量儲存(TiKV)允許多資料來源匯聚等。”

不僅如此,TiDB的程式碼全部開源。馬曉宇表示,“我們本身是一家開源的公司,我們也會參與一些其他的開源社群,公司員工很多都是資深的開源社群的參與者和貢獻者,我們希望和其他社群共贏,能有更多的小夥伴參加我們的開源。”

PingCAP馬曉宇:TiDB的HTAP之路

▲TiDB 1.0 vs 2.0

據悉,TiDB的更新換代速度非常快。TiDB自在2015年5月GitHub建立,而後於2016年6月釋出Beta版,2017年3月釋出RC2版本……2019年5月10日,TiDB 3.0.0-rc.1版本正式推出,相比 3.0.0 Beta.1,該版本對系統穩定性、易用性、功能、優化器、統計資訊以及執行引擎都做了很多改進。

TiFlash專案正在進行中

2019年之後,PingCAP會有哪些大動作?馬曉宇表示,“除了提升產品的效能、完善更多的功能之外,我們還會開展TiFlash專案。”據悉,TiFlash是一個相對獨立完整的分析型資料庫產品,通過Raft Learner獨立同步一套列存,Label進行物理隔離,使AP/TP作業互相無影響,從而解決HTAP系統資源隔離的難題。

在對TP端極低的消耗下,Raft Learner接入配合 MVCC 事務模型可以提供一致性的資料讀取,同時又兼顧了資源隔離。當讀取資料時,TiFlash傳送Raft索引校對請求。當資料同步到讀取請求傳送時間點的進度時,TiFlash才提供讀取。馬曉宇透露,“2019年將要釋出GA版本,包含TiSpark以及TiDB雙入口。”

馬曉宇認為,“最開始在業界,HTAP其實是一個marketing slogan。如果一個資料庫可以完美的融合TP和AP,那麼在設計上來說,這將是一個非常乾淨漂亮的做法。”他還表示,“未來,HTAP還會有更多待開發的場景,值得我們去探索。”

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

相關文章