近期,ArchSummit 全球架構師峰會(以下簡稱:AS峰會)北京站圓滿落幕,AS峰會是極客邦科技旗下 InfoQ 中國團隊推出的重點面向高端技術管理者、架構師的技識訓議,AS峰會北京站以“升級架構思維,支撐業務發展”為目標,邀請各廠商展示先進技術在行業中的典型實踐,以及技術在企業轉型、發展中的推動作用,在此次AS峰會上,騰訊云資料庫專家團亮相“云資料庫的架構設計與技術演進”專場,由騰訊云資料庫專家工程師伍鑫擔任專場出品人,
資料庫作為基礎軟體的三駕馬車之一,是IT行業的必爭之地,云時代下,云原生技術和資料庫技術的結合,已經成為資料庫行業重要發展方向,在專場中,四位講師圍繞云資料庫的架構設計和技術演進,以騰訊云的資料庫產品為例,針對性地解讀資料庫產品容器化難點、資料庫統一管理、超大規模集群在線數倉架構設計等話題,

一、云原生資料庫管控探索和實踐
孫勇福,騰訊云資料庫專家工程師

技術變革日新月異,迭代迅速,孫勇福認為,多元技術融合、多元架構形態會成為未來的常態,隨著業務的不斷擴大,沿用分散的管控架構模式勢必會帶來重復建設的問題,導致資源使用效率低下,弊端也逐漸凸顯,具體如下:
- 無法利用云上 IaaS 層的資源池和彈性擴縮容的能力,以及 IaaS 層成本和性能優化的紅利;
- 缺少統一的資料庫 PaaS 平臺,對多個產品、多個環境進行統一管控和調度;
- 業務功能復用程度低,造成人力資源浪費;
- 無法利用云原生紅利,平臺無法標準化,運維和交付成本比較高;
上述問題,可以歸納為資源調度和統一的流程管控問題,
得益于騰訊云上IaaS基礎設施的優勢,孫勇福提出了PaaS on IaaS的思考,提高資料庫系統的彈性能力,實作降本增效,同時解決資料庫產品發展程序中遺留的歷史架構問題, 提升范訓新資料庫產品的效率,
如何統一管理IaaS層的資源,是 PaaS on IaaS 面臨的主要挑戰,孫勇福所在的研發團隊進行了各種不同的嘗試,從最初的框架模式逐漸演化到平臺模式,一個叫云巢(Khaos)的產品誕生了,現如今,云巢(Khaos)有狀態服務PaaS平臺已經可以支持各種資料庫產品快速上云,
什么是有狀態服務?孫勇福解釋說,有狀態服務是指需要將資料、會話或服務狀態做持久保存,服務啟動、運行和恢復時均嚴格依賴所保存資料的正確性和一致性的服務,資料庫就是典型的有狀態服務,有狀態服務區別于無狀態服務主要是狀態兩個字,有狀態服務往往伴隨著資料持久化,服務節點狀態化( MySQL 主從節點),
如何在復雜的狀態服務中,更好的解耦業務邏輯,提供通用的平臺能力是PaaS 平臺設計的難點之一,在云巢的構建中,首先要明確平臺的邊界和業務邊界,平臺不僅要關心業務的具體邏輯,也必須要提供業務靈活的接入功能,
在架構設計上,云巢平臺包含 Khaos Platform 和 Khaos Eros 兩個子系統,Khaos Platform借助Kubernetes的標準化能力統一了不同的底座, 向上提供資料庫服務實體的配置管理、生命周期管理、跨故障域調度等基礎能力,除了底層資源管理之外,資料庫管控系統往往還有較復雜的業務流程, 例如,對于某個資料庫實體的發貨流程,管控系統收到請求后,先申請底層計算、存盤資源以及VIP等, 等待資源就緒之后,管控系統繼續執行添加路由、設定計費策略等操作,為了降低業務流程與云巢的互動復雜度,云巢在資源管理的基礎上提供了 Khaos Eros服務, 用來將底層資源平臺的操作細節封裝成更粗粒度的業務流程,簡化使用云巢的難度,
此外,孫勇福還分享了云巢架構設計實作的具體細節,有想了解的小伙伴可入群與講師討論哦!
二、騰訊云資料庫云上SaaS生態演進
潘怡飛,騰訊云資料庫高級工程師

在實際作業中,潘怡飛通過與用戶的交流發現,用戶在用PaaS產品的時候經常需要定制開發,比如說資料庫運維工具、資料傳輸工具等等,定制化作業會分散運維同學的精力,增加研發同學在業務上的研發時間,因此,SaaS產品應運而生,
騰訊云資料庫提供完整的SaaS生態矩陣,潘怡飛重點分享了以下三大產品:
1. 資料傳輸服務DTS
DTS提供資料遷移與資料流打通服務,特點是支持在線遷移同步,滿足低時延和高可靠的要求,在功能上主要包含遷移、同步和訂閱三大模塊,具體來看:
- DTS資料遷移是面向單次的資料庫遷移上云、下云,支持常見的鏈路,可以實作歷史全量和動態增量的遷移,同時它還支持一致性校驗,可以在遷移前隨時發起一致性校驗,幫助客戶預知遷移效果,在遷移中,DTS能夠保證資料的正確性以及做到對源庫無感知,潘怡飛表示這也是客戶最關注的點,
- DTS資料同步是指兩個資料源之間的資料長期實時同步,具有多種高級特性,例如庫表重映射、DML/DDL過濾,Where條件過濾;主要適用于云上云下多活、異地多活,跨境資料同步、實時資料倉庫等場景,
- DTS資料訂閱是指實時按需獲取資料庫中關鍵業務的資料變化資訊,將這些資訊包裝為訊息物件推送到內置Kafka中,方便下游實時消費應用;適用于異構資料更新等,
整體來看,DTS通過遷移、同步和訂閱這三個功能模塊,充分打通資料鏈路之間的流轉管理,構建雙向、環形、異構、多合一等場景,這樣不用客戶自己去開發一些工具或定時任務來解決問題,使得客戶可以更專注于自身業務,發揮優勢創造價值,剩下的就交給PaaS平臺或SaaS平臺來做,
2. 資料智能管家DBbrain
資料庫統一管理程序中有許多的難點和痛點,DBbrain正是應用于解決這些問題的一款SaaS工具,DBbrain是自動化、智能化運維統一管理平臺,從前期的資料庫巡檢、故障發現、故障定位到后期的故障解決與系統優化,形成一套資料庫全生命周期管理運維的工具,
潘怡飛列舉了兩個典型場景,為大家詳細展示了DBbrain的功能,
第一個是慢SQL分析,DBbrain會基于多維度的統計來進行統一匯總,并實作自動排序,在性能優化這方面,利用編譯器、優化器的改寫來計算代價和成本,以此判斷SQL是不是優質,是不是需要添加索引,另外DBbrain支持通過API的拉取分析介面,借助云上計算的優勢,直接使用 SaaS 去構建自有運維平臺,
第二個是例外診斷,日常診斷是根據秒級的監控,日常的巡檢會有一些告警項提示,同時收集十幾個維度的資訊之后做匯總展示,進一步進行預警診斷,
3. 資料庫安全審計
資料庫安全審計是一個基于內核級別的安全審計平臺,區別于一些需要旁路管控部署的方式,這種對性能和收集完整度都支持的比較好;同時可以DBbrain進行聯動,針對審計日志進行匯總、分析,真正能夠做到收集并使用,
SaaS的產品價值在于可以降低客戶在工具或者不必要的研發上的投入,把資源聚焦于自己的業務,直接使用SaaS 工具可以幫助業務更好的創造價值,
未來,潘怡飛表示騰訊云資料庫SaaS生態產品還將繼續發力,DTS后續會在場景化和復雜拓撲場景深耕,支持一鍵創建復雜拓撲鏈路,比如說星型、環形、雙向等一系列場景,并且實作不需要逐條配置沖突策略,DBbrain會更加智能化、AI化,可以直接基于慢SQL自動,將之前的推薦模式升級到自動創建索引,甚至實作資料庫負載自動擴容、縮容;同時可以利用目前云原生資料庫的快速縮擴容能力,充分結合更多產品之間的場景聯動,幫助客戶創造更多業務價值,
此外,潘怡飛還分享了騰訊云資料庫SaaS生態的發展思路,有想了解的小伙伴可入群與講師討論哦!
三、大規模在線數倉技術構架分享
張倩,騰訊云資料庫專家工程師

大規模在線數倉的分析性能提升,可以在自研列式存盤、向量化引擎、并行執行邏輯、計算層快取等核心技術模塊做突破,張倩分享道,
資料庫技術發展半個世紀,從早期對關系模型的研究到SQL陳述句的出現,都是不斷面向業務需求和用戶體驗的最佳設計實踐,而列存盤的出現甚至可以追溯到上世紀70年代的資料庫開創時代,當時人們就在討論具體用何種存盤模型來支持上層計算,
張倩提到,其實在實際使用場景中,用戶業務模型并不會完全適配某一種存盤型別,更多的是混合業務模型中帶有OLTP或者OLAP場景的傾向性,所以資料庫系統在早期針對專一場景的探索比較成熟后,近年來開始進一步探索,逐步提出混合HTAP(Hybrid Transactional/Analytical Processing)模式,希望通過一套引擎來處理混合業務型別,
大規模在線數倉整體以OLAP極致查詢性能讀優化RO(Read Optimize)為基礎前提,保證資料庫事務ACID特性,同時針對OLTP場景進行寫優化WO(Write Optimize),并且對RO/WO能力進行透明整合,為用戶提供透明易用的表結構設計,
張倩基于列式存盤的自研程序,為大家重點分析了其中的技術細節,列存盤模塊中資料塊采用DSM模型每列以Silo格式獨立存盤保證高壓縮比和最大化I/O裁剪能力支持,而每張列存盤表會創建兩張輔助heap表,Registry表用來存盤Silo的元資料資訊,Stash表用來承接Write Optimize的短事務DML資料并后臺進行資料“沉降”Merge,
通過基于heap表的元資料實作,將列存的MVCC設計與行存表統一,使得列存表能夠完美支持DML、分布式事務一致性、并發更新等能力,同時列存表也支持B-Tree/Hash索引,range/hash/list等多級磁區表能力,用戶使用起來更加方便,在選擇存盤型別建表后,用戶基本可以無感知的進行行列混合多表關聯、基于索引的點查詢加速、多任務并發入庫/查詢,
此外,張倩還分享了騰訊云資料庫在向量化引擎、并行執行邏輯、計算層快取等技術上的優化思路,有想了解的小伙伴可入群與講師討論哦!
四、TDSQL升級版引擎架構和關鍵技術介紹
韓碩,騰訊云資料庫高級工程師

隨著企業業務場景的不斷增長和復雜化,業務形態、業務量會不可預知性的增大,由此,業務的敏態發展對資料庫底層技術也提出了需要具有敏感能力的要求,
韓碩老師分享道,在資料庫投產的程序中,應對業務敏態變更的時候常常會遇到以下這些問題:
- 兼容性:建表需要手動指定shardkey;
- 運維:存盤層擴容,需要DBA發起,部分事務會中斷;
- 模式變更:online DDL依賴Pt等工具,
基于上述問題,騰訊云資料庫升級了TDSQL新敏態存盤引擎架構,韓碩老師表示,考慮到敏態業務變化較大,團隊希望在TDSQL新敏態存盤引擎架構中,用戶可以像單機資料庫一樣去使用分布式資料,不需要關注存盤變化,可以隨時加欄位、建索引,做到業務完全無感知,

如上圖所示,升級版的架構圖分為計算層、元資料管理層和分布式存盤層三個部分,韓碩重點分享了這三個部分的設計要點,
在計算模塊SQLEngine中,內核完全兼容MYSQL8.0,計算層為多主架構,每個SQLEngine節點均可讀寫,SQLEngine之間通過一定方式重繪表結構變更等資訊,改造是無狀態化設計,移除各種有狀態化的資料,多執行緒替換為協程框架,
在存盤模塊TDstore中,架構是基于LSM-tree和Multi-raft的分布式KV存盤引擎,資料是Region是基于raft同步的多副本的存盤管理單元,資料根據key范圍分布在不同Region上;Region TDMC調度下可發生分裂、合并、遷移、切主等操作,
在管控模塊TDMetacluser中,重點關注三個方面,第一是高效的生成和下發全域唯一的事務時間戳;第二是管理模塊的元資料,比如TDstore和SQLEngine元資料,管理Region資料路由資訊,以Region為基本單位進行負載均衡和存盤的均衡調度;第三是負載均衡的調度,這個調度要考慮負載的熱點,簡單來講,會把熱點Region打散到不同的存盤節點上,也需要兼顧性能的影響,還要對Region行程做一些合理的劃分,會有跨Region的分布式事務,是兩階段提交的模型,我們會把行程通過合理的Region調度和劃分,把兩個階段的事務變成一階段的事務,從而提升效率,
韓碩將升級版引擎技術亮點總結為以下四點:
- 兼容性:具有TDSQL兼容性,升級版的架構是原生分布式結構,資料以key range打散和路由,成本比較低;存盤層采用LSM-Tree結構,壓縮比有量級的提升,非常適合于大規模業務量的業務,
- 可擴展性強:首先計算層是多主模式,每個SQLengine均可讀寫,同時是無狀態化設計,可根據業務流量隨時靈活添加或減少一些計算節點,存盤層也是根據業務資料存盤量需求,去做平滑的添加或者移除TDstore節點,通過資料自動遷移,實作容量彈性伸縮,做到業務層無感知,
- 一致性:事務模型具有全域讀一致性,圍繞管理層TDmetacluster統一分配全域唯一遞增事務時間戳來做資料的一致性的判斷,
- 支持在線變更:計算節點支持在線模式變更,目前已經支持了在線操作、索引操作等,
最后,韓碩再次將團隊的愿景傳遞給大家:希望用戶能夠像使用單機資料庫一樣使用我們的分布式資料庫,同時還能擁有無限擴展性,
此外,想了解韓碩分享的TDSQL新敏態存盤引擎架構實作細節的小伙伴,可入群與講師討論哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/503433.html
標籤:其他
