演講內容
摘要: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、聚合查詢
下一篇:返回列表
