Aurora
主要設(shè)計(jì)理念是降低 I/O,異步寫(xiě) Page,并且把這個(gè) task offload 到內(nèi)部存儲(chǔ)系統(tǒng)分苇。存儲(chǔ)計(jì)算解耦,可以做到分層擴(kuò)容。比如說(shuō)計(jì)算節(jié)點(diǎn)增加 500 個(gè),存儲(chǔ)節(jié)點(diǎn)只增加 100 個(gè)惠拭,按需分配。
Near Data Processing。既然存儲(chǔ)計(jì)算完全分離宰睡,這會(huì)加重一些新的問(wèn)題宠默,比如查詢(xún)得到的大量數(shù)據(jù),如果不在存儲(chǔ)層進(jìn)行處理瓤球,而是全部傳輸給計(jì)算節(jié)點(diǎn),這會(huì)極大地浪費(fèi)網(wǎng)絡(luò) I/O绿饵。因此吸祟,現(xiàn)在計(jì)算分離的架構(gòu)里面谴轮,通常都會(huì)有模塊做算子的下推疮装。TiKV 里負(fù)責(zé)下推的是 Coprocessor 模塊。這方面的難點(diǎn)是,底層的 KV 存儲(chǔ)沒(méi)有完整的關(guān)系表信息,因此在做一些優(yōu)化的時(shí)候無(wú)能為力。支持多寫(xiě)。在云原生數(shù)據(jù)庫(kù)里支持多寫(xiě)是比較難的一件事情锌钮,比如 Aurora 就不支持(更新:是一開(kāi)始的架構(gòu)不支持兰吟,現(xiàn)在支持)惭嚣。新的 PolarDB 是支持的。 內(nèi)存虛擬化。把內(nèi)存做高可用集畅,通過(guò) RDMA 連接。這個(gè)可以聯(lián)想到 PolarDB 1.0赦颇。背后的大理念是資源池化沪摄。以前單體的時(shí)候,所有數(shù)據(jù)庫(kù)kernel都在一臺(tái)機(jī)器上山宾,現(xiàn)在抽離每個(gè)部分并且做成一個(gè)資源池,方便上云。資源池的優(yōu)勢(shì)是封裝了 low level 的細(xì)節(jié)粤剧,通過(guò)相關(guān)資源調(diào)度算法達(dá)到高效率的利用率。 這些也不是比較新鮮的研究問(wèn)題了号坡,業(yè)界已經(jīng)開(kāi)始大規(guī)模做了籽慢。個(gè)人思考箱亿,數(shù)據(jù)庫(kù) + k8s 是不是一個(gè)研究方向呢届惋?雖然說(shuō) k8s 的設(shè)計(jì)初衷是運(yùn)行無(wú)狀態(tài)應(yīng)用瘩欺,但是如果能管理狀態(tài)的話稍途,那么可以說(shuō)就是使得云上應(yīng)用更加規(guī)范化了。這個(gè)方向還是比較有爭(zhēng)議的,大多數(shù)難點(diǎn)還是工程上的碧聪,從學(xué)術(shù)的角度發(fā)文章可能比較難滞造。