中文字幕无码日韩视频无码三区

多計算節點所有權劃分的請求路由方法和分離式內存系統

文檔(dang)序號(hao):39427050發布日期(qi):2024-09-20 22:24閱讀:14來(lai)源:國(guo)知(zhi)局
多計算節點所有權劃分的請求路由方法和分離式內存系統

本技(ji)術屬于計(ji)算機系統分布式存儲領域,更具體地,涉及多計(ji)算節(jie)點所有權劃分的(de)請求(qiu)路由方(fang)法和分離(li)式內(nei)存系統。


背景技術:

1、傳(chuan)統數(shu)據中(zhong)(zhong)心中(zhong)(zhong)使(shi)用一體式服務(wu)(wu)器作為部(bu)署和資(zi)源(yuan)(yuan)(yuan)分配單元,服務(wu)(wu)器中(zhong)(zhong)既包含計算資(zi)源(yuan)(yuan)(yuan)又(you)包含存儲資(zi)源(yuan)(yuan)(yuan)。如果需要(yao)增加(jia)某類(lei)資(zi)源(yuan)(yuan)(yuan)需要(yao)增加(jia)部(bu)署的(de)服務(wu)(wu)器,這會額外(wai)地(di)增加(jia)其他資(zi)源(yuan)(yuan)(yuan)。比如:應(ying)用僅僅需要(yao)更大的(de)內(nei)存,但(dan)由于資(zi)源(yuan)(yuan)(yuan)緊(jin)密綁(bang)定,需要(yao)給應(ying)用配置更大內(nei)存的(de)同(tong)時也分配了更多的(de)計算資(zi)源(yuan)(yuan)(yuan)。資(zi)源(yuan)(yuan)(yuan)的(de)捆綁(bang)導致數(shu)據中(zhong)(zhong)心利(li)用率低。為了提(ti)(ti)升傳(chuan)統數(shu)據中(zhong)(zhong)心的(de)資(zi)源(yuan)(yuan)(yuan)利(li)用率和彈性(xing),物理(li)解耦的(de)分離式內(nei)存系統被提(ti)(ti)出。

2、物理解耦(ou)的(de)(de)分離式內(nei)存(cun)(cun)系統中,不同類(lei)(lei)型(xing)的(de)(de)資(zi)(zi)源物理解耦(ou)形成(cheng)單獨(du)的(de)(de)網(wang)絡連(lian)接(jie)的(de)(de)資(zi)(zi)源池(chi),各(ge)類(lei)(lei)資(zi)(zi)源可以獨(du)立擴展。物理解耦(ou)的(de)(de)分離式內(nei)存(cun)(cun)系統具有(you)(you)資(zi)(zi)源分布不對稱的(de)(de)特點(dian)(dian),具體來說(shuo):計(ji)(ji)算(suan)池(chi)中的(de)(de)計(ji)(ji)算(suan)節點(dian)(dian)配備大(da)量的(de)(de)處(chu)理器核心而只有(you)(you)少量的(de)(de)內(nei)存(cun)(cun)作(zuo)為緩存(cun)(cun);內(nei)存(cun)(cun)池(chi)中的(de)(de)內(nei)存(cun)(cun)節點(dian)(dian)內(nei)存(cun)(cun)容(rong)量大(da)但計(ji)(ji)算(suan)能力有(you)(you)限。計(ji)(ji)算(suan)節點(dian)(dian)通過(guo)高速網(wang)絡技術(shu)直(zhi)(zhi)接(jie)訪問(wen)遠端(duan)內(nei)存(cun)(cun)節點(dian)(dian),高速網(wang)絡技術(shu)包括rdma(remote?direct?memory?access,遠程(cheng)直(zhi)(zhi)接(jie)訪問(wen))、cxl(compute?express?link)、omni-path、gen-z等。

3、由于內(nei)(nei)(nei)存(cun)(cun)節點幾乎沒有(you)計算(suan)能力,分(fen)(fen)離(li)式內(nei)(nei)(nei)存(cun)(cun)系(xi)統中的(de)(de)所有(you)操作幾乎都需要(yao)(yao)由計算(suan)節點遠(yuan)程執行(xing)。這導致數(shu)據讀寫(xie)需要(yao)(yao)多(duo)個網(wang)絡往(wang)返,遍歷數(shu)據結(jie)構的(de)(de)操作尤為如(ru)此,如(ru):樹的(de)(de)層序遍歷、跳躍表或者(zhe)鏈表的(de)(de)遍歷等(deng)。為了減(jian)少(shao)網(wang)絡往(wang)返,充分(fen)(fen)利用計算(suan)節點上有(you)限的(de)(de)緩存(cun)(cun)空間(jian)十分(fen)(fen)必要(yao)(yao)。然而,現(xian)有(you)的(de)(de)分(fen)(fen)離(li)式內(nei)(nei)(nei)存(cun)(cun)系(xi)統的(de)(de)緩存(cun)(cun)效(xiao)率低下。具(ju)體(ti)來說,現(xian)有(you)的(de)(de)分(fen)(fen)離(li)式內(nei)(nei)(nei)存(cun)(cun)系(xi)統可分(fen)(fen)為兩大類,它(ta)們分(fen)(fen)別采用所有(you)權共享方(fang)案(an)和所有(you)權分(fen)(fen)區方(fang)案(an)。

4、所有權(quan)共享(xiang)(xiang)方案中,每個(ge)(ge)計(ji)算(suan)(suan)(suan)節(jie)點能(neng)處(chu)理(li)任(ren)何客戶端請(qing)求(qiu)并共享(xiang)(xiang)所有內(nei)存(cun)節(jie)點上的(de)數據(ju)(ju)(ju),它(ta)們(men)將(jiang)元數據(ju)(ju)(ju)緩存(cun)在本(ben)地以便后續訪問可以快(kuai)速進行(xing)。這種(zhong)方案存(cun)在兩個(ge)(ge)缺陷(xian):首先,請(qing)求(qiu)可以發往任(ren)何一個(ge)(ge)計(ji)算(suan)(suan)(suan)節(jie)點進行(xing)處(chu)理(li)導致緩存(cun)命(ming)中率低,共享(xiang)(xiang)導致多個(ge)(ge)計(ji)算(suan)(suan)(suan)節(jie)點上維護冗余(yu)的(de)元數據(ju)(ju)(ju),它(ta)們(men)消耗了計(ji)算(suan)(suan)(suan)節(jie)點上本(ben)就(jiu)不充足(zu)的(de)緩存(cun)空間。這導致即使增加計(ji)算(suan)(suan)(suan)節(jie)點個(ge)(ge)數,聚合吞吐量也不能(neng)有效擴展。其次,在寫密(mi)集場景下,計(ji)算(suan)(suan)(suan)節(jie)點上的(de)緩存(cun)由于(yu)大量數據(ju)(ju)(ju)更新而頻繁(fan)失效,即,緩存(cun)局部性差(cha)。

5、所有權分(fen)區方案,通(tong)過(guo)哈希函數或類似(si)手段(duan)把鍵值對(dui)(key-value?pairs)劃分(fen)給單(dan)個計算(suan)節(jie)點(dian)進(jin)行處理,以提升緩存(cun)局(ju)部(bu)性同時避免進(jin)行緩存(cun)一致性維護。然而(er),在(zai)(zai)高度傾斜的(de)負(fu)載(zai)下(xia),受限于單(dan)個計算(suan)節(jie)點(dian)的(de)處理和網絡能力,所有權分(fen)區方案使得分(fen)離式內存(cun)系統存(cun)在(zai)(zai)負(fu)載(zai)不均衡的(de)問題。

6、綜上(shang)所述(shu),現有(you)物理(li)解耦的(de)分離式內存系統存在緩(huan)存局部性差或(huo)負載(zai)不均衡(heng)的(de)問(wen)題,它們不能高效(xiao)利用(yong)計(ji)算節點上(shang)的(de)聚合緩(huan)存空間,導致性能和可擴展性不足。


技術實現思路

1、針(zhen)對(dui)現有(you)技術的(de)缺陷,本(ben)技術的(de)目(mu)的(de)在(zai)于(yu)提供多(duo)計(ji)算節點所有(you)權劃分的(de)請求路由方(fang)法和(he)分離式內(nei)(nei)存(cun)(cun)系統,旨在(zai)解(jie)決現有(you)分離式內(nei)(nei)存(cun)(cun)系統存(cun)(cun)在(zai)負(fu)載不均(jun)衡(heng)、緩存(cun)(cun)局部性差的(de)問題。

2、為實(shi)現(xian)上述(shu)目(mu)的(de),第一方面,本技術提供(gong)了(le)一種基于多計算節(jie)點所有權劃分的(de)請求(qiu)路由方法,包括:

3、系統的(de)(de)(de)客戶端接收(shou)到(dao)應(ying)用(yong)發起的(de)(de)(de)訪(fang)問(wen)請求(qiu)時(shi),不(bu)(bu)同的(de)(de)(de)客戶端采用(yong)同樣的(de)(de)(de)一(yi)套(tao)映(ying)射方式(shi),查詢(xun)負責該(gai)訪(fang)問(wen)請求(qiu)包含的(de)(de)(de)key的(de)(de)(de)多個不(bu)(bu)同計(ji)算節點,所述映(ying)射方式(shi)確(que)保(bao)在計(ji)算節點集群成員不(bu)(bu)發生變(bian)更的(de)(de)(de)情況下,相同key在不(bu)(bu)同時(shi)刻的(de)(de)(de)映(ying)射結果始終相同;

4、將(jiang)該訪問請求派發至所述(shu)多個不同(tong)計(ji)算(suan)節(jie)點(dian)中負載(zai)最輕(qing)的(de)計(ji)算(suan)節(jie)點(dian),以(yi)實現(xian)負載(zai)均衡(heng)。

5、優選(xuan)地,所述多個(ge)映射方式相同(tong)或(huo)者不同(tong),數量(liang)為2~10個(ge)。

6、需要說(shuo)明的是(shi),本技術(shu)將(jiang)鍵值的所有權共享范圍(wei)限制在兩個(ge)至十個(ge)計算節點間,減少了寫(xie)密(mi)集場景下失(shi)效(xiao)緩存(cun)條(tiao)目。

7、優選地,查詢負責該訪問請求包(bao)含的key的多個不同(tong)計(ji)(ji)算節點(dian)(dian)時,若出現兩個映射得到的計(ji)(ji)算節點(dian)(dian)相同(tong),選擇(ze)本地節點(dian)(dian)列表緩存中的下(xia)一計(ji)(ji)算節點(dian)(dian)作(zuo)為目標計(ji)(ji)算節點(dian)(dian)。

8、需(xu)要說明(ming)的(de)(de)是,本技術優選上述方式,低成本解決了映(ying)射沖突的(de)(de)問題(ti),保(bao)證鍵值映(ying)射得到(dao)的(de)(de)計算節(jie)點中,不存(cun)在相(xiang)同的(de)(de)計算節(jie)點。

9、優選地,所述映射方式為哈希(xi)映射,且(qie)哈希(xi)函數不同。

10、需要(yao)說明的是,本技術優(you)選哈(ha)希函數進行映射,可高效可靠地實現(xian)鍵(jian)到計(ji)算節點地映射。

11、優選地(di),采用(yong)相互獨立(li)的(de)(de)多個哈(ha)希(xi)函數(shu)查(cha)詢(xun)負責(ze)該訪問(wen)請求包含(han)的(de)(de)key的(de)(de)多個不同計算節(jie)點時,依據(ju)全局(ju)一致(zhi)性(xing)(xing)哈(ha)希(xi)環(huan)(huan)和局(ju)部(bu)一致(zhi)性(xing)(xing)哈(ha)希(xi)環(huan)(huan),其中,所述全局(ju)一致(zhi)性(xing)(xing)哈(ha)希(xi)環(huan)(huan)用(yong)于(yu)將該key映射到計算節(jie)點上,所述局(ju)部(bu)一致(zhi)性(xing)(xing)哈(ha)希(xi)環(huan)(huan)用(yong)于(yu)將該key進一步映射到計算節(jie)點上的(de)(de)某個線(xian)程(cheng)。

12、需要(yao)說明的(de)是,本技術采(cai)用(yong)一致性哈希環(huan),使用(yong)兩個(ge)獨立(li)哈希函(han)數,由于哈希函(han)數相(xiang)互獨立(li),當某個(ge)計算節點過載時,其上頻(pin)繁(fan)訪問的(de)key極大概率將被分配到多個(ge)其他的(de)計算節點進行處(chu)理,從而實現(xian)負載均衡。

13、優選地(di),客戶端首(shou)次接收到應用(yong)發起的(de)訪問請求(qiu)或者本(ben)地(di)緩存(cun)的(de)用(yong)于保存(cun)計(ji)算(suan)節(jie)(jie)點(dian)信(xin)(xin)息的(de)全局一致性(xing)哈(ha)希環過期時,向(xiang)路由(you)節(jie)(jie)點(dian)請求(qiu)集(ji)群(qun)計(ji)算(suan)節(jie)(jie)點(dian)列(lie)表(biao)信(xin)(xin)息,接收到路由(you)節(jie)(jie)點(dian)返回的(de)集(ji)群(qun)計(ji)算(suan)節(jie)(jie)點(dian)列(lie)表(biao)信(xin)(xin)息后,在本(ben)地(di)構(gou)建全局一致性(xing)哈(ha)希環和局部(bu)一致性(xing)哈(ha)希環。

14、優選地(di),所述(shu)負載為客(ke)戶端最近(jin)處理的10000個請求的平均完(wan)成時間。

15、需要(yao)說明的是,本技術(shu)通過利用各客戶(hu)端記錄的平均請求完成(cheng)時間作(zuo)為負載(zai)衡(heng)量指(zhi)標,避免(mian)負載(zai)反饋(kui)帶來的同步開銷(xiao)、實(shi)現高效的去(qu)中(zhong)心化(hua)請求調度。

16、為實現上述目的,第二方面,本技術(shu)提供了一種物理解耦的分(fen)離式內存系統,包括(kuo):

17、客戶端,其上(shang)執(zhi)行如第一方(fang)(fang)面所述的請求路由(you)方(fang)(fang)法;

18、計算(suan)節點(dian)(dian),用(yong)于收到(dao)客戶端派發的各類(lei)型請(qing)(qing)求(qiu)(qiu)(qiu)后,檢查自己是(shi)否(fou)具有(you)對該(gai)(gai)請(qing)(qing)求(qiu)(qiu)(qiu)包含(han)的key的所有(you)權,若是(shi),通過rdma單(dan)邊原語從(cong)(cong)本(ben)地緩存(cun)的地址(zhi)或者(zhe)從(cong)(cong)元數(shu)(shu)據獲取(qu)的版本(ben)鏈地址(zhi)開(kai)始(shi)遍(bian)歷(li)版本(ben)鏈直(zhi)到(dao)讀到(dao)最(zui)新(xin)版本(ben)的鍵值對數(shu)(shu)據,以完成該(gai)(gai)請(qing)(qing)求(qiu)(qiu)(qiu);否(fou)則,拒絕處理(li)客戶端請(qing)(qing)求(qiu)(qiu)(qiu),以使得客戶端從(cong)(cong)路由節點(dian)(dian)獲取(qu)最(zui)新(xin)的集群信息(xi)后重試;

19、內存節點,用(yong)于保存各(ge)版本(ben)的鍵值對數據,被動響應計算節點發起的rdma單邊原語read/write/cas請求;

20、元數據服務器,用于(yu)管理內(nei)存節(jie)點(dian)(dian)上的內(nei)存空(kong)間(jian),響應(ying)于(yu)計(ji)算節(jie)點(dian)(dian)發(fa)起的分配可用遠端內(nei)存請求(qiu),將(jiang)內(nei)存節(jie)點(dian)(dian)上的可用空(kong)間(jian)分配給計(ji)算節(jie)點(dian)(dian)使用。

21、優選地,所述(shu)(shu)內存(cun)(cun)(cun)節點以(yi)版本(ben)(ben)鏈形式存(cun)(cun)(cun)儲鍵值(zhi)對的(de)(de)各(ge)個(ge)版本(ben)(ben),版本(ben)(ben)鏈中的(de)(de)每個(ge)節點包(bao)含(han)第一部(bu)(bu)分(fen)和(he)第二部(bu)(bu)分(fen),所述(shu)(shu)第一部(bu)(bu)分(fen)用(yong)于存(cun)(cun)(cun)儲指(zhi)向下一個(ge)數據版本(ben)(ben)的(de)(de)指(zhi)針,所述(shu)(shu)第二部(bu)(bu)分(fen)用(yong)于存(cun)(cun)(cun)儲一個(ge)版本(ben)(ben)信息,所述(shu)(shu)版本(ben)(ben)信息包(bao)括key和(he)value。

22、需要(yao)說明的(de)是,本(ben)技術通過內存節(jie)點(dian)上的(de)自校驗版本(ben)鏈來實現計算節(jie)點(dian)之間的(de)并(bing)發控制、保證線性(xing)一(yi)致性(xing)同(tong)時避免計算節(jie)點(dian)間進(jin)行緩存同(tong)步(bu)開銷。

23、優選地,計算(suan)(suan)節(jie)(jie)點緩存記(ji)錄陳舊時,所述計算(suan)(suan)節(jie)(jie)點使用多個網絡往返,從緩存的(de)遠(yuan)端(duan)地址處的(de)版本(ben)鏈(lian)節(jie)(jie)點開始,遍歷版本(ben)鏈(lian)讀/寫數(shu)據(ju),從而找到(dao)最新(xin)的(de)版本(ben)從而保(bao)證讀到(dao)一致的(de)數(shu)據(ju)。

24、需要(yao)說明的(de)(de)是(shi),本(ben)(ben)技(ji)術通過(guo)從遠端地(di)址緩存(cun)(cun)的(de)(de)版(ban)(ban)本(ben)(ben)鏈(lian)(lian)節點開(kai)始遍歷版(ban)(ban)本(ben)(ben)鏈(lian)(lian)找(zhao)到最(zui)新的(de)(de)版(ban)(ban)本(ben)(ben),從而(er)實現緩存(cun)(cun)對(dui)遍歷版(ban)(ban)本(ben)(ben)鏈(lian)(lian)的(de)(de)加速效果。

25、總體而(er)言,通過本(ben)技(ji)(ji)(ji)術(shu)所構(gou)思的以(yi)上技(ji)(ji)(ji)術(shu)方(fang)案(an)與現有技(ji)(ji)(ji)術(shu)相比,具有以(yi)下(xia)有益(yi)效果(guo):

26、(1)本技(ji)術提(ti)出了(le)一種基于多計(ji)(ji)算節(jie)(jie)點(dian)所(suo)有權(quan)劃(hua)(hua)分(fen)的請(qing)求(qiu)(qiu)路由(you)方法,通過所(suo)有權(quan)劃(hua)(hua)分(fen)確定負(fu)責處理(li)請(qing)求(qiu)(qiu)鍵值(zhi)的多個(ge)計(ji)(ji)算節(jie)(jie)點(dian),對(dui)分(fen)配到(dao)的數(shu)據排他地(di)(di)訪問并加入本地(di)(di)緩存(cun),提(ti)升了(le)緩存(cun)局部性;然后選擇其中負(fu)載最輕的計(ji)(ji)算節(jie)(jie)點(dian)發送請(qing)求(qiu)(qiu),更(geng)好地(di)(di)實現計(ji)(ji)算節(jie)(jie)點(dian)之(zhi)間的負(fu)載均衡。

27、(2)本技術(shu)提(ti)出了(le)一種物(wu)理解耦的(de)分(fen)離式內存(cun)系統(tong),引入(ru)了(le)基于計算節(jie)(jie)點(dian)(dian)對(dui)的(de)所有(you)權劃分(fen),提(ti)升(sheng)(sheng)緩存(cun)局部性,進而提(ti)升(sheng)(sheng)系統(tong)吞吐率(lv)(lv);采(cai)用自校驗版本鏈設計,規(gui)避計算節(jie)(jie)點(dian)(dian)之間的(de)同步(bu)開(kai)銷,同時保(bao)障系統(tong)的(de)正確(que)性;引入(ru)負載(zai)感知的(de)請求(qiu)路由,實(shi)現計算節(jie)(jie)點(dian)(dian)之間負載(zai)均衡(heng),進而提(ti)升(sheng)(sheng)系統(tong)計算節(jie)(jie)點(dian)(dian)資源利用率(lv)(lv)。

當前第1頁1 2 
網(wang)友(you)詢(xun)問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1