溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

騰訊TDSQL提出三個(gè)“數(shù)據(jù)庫(kù)之問”,數(shù)據(jù)庫(kù)技術(shù)未來(lái)重點(diǎn)在哪?

發(fā)布時(shí)間:2020-06-29 05:45:33 來(lái)源:網(wǎng)絡(luò) 閱讀:285 作者:騰訊資訊 欄目:大數(shù)據(jù)

作者簡(jiǎn)介:
李海翔,網(wǎng)名“那海藍(lán)藍(lán)”,騰訊金融云數(shù)據(jù)庫(kù)技術(shù)專家。中國(guó)人民大學(xué)信息學(xué)院工程碩士企業(yè)導(dǎo)師。著有《數(shù)據(jù)庫(kù)事務(wù)處理的藝術(shù):事務(wù)管理和并發(fā)訪問控制》、《數(shù)據(jù)庫(kù)查詢優(yōu)化器的藝術(shù):原理解析與SQL性能優(yōu)化》、《大數(shù)據(jù)管理》。
 

前言

 
2019年10月11日至13日,CCF數(shù)據(jù)庫(kù)專委會(huì)在濟(jì)南召開了國(guó)內(nèi)規(guī)模最大的、每年一度的數(shù)據(jù)庫(kù)學(xué)術(shù)盛會(huì)——第36屆CCF中國(guó)數(shù)據(jù)庫(kù)學(xué)術(shù)會(huì)議(NDBC 2019),騰訊TDSQL團(tuán)隊(duì)受邀在“數(shù)據(jù)庫(kù)產(chǎn)學(xué)研合作論壇”,做了主題為“TDSQL對(duì)未來(lái)分布式數(shù)據(jù)庫(kù)的技術(shù)研發(fā)思考與實(shí)踐”的技術(shù)報(bào)告,與國(guó)內(nèi)數(shù)據(jù)庫(kù)學(xué)界與業(yè)界核心技術(shù)人員共同探討國(guó)產(chǎn)數(shù)據(jù)庫(kù)面臨的基礎(chǔ)問題和技術(shù)發(fā)展方向,助力推動(dòng)我國(guó)數(shù)據(jù)庫(kù)技術(shù)自主可控發(fā)展。
 
與此同時(shí),本次會(huì)上,騰訊云數(shù)據(jù)庫(kù)技術(shù)專家、金融級(jí)分布式數(shù)據(jù)庫(kù)TDSQL團(tuán)隊(duì)專家工程師、中國(guó)人民大學(xué)信息學(xué)院工程碩士企業(yè)導(dǎo)師李海翔,當(dāng)選成為了中國(guó)計(jì)算機(jī)學(xué)會(huì)(CCF)數(shù)據(jù)庫(kù)專委會(huì)委員。未來(lái),騰訊將加大投入,促進(jìn)我國(guó)數(shù)據(jù)庫(kù)產(chǎn)學(xué)研合作,推進(jìn)數(shù)據(jù)庫(kù)技術(shù)自主可控發(fā)展。
 
作為致力于基礎(chǔ)技術(shù)研發(fā)的科技公司,本次NDBC 2019會(huì)議,騰訊TDSQL團(tuán)隊(duì)帶來(lái)了TDSQL對(duì)分布式數(shù)據(jù)庫(kù)技術(shù)研發(fā)的深度思考與實(shí)踐分享,期待能拋磚引玉,引發(fā)更多思考。主要包括三個(gè)方面:

1)?分布式事務(wù)的效率與正確性,如何在保證雙一致性(事務(wù)一致性、分布式一致性)的前提下,提高分布式事務(wù)型集群的處理效率?
2)?新硬件和AI等技術(shù),在云環(huán)境下,如何影響著數(shù)據(jù)庫(kù)的架構(gòu)?
3)數(shù)據(jù)庫(kù)各個(gè)模塊間是否能解耦以降低研發(fā)的復(fù)雜度,同時(shí)縮短研發(fā)人才的培養(yǎng)周期?
 

騰訊TDSQL提出三個(gè)“數(shù)據(jù)庫(kù)之問”,數(shù)據(jù)庫(kù)技術(shù)未來(lái)重點(diǎn)在哪?
 

一 騰訊TDSQL數(shù)據(jù)庫(kù)的發(fā)展歷程

 
TDSQL是騰訊打造的金融級(jí)分布式數(shù)據(jù)庫(kù),對(duì)內(nèi)支撐騰訊公司近90%的金融、交易、計(jì)費(fèi)類業(yè)務(wù)。2007年,隨著公司業(yè)務(wù)再一次騰飛,TDSQL團(tuán)隊(duì)啟動(dòng)了一個(gè)724高可用服務(wù)項(xiàng)目,以保障騰訊計(jì)費(fèi)等公司級(jí)別敏感業(yè)務(wù)高可用、核心數(shù)據(jù)零丟失、核心交易零錯(cuò)賬。這也是TDSQL的前身。
 
然而,考慮到當(dāng)時(shí)選用的技術(shù)方案,技術(shù)層與業(yè)務(wù)層耦合較深。于是,騰訊技術(shù)團(tuán)隊(duì)開始了研發(fā)一款金融級(jí)數(shù)據(jù)庫(kù)的項(xiàng)目。實(shí)現(xiàn)讓數(shù)據(jù)庫(kù)來(lái)解決高可用、數(shù)據(jù)一致性、水平伸縮等問題,而讓業(yè)務(wù)系統(tǒng)只需要關(guān)注業(yè)務(wù)邏輯。2012年,標(biāo)準(zhǔn)化的金融級(jí)分布式關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品TDSQL研發(fā)完成,并在騰訊內(nèi)部大規(guī)模推廣使用。
 
騰訊TDSQL提出三個(gè)“數(shù)據(jù)庫(kù)之問”,數(shù)據(jù)庫(kù)技術(shù)未來(lái)重點(diǎn)在哪?
 
十多年研發(fā)演進(jìn)中,TDSQL在高可用、分布式方面做持續(xù)優(yōu)化,同時(shí)不斷提高性能,具備全球部署架構(gòu)、水平伸縮、企業(yè)級(jí)安全等特性。
 
例如,2018年,TDSQL實(shí)現(xiàn)了原創(chuàng)性提出的全面地解決讀一致性的算法,使得分布式事務(wù)的一致性和分布式系統(tǒng)的一致性統(tǒng)一在一起。同年,在業(yè)界頗為頭疼的云數(shù)據(jù)庫(kù)運(yùn)維問題上,TDSQL還提供了兩大利器:“赤兔”運(yùn)營(yíng)管理平臺(tái)和“扁鵲”智能DBA診斷系統(tǒng)。
 
從2014年開始,TDSQL通過騰訊金融云平臺(tái)對(duì)外開放。目前TDSQL已經(jīng)為500+機(jī)構(gòu)提供數(shù)據(jù)庫(kù)的公有云及專有云服務(wù),客戶覆蓋計(jì)費(fèi)、第三方支付、銀行、保險(xiǎn)、互聯(lián)網(wǎng)金融、物聯(lián)網(wǎng)、互聯(lián)網(wǎng)+、政務(wù)等領(lǐng)域,助力客戶業(yè)務(wù)從國(guó)際數(shù)據(jù)庫(kù)切換為自主可控的分布式數(shù)據(jù)庫(kù)。
 
今年,騰訊云TDSQL助力張家港行成功將銀行傳統(tǒng)核心系統(tǒng)由集中式數(shù)據(jù)庫(kù)存儲(chǔ)改造為分布式數(shù)據(jù)庫(kù)存儲(chǔ),這是在國(guó)內(nèi)銀行首次在傳統(tǒng)核心業(yè)務(wù)系統(tǒng)場(chǎng)景下,采用國(guó)產(chǎn)分布式數(shù)據(jù)庫(kù),打破了該領(lǐng)域?qū)?guó)外數(shù)據(jù)庫(kù)的長(zhǎng)期依賴。
 

二 TDSQL的分布式事務(wù)處理技術(shù):高效的分布式事務(wù)雙一致性

 
首先,我們分享一下TDSQL在實(shí)現(xiàn)“雙一致性(事務(wù)一致性、分布式一致性)”,并提高分布式事務(wù)型集群的處理效率的探索實(shí)踐。
 
眾所周知,數(shù)據(jù)庫(kù)是一個(gè)高并發(fā)系統(tǒng),所有的操作通過事務(wù)的語(yǔ)義加以約束。而事務(wù)的語(yǔ)義,表現(xiàn)為事務(wù)的四個(gè)特性——ACID:原子性(A)、一致性(C)、隔離性(I)、持久性(D)。而一個(gè)數(shù)據(jù)庫(kù)系統(tǒng),其最核心的技術(shù),就是事務(wù)處理技術(shù)。為了保障ACID,數(shù)據(jù)庫(kù)使用了多種復(fù)雜技術(shù),其中,技術(shù)的核心是并發(fā)訪問控制算法。
 
事務(wù)處理技術(shù),有兩個(gè)初衷:一是數(shù)據(jù)正確性,二是并發(fā)高效率。TDSQL的分布式事務(wù)處理模型,經(jīng)歷了2代,第一代采用的技術(shù)是2PL+MVCC,第二代采用的是OCC+2PL+MVCC。OCC技術(shù)融合了2PL以解決高沖突不能高效率的問題,OCC融合了MVCC消除了讀寫、寫讀互相阻塞的并發(fā)問題進(jìn)一步提高了性能,自適應(yīng)的OCC使得在OCC和2PL間動(dòng)態(tài)自動(dòng)切換,使得分布式事務(wù)處理機(jī)制更聰明。
 
但是,這些還不足以體現(xiàn)TDSQL如何著手提高分布式事務(wù)的效率。在架構(gòu)上,TDSQL是去中心化的架構(gòu),沒有集中式單Master那樣的處理分布式事務(wù)的單點(diǎn)瓶頸,事務(wù)協(xié)調(diào)器間傳遞相關(guān)聯(lián)的分布式事務(wù)控制信息量被優(yōu)化,分布式并發(fā)訪問控制算法的沖突粒度控制在數(shù)據(jù)項(xiàng)一級(jí)從而提高了事務(wù)的并發(fā)度,因而效率更高。另外還有很多其他方面的優(yōu)化,使得TDSQL的分布式事務(wù)處理效率較高。
 
而我們繼續(xù)探討,如圖1,在分布式背景下,怎么實(shí)現(xiàn)“雙一致性(事務(wù)一致性、分布式一致性),并提高分布式事務(wù)型集群的處理效率?”
 
騰訊TDSQL提出三個(gè)“數(shù)據(jù)庫(kù)之問”,數(shù)據(jù)庫(kù)技術(shù)未來(lái)重點(diǎn)在哪?
圖1實(shí)現(xiàn)分布式事務(wù)面臨的問題

 
該問題,是業(yè)界一個(gè)難題。Google的Spanner系統(tǒng)實(shí)現(xiàn)了雙一致,但事務(wù)處理的效率很低。TDSQL在深入研究分布式事務(wù)處理的技術(shù)時(shí),不僅解決了全局一致性問題(2019DTCC大會(huì)分享:分布式數(shù)據(jù)庫(kù)全局讀一致性),而且提出了一個(gè)“統(tǒng)一致性模型”,不僅在正確性上實(shí)現(xiàn)了雙一致的功能,而且高效地解決了該問題。
 
在TDSQL看來(lái),雙一致性的正確性相對(duì)容易實(shí)現(xiàn)(盡管這也是一個(gè)很難解決的問題),但分布式事務(wù)型數(shù)據(jù)庫(kù)的性能難以有效提高。
 
那么,有哪些因素,制約著分布式事務(wù)型數(shù)據(jù)庫(kù)性能的提高呢?
 
如圖2,一些研究者認(rèn)為,是網(wǎng)絡(luò)帶寬限制了性能;一些研究者認(rèn)為,制約分布式事務(wù)型數(shù)據(jù)庫(kù)性能的提高有2個(gè)因素,一是“l(fā)atency”本身,二是“l(fā)atency”延長(zhǎng)了事務(wù)的生命周期,而長(zhǎng)的事務(wù)生命周期導(dǎo)致并發(fā)事務(wù)發(fā)生沖突的概率增大,進(jìn)而引發(fā)事務(wù)回滾降低了性能。

 
騰訊TDSQL提出三個(gè)“數(shù)據(jù)庫(kù)之問”,數(shù)據(jù)庫(kù)技術(shù)未來(lái)重點(diǎn)在哪?
圖2 分布式事務(wù)的瓶頸
 
另外,影響正確性和性能的,是事務(wù)處理技術(shù)中的核心技術(shù)——并發(fā)訪問控制算法。
 
如圖3所示,實(shí)驗(yàn)表明,在事務(wù)型數(shù)據(jù)庫(kù)中,OCC算法效率更高,在多核環(huán)境下,OCC算法比2PL算法性能高出170倍。但是,高的并發(fā)沖突下,OCC的回滾率增加,表明OCC算法的缺點(diǎn)也很明顯。
 
騰訊TDSQL提出三個(gè)“數(shù)據(jù)庫(kù)之問”,數(shù)據(jù)庫(kù)技術(shù)未來(lái)重點(diǎn)在哪?
圖3 并發(fā)訪問控制算法的優(yōu)劣
 
但是,還有研究者對(duì)于多種并發(fā)訪問控制算法進(jìn)行了較驗(yàn)證,如圖4,發(fā)現(xiàn)傳統(tǒng)的OCC算法比很多種知名的改進(jìn)的OCC算法(如知名的Tictoc、自適應(yīng)的OCC等算法)更有效。這表明,不同人實(shí)現(xiàn)的不同的系統(tǒng)盡管采用了一樣的算法思路,但是實(shí)際效果卻大不相同(如Tictoc自身的測(cè)試結(jié)果表明其改進(jìn)的OCC算法效率好于傳統(tǒng)的OCC算法)。所以,我們?cè)谒伎?,不同?shí)驗(yàn)得到不同的結(jié)論,其背后,真的影響分布式事務(wù)的效率的因素究竟是什么?
 
騰訊TDSQL提出三個(gè)“數(shù)據(jù)庫(kù)之問”,數(shù)據(jù)庫(kù)技術(shù)未來(lái)重點(diǎn)在哪?
圖4 多種并發(fā)訪問控制算法的比較之一
 
進(jìn)一步探討,如圖5所示,不同研究者表明,自適應(yīng)的OCC(OCC+2PL),有著更好的性能(圖5中間的子圖)。綜合圖3、圖4和圖5,其實(shí)可以發(fā)現(xiàn),不同的研究者的驗(yàn)證結(jié)果,是不能互相推證的,他們的驗(yàn)證結(jié)果,只能表明算法之間的大致趨勢(shì)(如OCC性能會(huì)比2PL更好一些)差異,但不能精確表明算法之間的差異點(diǎn)究竟在哪里。
 

騰訊TDSQL提出三個(gè)“數(shù)據(jù)庫(kù)之問”,數(shù)據(jù)庫(kù)技術(shù)未來(lái)重點(diǎn)在哪?
圖5多種并發(fā)訪問控制算法的比較之二
 
再對(duì)比圖6,騰訊在MySQL上做了熱點(diǎn)更新功能,發(fā)現(xiàn)在高并發(fā)高競(jìng)爭(zhēng)同一個(gè)數(shù)據(jù)項(xiàng)的情況下,影響MySQL性能的,不是2PL這個(gè)算法本身,而是為解決死鎖問題時(shí)死鎖檢測(cè)算法消耗的CPU資源,故MySQL的事務(wù)吞吐量近乎為0。禁止了死鎖檢測(cè)后,并用系統(tǒng)鎖(非事務(wù)鎖)互斥了在同一個(gè)數(shù)據(jù)項(xiàng)上的并發(fā)競(jìng)爭(zhēng)后,MySQL系統(tǒng)事務(wù)處理吞吐量上升的萬(wàn)倍左右。
 

騰訊TDSQL提出三個(gè)“數(shù)據(jù)庫(kù)之問”,數(shù)據(jù)庫(kù)技術(shù)未來(lái)重點(diǎn)在哪?
圖6 真實(shí)系統(tǒng)下的真實(shí)問題
 

這說明了,在不同系統(tǒng)下實(shí)現(xiàn)的相同算法的結(jié)果,只具有參考價(jià)值。如果在實(shí)際系統(tǒng)中,如MySQL、PostgreSQL中做實(shí)現(xiàn),才更有實(shí)際參考意義。
 

三 分布式數(shù)據(jù)庫(kù)的架構(gòu)與解耦

 
TDSQL團(tuán)隊(duì)在研發(fā)分布式事務(wù)型數(shù)據(jù)庫(kù)的過程中,除了思考分布式事務(wù)處理技術(shù)(ACID實(shí)現(xiàn)的所有技術(shù))外,還深度探索測(cè)試驗(yàn)證、架構(gòu)擴(kuò)展、模塊解耦等等各種重要的問題。
 
新硬件和AI等技術(shù),在云環(huán)境下,如何影響著數(shù)據(jù)庫(kù)的架構(gòu)?
 
數(shù)據(jù)庫(kù)各個(gè)模塊間是否能解耦以降低研發(fā)的復(fù)雜度,同時(shí)縮短研發(fā)人才的培養(yǎng)周期?
 
新硬件和AI等技術(shù),從架構(gòu)上深深地影響了傳統(tǒng)的數(shù)據(jù)庫(kù),這表現(xiàn)在如何融合這些新技術(shù):
 
首先,數(shù)據(jù)庫(kù)可能會(huì)“增加”很多新模塊進(jìn)去,如圖7中的左下子圖,AI調(diào)優(yōu)數(shù)據(jù)庫(kù)技術(shù)使得數(shù)據(jù)庫(kù)系統(tǒng)被擴(kuò)展了,增加了很多新組件進(jìn)來(lái)。
 
其次,數(shù)據(jù)庫(kù)的傳統(tǒng)模塊會(huì)被改變,如圖8中的左下子圖,在并行的事務(wù)型數(shù)據(jù)庫(kù)系統(tǒng)中,提出基于AI技術(shù)對(duì)事務(wù)進(jìn)行優(yōu)化的模型。該模型采取存儲(chǔ)過程的方式(此點(diǎn)類似H-Store、VoltDB),向數(shù)據(jù)庫(kù)引擎提前提供所執(zhí)行的事務(wù),然后利用AI技術(shù)(Markov model,馬爾可夫模型)對(duì)存儲(chǔ)過程進(jìn)行分析,確定那些存儲(chǔ)過程所代表的事務(wù)間的語(yǔ)義,排定事務(wù)并發(fā)執(zhí)行時(shí)哪些是互相沖突的,得到一個(gè)有固定結(jié)構(gòu)的事務(wù)執(zhí)行模型,如圖8左下子圖中右側(cè),是對(duì)TPC-C模型NewOrder進(jìn)行的分析得到的事務(wù)調(diào)度圖。
 
當(dāng)多個(gè)Client發(fā)出SQL語(yǔ)句執(zhí)行存儲(chǔ)過程代表的并發(fā)事務(wù)時(shí),據(jù)此模型即能推斷事務(wù)的調(diào)度方式。這是AI技術(shù)改變事務(wù)處理中并發(fā)訪問控制模塊的一個(gè)典型事例。
 
圖8中的右上子圖,是RDMA對(duì)于事務(wù)處理技術(shù)的影響,該圖展示了四種模型,其中“d”模型是基于RDMA從2個(gè)方面對(duì)事務(wù)處理構(gòu)成影響,一是事務(wù)處理的控制流,二是事務(wù)執(zhí)行過程中發(fā)生的數(shù)據(jù)流。影響分布式事務(wù)處理效率的,不僅僅是龐大的數(shù)據(jù)流,而相對(duì)數(shù)據(jù)量小的控制流,也是瓶頸,因此需要引入RDMA來(lái)加以解決網(wǎng)絡(luò)帶寬瓶頸。

騰訊TDSQL提出三個(gè)“數(shù)據(jù)庫(kù)之問”,數(shù)據(jù)庫(kù)技術(shù)未來(lái)重點(diǎn)在哪?
圖7 數(shù)據(jù)庫(kù)架構(gòu)發(fā)生變化
 

騰訊TDSQL提出三個(gè)“數(shù)據(jù)庫(kù)之問”,數(shù)據(jù)庫(kù)技術(shù)未來(lái)重點(diǎn)在哪?
圖8 數(shù)據(jù)庫(kù)中的模塊發(fā)生變化
 
傳統(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng),其復(fù)雜度極高,從外看高內(nèi)聚,從內(nèi)看高耦合,這使得數(shù)據(jù)庫(kù)的復(fù)雜度驟然提升。當(dāng)各種新技術(shù)產(chǎn)生,影響了數(shù)據(jù)庫(kù)的架構(gòu)時(shí),數(shù)據(jù)庫(kù)的復(fù)雜性被再提上一個(gè)臺(tái)階。在這種背景下,研發(fā)人才的培育,其成長(zhǎng)周期就會(huì)更長(zhǎng)。因此,我們?cè)谒伎嫉囊粋€(gè)問題是:從技術(shù)上看,如何解耦數(shù)據(jù)庫(kù)內(nèi)部間的諸多模塊?耦合度高,研發(fā)人員需要掌握數(shù)個(gè)相關(guān)模塊才能良好推進(jìn)工作;如果模塊間解耦較好,掌握單個(gè)模塊就能方便推進(jìn)工作,這樣人才的培育周期相應(yīng)也會(huì)縮短,軟件的質(zhì)量也會(huì)得到提高。
 
所以,數(shù)據(jù)庫(kù)架構(gòu)背景下各個(gè)模塊解耦問題,是一個(gè)技術(shù)問題。解耦工作,可以在許多層次、許多模塊間展開。解耦技術(shù),各有其妙。
 
如圖7右上子圖所示,AWS的Aurora提出的存儲(chǔ)計(jì)算分離,就是存儲(chǔ)和計(jì)算兩大模塊的解耦。而微軟Deuteronomy系統(tǒng)在08年-16年也有過一系列相關(guān)工作。Deuteronomy一開始采用的方案是在存儲(chǔ)層上面實(shí)現(xiàn)事務(wù),而底層的存儲(chǔ)采用的是KV模型。存儲(chǔ)層只需要提供KV的原子性和冪等性,上層就可以比較容易實(shí)現(xiàn)事務(wù)的并發(fā)訪問控制和恢復(fù)。后來(lái)的Percolator、Spanner/F1、CockroachDB、TiDB其實(shí)也是沿著這個(gè)思路在發(fā)展,底層是Bigtable/Spanner或者RocksDB這樣的KV存儲(chǔ)引擎,在存儲(chǔ)之上封裝一層事務(wù)。但是在類似RocksDB這樣的KV存儲(chǔ)中,對(duì)于KV記錄的并發(fā)控制還是和存儲(chǔ)緊耦合的。
 
存儲(chǔ)和計(jì)算兩大模塊的解耦,促進(jìn)了各自所囊括的子模塊之間再次進(jìn)行解耦,如圖9所示,事務(wù)和存儲(chǔ)層的解耦,該怎么進(jìn)行?有的研究者,把事務(wù)處理功能提取到客戶端進(jìn)行(圖9左子圖),有的把事務(wù)處理功能放到中間件層實(shí)行按(圖9中間子圖),這2種方式不同于傳統(tǒng)的在Server端進(jìn)行事務(wù)處理(圖9的右子圖)。
 
騰訊TDSQL提出三個(gè)“數(shù)據(jù)庫(kù)之問”,數(shù)據(jù)庫(kù)技術(shù)未來(lái)重點(diǎn)在哪?
圖9 事務(wù)和存儲(chǔ)層解耦
 
另外,解耦工作,其實(shí)無(wú)處不在。圖10展示了算法與數(shù)據(jù)結(jié)構(gòu)之間的解耦。圖10的左子圖,是數(shù)據(jù)庫(kù)的持久化部分和內(nèi)存中數(shù)據(jù)之間的設(shè)計(jì)解耦。圖10的右子圖,是索引的數(shù)據(jù)結(jié)構(gòu)與物理存儲(chǔ)層之間的解耦。
 
圖10的左子圖,對(duì)應(yīng)VLDB 2018的論文"FineLine: Log-structured Transactional Storage and Recovery",提出了一種事務(wù)存儲(chǔ)和恢復(fù)機(jī)制FineLine,舍棄了傳統(tǒng)的WAL,把所有需要持久化的數(shù)據(jù)存儲(chǔ)到一個(gè)單一的數(shù)據(jù)結(jié)構(gòu),希望將數(shù)據(jù)庫(kù)的持久化部分和內(nèi)存中數(shù)據(jù)存儲(chǔ)之間達(dá)到設(shè)計(jì)解耦。
 
FineLine無(wú)需將內(nèi)存中數(shù)據(jù)落盤到DB,僅將內(nèi)存中的log信息持久化到Indexed log中,然后通過fetch操作從Indexed log讀取到數(shù)據(jù)的最新狀態(tài)。通過將內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)與其持久性表示盡量地解耦,消除了與傳統(tǒng)基于磁盤的RDBMS相關(guān)的許多開銷。除此之外,這種單一的持久化存儲(chǔ)架構(gòu)帶來(lái)的另一個(gè)好處是,在系統(tǒng)發(fā)生故障后恢復(fù)的開銷很低。由于Indexed log保持了與原子操作的一致性,當(dāng)發(fā)生故障并重啟時(shí),可以從Indexed log中讀取到已提交的最新數(shù)據(jù)記錄?;趎o-steal的策略,Undo操作,Checkpoint這些也都不需要。
 
騰訊TDSQL提出三個(gè)“數(shù)據(jù)庫(kù)之問”,數(shù)據(jù)庫(kù)技術(shù)未來(lái)重點(diǎn)在哪?
圖10 計(jì)算與數(shù)據(jù)結(jié)構(gòu)之間的解耦
 
數(shù)據(jù)庫(kù)內(nèi)部,各個(gè)模塊之間的解耦,與模塊粒度的劃分,與具體實(shí)現(xiàn)的系統(tǒng),都有密切關(guān)系。如圖11展示了幾個(gè)主流數(shù)據(jù)庫(kù)之間解耦的關(guān)系,期待能拋磚引玉,引發(fā)更多思考。
 
騰訊TDSQL提出三個(gè)“數(shù)據(jù)庫(kù)之問”,數(shù)據(jù)庫(kù)技術(shù)未來(lái)重點(diǎn)在哪?
圖11 主流數(shù)據(jù)庫(kù)解耦的比較
 

結(jié)語(yǔ)

 
數(shù)據(jù)庫(kù)作為核心基礎(chǔ)技術(shù)之一,在自主可控的時(shí)代發(fā)展潮流下,是我們必將要跨過的大山。路雖彌,不行則不至,歷經(jīng)十?dāng)?shù)年的研發(fā)演進(jìn),至少今天我們都已達(dá)成了許多重要的里程碑。當(dāng)下而言,國(guó)產(chǎn)數(shù)據(jù)庫(kù)從技術(shù)、人才、工業(yè)生態(tài)等各方面,都有待完善和發(fā)展,而未來(lái)更緊密的產(chǎn)學(xué)研結(jié)合、科技與傳統(tǒng)產(chǎn)業(yè)融合趨勢(shì)下,將進(jìn)一步促進(jìn)數(shù)據(jù)庫(kù)自主可控發(fā)展。*

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI