1月8日,2020年MongoDB中文社區(qū)年終大會(huì)于線上隆重舉行,大會(huì)以“重新認(rèn)識(shí)MongoDB”為中心探討了MongoDB的技術(shù)能力創(chuàng)新、行業(yè)解決方案,以及未來(lái)發(fā)展方向。華為云DDS數(shù)據(jù)庫(kù)架構(gòu)師受邀參加并發(fā)表了《MongoDB內(nèi)核源碼分布式事務(wù)》主題演講,分享了MongoDB社區(qū)版的技術(shù)能力、存算分離架構(gòu)下的GaussDB(for Mongo)技術(shù)創(chuàng)新,以及DDS在社區(qū)源碼上的實(shí)踐,對(duì)企業(yè)上云和未來(lái)發(fā)展具有重大意義。
演進(jìn)中的MongoDB社區(qū)版
MongoDB作為全球備受歡迎的非關(guān)系型數(shù)據(jù)庫(kù)典型代表,擁有龐大的用戶量和優(yōu)秀的技術(shù)能力,并在不斷演進(jìn)升級(jí)中創(chuàng)造出了一系列產(chǎn)品能力。崔鑫從分片、復(fù)制、事務(wù)、分布式事務(wù)等方面詳細(xì)介紹了MongoDB社區(qū)版的技術(shù)能力,如針對(duì)物理時(shí)鐘偏差問(wèn)題,社區(qū)版推出混合邏輯時(shí)鐘(HLC),通過(guò)HLC的統(tǒng)一邏輯、分配、動(dòng)態(tài)推進(jìn)等方式,解決MongoDB時(shí)間一致性問(wèn)題;針對(duì)低吞吐、高時(shí)延問(wèn)題,社區(qū)版基于Replication與Raft協(xié)議,保障數(shù)據(jù)一致性,以及基于時(shí)間戳保障事務(wù)的一致性等。
存算分離架構(gòu)下的GaussDB(for Mongo)
隨著企業(yè)數(shù)字化轉(zhuǎn)型升級(jí)的加速,企業(yè)對(duì)云數(shù)據(jù)庫(kù)的要求水漲船高,更高可靠、高可用、高安全的云數(shù)據(jù)庫(kù)成為企業(yè)的上云首選。GaussDB(for Mongo)是一款基于計(jì)算存儲(chǔ)分離架構(gòu),兼容MongoDB生態(tài)的云原生NoSQL數(shù)據(jù)庫(kù)。在華為云高性能、高可用、高可靠、高安全、可彈性伸縮的基礎(chǔ)上,提供了一鍵部署、快速備份恢復(fù)、計(jì)算存儲(chǔ)獨(dú)立擴(kuò)容、監(jiān)控告警等服務(wù)能力。
相比社區(qū)版,GaussDB(for Mongo)優(yōu)勢(shì)明顯,如添加Secondary節(jié)點(diǎn)從小時(shí)級(jí)縮短為秒級(jí);基于WAL復(fù)制,Secondary節(jié)點(diǎn)無(wú)寫(xiě)IO,從根本上解決社區(qū)版Seconary節(jié)點(diǎn)Oplog脫節(jié)問(wèn)題;Primary/Seconary無(wú)任何IO交互,Secondary節(jié)點(diǎn)個(gè)數(shù)理論無(wú)上限,可支持百萬(wàn)級(jí)OPS;LSMTree Compaction計(jì)算/IO卸載到Compaction統(tǒng)一調(diào)度池,集中管理,不浪費(fèi)用戶讀寫(xiě)IO;基于共享存儲(chǔ),Chunk分裂/遷移動(dòng)作不引起真實(shí)IO,只更新路由元數(shù)據(jù),秒級(jí)分裂/均衡。
華為云數(shù)據(jù)庫(kù)GaussDB(for Mongo)架構(gòu)圖
DDS在MongoDB社區(qū)源碼上的實(shí)踐
基于云上MongoDB承載更多業(yè)務(wù)訴求的現(xiàn)狀,華為云文檔數(shù)據(jù)庫(kù)服務(wù)DDS在MongoDB社區(qū)版開(kāi)放了7大源碼實(shí)踐能力,如集群模式下支持多文檔事務(wù),即通過(guò)在Mongos上增加了對(duì)Session的支持,Mongos側(cè)的Session對(duì)象跟蹤事務(wù)執(zhí)行的狀態(tài)并路由到對(duì)應(yīng)的Shard上執(zhí)行,而且集群模式下的事務(wù)使用方式與副本集完全一致;操作審計(jì)功能,即支持用戶/庫(kù)/表/操作級(jí)別的審計(jì)功能;查詢內(nèi)存限制,避免并發(fā)查詢下的OOM問(wèn)題;以及中文全文檢索、Mongos路由自動(dòng)刷新、MongoRocks、數(shù)據(jù)庫(kù)層面物理熱備等。
崔鑫最后表示,2021年華為云數(shù)據(jù)庫(kù)將從MongoDB集群?jiǎn)蝧hard事務(wù)、集群分布式事務(wù)、物化視圖等方面去提升改進(jìn),未來(lái)將以rocksdb存儲(chǔ)引擎為主,在存儲(chǔ)架構(gòu)層面同時(shí)發(fā)展計(jì)算存儲(chǔ)分離和計(jì)算存儲(chǔ)混合的兩種產(chǎn)品形態(tài),充分利用華為軟硬件優(yōu)勢(shì)持續(xù)構(gòu)建業(yè)內(nèi)領(lǐng)先的技術(shù)和服務(wù),未來(lái)的GaussDB(for Mongo)和DDS會(huì)更優(yōu)秀。