您好,登錄后才能下訂單哦!
HTAP是目前數據庫領域比較熱門的一個概念,它既能支持OLTP(在線事務處理),又能支持OLAP(在線分析處理),可以涵蓋大部分企業級應用的需求,一站式解決他們的問題。本次,小編有幸采訪到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。”馬曉宇說道。
▲TiDB數據庫的原始架構
TiDB的關鍵立足點在于,它是一個能擴展的關系型數據庫。馬曉宇補充道,“除了可以替換分庫分表MySQL做TP業務,TiDB也非常適合中臺場景,可輕松同步MySQL生產庫、透明無障礙的跨分片查詢,實現數據實時落地、海量存儲(TiKV)允許多數據源匯聚等。”
不僅如此,TiDB的代碼全部開源。馬曉宇表示,“我們本身是一家開源的公司,我們也會參與一些其他的開源社區,公司員工很多都是資深的開源社區的參與者和貢獻者,我們希望和其他社區共贏,能有更多的小伙伴參加我們的開源。”
▲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還會有更多待開發的場景,值得我們去探索。”
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。