亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

騰訊TDSQL提出三個“數據庫之問”,數據庫技術未來重點在哪?

發布時間:2020-06-29 05:45:33 來源:網絡 閱讀:288 作者:騰訊資訊 欄目:大數據

作者簡介:
李海翔,網名“那海藍藍”,騰訊金融云數據庫技術專家。中國人民大學信息學院工程碩士企業導師。著有《數據庫事務處理的藝術:事務管理和并發訪問控制》、《數據庫查詢優化器的藝術:原理解析與SQL性能優化》、《大數據管理》。
 

前言

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

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

騰訊TDSQL提出三個“數據庫之問”,數據庫技術未來重點在哪?
 

一 騰訊TDSQL數據庫的發展歷程

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

二 TDSQL的分布式事務處理技術:高效的分布式事務雙一致性

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

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

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

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

騰訊TDSQL提出三個“數據庫之問”,數據庫技術未來重點在哪?
圖6 真實系統下的真實問題
 

這說明了,在不同系統下實現的相同算法的結果,只具有參考價值。如果在實際系統中,如MySQL、PostgreSQL中做實現,才更有實際參考意義。
 

三 分布式數據庫的架構與解耦

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

騰訊TDSQL提出三個“數據庫之問”,數據庫技術未來重點在哪?
圖7 數據庫架構發生變化
 

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

結語

 
數據庫作為核心基礎技術之一,在自主可控的時代發展潮流下,是我們必將要跨過的大山。路雖彌,不行則不至,歷經十數年的研發演進,至少今天我們都已達成了許多重要的里程碑。當下而言,國產數據庫從技術、人才、工業生態等各方面,都有待完善和發展,而未來更緊密的產學研結合、科技與傳統產業融合趨勢下,將進一步促進數據庫自主可控發展。*

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

梁平县| 新乐市| 阳谷县| 综艺| 高青县| 乐昌市| 芒康县| 县级市| 枞阳县| 云龙县| 汉寿县| 奉新县| 苏尼特左旗| 崇仁县| 宁波市| 通道| 育儿| 西平县| 沭阳县| 双流县| 东山县| 洛扎县| 同德县| 安图县| 河源市| 腾冲县| 周至县| 嘉峪关市| 麦盖提县| 阜阳市| 钟祥市| 舞阳县| 洛阳市| 泗水县| 中牟县| 烟台市| 武冈市| 五大连池市| 金华市| 邯郸市| 南川市|