主頁 > 資料庫 > 周家恩:GaussDB(for MySQL) 云原生資料庫技術演進和挑戰

周家恩:GaussDB(for MySQL) 云原生資料庫技術演進和挑戰

2023-05-19 11:23:19 資料庫

演講內容

摘要:GaussDB(for MySQL)是華為自研云原生資料庫,具有高性能,高擴展,高可靠的特點,完全兼容MySQL協議,自研架構和友好的生態兼容性,可以同時滿足資料庫管理員、應用開發者、CTO的運維、使用和業務發展需求,本次主要介紹GaussDB(for MySQL)在云原生技術方向上遇到的挑戰和未來的發展演進路徑,

在2023云資料庫技術沙龍 “MySQL x ClickHouse” 專場上,華為云資料庫高級產品經理周家恩,為大家分享一下《GaussDB(for MySQL)云原生資料庫技術演進和挑戰》的一些技術內容,

 

分享嘉賓

周家恩,華為云資料庫高級產品經理,10年以上資料庫技術運維,產品管理經驗,先后在多家TOP云廠商任職產品經理,熟悉MySQL,SQL Server等多款資料庫管理,維護以及商業運營作業,現任華為云資料庫高級產品經理,負責原生資料庫GaussDB(for MySQL)產品管理和設計,運營作業,

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

GaussDB(for MySQL)云原生技術的演進和挑戰

大家好,先讓我自我介紹一下,目前我在華云資料庫團隊擔任資料庫產品經理,主要負責MySQL領域的產品規劃,今天我帶來的主題是《GaussDB(for MySQL)云原生技術的演進和挑戰》,

 

華為資料庫的發展歷程

讓我們先來看一下華為資料庫的發展歷程,可能在許多人的眼中,華為是以硬體起家的公司,但實際上,華為資料庫的發展已經開始了十幾年,起步非常早,在云這塊的話有幾個階段,我們主要分成兩條線:開源和云原生資料庫,

開源方面,我們涉及到的是RDS和MySQL,而對于云托管,我們早在2014年15年左右就開始了內部業務的使用,此外,我們還推出了云原生資料庫,其中包括云原生MySQL,亞馬遜在2014年推出后,很多云廠商都不斷地在借鑒和學習,在2018年和2019年,我們發布了第一個商用版本,

在我們看來,云原生資料庫與存盤的可用性、可靠性和性能密切相關,華為的企業級存盤在中國市場擁有非常不錯的市場占有率,因此我們將云原生資料庫與華為的企業級存盤緊密融合,隨著架構和技術的不斷演進,我們在2019年推出的商用版本,這就是我們華為資料庫發展的歷程,

 

 

GaussDB(for MySQL)的系統架構

讓我們來了解一下GaussDB(for MySQL)的系統架構,GaussDB(for MySQL)是一款基于存算分離架構的云原生資料庫,完全兼容MySQL協議,并由華為自主研發的分布式存盤系統作為底層支撐,它采用active架構,相比傳統開源架構,不需要備庫進行資料同步,從而節省了用戶的成本,最關鍵的一點是,GaussDB(for MySQL)采用日志即資料架構,這一架構最早由亞馬遜的Aurora推出,該架構的優勢在于優化了MySQL事務提交路徑,從而顯著提升了整個事務提交的性能,

 

高性能

讓我們先來了解一下我們在性能方面做了哪些作業,通常來說,云原生資料庫在性能方面領先于傳統架構,我們經過實測發現,在寫入性能方面,我們的性能是開源架構的七倍,這主要歸功于我們的架構設計,

我們采用了存算分離架構,不同廠商的設計會有所不同,但我們的設計與亞馬遜的Aurora比較相似,可以說華為的架構與亞馬遜最接近,我們采用了日志即資料架構,即在整個事務寫入時,我們會直接進行REDO落盤即事務提交,不需要再從計算節點刷臟頁到磁盤,從而大幅減少了整個事務提交的網路負載和開銷,因此,我們的寫入性能比開源架構和沒有采用這種架構的廠商都要高,

本次活動中我們主要討論MySQL x ClickHouse,在TPCH領域,我們也做了很多優化作業,并開發了并行查詢技術,從而在性能方面取得了很大的提升,下面看一下我們在性能這塊做了一些優化,

 

 

并行查詢

就并行查詢而言,目前我們在TPCH的22個SQL中的整體性能提升可以達到26倍,華為在并行查詢方面所做的一些作業與其他廠商也稍有不同,

 

近資料處理NDP

就目前在云原生資料庫領域比較大的幾家友商來說,例如Aurora,在并行查詢這個方面,它是通過將算子下推到存盤引擎上來實作的,而亞馬遜并不是在SQL引擎這一層面進行并行操作,它主要是充分利用了其分布式存盤來提升性能,而像國內其他友商,則主要是在SQL引擎層面進行并行操作,

其實我們做了兩個方面的作業,一方面,在SQL引擎層面,我們實作了并行操作,就像上一頁所講的那樣,另一方面,我們還實作了NDP算子下推,充分利用了分布式存盤的性能,將底層存盤資源充分利用起來,我們對復雜的算子、Filter、Projection、謂詞包括比較運算等進行了下推優化,同時也對快速列和虛擬列進行了下推,因此,在復雜查詢方面,我們稱之為“雙輪驅動”,這也是我們與其他廠商不同的地方,接下來,看下實際的性能表現,

 

NDP在TPCH場景最高節省率超過90倍

這個就是開啟NDP在TPCH場景下的一個性能表現,開啟以后,最高場景是可以就是計算到網路之間的開銷,開源的MySQL在進行大的復雜查詢時,我們需要將資料從磁盤傳輸到計算層進行計算,會有大量網路開銷,而通過算子下推技術,TPCH處理多個SQL時,我們看到網路開銷的最高節省率超過90倍,在性能方面,我們測驗了NDP+PQ場景,該技術品牌被稱為NDPQ,性能表現最高提升高達30倍以上,

 

 

跨AZ部署高可用,資料安全可靠

在可用性方面,我們的DFV支持跨AZ能力,目前,華為云國內的主力region包括上海、北京、廣州、貴陽、烏蘭察布等都支持3AZ部署,未來,3AZ部署也將成為華為云GaussDB(for MySQL)的默認架構,今年我們正在開通的節點中,包括香港、曼谷以及拉美、中東等地區,在歐洲,我們與德國電信和法國電信合作,推動GaussDB(for MySQL)全球化行程,我們的跨AZ能力可以實作RPO=0,保證資料的高可靠性,

 

自動彈性擴展

關于擴展性,我們知道在云上使用MySQL資料庫,它更適合互聯網業務,尤其是互聯網、游戲和電商等用戶,當然,現在政企客戶也越來越多地上云,我們也為此做了節點的自動擴展,以滿足更多不同型別客戶的需求,目前,我個人覺得現在云有一個非常重要的的趨勢發展,其中一個關鍵的趨勢是HTAP,另外,Serverless也是一個重要的趨勢,我們可以看到,像亞馬遜去年的invent大會上最核心的發布之一,就是所有資料庫開始向是Serverless化發展,

在云上除非技術實力特別強之外,用戶最關注的問題就是成本,因此,我們提供了一種類似于Serverless的服務,支持按需自動彈性擴展,這是我們早期推出的一個雛形,其中包括自動彈性擴展周期和按需模式,由于采用了存算分離架構,加節點的彈性程序非常快速,一般只需要五到十分鐘即可完成,因此,它的速度比傳統的MySQL快得多,傳統的MySQL在資料量不斷增加時,進行規格變更和加節點所需的時間非常長,

 

秒級快照備份

在備份方面,我們的存盤采用基于AppendOnly模式的DFV存盤,我們實作了秒級快照,這是我們自己開發的快照系統,我們進行了測算,發現大約1TB的資料備份恢復只需要三四十分鐘即可完成,

我們還將在今年年底推出backtrack功能,該功能基于存盤的多版本特性,用戶可以在選擇的時間點范圍內進行回溯操作,往前或往后,我們可以將1TB資料這個級別的回溯時間控制在五分鐘以內,

 

資料庫代理實作自動讀寫分離

再看資料庫代理服務,我們目前支持用戶按需購買服務,默認情況下,我們不提供代理服務,如果用戶有需求,可以按需購買讀寫分離服務,無需對其業務進行任何改動即可自動實作讀寫分離,

我們今年對讀寫分離進行了大量的優化,其中包括基于負載均衡模式的支持,我們還根據業務特征,支持用戶選擇最終一致性、會話一致性和全域一致性三種一致性級別,

我們的代理服務支持只讀模式和讀寫模式,如果用戶需要在分析型業務和交易型業務之間進行物理隔離,可以選擇只讀模式,在只讀模式下,代理服務會為用戶創建不同的只讀節點,從而實作對分析業務和交易業務的物理隔離,

 

HTAP只讀分析節點

接下來介紹我們的HTAP只讀分析節點,這是我們在HTAP領域中不斷推進的一步,正如我之前所述,我們在復雜查詢方面采用了并行查詢和算子下推等技術,然而這些還不足以滿足所有用戶的需求,因為這2個技術本質上仍在同一份資料上進行操作,也就是說還是在整個一套系統里面,

因為大家都知道,在做TPCH這樣的場景時,對整個資源的消耗是不可控的,一個分析業務可能會影響到交易型業務,為了解決這個問題,我們開發了只讀分析節點,它基于ClickHouse實作,通過CDC模式,我們可以將用戶交易資料從GaussDB(for MySQL)同步到ClickHouse,正如之前的嘉賓所介紹的,我們也是采用了基于binlog的方案,

我們目前還處于公測階段,主要服務于華為內部的終端消費者,例如華為手機、手環和運動健康等業務,這些業務的一部分分析業務已經遷移至我們的只讀分析節點上,

 

并行創建索引,提升性能六到七倍

關于并行創建索引,我們都知道社區版的MySQL在創建索引時是單執行緒操作,無法實作多執行緒,因此,如果要創建一個較大的索引,耗時會非常高,為了解決這個問題,我們開發了多執行緒的索引創建功能,多執行緒被設計用于從存盤讀取資料、排序以及創建索引等操作,經過測驗,該功能相比于開源版本的MySQL,可以提升性能六到七倍,

 

Serverless領域技術實踐

在我們后續產品的演進中,Serverless將是一個非常關鍵的方向,我們計劃在今年上半年(五六月份)進行Serverless的公測,下半年則會正式商用,在Serverless領域,我們已經做了很多探索,目前業內最為出色的Serverless產品是亞馬遜的Serverless V2,雖然亞馬遜在最初推出的Serverless V1已經引起了不少關注,但它仍存在某些局限性,例如擴縮的粒度和速度可能不夠理想,但是隨著Serverless V2的推出,它的擴縮粒度可以達到0.5 ACU,而且端到端的感知速度只需十秒鐘,因此,當時的亞馬遜Serverless V2可以說是引領了整個云原生資料庫Serverless的發展趨勢,

我們還在技術方面進行了很多創新,其中,我們實作了快速彈性的緩沖池(buffer pool),并在內核層面對其進行了加速,通過這一技術,我們可以實作毫秒級的擴展,從而在端到端的運行程序中,經過內部環境測驗后,可在大約十秒鐘內(甚至可能更快,大約八秒左右)完成,

我們還探索了一些技術,例如ALT應用透明遷移,在Serverless領域,跨機操作是一個關鍵點,在單機內,我們可以相對簡單地實作彈性伸縮,但是在云上,我們需要考慮如何跨多臺物理機運營,如何擴大資源池規模,這帶來的問題是資源池水位可能會比較高,在擴展程序中可能會出現資源不足的情況,這時我們需要跨機操作,因此保證遷移的平穩性和不中斷就顯得尤為重要,我們實作了ALT應用透明遷移技術,通過事務狀態保持等方式,實作了平穩遷移,

在Serverless領域,我們已經實作了按需付費的存盤,計算層計劃在今年五六月份推出,而Serverless代理層預計會在今年年底推出,

 

保險公司客戶案例

最后再看一下我們的幾個案例,其中第一個種子用戶是國內比較大的保險公司,他之前使用的是Oracle,但由于國產化的需求和去O的需求,他們選擇了我們的服務,由于我們的服務可以部署在公有云上,我們通過一些專家服務和相關工具對該公司業務進行評估,并將其遷移到GaussDB(for MySQL),遷移完成后,該公司的TCO降低了50%,

 

華為終端案例

我們的另一個案例是華為終端,整個業務規模非常大,涵蓋了華為整個手機業務、汽車業務以及應用商店等實體,實體數量可以達到非常大的規模,以前,由于線下的自建資料庫存在許多痛點,他們有一個龐大的DBA團隊來維護,經常面臨可用性和運維相關的問題,以及如果發生切換,可能會面臨資料丟失的情況,

遷移到GaussDB(for MySQL)后,他們面臨的問題像資料丟失就已經不存在了,此外,我們不斷演進,擴展了自動彈性伸縮等特性,讓用戶的成本降低了40%左右,同時,他們以前使用了商業的分析型資料庫軟體,也開始逐步使用我們的HTAP分析只讀節點,這進一步降低了整體的成本,

 

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

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

標籤:其他

上一篇:MongoDB + SpringBoot 的基礎CRUD、聚合查詢

下一篇:返回列表

標籤雲
其他(159336) Python(38156) JavaScript(25439) Java(18070) C(15228) 區塊鏈(8267) C#(7972) AI(7469) 爪哇(7425) MySQL(7201) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5871) 数组(5741) R(5409) Linux(5340) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4573) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2433) ASP.NET(2403) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1975) 功能(1967) Web開發(1951) HtmlCss(1940) python-3.x(1918) C++(1917) 弹簧靴(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
最新发布
  • 周家恩:GaussDB(for MySQL) 云原生資料庫技術演進和挑戰

    演講內容 摘要:GaussDB(for MySQL)是華為自研云原生資料庫,具有高性能,高擴展,高可靠的特點,完全兼容MySQL協議,自研架構和友好的生態兼容性,可以同時滿足資料庫管理員、應用開發者、CTO的運維、使用和業務發展需求,本次主要介紹GaussDB(for MySQL)在云原生技術方向上 ......

    uj5u.com 2023-05-19 11:23:19 more
  • MongoDB + SpringBoot 的基礎CRUD、聚合查詢

    1、資料準備 1.1、springboot導包 springboot版本:2.7.10 點擊查看代碼 <!--mongodb的包--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-s ......

    uj5u.com 2023-05-19 11:21:28 more
  • mysql事務

    事務(mysql) 第一章 事務概念 1、事務機制在程式開發程序中有著很大的作用。在現實生活中,經常進行轉賬操作,分為兩個步驟:轉入與轉出,只有當兩部分都完成才認為轉賬成功。 2、如果其中任意操作例外沒有執行成功,則會導致兩賬戶的金額不同步,造成錯誤,為了避免上述錯誤,資料庫引入事務。 3、事務:就 ......

    uj5u.com 2023-05-19 11:07:33 more
  • MySQL 遷移至 SQLite 問題記錄

    最近接手了一個WPF專案,資料庫使用的MySQL,為了簡化生產環境部署流程,果斷選擇遷移到SQLite,由于原專案未使用ORM框架,導致很多SQL語法也得改。 SQLite基礎語法請參考該頁面 1.依賴包的更改 有兩個Nuget包可選: Microsoft.Data.Sqlite.Core / Sy ......

    uj5u.com 2023-05-19 11:01:25 more
  • [MySQL 如何分析性能]

    [MySql 如何分析性能] Sql性能分析 sql陳述句: "show global status like "Com_______";" 結果: + + + | Variable_name | Value | + + + | Com_binlog | 0 | | Com_commit | 7 | ......

    uj5u.com 2023-05-19 10:59:42 more
  • 周家恩:GaussDB(for MySQL) 云原生資料庫技術演進和挑戰

    演講內容 摘要:GaussDB(for MySQL)是華為自研云原生資料庫,具有高性能,高擴展,高可靠的特點,完全兼容MySQL協議,自研架構和友好的生態兼容性,可以同時滿足資料庫管理員、應用開發者、CTO的運維、使用和業務發展需求,本次主要介紹GaussDB(for MySQL)在云原生技術方向上 ......

    uj5u.com 2023-05-19 10:59:34 more
  • es筆記一之es安裝與介紹

    本文首發于公眾號:Hunter后端 原文鏈接:es筆記一之es安裝與介紹 首先介紹一下 es,全名為 Elasticsearch,它定義上不是一種資料庫,是一種搜索引擎。 我們可以把海量資料都放到 es 里然后提供搜索操作,但是 MySQL 也同樣可以提供搜索,為什么要用 es 呢? 一個是因為它搜 ......

    uj5u.com 2023-05-19 10:46:34 more
  • 多圖詳解:不停機分庫分表五個步驟

    1 理論知識 1.1 分庫分表是否必要 分庫分表確實可以解決單表資料量大這個問題,但是并非首選。因為分庫分表至少引入了三個必須解決的突出問題。 第一是分庫分表方案本身具有的復雜性。第二是本地事務失效問題,原本在同一個資料庫中可以保證強一致性業務邏輯,分庫之后事務失效。第三是難以聚合查詢問題,因為分庫 ......

    uj5u.com 2023-05-18 09:03:08 more
  • Redis資料結構三之壓縮串列

    本文首發于公眾號:Hunter后端 原文鏈接:Redis資料結構三之壓縮串列 本篇筆記介紹壓縮串列。 在 Redis 3.2 版本之前,壓縮串列是串列物件、哈希物件、有序集合物件的的底層實作之一。 因為壓縮串列本身結構上的一些缺陷,壓縮串列這個結構被替換了,但是壓縮串列結構本身有一些可取之處,并且替 ......

    uj5u.com 2023-05-18 09:03:00 more
  • 多表操作

    第一章 外鍵 在實際開發專案中,一個健壯的資料表一定有很好的參照完整性,為保證資料的完整性,需將兩表建立關系。這時可通過外鍵約束來實作 1.1、介紹 什么是外鍵約束? 在另一張表中參考另一張表的主鍵約束或唯一約束。 例如:如下操作創建表 create table grade( id int prim ......

    uj5u.com 2023-05-18 09:02:55 more