8 月 31 日-9 月 4 日,第 46 屆 VLDB 會議以線上直播的方式舉行(原定于日本東京召開),PingCAP 團(tuán)隊(duì)的論文《TiDB: A Raft-based HTAP Database 》入選 VLDB 2020,成為業(yè)界第一篇 Real-time HTAP 分布式數(shù)據(jù)庫工業(yè)實(shí)現(xiàn)的論文。PingCAP 聯(lián)合創(chuàng)始人、CTO 黃東旭獲邀在會上進(jìn)行演講,分享關(guān)于論文的深度解讀及在線答疑。
VLDB(International Conference on Very Large Databases)是數(shù)據(jù)庫領(lǐng)域頂尖的三大學(xué)術(shù)會議之一,于 1975 年在美國成立,由非盈利性機(jī)構(gòu) VLDB 基金會贊助和運(yùn)營,以在全球普及數(shù)據(jù)庫技術(shù)研究和交流作為使命。
在本篇論文中,PingCAP 重點(diǎn)介紹了其研發(fā)的 TiDB 作為一款定位于在線事務(wù)處理和在線實(shí)時分析(HTAP)混合負(fù)載融合型分布式數(shù)據(jù)庫產(chǎn)品的系統(tǒng)架構(gòu)和核心特性。TiDB 受 Google 發(fā)布的 Spanner / F1 論文 ,以及 2014 年 Stanford 工業(yè)級分布式一致性協(xié)議算法 Raft 論文的啟發(fā)。經(jīng)過 5 年多的產(chǎn)品研發(fā)、生產(chǎn)環(huán)境上線驗(yàn)證,取得了一系列成果,此次被 VLDB 2020 收錄也是對學(xué)術(shù)界的反哺。
HTAP(Hybrid Transactional / Analytical Processing) 是近些年為數(shù)據(jù)庫界所關(guān)注的研究方向。HTAP 數(shù)據(jù)庫需要能夠同時兼具處理交易以及分析兩種作業(yè)的能力,這使得交易數(shù)據(jù)能夠被實(shí)時分析,大大縮短決策的周期,同時大幅簡化平臺架構(gòu)。
但是 HTAP 能力并不容易構(gòu)建:交易業(yè)務(wù)需要行存,分析業(yè)務(wù)仰賴列存,且列存往往難于實(shí)時更新。以往的分析平臺往往需要將數(shù)據(jù)從行存的交易庫向列存的分析庫進(jìn)行數(shù)據(jù)遷移,這使得我們的數(shù)據(jù)分析往往基于歷史數(shù)據(jù)。現(xiàn)今越來越多的用戶不再滿足于基于對歷史數(shù)據(jù)進(jìn)行分析,而是希望能用更新鮮的數(shù)據(jù)支持決策。例如生鮮零售業(yè),基于更新鮮的數(shù)據(jù)進(jìn)行物流調(diào)度可以大大減少貨損。
技術(shù)上來說,Real-time HTAP 并不容易實(shí)現(xiàn)。首先,數(shù)據(jù)庫需要同時具備行存和列存兩種能力;并且列存需要能實(shí)時反映行存的變更;最后,兩種業(yè)務(wù)需要能互相之間無干擾運(yùn)行。
TiDB 最新版本中引入了專為 Real-time HTAP 場景設(shè)計(jì)的以 Raft 為基礎(chǔ)的行列混合體系。本論文也是以這個架構(gòu)為主軸來闡述其獨(dú)特之處。
TiDB 為支持 Real-time HTAP 架構(gòu)實(shí)現(xiàn)了:
可實(shí)時更新的列存。與傳統(tǒng)的列存不同,TiDB 實(shí)現(xiàn)了一套可實(shí)時根據(jù)主鍵更新的列存引擎,并使用了與 TiKV 的 LSM 不同的 DeltaTree 設(shè)計(jì),避免了范圍讀取下 LSM 多路歸并負(fù)擔(dān)過重的問題。
通過以 Raft Learner 角色加入 Multi-Raft 副本體系,以異步的方式進(jìn)行從行到列的數(shù)據(jù)復(fù)制,以求盡最小化對在線交易業(yè)務(wù)的影響。同時,雖然是異步復(fù)制,通過共識協(xié)議的 Learner Read 算法,TiFlash 仍然可以提供一致性的讀取效果。
通過與行存一致的代價估算模型,TiDB 可以智能選取行存,列存或者混合的方式響應(yīng)查詢,以期獲得最佳性能。
以上是 TiDB HTAP 架構(gòu)圖,與以往不同的是,新的架構(gòu)下增加了 TiFlash 列式存儲節(jié)點(diǎn)。通過 Raft 共識算法進(jìn)行復(fù)制,每個 Region 可以擁有行存和列存兩種副本,而用戶查詢會根據(jù)統(tǒng)計(jì)信息和代價估算自動選擇副本類型。
TiDB 創(chuàng)新性地利用 Raft 共識協(xié)議同時實(shí)現(xiàn)了行列混合,負(fù)載隔離,以及異步復(fù)制下的一致性讀取,為 HTAP 架構(gòu)設(shè)計(jì)提供了新的思路。PingCAP 聯(lián)合創(chuàng)始人、CTO 黃東旭表示,我們相信,HTAP 將會隨著業(yè)務(wù)對實(shí)時決策的需求不斷增加而越來越普及,與此同時,希望我們的探索可以啟發(fā)其他數(shù)據(jù)庫開發(fā)者。
TiDB 目前已經(jīng)有近 1000 家海內(nèi)外頭部公司用戶將其用于線上生產(chǎn)環(huán)境,涉及互聯(lián)網(wǎng)、游戲、銀行、保險、證券、航空、制造業(yè)、電信、新零售、政府等多個行業(yè)。包括國內(nèi)的光大銀行、北京銀行、微眾銀行、美團(tuán)點(diǎn)評、中通快遞、知乎、愛奇藝等;海外用戶如日本最大的支付公司 Paypay,視頻公司 U-Next, 越南的獨(dú)角獸 VNG,以及支付公司 ZaloPay,印度的 Zomato,BookMyShow,東南亞最大的電商 Shopee,法國視頻互聯(lián)網(wǎng)公司 Dailymotion 等,目前已經(jīng)成為業(yè)內(nèi)的分布式數(shù)據(jù)庫事實(shí)標(biāo)準(zhǔn)。
本文于 2020 年八月的 PVLDB, Volume 13, Issue 12 刊登。
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實(shí)內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )