腾讯基于全时态数据库技术的数据闪回
作者簡介:李海翔,網名“那海藍藍”,騰訊金融云數據庫技術專家。中國人民大學信息學院工程碩士企業導師。著有《數據庫事務處理的藝術:事務管理和并發訪問控制》、《數據庫查詢優化器的藝術:原理解析與SQL性能優化》,廣受好評。
?
2018年11月16日,中國數據技術嘉年華技術大會上,騰訊TDSQL團隊帶來騰訊最新的數據庫核心技術課題:基于全時態數據庫技術的數據閃回。騰訊專家工程師李海翔在大會上做了該課題的分享。
此次分享是基于騰訊研發的分布式全時態數據庫系統和分布式事務處理的創新技術,TDSQL原創性研發了全時態數據的閃回功能,并提出一種基于全時態數據模型的新型架構—HTAC集群架構。主要內容包括:TDSQL概述、TDSQL全時態數據庫核心理念、TDSQL分布式全時態數據庫原理與架構、TDSQL基于HTAC的全閃回技術四個部分。
一、 TDSQL概述
TDSQL分布式數據庫已穩定運行十年之久,不僅支撐了騰訊公司的計費業務,而且在微眾銀行、數字廣東等金融、政務等領域有著廣泛應用。這幾年,TDSQL在技術層面不斷進步,研發諸多新特性,如多級分區、熱點更新、隱含主鍵、分布式事務等,不僅有力地支撐了事務型的數據庫應用,而且在體系結構上也朝Spanner架構邁進,是一個名副其實的NewSQL系統。
TDSQL分布式事務處理技術,有了長足進步,不僅表現在支持分布式事務,而且在MVCC技術的基礎上做了創新,使得TDSQL的事務處理技術基于原創技術不斷發展。
騰訊數據庫技術的發展始終把握兩條線:一是從數據價值出發擴展數據庫的能力為業務提供服務;二是從技術角度出發提升數據庫的能力為數據處理提供服務。2018年,TDSQL提出全時態數據模型,對分布式全時態數據庫進行研發,并推出處理全時態數據類型的HTAC(Hybrid Transaction /Analytical? Cluster,混合事務/分析集群)架構。
?
二、TDSQL全時態數據庫核心理念
TDSQL的原創技術,是基于業務的需求,為解決業務問題而進行的創新。騰訊公司基于TDSQL關系型數據庫研發的時態數據庫,由數據庫系統統一管理海量的全時態數據、當前數據,解決了上述四個業務中的問題(應用開發復雜、數據邏輯割裂、實時特性丟失、數據管理復雜)。
因存儲成本等原因,現代的數據庫系統只保留有數據的當前值,歷史態數據被丟棄。而數據作為重要的資產,不管是當前數據,還是歷史數據,都具有重要價值。因此,歷史態數據存儲、被分析、被挖掘、被反復使用,是當前互聯網企業的需求。尤其是金融類歷史態數據,出于數據安全的原因,需要被多次計算驗證,在騰訊公司的計費業務中,帶有時態屬性的數據被管理的需求日益旺盛。
?
“數據有價值,歷史數據也富有價值”,這是TDSQL時態數據庫的核心價值觀。TDSQL團隊認為:數據的狀態屬性,標識數據的生命周期軌跡。數據的生命周期分為三個階段,每個階段刻畫數據的不同狀態屬性,以標識數據的生命周期軌跡中所處的狀態。
當前態(Current State):數據項最新版本的數據,處于當前階段稱為當前態。
歷史態(Historical State):數據項歷史上的一個狀態,其值是舊值,不是當前值,稱為歷史態。一個數據項的歷史態,可以有多個,反映了數據的狀態變遷的過程。處于歷史態的數據,只能被讀取不能再被修改或刪除。
過渡態(Transitional State):處于從當前態向歷史態轉變的過程中。處于過渡態的數據,稱為半衰數據。
這三個狀態,涵蓋了一個數據項的生命周期,合稱為數據全態(full-state),或稱為全態數據。在MVCC機制下,數據的三種狀態均存在;在非MVCC機制下,數據只存在歷史態和當前態。
當前態:MVCC或封鎖并發訪問控制機制下,事務提交后的數據的新值處于當前態。
歷史態:MVCC機制下,當前活躍事務列表中最小的事務之前的事務生成的數據,其狀態處于歷史態。在封鎖并發訪問控制機制下,事務提交后,提交前的數據的值變為歷史態的值,即數據項的舊值處于歷史態。
過渡態:MVCC機制下,被讀取的版本上尚有活躍事務(非最新相關事務)在使用,因最新相關事務修改了數據項的值,其最新值已經處于一個當前態,被讀取到的值相對當前態已經處于一個歷史狀態,故其數據狀態介于當前態和歷史態之間,所以稱為過渡態。
數據的雙時態屬性,分別為有效時間屬性、事務時間屬性。
基于上述內容,TDSQL構建了全時態數據模型,包括全態數據和時態數據,以及其操作語義。TDSQL全時態數據庫,具備如下圖所示的特性,能夠涵蓋雙時態的數據應用、數據安全、數據分析、簡化應用開發等四大方面的問題。
三 、TDSQL分布式全時態數據庫原理與架構
TDSQL的核心技術之一,是數據模型的定義、全態數據模型和雙時態數據模型的結合。
TDSQL的核心技術一:數據模型
TDSQL全時態數據庫不僅支持全態和雙時態數據的存儲,還支持其他豐富操作。在這個模型中,全態數據體現在數據項的歷史版本上,時態數據不僅有事務時間時態,還有有效時間時態。全態數據的歷史態數據,可以追溯數據庫系統的操作發生時間以及發生的操作類型。具備豐富的操作語義,是TDSQL全時態數據庫的一個特色。
TDSQL的核心技術二:歷史數據轉儲時機
歷史數據的存儲時機,是TDSQL的另外一個核心技術。TDSQL巧妙地利用MySQL的回滾段和Purge機制,實現了歷史態數據的轉儲,原理圖如下:
TDSQL的核心技術三:在全時態數據模型上的事務操作
數據存儲之后,需要基于MVCC做歷史態數據的可見性判斷,原理如下:
?
TDSQL基于全時態數據模型,實現了新的數據一致性快照點的構建,可以獲取任何時間段(包括歷史發生過的時間)上的任何狀態的數據。
作為原創技術,TDSQL的核心技術點及其思路,相關論文已經在World Wide Web journal上以題為《Efficienttime-interval data extraction in MVCC-based RDBMS》發表,詳情可參見:https://link.springer.com/article/10.1007/s11280-018-0552-7
TDSQL分布式數據庫系統的歷史態數據的全局計算,依賴如下圖所示的TDSQL分布式事務處理機制:
?
TDSQL的核心技術四:創新的HTAC架構
TDSQL既支持全時態數據的無限存儲,同時實現了TDSQL對全時態數據的強大計算能力,這得益于創新的HTAC架構。此架構使得全時態數據模型在分布式數據庫系統內做到了三個融合:全態數據融合、AP和TP處理融合、架構向數據模型融合。
如下圖,數據庫服務由HTAC提供:
?
HTAC是一個集群系統,分為TP集群和AP集群,TP提供事務處理業務,AP提供歷史態數據的查詢、分析功能。
SR,SQLRouter層,根據查詢語句、查詢操作的語義和元數據,路由查詢到TP或AP子系統。
TP處理當前態數據,每份數據為一個SET,一個SET存在多個副本,副本間通過TDSQL的強同步技術實現數據強一致。SET中的數據可以線性擴容。節點失效通過ZooKeeper進行管理??绻濣c的寫事務通過2PC技術實現分布式事務對數據操作的原子性、一致性。
AP提供無限存儲功能,保存歷史態數據,并提供歷史態數據的查詢、分析業務。TP中定義歷史態數據遷移策略,按策略把歷史數據原子遷移到AP系統,并注冊到MD元數據管理器。
?
極高的性能
實現數據庫全時態能力之后,TDSQL全時態數據庫依舊保持近乎原系統性能,這是一件不容易的事情。使用業界通用的sysbench測試工具進行OLTP測試,TDSQL全時態數據庫的性能近乎完美。
四 、TDSQL全時態數據庫的閃回
今天,我們分享基于全時態數據庫基礎構建的技術之一:閃回。這是非??岬奶匦?#xff0c;用戶在TDSQL系統中可以實現“一切過往兼可追溯”的夢想。閃回是DBA們特別歡迎的一個重要特性,TDSQL提供了任意時間點的任意數據的閃回能力,其他數據庫諸如Oracle只具備階段性數據的閃回能力。
一旦掌握了TDSQL全時態數據庫系統的實現原理,基于此所做的閃回就能很容易理解。其核心問題就是:在全態的數據上,怎么做給定時間點的一致性查詢。這個問題在第三節已經談得十分充分了。接下來,我們來看看TDSQL全時態數據庫系統的閃回的特點。可以用一個字概括“全”,稱為“全閃回”。全的含義是多種層次的,一是在所有數據項的生命周期內可以進行任意時間點的閃回;二是TDSQL作為一個分布式系統,因為其創新的全局讀一致性技術,做到了在分布式系統下的全局閃回;三是閃回可以在HTAC系統中的AC子系統完成,這不影響生成系統??呻S時進行閃回,小伙伴們對此貼心的架構設計非常滿意。
?
五、 結語 :TDSQL的核心理念,為數據賦能
數據的創造是由用戶和其業務決定的,他們是創造數據的甲方。數據庫承載了數據的管理職責,是否數據庫系統也可以參與到數據的創造環節中來呢?
在TDSQL團隊看來,全時態這一概念,正是數據庫系統參與到數據創造環節的最佳契機。數據庫系統為數據賦于了事務時態,賦于了DML操作過程中的事件源,甚至可能為數據之間賦于關聯關系,使得數據庫系統也成為了數據的創造者。
原創技術的背后,是“為數據賦能”的理念推動著TDSQL團隊潛心鉆研全時態數據庫系統,從而讓數據擁有更多的價值,數據庫變成數據的生產者,參與數據的創造。
總結
以上是生活随笔為你收集整理的腾讯基于全时态数据库技术的数据闪回的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 腾讯云助力中国信息通信研究院研发运维标准
- 下一篇: 腾讯容器云平台GaiaStack亮相ku