從GaussDB(for MySQL)看全自研數(shù)據(jù)庫的正確打開方式
GaussDB(for MySQL)是華為自研的最新一代企業(yè)級(jí)云原生分布式數(shù)據(jù)庫,采用Shared Everything和Share-Nothing相結(jié)合的架構(gòu),完全兼容 MySQL,底層支持X86和鯤鵬,在性能、可靠、易用性方面有不俗的表現(xiàn),且在金融領(lǐng)域有很多實(shí)際的應(yīng)用。
GaussDB(for MySQL)支持兩種部署形態(tài):主備和分布式。其中,主備部署最大支持1寫15讀,分鐘級(jí)添加只讀實(shí)例,支持讀寫分離,自動(dòng)負(fù)載均衡。全分布式部署的數(shù)據(jù)按shard劃分,讀寫負(fù)載準(zhǔn)線性擴(kuò)展,滿足大規(guī)模業(yè)務(wù)量場景。
本篇文章將深入剖析GaussDB(for MySQL)的關(guān)鍵技術(shù)和核心特性,最后講解GaussDB(for MySQL)在相關(guān)行業(yè)的應(yīng)用案例。
目錄如下:
1、GaussDB(for MySQL)主備版設(shè)計(jì)理念
2、GaussDB(for MySQL)主備版七大核心優(yōu)勢(shì)
3、分布式版:最高支持PB級(jí)海量存儲(chǔ),性能更強(qiáng)
4、行業(yè)案例說話,GaussDB(for MySQL)到底有多牛?
GaussDB(for MySQL)主備版設(shè)計(jì)理念
在討論之前,先回顧一下傳統(tǒng)MySQL架構(gòu)存在的問題,MySQL有很多年的歷史,也遺留了很多問題。比如隨著5G和物聯(lián)網(wǎng)的發(fā)展,MySQL面對(duì)高并發(fā)海量數(shù)據(jù)的場景會(huì)面臨很多瓶頸,造成計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)資源的浪費(fèi)。
正因?yàn)榇嬖谶@些問題,不少用戶都提出了要求,華為云有沒有可能帶來新的數(shù)據(jù)庫解決這些問題,并且兼容MySQL。
根據(jù)這些訴求,我們定下了GaussDB(for MySQL)的設(shè)計(jì)理念:
計(jì)算與存儲(chǔ)分離,主從解耦;
IO密集型負(fù)載下推到存儲(chǔ)節(jié)點(diǎn)完成,比如redo處理,頁重構(gòu);
充分利用云存儲(chǔ)的能力,存儲(chǔ)層實(shí)現(xiàn)獨(dú)立容錯(cuò)和自愈服務(wù),共享訪問(單寫多讀);
發(fā)揮SSD的優(yōu)勢(shì),避免隨機(jī)寫帶來的寫放大,減少磨損、降低時(shí)延;充分利用SSD的隨機(jī)讀性能;
當(dāng)性能瓶頸從計(jì)算存儲(chǔ)轉(zhuǎn)到網(wǎng)絡(luò)時(shí),采用新的網(wǎng)絡(luò)技術(shù)和硬件,比如RDMA。
在架構(gòu)方面,GaussDB(for MySQL)的優(yōu)勢(shì)明顯,其底層使用華為自研的DFV存儲(chǔ),而華為存儲(chǔ)在國內(nèi)市場連續(xù)多年排名第一,存儲(chǔ)產(chǎn)品經(jīng)過大量企業(yè)場景的應(yīng)用和實(shí)踐,穩(wěn)定性、可靠性在業(yè)內(nèi)都是首屈一指的。
由于使用共享式分布式存儲(chǔ),GaussDB(for MySQL)與傳統(tǒng)的MySQL相比,只有一份存儲(chǔ)。 添加一個(gè)只讀節(jié)點(diǎn)時(shí),只需添加一個(gè)計(jì)算節(jié)點(diǎn),無需再額外購買存儲(chǔ)。如果只讀節(jié)點(diǎn)越多,節(jié)省的存儲(chǔ)成本更多。
其次,GaussDB(for MySQL)不再有備庫的存在,所有的只讀都是Active狀態(tài),并且承擔(dān)讀流量,使得資源利用率更高。
最后,日志即數(shù)據(jù)架構(gòu)讓GaussDB(for MySQL)不再需要刷page,所有的更新操作僅記錄日志,不需要double write,減少了網(wǎng)絡(luò)帶寬資源的浪費(fèi)。
GaussDB(for MySQL)七大核心優(yōu)勢(shì)
1、100%兼容開源MySQL生態(tài)
GaussDB(for MySQL)100%兼容MySQL8.0數(shù)據(jù)庫對(duì)象和語法,全面支持PL/SQL語法,應(yīng)用代碼改動(dòng)少,應(yīng)用遷移周期短,開發(fā)人員學(xué)習(xí)成本低,降低新業(yè)務(wù)開發(fā)周期。
2、軟硬垂直優(yōu)化,性能達(dá)到開源數(shù)據(jù)庫的7倍,最大1寫15讀
深度優(yōu)化數(shù)據(jù)庫內(nèi)核,同時(shí)采用物理復(fù)制、RDMA高速網(wǎng)絡(luò)和分布式共享存儲(chǔ),大幅提高性能。集群包含一個(gè)主節(jié)點(diǎn)和最多15個(gè)只讀節(jié)點(diǎn),滿足高并發(fā)場景對(duì)性能的要求,尤其適用于讀多寫少的場景。基于共享存儲(chǔ)的一寫多讀集群,數(shù)據(jù)只需要一次修改,所有節(jié)點(diǎn)立即生效。
3、基于華為自研DFV分布式存儲(chǔ),海量存儲(chǔ)
底層存儲(chǔ)按需付費(fèi),最大128TB,自動(dòng)擴(kuò)容,業(yè)務(wù)無感知。計(jì)算存儲(chǔ)僅通過日志實(shí)現(xiàn)持久化,IO精簡,網(wǎng)絡(luò)開銷比傳統(tǒng)減少86%。
4、跨AZ部署高可用,數(shù)據(jù)安全可靠
GaussDB(for MySQL)這個(gè)特性在國內(nèi),以及對(duì)比友商都是領(lǐng)先的,它能做到跨3AZ部署,任何一個(gè)節(jié)點(diǎn)故障都不會(huì)對(duì)業(yè)務(wù)帶來致命影響,故障切換速度做到10秒以內(nèi),做到數(shù)據(jù)零丟失。
采用白名單、VPC網(wǎng)絡(luò)、數(shù)據(jù)多副本存儲(chǔ)等全方位的手段,對(duì)數(shù)據(jù)庫數(shù)據(jù)訪問、存儲(chǔ)、管理等各個(gè)環(huán)節(jié)提供安全保障。
5、擴(kuò)展性做到只讀節(jié)點(diǎn)的分鐘級(jí)擴(kuò)展
采用容器虛擬化技術(shù)和共享的分布式塊存儲(chǔ)技術(shù),使得數(shù)據(jù)庫服務(wù)器的CPU、內(nèi)存能夠快速擴(kuò)容,配置升降級(jí)5分鐘生效。
增減節(jié)點(diǎn)也能在5分鐘生效,通過動(dòng)態(tài)增減節(jié)點(diǎn)提升性能或節(jié)省成本。通過使用集群地址,可屏蔽底層的變化,應(yīng)用對(duì)于增減節(jié)點(diǎn)無感知。
6、快速備份恢復(fù)
采用快照的方式,相比傳統(tǒng)MySQL物理備份,整個(gè)恢復(fù)時(shí)間提高了數(shù)倍。
基于底層存儲(chǔ)系統(tǒng)的多時(shí)間點(diǎn)特性,不需增量日志回放,可直接實(shí)現(xiàn)按時(shí)間點(diǎn)回滾。
備份及恢復(fù)邏輯下沉到各存儲(chǔ)節(jié)點(diǎn),本地訪問數(shù)據(jù)并直接與第三方存儲(chǔ)系統(tǒng)交互,高并發(fā)高性能。
通過異步數(shù)據(jù)拷貝+按需實(shí)時(shí)數(shù)據(jù)加載機(jī)制,GaussDB(for MySQL)實(shí)例可在數(shù)分鐘內(nèi)達(dá)到完整功能可用。
7、并行查詢、最大提升資源利用、加快復(fù)雜BI分析
針對(duì)實(shí)時(shí)檢索、復(fù)雜BI SQL定制并行查詢功能,開啟后同樣多表關(guān)聯(lián)查詢速度提升10+ 倍。
分布式版:最高支持PB級(jí)海量存儲(chǔ),性能更強(qiáng)
最近,華為云還對(duì)外發(fā)布了GaussDB(for MySQL)分布式版。
先來看看GaussDB(for MySQL)分布式版本的架構(gòu),它采用share nothing架構(gòu),融合華為自研分布式SQL引擎和企業(yè)級(jí)分布式存儲(chǔ)DFV雙重優(yōu)勢(shì),業(yè)務(wù)請(qǐng)求通過負(fù)載均衡層轉(zhuǎn)發(fā)到分布式SQL引擎層,分布式SQL引擎相關(guān)的模塊對(duì)SQL進(jìn)行解析、分解、路由到各個(gè)分片,最后各個(gè)分片返回相應(yīng)結(jié)果匯聚返回給用戶端。
整個(gè)分布式架構(gòu)支持多點(diǎn)寫入,多點(diǎn)讀取,相比主備版,性能也提升了數(shù)量級(jí)別。
而且通過分庫分表,GaussDB(for MySQL)分布式版最高支持PB級(jí)海量存儲(chǔ)。在內(nèi)部環(huán)境測試,純寫TPS可達(dá)百萬級(jí),QPS可達(dá)千萬級(jí),整體性能可隨分片數(shù)的擴(kuò)展而成線性提升,可滿足幾乎所有大型企業(yè)集團(tuán)的核心數(shù)據(jù)庫的要求。
另外,分布式版本底層使用的是分布式存儲(chǔ),在數(shù)據(jù)擴(kuò)展方面的優(yōu)勢(shì)很大。
行業(yè)案例說話,GaussDB(for MySQL)到底有多牛?
第一個(gè)案例是幫助國內(nèi)知名保險(xiǎn)客戶成功遷移到某主流商業(yè)數(shù)據(jù)庫,以下從保險(xiǎn)業(yè)務(wù)對(duì)數(shù)據(jù)庫的訴求來講。
首先是要求高性能:客戶上線業(yè)務(wù)為保險(xiǎn)核心業(yè)務(wù),這塊業(yè)務(wù)需要數(shù)據(jù)庫具備高并發(fā)、大表查詢的能力,尤其是對(duì)接互聯(lián)網(wǎng)和渠道的業(yè)務(wù),對(duì)數(shù)據(jù)庫性能要求很高。在保單的批量下單場景方面,GaussDB(for MySQL)憑借其優(yōu)秀的性能完美支撐業(yè)務(wù)核心交易場景。
第二個(gè)要求極致可靠性:保險(xiǎn)行業(yè)監(jiān)管極其嚴(yán)格,絕對(duì)不能接受數(shù)據(jù)丟失,故障恢復(fù)需要達(dá)到秒級(jí),可靠性和可用性是核心訴求。GaussDB(for MySQL)憑借存儲(chǔ)計(jì)算分離架構(gòu)天然優(yōu)勢(shì),保證數(shù)據(jù)強(qiáng)一致性,同時(shí)做到秒級(jí)故障切換。
第三個(gè)要求兼容性:客戶新開發(fā)系統(tǒng)適配過MySQL,所以需要一款能完全兼容MySQL的分布式數(shù)據(jù)庫。GaussDB(for MySQL)無論是語法、函數(shù),還是生態(tài)工具都可以做到完全兼容,業(yè)務(wù)無需做修改即可遷移上云。
第四個(gè)要求海量存儲(chǔ):保險(xiǎn)行業(yè)業(yè)務(wù)量是非常巨大的,磁盤空間需求在數(shù)個(gè)TB級(jí)別,傳統(tǒng)的MySQL無法滿足,GaussDB(for MySQL)憑借架構(gòu)上的天然優(yōu)勢(shì),最大支持128TB海量存儲(chǔ),能完美支撐業(yè)務(wù)對(duì)數(shù)據(jù)海量存儲(chǔ)的要求。
第二個(gè)案例是基于華為內(nèi)部業(yè)務(wù)上云和數(shù)字化轉(zhuǎn)型的經(jīng)驗(yàn)。
華為消費(fèi)者業(yè)務(wù)支撐了全球超過上億客戶同時(shí)訪問,大家熟知的如華為手機(jī)、手環(huán)、手表、應(yīng)用市場、運(yùn)動(dòng)健康等相關(guān)業(yè)務(wù)都是華為消費(fèi)者業(yè)務(wù)的重要組成部分。
如此龐大的業(yè)務(wù),海量數(shù)據(jù)的存儲(chǔ),超高并發(fā)訪問都是數(shù)據(jù)庫面臨的挑戰(zhàn),比如華為手機(jī)相關(guān)模塊的數(shù)據(jù)量達(dá)到數(shù)百個(gè)TB級(jí)別,并發(fā)訪問量也高達(dá)百萬QPS,相關(guān)的核心交易系統(tǒng)需要支持跨AZ部署,在跨AZ部署的同時(shí)還要求RTO小于10秒。
面對(duì)這些艱巨挑戰(zhàn),GaussDB(for MySQL)憑借優(yōu)秀的性能,靈活的擴(kuò)展性,跨AZ高可用等能力支撐了整個(gè)消費(fèi)者業(yè)務(wù)的遷移上云。華為消費(fèi)者業(yè)務(wù)數(shù)據(jù)庫順利遷移到GaussDB(for MySQL) ,也證明了它足以滿足任何嚴(yán)酷的企業(yè)級(jí)場景。
最后,正值1024程序員狂歡節(jié),華為云還準(zhǔn)備了一大波技術(shù)干貨直播活動(dòng),既能學(xué)技術(shù),還能抽盲盒、錦鯉大禮包。
10月23日當(dāng)天,我們邀請(qǐng)了華為云云原生開源負(fù)責(zé)人、華為云DevCloud首席技術(shù)布道師等10+大咖現(xiàn)身,剖析云原生的行業(yè)趨勢(shì),傾授云原生實(shí)戰(zhàn)秘籍。點(diǎn)擊觀看直播。
還有干貨直通車,帶你揭曉大廠最深層代碼技術(shù),點(diǎn)擊查看各技術(shù)會(huì)場,挖掘更多干貨。
備注:本文整理自華為云數(shù)據(jù)庫產(chǎn)品專家Ryan在1024程序員節(jié)活動(dòng)上的直播,點(diǎn)擊可以回看。
MySQL 數(shù)據(jù)庫 云數(shù)據(jù)庫 GaussDB(for MySQL)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。