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

請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
推薦專題
- 1 AI 眼鏡讓百萬 APP「集體失業(yè)」?
- 2 大廠紛紛入局,百度、阿里、字節(jié)搶奪Agent話語權(quán)
- 3 深度報告|中國AI產(chǎn)業(yè)正在崛起成全球力量,市場潛力和關(guān)鍵挑戰(zhàn)有哪些?
- 4 上海跑出80億超級獨角獸:獲上市公司戰(zhàn)投,干人形機器人
- 5 國家數(shù)據(jù)局局長劉烈宏調(diào)研格創(chuàng)東智
- 6 下一代入口之戰(zhàn):大廠為何紛紛押注智能體?
- 7 百億AI芯片訂單,瘋狂傾銷中東?
- 8 Robotaxi新消息密集釋放,量產(chǎn)元年誰在領(lǐng)跑?
- 9 格斗大賽出圈!人形機器人致命短板曝光:頭腦過于簡單
- 10 “搶灘”家用機器人領(lǐng)域,聯(lián)通、海爾、美的等紛紛入局