openGauss是一款開(kāi)源的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它具有多核高性能、全鏈路安全性、智能運(yùn)維等企業(yè)級(jí)特性,openGauss內(nèi)核早期源自開(kāi)源數(shù)據(jù)庫(kù)PostgreSQL,融合了華為在數(shù)據(jù)庫(kù)領(lǐng)域多年的內(nèi)核經(jīng)驗(yàn),在架構(gòu)、事務(wù)、存儲(chǔ)引擎、優(yōu)化器及ARM架構(gòu)上進(jìn)行了適配與優(yōu)化。作為一個(gè)開(kāi)源數(shù)據(jù)庫(kù),期望與廣泛的開(kāi)發(fā)者共同構(gòu)建一個(gè)多元化技術(shù)的開(kāi)源數(shù)據(jù)庫(kù)社區(qū)。
軟件特色
高性能
openGauss突破了多核CPU的瓶頸,實(shí)現(xiàn)兩路鯤鵬128核150萬(wàn)tpmC,內(nèi)存優(yōu)化表(MOT)引擎達(dá)350萬(wàn)tpmC。
數(shù)據(jù)分區(qū)
內(nèi)部線(xiàn)程共享的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)進(jìn)行數(shù)據(jù)分區(qū),減少加鎖訪(fǎng)問(wèn)沖突。比如CLOG就采用分區(qū)優(yōu)化,解決ClogControlLock鎖瓶頸。
NUMA化內(nèi)核數(shù)據(jù)結(jié)構(gòu)
關(guān)鍵數(shù)據(jù)結(jié)構(gòu)NUMA化分配,減少跨CPU訪(fǎng)問(wèn)。比如全局PGPROC數(shù)組按照NUMA Node的數(shù)目分為多份,分別在對(duì)應(yīng)NUMA Node上申請(qǐng)內(nèi)存。解決ProcArrayLock鎖瓶頸。
綁核優(yōu)化
把網(wǎng)絡(luò)中斷綁核和后臺(tái)業(yè)務(wù)線(xiàn)程綁核區(qū)分開(kāi),避免運(yùn)行線(xiàn)程在核間遷移造成的性能不穩(wěn)定。
ARM指令優(yōu)化
結(jié)合ARM平臺(tái)的原子操作lse進(jìn)行優(yōu)化,實(shí)現(xiàn)關(guān)鍵互斥變量原子高效操作。
SQL BY PASS
通過(guò)SQL BY PASS優(yōu)化SQL執(zhí)行流程,簡(jiǎn)化CPU執(zhí)行開(kāi)銷(xiāo)。
高可靠
正常業(yè)務(wù)負(fù)載情況下,RTO小于10秒,降低節(jié)點(diǎn)故障導(dǎo)致的業(yè)務(wù)不可用時(shí)間。
并行恢復(fù)
主機(jī)日志傳輸?shù)絺錂C(jī)時(shí),備機(jī)日志落盤(pán)的同時(shí),發(fā)送給重做恢復(fù)分發(fā)線(xiàn)程,分發(fā)線(xiàn)程根據(jù)日志類(lèi)型和日志操作的數(shù)據(jù)頁(yè)發(fā)給多個(gè)并行恢復(fù)線(xiàn)程進(jìn)行日志重做,保證備機(jī)的重做速度跟上主機(jī)日志的產(chǎn)生速度。這樣備機(jī)實(shí)時(shí)處于ready狀態(tài),從而實(shí)現(xiàn)瞬間故障切換。
MOT引擎(Beta發(fā)布)
內(nèi)存優(yōu)化表(MOT)存儲(chǔ)引擎是一個(gè)專(zhuān)為多核大內(nèi)存優(yōu)化的存儲(chǔ)引擎,具有極高的聯(lián)機(jī)事務(wù)處理(OLTP)性能和資源利用率。MOT的數(shù)據(jù)和索引完全存儲(chǔ)在內(nèi)存中,通過(guò)NUMA感知執(zhí)行,算法消除閂鎖爭(zhēng)用以及查詢(xún)JIT本地編譯,提供低時(shí)延數(shù)據(jù)訪(fǎng)問(wèn)及高效事務(wù)執(zhí)行。更多請(qǐng)參考MOT引擎文檔。
安全
openGauss支持賬號(hào)管理,賬號(hào)認(rèn)證,口令復(fù)雜度檢查,賬號(hào)鎖定,權(quán)限管理和校驗(yàn),傳輸加密,操作 審計(jì)等全方位的數(shù)據(jù)庫(kù)安全能力,保護(hù)業(yè)務(wù)滿(mǎn)足安全要求。
易運(yùn)維
openGauss將AI算法集成到數(shù)據(jù)庫(kù)中,減少數(shù)據(jù)庫(kù)維護(hù)的負(fù)擔(dān)。
SQL預(yù)測(cè)
openGauss根據(jù)收集的歷史性能數(shù)據(jù)進(jìn)行編碼和基于深度學(xué)習(xí)的訓(xùn)練及預(yù)測(cè),支持SQL執(zhí)行時(shí)間預(yù)測(cè)。
SQL診斷器
openGauss支持SQL執(zhí)行語(yǔ)句的診斷器,提前發(fā)現(xiàn)慢查詢(xún)。
參數(shù)自動(dòng)調(diào)整
openGauss通過(guò)機(jī)器學(xué)習(xí)方法自動(dòng)調(diào)整數(shù)據(jù)庫(kù)參數(shù),提高調(diào)參效率,降低正確調(diào)參成本。