雲資料庫架構思維升級,看這篇就夠了

来源:https://www.cnblogs.com/tencentdb/archive/2022/09/01/16646010.html
-Advertisement-
Play Games

近期,ArchSummit 全球架構師峰會(以下簡稱:AS峰會)北京站圓滿落幕。AS峰會是極客邦科技旗下 InfoQ 中國團隊推出的重點面向高端技術管理者、架構師的技術會議。AS峰會北京站以“升級架構思維,支撐業務發展”為目標,邀請各廠商展示先進技術在行業中的典型實踐,以及技術在企業轉型、發展中的推 ...


近期,ArchSummit 全球架構師峰會(以下簡稱:AS峰會)北京站圓滿落幕。AS峰會是極客邦科技旗下 InfoQ 中國團隊推出的重點面向高端技術管理者、架構師的技術會議。AS峰會北京站以“升級架構思維,支撐業務發展”為目標,邀請各廠商展示先進技術在行業中的典型實踐,以及技術在企業轉型、發展中的推動作用。在此次AS峰會上,騰訊雲資料庫專家團亮相“雲資料庫的架構設計與技術演進”專場,由騰訊雲資料庫專家工程師伍鑫擔任專場出品人。

資料庫作為基礎軟體的三駕馬車之一,是IT行業的必爭之地。雲時代下,雲原生技術和資料庫技術的結合,已經成為資料庫行業重要發展方向。在專場中,四位講師圍繞雲資料庫的架構設計和技術演進,以騰訊雲的資料庫產品為例,針對性地解讀資料庫產品容器化難點、資料庫統一管理、超大規模集群線上數倉架構設計等話題。

file

一、雲原生資料庫管控探索和實踐

孫勇福,騰訊雲資料庫專家工程師

file

技術變革日新月異,迭代迅速。孫勇福認為,多元技術融合、多元架構形態會成為未來的常態。隨著業務的不斷擴大,沿用分散的管控架構模式勢必會帶來重覆建設的問題,導致資源使用效率低下,弊端也逐漸凸顯,具體如下:

  • 無法利用雲上 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生態演進

潘怡飛,騰訊雲資料庫高級工程師

file

在實際工作中,潘怡飛通過與用戶的交流發現,用戶在用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生態的發展思路,有想瞭解的小伙伴可入群與講師討論哦!

三、大規模線上數倉技術構架分享

張倩,騰訊雲資料庫專家工程師

file

大規模線上數倉的分析性能提升,可以在自研列式存儲、向量化引擎、並行執行邏輯、計算層緩存等核心技術模塊做突破,張倩分享道。

資料庫技術發展半個世紀,從早期對關係模型的研究到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升級版引擎架構和關鍵技術介紹

韓碩,騰訊雲資料庫高級工程師

file

隨著企業業務場景的不斷增長和複雜化,業務形態、業務量會不可預知性的增大。由此,業務的敏態發展對資料庫底層技術也提出了需要具有敏感能力的要求。

韓碩老師分享道,在資料庫投產的過程中,應對業務敏態變更的時候常常會遇到以下這些問題:

  • 相容性:建表需要手動指定shardkey;
  • 運維:存儲層擴容,需要DBA發起,部分事務會中斷;
  • 模式變更:online DDL依賴Pt等工具。

基於上述問題,騰訊雲資料庫升級了TDSQL新敏態存儲引擎架構。韓碩老師表示,考慮到敏態業務變化較大,團隊希望在TDSQL新敏態存儲引擎架構中,用戶可以像單機資料庫一樣去使用分散式數據,不需要關註存儲變化,可以隨時加欄位、建索引,做到業務完全無感知

file

如上圖所示,升級版的架構圖分為計算層、元數據管理層和分散式存儲層三個部分。韓碩重點分享了這三個部分的設計要點。

計算模塊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新敏態存儲引擎架構實現細節的小伙伴,可入群與講師討論哦!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 有沒有簡單好用的圖像處理軟體?Pixelmator Pro for Mac是一款專業的圖像處理軟體,通過廣泛的工具集來編輯和修飾照片,創建圖形設計,繪畫,繪製矢量圖形以及添加令人驚嘆的效果,它是您需要的唯一圖像編輯器。 詳情:Pixelmator Pro for Mac(專業的圖像編輯軟體) Pix ...
  • 哪個音頻處理軟體好用呢?iZotope RX 10是最新版本的音頻修複軟體,相對RX 9有很強的功能變化,無論您是編輯播客、錄製整個樂隊,還是製作大片,RX 10 都能讓您通過錄製的最佳音頻來吸引觀眾。 詳情:iZotope RX 10 for mac(強大的音頻修複工具) 為什麼是 RX? 去除手 ...
  • 澳大利亞標準委員會與2022年6月24日發佈了一系列新版標準。其中,AS/NZS 60335.1:2022 應在IEC 60335-1第六版對應的分標發佈之後使用。 此外,澳大利亞標準委員會發佈的標準也被用作紐西蘭標準。具體內容如下: • AS/NZS 60335.1:2022 – 家用和類似用途電 ...
  • Dockerfile 基本結構 Dockerfile 是一個文本格式的配置文件,用戶可以使用 Dockerfile 快速創建自定義鏡像。 Dockerfile 由一行行命令語句組成,並且支持以 # 開頭的註釋行。 Docker分為四部分: 基礎鏡像信息 維護者信息 鏡像操作指令 容器啟動時預設要執行 ...
  • 9月2日,本周五14:00 「創新的複利」 Sequoia Talk系列論壇,首期直播盛大啟動。在第一期科技專場,4位紅杉中國資深投資人、8位創新創業者將帶我們深入工業軟體、機器人、雲計算等領域,圍繞技術、商業、運營等多個維度進行探討。本次,玖章算術CEO葉正盛被業界稱為雲計算和資料庫技術領軍人,受 ...
  • 我們在日常程式設計中,經常會遇到樹狀結構的表示,例如組織機構、行政區劃等等。這些在資料庫中往往通過一張表進行展示。這裡我們以一張簡單的行政區劃表為例進行展示,在實際使用過程中,可以為其添加其他描述欄位以及層級。表中通過ID和PID關聯,實現樹狀結構的存儲。建表以及數據語句如下:-- Create t ...
  • 前一天從自建MySQL遷移到雲上RDS,在執行某個併發較高的業務時出現了大量鎖等待,客戶當時升級了實例到最高規格,但故障依舊。 ...
  • 自從2020年底開始接觸 PostgreSQL 以來就喜歡上了這個資料庫,個人感覺比 MySQL 好用,多表聯合查詢性能好很多,同時也不存在 SQLServer 的版權授權費用問題。搭配 .NET 開發很好用,目前手裡的項目全部都是採用 PostgreSQL 進行數據支撐的。 本文主要說一下在 Wi ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...