概述
本文介紹了PolarDB MySQL版的Orca功能。
簡(jiǎn)介
Orca是PolarDB MySQL版在NoSQL(Redis協(xié)議)場(chǎng)景下增加的功能。
PolarDB是一種基于存儲(chǔ)計(jì)算分離架構(gòu)的云原生數(shù)據(jù)庫(kù)。利用共享存儲(chǔ)(PolarStore)和物理復(fù)制技術(shù),實(shí)現(xiàn)多計(jì)算節(jié)點(diǎn)共享同一份存儲(chǔ),從而實(shí)現(xiàn)了一寫多讀的能力。借助RDMA高速網(wǎng)絡(luò)和最新的存儲(chǔ)技術(shù),PolarDB提供了豐富的云原生特性。為了滿足客戶在不同場(chǎng)景的性能需求,PolarDB在云原生環(huán)境下對(duì)存儲(chǔ)引擎InnoDB進(jìn)行了大量?jī)?yōu)化。通過(guò)引入獨(dú)立的網(wǎng)絡(luò)請(qǐng)求框架和任務(wù)處理框架,PolarDB MySQL版引入了Orca功能。購(gòu)買一個(gè)PolarDB MySQL版集群后,既可以滿足SQL場(chǎng)景的需求,也可以滿足NoSQL(Redis協(xié)議)的需求。
技術(shù)原理
下圖展示了PolarDB MySQL版Orca的技術(shù)架構(gòu)圖。
基于PolarDB原始架構(gòu),Orca引入了Redis協(xié)議的解析和請(qǐng)求處理框架。所有與Orca(Redis協(xié)議)相關(guān)的請(qǐng)求都將連接至新的端口。Orca的數(shù)據(jù)經(jīng)過(guò)映射后寫入InnoDB表中,并且集群間的同步基于物理復(fù)制的特性。
核心優(yōu)勢(shì)
低成本:通過(guò)降低成本,實(shí)現(xiàn)內(nèi)部數(shù)據(jù)流通,無(wú)需重復(fù)購(gòu)買計(jì)算節(jié)點(diǎn)資源。
易用性:
PolarDB采用一體化封箱技術(shù),實(shí)現(xiàn)原生一寫多讀功能,同時(shí)支持橫向和縱向彈性擴(kuò)縮,具備計(jì)算熱備功能,可以有效節(jié)省運(yùn)維開銷。
兼容PolarDB MySQL版新型產(chǎn)品形態(tài):全球數(shù)據(jù)庫(kù)(GDN)等。
數(shù)據(jù)強(qiáng)一致:
基于PolarDB的SCC技術(shù),實(shí)現(xiàn)了RW/RO節(jié)點(diǎn)的讀強(qiáng)一致性。
高性能
基于高性能的InnoDB引擎,如Blink-tree和邏輯預(yù)讀等功能,實(shí)現(xiàn)了在高并發(fā)寫入與讀取場(chǎng)景下的重大性能提升。
基于共享存儲(chǔ)(PolarStore)內(nèi)置的彈性內(nèi)存池(Elastic Memory Pool),實(shí)現(xiàn)了IO讀取速度的大幅提升。
應(yīng)用場(chǎng)景
Orca的定位是在PolarDB MySQL版的基礎(chǔ)上兼容Redis協(xié)議,以簡(jiǎn)化開發(fā)流程,使您能夠使用兼容Redis協(xié)議的數(shù)據(jù)庫(kù)。
游戲服務(wù)器核心數(shù)據(jù)庫(kù):游戲部署架構(gòu)相對(duì)簡(jiǎn)單,主程序部署在ECS上,所有業(yè)務(wù)數(shù)據(jù)存儲(chǔ)在Orca中,PolarDB作為持久化數(shù)據(jù)庫(kù),具備默認(rèn)雙AZ容災(zāi),提供了快速備份、按時(shí)間點(diǎn)還原、高性能寫入和只讀節(jié)點(diǎn)擴(kuò)展能力,滿足游戲?qū)懭肽芰U(kuò)展的需求。
游戲排行榜:在游戲應(yīng)用中,排行榜的實(shí)時(shí)更新和玩家狀態(tài)的快速存取至關(guān)重要。Orca可以用來(lái)存儲(chǔ)玩家得分和排名信息,利用Redis協(xié)議的有序集合(Sorted set)數(shù)據(jù)結(jié)構(gòu)輕松實(shí)現(xiàn)排行榜功能。
秒殺系統(tǒng):在大規(guī)模促銷秒殺活動(dòng)中,系統(tǒng)需要處理大量并發(fā)請(qǐng)求。傳統(tǒng)的數(shù)據(jù)庫(kù)往往難以應(yīng)對(duì)這種瞬間的讀取壓力。為了解決這個(gè)問題,Orca可以用于存儲(chǔ)熱門商品信息、庫(kù)存數(shù)量等關(guān)鍵數(shù)據(jù),利用Redis協(xié)議的字符串(String)、哈希(Hash)等數(shù)據(jù)結(jié)構(gòu),輕松實(shí)現(xiàn)熱門數(shù)據(jù)存儲(chǔ)功能。
前提條件
PolarDB MySQL版支持Orca功能需要滿足以下要求:
數(shù)據(jù)庫(kù)引擎版本為8.0.2,內(nèi)核小版本需為8.0.2.2.24及以上。
在Serverless集群中,目前不支持開啟Orca功能。
Orca與Tair緩存節(jié)點(diǎn)互斥。若集群開啟Orca功能,則無(wú)法在該集群中添加Tair緩存節(jié)點(diǎn)。
費(fèi)用說(shuō)明
Orca功能可免費(fèi)使用,僅收取普通計(jì)算節(jié)點(diǎn)的費(fèi)用。具體費(fèi)用詳情,請(qǐng)參見標(biāo)準(zhǔn)版計(jì)算節(jié)點(diǎn)價(jià)格和企業(yè)版計(jì)算節(jié)點(diǎn)價(jià)格。此外,開啟Orca功能也會(huì)占用一定的存儲(chǔ)空間。關(guān)于存儲(chǔ)空間的價(jià)格,請(qǐng)參見標(biāo)準(zhǔn)版存儲(chǔ)空間價(jià)格和企業(yè)版存儲(chǔ)空間價(jià)格。
注意事項(xiàng)
Orca功能不支持免密訪問,您需要創(chuàng)建Orca賬號(hào)。
啟用Orca功能后,由于Orca端口需要處理您的Redis命令請(qǐng)求,將會(huì)增加集群的CPU和內(nèi)存開銷。實(shí)際增加的CPU和內(nèi)存開銷與您的業(yè)務(wù)負(fù)載相關(guān)。
啟用Orca功能后,PolarDB MySQL版集群將自動(dòng)創(chuàng)建名為
__orca_in_polardb_m_
的Orca默認(rèn)庫(kù)。您無(wú)法對(duì)該庫(kù)進(jìn)行任何操作,也無(wú)法再創(chuàng)建同名數(shù)據(jù)庫(kù)。
使用限制
請(qǐng)參見使用限制。