首款國產(chǎn)開源數(shù)據(jù)庫TBase核心架構(gòu)演進(jìn)
騰訊云數(shù)據(jù)庫國產(chǎn)數(shù)據(jù)庫專題線上技術(shù)沙龍正在火熱進(jìn)行中,4月14日李躍森的分享已經(jīng)結(jié)束,沒來得及參與的小伙伴不用擔(dān)心,以下就是直播的視頻和文字回顧。
大家好,我是李躍森,目前負(fù)責(zé)騰訊云TBase數(shù)據(jù)庫研發(fā)的相關(guān)工作。今天跟大家分享的內(nèi)容主要分為兩大章節(jié)。第一章:數(shù)據(jù)庫技術(shù)的基本概念和基本架構(gòu)。第二章:TBase產(chǎn)品的典型案例,以及在國產(chǎn)化上我們所做的具體工作。
PartⅠ 數(shù)據(jù)庫產(chǎn)品分類
首先,我們先來看一下數(shù)據(jù)庫的分類。數(shù)據(jù)庫分類有多種方式,接下來會(huì)介紹三種分類。
一、按照數(shù)據(jù)庫的業(yè)務(wù)場(chǎng)景劃分
一般我們?cè)谡務(wù)摂?shù)據(jù)庫的時(shí)候,首先會(huì)問數(shù)據(jù)庫是OLAP還是OLTP?
OLAP,即在線分析型處理,這一塊其實(shí)是按照業(yè)務(wù)特點(diǎn)來劃分的。OLAP的第一個(gè)特點(diǎn)是數(shù)據(jù)量比較大,一般會(huì)要求PB級(jí)或者更大的數(shù)據(jù)量,數(shù)據(jù)量大了以后,對(duì)存儲(chǔ)的成本會(huì)比較敏感,對(duì)數(shù)據(jù)壓縮也會(huì)有一定的要求,OLAP業(yè)務(wù)系統(tǒng)的并發(fā)量不會(huì)特別的高。另外,OLAP場(chǎng)景下查詢一般都會(huì)比較復(fù)雜,每個(gè)查詢需要消耗大量的資源,會(huì)要求多個(gè)用戶之間的查詢要減少相互之間的影響,進(jìn)行資源隔離。類似產(chǎn)品還是比較多的,比如:TeraData、SybaseIQ、GreenPlum、HP Vetica、 Gauss200、 VectorWise、AWS Redshift,以及現(xiàn)在比較流行的ClickHouse等。
OLTP,即在線事務(wù)型處理。在線事務(wù)處理數(shù)據(jù)量相對(duì)較小,普遍時(shí)延要求較高,要求達(dá)到毫秒級(jí)。在吞吐量這一塊,普遍要求能夠達(dá)到百萬級(jí)以上的TPS。OLTP業(yè)務(wù)系統(tǒng)都是我們核心的業(yè)務(wù)系統(tǒng),包括銀行、保險(xiǎn)、電信這樣的實(shí)時(shí)在線的業(yè)務(wù),業(yè)務(wù)特點(diǎn)決定對(duì)容災(zāi)能力有一些突出的要求,一般來講要求99.99%以上的可靠性。傳統(tǒng)上來講,我們一般講數(shù)據(jù)庫都是指:Oracle、IBM DB2、Informix、MySQL,以及PostgreSQL這樣的一些數(shù)據(jù)庫。
這兩年還興起一個(gè)數(shù)據(jù)庫概念叫做HTAP,即混合事務(wù)處理和在線分析型數(shù)據(jù)庫;镜乃悸肥悄軌蛟趩渭簝(nèi)部同時(shí)處理OLAP和OLTP兩類業(yè)務(wù),而且OLAP和OLTP業(yè)務(wù)之間有良好的資源隔離。典型產(chǎn)品這兩年宣傳的比較多的如TiDB,包括TBase設(shè)計(jì)之初也是這么考慮的。
二、按照時(shí)間劃分
現(xiàn)在我們一般會(huì)講Old SQL,這個(gè)所謂的Old SQL是指?jìng)鹘y(tǒng)的SQL數(shù)據(jù)庫。此類數(shù)據(jù)庫的典型特點(diǎn):它是一個(gè)完整的關(guān)系模型,具備完整的事務(wù)能力。像Oracle、IBM DB2、MySQL、PostgreSQL這些是傳統(tǒng)的數(shù)據(jù)庫。
在2010年前后,No SQL數(shù)據(jù)庫在互聯(lián)網(wǎng)中大量興起,泛指一些非關(guān)系型數(shù)據(jù)庫,主要特點(diǎn)是沒有完整的事務(wù)支持,而且沒有模式的概念,普遍采用無共享架構(gòu),根據(jù)業(yè)務(wù)進(jìn)行分區(qū)。另外在復(fù)制這一塊,使用異步復(fù)制,保持最終的一致性。典型產(chǎn)品包括Redis、HBase、MongoDB等。
最近這兩年,結(jié)合上面的Old SQL和No SQL的概念,又提出了一個(gè)New SQL的概念, New SQL其實(shí)是結(jié)合了Old SQL和No SQL的概念,它既具備了No SQL的便利性,又能夠支持傳統(tǒng)數(shù)據(jù)庫數(shù)據(jù)庫架構(gòu),但是New SQL在關(guān)系模型的完整性上存在一些問題。
三、按照架構(gòu)
數(shù)據(jù)庫的劃分經(jīng)過多年的演進(jìn),大概有三種架構(gòu)。
第一種是單體數(shù)據(jù)庫,所謂單體數(shù)據(jù)庫就像之前我們經(jīng)常提到的Oracle、PostgreSQL、MySQL這種單機(jī)的數(shù)據(jù)庫,單個(gè)實(shí)例能夠提供獨(dú)立的服務(wù),主備機(jī)通過流復(fù)制來做HA,這是傳統(tǒng)的架構(gòu)。
第二種是共享存儲(chǔ)架構(gòu),多個(gè)數(shù)據(jù)庫實(shí)例同時(shí)訪問一份存儲(chǔ),數(shù)據(jù)是存儲(chǔ)在專門的存儲(chǔ)設(shè)備中,這里的存儲(chǔ)設(shè)備一般是指磁盤陣列或者類似于這樣專用的存儲(chǔ)設(shè)備,現(xiàn)在我們能看得到的包括Oracle RAC、SybaseIQ都是這樣的架構(gòu)。
第三種是無共享,也就是我們常說的MPP。每個(gè)DN節(jié)點(diǎn)存儲(chǔ)一個(gè)數(shù)據(jù)分片,在DN節(jié)點(diǎn)之上會(huì)有另外一層節(jié)點(diǎn),這層節(jié)點(diǎn)在不同的數(shù)據(jù)庫中有不同的名字,但是它的作用其實(shí)是一樣的,都是接收業(yè)務(wù)請(qǐng)求,然后分發(fā),同時(shí)對(duì)業(yè)務(wù)請(qǐng)求進(jìn)行返回。TeraData、GreenPlum、TBase、TDSQL、TiDB都是屬于這種架構(gòu)。
隨著云業(yè)務(wù)形態(tài)的誕生,這兩年在傳統(tǒng)的數(shù)據(jù)庫架構(gòu)基礎(chǔ)上,產(chǎn)生一種比較流行的新架構(gòu)--云原生架構(gòu),日志即數(shù)據(jù)庫。
它會(huì)把數(shù)據(jù)庫的業(yè)務(wù)邏輯沉到底層的存儲(chǔ)節(jié)點(diǎn)里面去,存儲(chǔ)節(jié)點(diǎn)和上面的計(jì)算節(jié)點(diǎn)是進(jìn)行邏輯上的分離,其實(shí)也就是物理上的分離,另外一種叫法是計(jì)算與存儲(chǔ)分離。在下層的存儲(chǔ)集群之間,通過一致性協(xié)議來保證多個(gè)副本之間的一致性,統(tǒng)一對(duì)上層的數(shù)據(jù)節(jié)點(diǎn)提供一個(gè)可靠的存儲(chǔ)服務(wù)。這里補(bǔ)充說明下:數(shù)據(jù)庫節(jié)點(diǎn)就是把數(shù)據(jù)庫的業(yè)務(wù)邏輯,包括SQL解析及SQL的執(zhí)行都做到上層去。類似的產(chǎn)品現(xiàn)在也比較多,基本上幾個(gè)大的云廠商都有自己的產(chǎn)品。主要有兩個(gè)技術(shù)優(yōu)點(diǎn),1、可以做到存儲(chǔ)計(jì)算分離,存儲(chǔ)和計(jì)算可以做到單獨(dú)擴(kuò)容,2、它可以實(shí)現(xiàn)存儲(chǔ)的超賣,這在云上這是一個(gè)比較有價(jià)值的能力。
這里給大家重點(diǎn)介紹一下PostgreSQL數(shù)據(jù)庫,如果是在十年以前提到PostgreSQL,大家可能都會(huì)一臉懵。經(jīng)過這幾年國內(nèi)PostgreSQL社區(qū)的推廣,PostgreSQL的認(rèn)可度已經(jīng)高了很多。
它是由圖靈獎(jiǎng)得主石破天主導(dǎo)的一個(gè)項(xiàng)目,以BSD風(fēng)格協(xié)議開源。PostgreSQL的好處是源代碼可以隨意的修改和發(fā)布,甚至可以用來盈利。PostgreSQL在網(wǎng)站上聲稱是最先進(jìn)的開源數(shù)據(jù)庫,經(jīng)過這么多年的發(fā)展,PostgreSQL的整個(gè)功能上距離商業(yè)數(shù)據(jù)庫Oracle確實(shí)越來越近,作為開源產(chǎn)品也具備了一些Oracle不具備的靈活性和擴(kuò)展能力。最近幾年社區(qū)發(fā)布版本的速度是越來越快,技術(shù)思路逐漸向商業(yè)數(shù)據(jù)庫靠近,相信后面會(huì)有越來越多的業(yè)務(wù)跑在PostgreSQL上。
很多人都問MySQL和PostgreSQL兩個(gè)之間有什么區(qū)別。這邊簡(jiǎn)單列舉了一下它們的區(qū)別。
接下來跟大家分享下TBase的整體情況,先從TBase的簡(jiǎn)史說起。
TBase是基于PostgreSQL研發(fā)的一個(gè)分布式數(shù)據(jù)庫,最早可以追溯到2009年。當(dāng)時(shí)是拿PostgreSQL來作為我們內(nèi)部數(shù)倉的補(bǔ)充,支撐小數(shù)據(jù)量的分析。2014年開發(fā)了TBase第一個(gè)版本,內(nèi)部開始使用。2015年TBase在微信支付商戶集群里面上線后。到了2018年,發(fā)布了TBase V2,在數(shù)字廣東和云南公安上線。2019年發(fā)布了TBase的V3版本。
PartⅡ 數(shù)據(jù)庫核心技術(shù)選型
在講架構(gòu)設(shè)計(jì)之前,先來看一下TBase面臨的業(yè)務(wù)場(chǎng)景。
TBase的整體物理架構(gòu),跟前面提到的架構(gòu)是比較類似的。
TBase整體物理架構(gòu)分三個(gè)部分,圖中的左側(cè)上層GTM是事務(wù)管理器,它主要是提供全局事務(wù)的信息,同時(shí)管理全局對(duì)象。另外圖中右側(cè)上層Coordinator(協(xié)調(diào)節(jié)點(diǎn)CN),它主要提供業(yè)務(wù)訪問入口。協(xié)調(diào)節(jié)點(diǎn)中每個(gè)節(jié)點(diǎn)之間是對(duì)等的,也就是說業(yè)務(wù)訪問這三個(gè)節(jié)點(diǎn)里面的任何一個(gè),它得到的結(jié)果都會(huì)是相同的,而且訪問這個(gè)節(jié)點(diǎn),事務(wù)的一致性能夠得到保證。圖中中層是集群數(shù)據(jù)交互總線,把整個(gè)數(shù)據(jù)庫集群的各種連接到了一起。圖中下層是數(shù)據(jù)節(jié)點(diǎn),數(shù)據(jù)節(jié)點(diǎn)有些是我們實(shí)際存儲(chǔ)數(shù)據(jù)的地方。每個(gè)數(shù)據(jù)節(jié)點(diǎn)會(huì)存儲(chǔ)一份本地的Local元數(shù)據(jù),同時(shí)還有本地的數(shù)據(jù)分片。

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長度6~500個(gè)字
最新活動(dòng)更多
-
3月27日立即報(bào)名>> 【工程師系列】汽車電子技術(shù)在線大會(huì)
-
4月30日立即下載>> 【村田汽車】汽車E/E架構(gòu)革新中,新智能座艙挑戰(zhàn)的解決方案
-
5月15-17日立即預(yù)約>> 【線下巡回】2025年STM32峰會(huì)
-
即日-5.15立即報(bào)名>>> 【在線會(huì)議】安森美Hyperlux™ ID系列引領(lǐng)iToF技術(shù)革新
-
5月15日立即下載>> 【白皮書】精確和高效地表征3000V/20A功率器件應(yīng)用指南
-
5月16日立即參評(píng) >> 【評(píng)選啟動(dòng)】維科杯·OFweek 2025(第十屆)人工智能行業(yè)年度評(píng)選
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達(dá)AI統(tǒng)治的開始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀(jì)”爆發(fā)至今,五類新物種登上歷史舞臺(tái)
- 5 國產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計(jì)算迎來商業(yè)化突破,但落地仍需時(shí)間
- 7 東陽光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開成長空間
- 8 地平線自動(dòng)駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機(jī)器人東風(fēng)翻身?