主頁 > 資料庫 > 百度云原生資料庫GaiaDB的HTAP與多地多活技術實踐

百度云原生資料庫GaiaDB的HTAP與多地多活技術實踐

2023-05-25 14:12:53 資料庫

摘要:云原生資料庫在使用存算分離技術后,可以在完全兼容MYSQL協議和語法的情況下,極大提升單實體所能承載的資料規模與吞吐能力上限,但除了對客戶端兼容外,對整個資料生態(地域容災,資料分析,備份恢復)的適配同樣需要大量的設計優化作業,本次分享GaiaDB在跨地域/異構資料同步場景下,吞吐/實時性/一致性方面能力打造與實踐經驗,

在2023云資料庫技術沙龍 “MySQL x ClickHouse” 專場上,百度資料庫資深技術專家邱學達,為大家分享一下《百度云原生資料庫GaiaDB的HTAP與多地多活技術實踐》的一些技術內容,

 

邱學達,百度資料庫資深技術專家,主要負責分布式架構設計與資料庫內核特性設計和開發,多年資料庫與分布式存盤開發經驗,專注于分布式高可用+高可靠架構設計與云原生化改造,在分布式性能優化、端到端可用性提升方面具有豐富經驗

本文內容根據演講錄音以及PPT整理而成,

大家好,今天我想和大家分享的內容是百度云原生資料庫GaiaDB在資料分析場景與多地多活方面的一些實踐經驗,

 

GaiaDB是百度智能云研發的一款云原生資料庫,目前已經在云上獲得了廣泛的應用,承載了多個高吞吐/超大容量業務,特別是幫助很多業務在0改造成本下,實作了服務多地域多活,在每個地域都可以實作接近本地的低延遲讀取能力,在大資料量承載方面,多個線上百TB以上業務實踐證明,GaiaDB在這種規模下依然具備良好的吞吐與彈性能力,

 

下面我來介紹一下GaiaDB的整體架構,

首先是接入層 ,接入層主要用來提供自動讀寫分離/流量控制/SQL防火墻/鑒權與負載均衡等功能,業務無需維護復雜的讀寫分離/連接池邏輯,直接使用proxy即可享受豐富的接入管理功能,對于有讀寫一致性要求的業務,還可以選擇使用主從一致性或全域強一致等多種一致性級別,解決傳統架構寫后讀不可見導致的多種復雜兼容問題,

再往下是計算層,計算層依然是多個計算節點互相負載均衡的架構,對于讀場景已經實作了無狀態的橫向與縱向彈性伸縮,可以實作秒級擴縮容,方便應對線上各種活動流量與突發尖峰,對于寫場景,默認仍提供基于縱向擴展的彈性伸縮能力,可以滿足線上大部分業務的寫吞吐需求,

對于寫能力的橫向擴展,我們也做了大量的技術儲備,寫的擴展能力主要取決于請求的沖突情況;在完全無沖突的負載下,樂觀事務可以提供近似線性的寫擴展能力,但是大部分的交易類負載都是存在沖突的,在這種情況下樂觀事務模型的使用體驗就會變得不易接受;對于目前主流的悲觀事務模型來講,解決沖突主要使用鎖機制實作,橫向寫擴展引入的跨節點鎖協商會帶來較高的事務延遲與吞吐瓶頸,目前在工程上還是非常具有挑戰性的,當前對于寫的橫向擴展我們更多的是結合業務特點進行專屬方案定制,實作業務上的整體最優解,

接下來是存盤層的架構設計,對于分布式存盤系統來講,核心就是資料磁區演算法與資料引擎設計,資料磁區演算法的核心在于如何在盡量降低映射獲取時延的同時,將記憶體消耗控制在可接受的范圍內,同時又盡量避免資料的大規模搬運,對于實時性要求越高的系統,磁區演算法的設計應該層級越少、規則越簡單,避免引入過多的切換消耗,而資料引擎的設計優化方向則集中在Base資料的讀取優化以及增量資料(WAL)的可靠性/一致性保證上,

GaiaDB的存盤引擎在設計上將Base資料與增量更新分離到了兩個子系統中,即存盤子系統和日志子系統,避免了日志流與資料流的IO爭搶導致各類性能問題,存盤子系統可以向極致讀性能方向優化,將讀IO優先級設為最高,寫則可以使用異步落盤+記憶體動態回放技術降低對磁盤占用;日志子系統向極致寫性能方向優化,使用視窗技術+增量引擎,將寫能力優化至極致水平,讀使用熱資料快取技術提升性能,通過將讀寫資料流解耦分別優化,實作了資源的最大化利用,

在整體架構設計上,GaiaDB對于系統資料一致性與可靠性方面做了重點加強,Mysql的主從切換一直是一個比較復雜的課題,在硬體掉電/網路不可達等場景下,保證資料的嚴格一致較為困難,GaiaDB將原生資料可靠能力(RPO=0)固化到系統的基礎設計之中,通過將一致性協議中的任期機制融入到整個資料鏈路中,新的寫入任期開啟后,任何過時寫入都會被排除在資料流之外,確保即使發生了假死等情況,資料的完整性也完全不會受到影響,

 

接下來想和大家分享一下 GaiaDB 在配合業務的分析需求、讓業務可以更高效流暢實作資料分析的一些實踐經驗,

很多業務在使用GaiaDB滿足交易類和輕度分析類需求的同時,還會使用Doris解決分析型場景下的需求,Doris是由百度自研并捐贈至Apache軟體基金會的開源MPP資料庫,在行業內獲得了廣泛的應用,對于不同種類的資料分析讀取需求,我們積累了一些成本與效率最優的解決方案,下面我來結合具體的案例進行分析,

如圖是一個典型的泛互聯網產品架構:最前端是網路接入層,用于承接APP/Web發來的業務請求、聚合和分發不同子系統之間流量;后面有多個業務子系統,例如商品、訂單、活動、推送等,這些用戶業務系統更關注的是資料的高并發+低延遲訪問,對資料的一致性和事務隔離性也有較高的要求,同時由于線上活動或者節假日流量高峰,對彈性和擴展性也有迫切需求,GaiaDB可以很好滿足這類業務的需求,

與用戶業務系統使用同一份資料的部門往往還有另外兩類,一類是后臺服務,也就是對內的客服系統/運營維護系統/供應鏈業務系統等,這些系統的特點是:由于只有公司內部人員使用,QPS和并發不高,但負載復雜而且迭代要求高,比如運營部門經常需要進行新活動設計與配置,客服/MIS系統則需要配合線上活動情況增加各種查詢功能,因此,對于后臺類業務來講,能用SQL和事務快速完成復雜可靠的功能開發是剛性需求,所以SQL的功能豐富度與兼容性顯得尤為重要,同時SQL的并行能力與計算下推對于這類場景的體驗優化具有重要作用,

第二類則是專業的資料分析團隊,資料分析團隊往往承擔了多維度、高復雜度的資料分析需求,所以通常使用專業的資料分析一攬子方案,這種場景下資料請求不會直接發往在線資料庫,而是需要盡量實時的從在線庫匯入至分析庫,因此快速、簡單、可靠的資料匯入匯出能力成為首要關注點,

 

所以針對異構分析的需求,100%生態兼容的匯入匯出功能是首要+必備選項,特別是分析型解決方案的資料同步組件都是通用而非業務自研組件,上云用云程序中修改這部分基礎設施難度是非常高的,因此GaiaDB在這方面做了很多增強作業,比如基于日志流的高可靠強一致能力原生實作了RPO=0級別的Binlog流支持能力,同時對于通用的DTS產品和社區匯入匯出工具,也是保證了完全兼容和歷史經驗復用,不增加額外的學習成本,

而對于輕度的離線分析需求,這部分的特點是需求多變、對成本敏感、與線上服務有隔離訴求,GaiaDB使用多入口技術支持業務在離線請求完全隔離,對于離線類請求使用單獨計算資源,不會對線上造成影響,同時充分利用存盤層分布式MVCC能力,不增加額外的存盤成本和資料一致性維護開銷,隨著離線負載的變化,對應計算資源還可以動態伸縮以進一步增強成本節省能力,對于支持資料磁區的業務來講,GaiaDB同樣兼容了該功能,資料磁區可以有效降低資源爭搶密度,提升并行讀取能力,對于并行分析具備很好的提速作用,

 

還有一類對資料一致性要求更高的業務,如金融類產品,期望拿到精確到秒級的全域一致資料用于分析,不但從空間維度要求資料一致,從時間維度上也期望在分析的程序中資料可以保證前后一致,這種場景下GaiaDB只讀鏡像庫的能力就得以體現,在資源空閑的低峰時段創建鏡像庫同時啟動分析任務,有效利用低峰時段空閑算力,由于只讀鏡像無需處理寫負載,所以寫相關的日志子系統可以裁剪以節省成本,同時也解耦了對高性能介質的依賴,只需要計算節點+冷存盤介質,結合查詢并行化技術充分利用分布式IO吞吐能力,即可實作超低成本離線分析解決方案,同時全量鏡像也確保了資料嚴格一致,避免了增量同步可能導致的DDL處理、資料校驗等復雜問題,有效保證了資料的可用性與可靠性,

 

近幾年隨著業務精細化程度的提升和基礎設施規模故障風險的存在,越來越多的業務將多活能力納入了架構設計考慮的范疇,業務既希望可以獲得高可用性,還想讓成本控制在比較低的程度,同時還不希望由業務實作多份資料的同步與維護,這樣就對資料庫這類基礎設施的多地多活能力提出了很高的要求,GaiaDB的高對稱架構天然適合多地多活方式部署,所有存盤副本邏輯上完全對稱,每個副本都具備動態回放任意版本資料能力,這樣就為資料就近訪問打下了堅實的基礎:業務請求可以自動路由到同機房計算節點,計算節點請求同機房存盤副本即可讀取實時資料,避免了主從架構副本導致的多次跨機房訪問問題,

同時全對稱架構還可以避免故障場景下批量選主帶來的服務中斷與請求風暴問題,任意副本故障不會影響其他副本作業,可用性更高、延遲更平穩,對于寫鏈路則使用并行寫入技術加速,最快的多數派回傳即可實作寫入成功,綜上,GaiaDB的同城多活架構在讀寫鏈路上都可以避免單個慢節點/機房導致的性能抖動問題,使整體性能損耗控制在很小的范圍內,

 

此外GaiaDB也支持跨地域熱活實體組,將災備能力提升到了地域級,業務在地域間部署無需適配改造,即可實作就近讀取低延遲能力和寫請求自動轉發能力,無需維護復雜讀寫入口,提供了與單地域實體一致的使用體驗,幫助大量業務實作了跨地域災備能力,

 

以上就是我今天想和大家分享的內容,GaiaDB在架構設計上核心關注資料的高可靠與高可用性,重點打造了資料的極致可靠保障能力、跨地域多活能力與災備恢復能力,同時在使用體驗上注重簡單可靠,實作了對生態和使用經驗的完全兼容,將用戶上云門檻降至最低,讓所有上云用云業務都可以享受到基礎設施架構提升帶來的效能提升,謝謝大家,

本次大會圍繞“技術進化,讓資料更智能”為主題,匯聚位元組跳動、阿里云、玖章算術、華為云、騰訊云、百度的6位資料庫領域專家,深入 MySQL x ClickHouse 的實踐經驗和技術趨勢,結合企業級的真實場景落地案例,與廣大技術愛好者一起交流分享,

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/553399.html

標籤:其他

上一篇:SQL Server:分頁查詢

下一篇:返回列表

標籤雲
其他(159687) Python(38169) JavaScript(25452) Java(18129) C(15231) 區塊鏈(8268) C#(7972) AI(7469) 爪哇(7425) MySQL(7211) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5873) 数组(5741) R(5409) Linux(5341) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4576) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2434) ASP.NET(2403) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1976) 功能(1967) Web開發(1951) HtmlCss(1944) C++(1922) python-3.x(1918) 弹簧靴(1913) xml(1889) PostgreSQL(1878) .NETCore(1861) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • 百度云原生資料庫GaiaDB的HTAP與多地多活技術實踐

    云原生資料庫在使用存算分離技術后,可以在完全兼容MYSQL協議和語法的情況下,極大提升單實體所能承載的資料規模與吞吐能力上限。但除了對客戶端兼容外,對整個資料生態(地域容災,資料分析,備份恢復)的適配同樣需要大量的設計優化作業。本次分享GaiaDB在跨地域/異構資料同步場景下,吞吐/實時性/一致性方... ......

    uj5u.com 2023-05-25 14:12:53 more
  • SQL Server:分頁查詢

    ## 一、分頁查詢 ? 需求描述:客戶端查詢資料庫資料并顯示在表格中。在資料庫中進行一次查詢,查詢結果有1050條記錄,但表格row上限: 100,這時需要給本次查詢記錄分配 `?` 頁用來顯示? 可以通過固定公式進行計算(c偽代碼): ```c # define TABLE_SHOW_ROW 10 ......

    uj5u.com 2023-05-25 14:12:18 more
  • 萬字長文詳述ClickHouse在京喜達實時資料的探索與實踐

    在引入ClickHouse程序中經歷各種困難,耗費大量精力去探索并一一解決,在這里記錄一下希望能夠給沒有接觸過ClickHouse的同學提供一些方向上的指引避免多走彎路,如果文中有錯誤也希望多包含給出指點,歡迎大家一起討論ClickHouse相關的話題。本文偏長但全是干貨,請預留40~60分鐘進行閱... ......

    uj5u.com 2023-05-25 14:11:41 more
  • 百度云原生資料庫GaiaDB的HTAP與多地多活技術實踐

    云原生資料庫在使用存算分離技術后,可以在完全兼容MYSQL協議和語法的情況下,極大提升單實體所能承載的資料規模與吞吐能力上限。但除了對客戶端兼容外,對整個資料生態(地域容災,資料分析,備份恢復)的適配同樣需要大量的設計優化作業。本次分享GaiaDB在跨地域/異構資料同步場景下,吞吐/實時性/一致性方... ......

    uj5u.com 2023-05-25 14:11:20 more
  • es筆記六之聚合操作之指標聚合

    > 本文首發于公眾號:Hunter后端 > 原文鏈接:[es筆記六之聚合操作之指標聚合](https://mp.weixin.qq.com/s/UyiZ2bzFxi7zCGmL1Xf3CQ) 聚合操作,在 es 中的聚合可以分為大概四種聚合: * bucketing(桶聚合) * mertic(指標 ......

    uj5u.com 2023-05-25 10:38:29 more
  • 與世界分享我剛編的mysql http隧道工具-hersql原理與使用

    原文地址:[https://blog.fanscore.cn/a/53/](https://blog.fanscore.cn/a/53/) # 1. 前言 本文是[與世界分享我剛編的轉發ntunnel_mysql.php的工具](https://blog.fanscore.cn/a/47/)的后續, ......

    uj5u.com 2023-05-25 10:20:04 more
  • 01_MySQL基礎架構

    01_MySQL基礎架構 MySQL 45 講Note: 課程專欄名稱:《MySQL實戰45講》課程 筆記參考:MYSQL45 講 01_基礎架構:一條SQL查詢陳述句是如何執行的? 一條SQL查詢是如何執行的 先看一下下面這個圖 ?? 我們首先理解一下 Mysql 的基礎架構,理解如果執行一條簡單的 ......

    uj5u.com 2023-05-25 09:59:24 more
  • 150萬學術名詞中英對照字典ACCESS資料庫

    今天這個資料是一款字典的型別的軟體,專門用來查詢一些學術上面的名詞的中英對照,超過180個學科分類,150多萬條記錄,伴隨您悠游于學海之中,是您做學問、寫論文的好幫手。 主要科目有:電子計算機名詞(107213)、電機工程名詞(100395)、電力工程(68379)、外國地名譯名(64487)、機械 ......

    uj5u.com 2023-05-25 09:45:21 more
  • Apache Hudi 在袋鼠云資料湖平臺的設計與實踐

    在大資料處理中,[實時資料分析](https://www.dtstack.com/dtengine/easylake?src=https://www.cnblogs.com/DTinsight/archive/2023/05/24/szsm)是一個重要的需求。隨著資料量的不斷增長,對于實時分析的挑戰也在不斷加大,傳統的批處理方式已經不能滿足[實時資料處理](https://www.dtstack.com ......

    uj5u.com 2023-05-25 09:41:05 more
  • Elasticsearch與Clickhouse資料存盤對比

    Elasticsearch的查詢陳述句維護成本較高、在聚合計算場景下出現資料不精確等問題。Clickhouse是列式資料庫,列式型資料庫天然適合OLAP場景,類似SQL語法降低開發和學習成本,采用快速壓縮演算法節省存盤成本,采用向量執行引擎技術大幅縮減計算耗時。所以做此對比,進行Elasticsearc... ......

    uj5u.com 2023-05-25 09:40:45 more