分布式緩存協(xié)同中避免內(nèi)容重復(fù)存儲的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及網(wǎng)絡(luò)存儲和內(nèi)容分發(fā)技術(shù)領(lǐng)域,尤其設(shè)及一種分布式緩存協(xié)同中避免 內(nèi)容重復(fù)存儲的方法和裝置。
【背景技術(shù)】
[0002] 目前,用戶對互聯(lián)網(wǎng)的訪問已經(jīng)從點(diǎn)對點(diǎn)通信為主轉(zhuǎn)為內(nèi)容獲取為主。而傳統(tǒng)的 TCP/IP網(wǎng)絡(luò)僅傳輸內(nèi)容,并不感知內(nèi)容,從而造成了網(wǎng)絡(luò)上大量的冗余流量傳輸。為了解決 由于內(nèi)容獲取而引發(fā)的內(nèi)容爆炸,無論是目前的互聯(lián)網(wǎng)還是研究界提出的未來網(wǎng)絡(luò),都把 緩存作為基本的手段,來滿足用戶對內(nèi)容的具有重尾特征的異步訪問。例如,互聯(lián)網(wǎng)采用的 透明的Web化ch,P2P內(nèi)容分發(fā)網(wǎng)絡(luò)中的PP化che、CDN中的內(nèi)容緩存,W及研究界提出的信 息/內(nèi)容中屯、網(wǎng)絡(luò)NDN,DONA等。無論是內(nèi)容提供商還是網(wǎng)絡(luò)運(yùn)營商,都傾向于在網(wǎng)絡(luò)內(nèi)部 署泛在的緩存系統(tǒng)來降低網(wǎng)絡(luò)流量、提高用戶體驗(yàn)。
[0003] 但是,現(xiàn)在的內(nèi)容在緩存中WU化為標(biāo)識,而同樣的內(nèi)容在不同的內(nèi)容提供商處 會采用不同的U化標(biāo)識,導(dǎo)致緩存節(jié)點(diǎn)依據(jù)U化難W識別實(shí)際內(nèi)容相同的對象,從而會在緩 存中重復(fù)存儲,導(dǎo)致了緩存利用率的低下。因此,在泛在緩存緩存的前提下,亟需提出一種 分布式緩存環(huán)境下避免緩存內(nèi)容重復(fù)存儲的方法。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明為解決上述技術(shù)問題,提供一種分布式緩存協(xié)同中避免內(nèi)容重復(fù)存儲的方 法和裝置,能有效地避免內(nèi)容的重復(fù)存儲、降低網(wǎng)絡(luò)流量、提高用戶體驗(yàn)。所述技術(shù)方案如 下:
[0005] 一方面,本發(fā)明提出了一種分布式緩存協(xié)同中避免內(nèi)容重復(fù)存儲的方法,所述方 法包括:
[0006] 采用提供商依賴標(biāo)識和提供商獨(dú)立標(biāo)識的二元標(biāo)識法對內(nèi)容進(jìn)行標(biāo)識;
[0007] 基于二元標(biāo)識建立兩級邏輯映射來組織緩存內(nèi)容,并W分布式哈希進(jìn)行緩存協(xié) 同。其中第一級映射建立提供商依賴標(biāo)識和提供商獨(dú)立標(biāo)識之間的映射關(guān)系,第二級映 射《建立提供商獨(dú)立標(biāo)識和內(nèi)容數(shù)據(jù)塊本身的映射關(guān)系,其中第二級映射表項(xiàng)還記錄了 勺逆映射關(guān)系1^1,iri(pi(id) = {PA(id)IMPA(id) =pi(id))},即對于所給定表項(xiàng) 的提供商獨(dú)立標(biāo)識PI(id),當(dāng)前哪些提供商依賴標(biāo)識PA(id)映射到該提供商獨(dú)立標(biāo)識; [000引 由網(wǎng)絡(luò)域的邊緣內(nèi)容路由器將從域外到達(dá)的請求經(jīng)過兩級路由轉(zhuǎn)發(fā)到負(fù)責(zé)存儲 該內(nèi)容的域內(nèi)節(jié)點(diǎn);
[0009] 負(fù)責(zé)內(nèi)容數(shù)據(jù)塊的節(jié)點(diǎn)將對應(yīng)的數(shù)據(jù)塊發(fā)送給邊緣內(nèi)容路由器;
[0010] 更新兩級邏輯映射對應(yīng)表項(xiàng)的緩存替換控制狀態(tài)信息;
[0011] 由網(wǎng)絡(luò)域的邊緣內(nèi)容路由器在收到某個(gè)內(nèi)容數(shù)據(jù)塊時(shí)做出是否要緩存所述內(nèi)容 數(shù)據(jù)塊的決定;
[0012] 當(dāng)需要緩存所述內(nèi)容數(shù)據(jù)塊時(shí),所述邊緣內(nèi)容路由器將內(nèi)容數(shù)據(jù)塊經(jīng)過兩級路由 轉(zhuǎn)發(fā)到負(fù)責(zé)存儲該內(nèi)容的域內(nèi)內(nèi)容路由節(jié)點(diǎn),并在路由轉(zhuǎn)發(fā)過程中建立對應(yīng)的二級映射關(guān) 系。
[0013] 進(jìn)一步地,所述提供商依賴標(biāo)識指內(nèi)容的標(biāo)識與提供商相關(guān),因此同樣的內(nèi)容數(shù) 據(jù)塊在不同的內(nèi)容提供商可能具有不同的標(biāo)識;
[0014] 進(jìn)一步地,所述提供商獨(dú)立的標(biāo)識指內(nèi)容的標(biāo)識與提供商無關(guān),因此同樣的內(nèi)容 數(shù)據(jù)塊具有相同的內(nèi)容標(biāo)識;
[0015] 進(jìn)一步地,所述的內(nèi)容請求包含對所請求內(nèi)容數(shù)據(jù)塊的提供商依賴標(biāo)識;
[0016] 進(jìn)一步地,所述由網(wǎng)絡(luò)域的邊緣內(nèi)容路由器R。將從域外到達(dá)的請求Q經(jīng)過兩級路 由轉(zhuǎn)發(fā)到負(fù)責(zé)存儲該內(nèi)容的域內(nèi)節(jié)點(diǎn),包括:
[0017] 步驟201;對所述請求Q的提供商依賴標(biāo)識PA<^(id)執(zhí)行第一變換操作,將其變換 為分布式哈??臻g中的一個(gè)可路由標(biāo)識IDi;
[0018] 步驟202 ;將所述的對提供商依賴標(biāo)識PA^id)執(zhí)行第一變換操作后的IDi作為分 布式哈希的路由目標(biāo),由底層的分布式哈希路由機(jī)制將請求路由到對應(yīng)的負(fù)責(zé)該ID的節(jié) 點(diǎn)Ni;
[0019] 步驟203 請求中的提供商依賴標(biāo)識PA^id)作為鍵值查詢該負(fù)責(zé)節(jié)點(diǎn)Ni的一 級映射表MTi;
[0020] 步驟204-1;若未找到對應(yīng)表項(xiàng),則向所述邊緣內(nèi)容路由器R。發(fā)送一級映射表項(xiàng) 不存在的消息,結(jié)束流程;
[002U步驟204-2 ;若找到對應(yīng)的表項(xiàng),則取得對應(yīng)的提供商獨(dú)立標(biāo)識PI。(id)= MTi(PAQ(id));
[0022]步驟205;對所述的提供商獨(dú)立標(biāo)識Pl0(id)執(zhí)行第二變換操作,將其變換為分布 式哈希空間中的一個(gè)可路由標(biāo)識1〇2;
[002引步驟206 ;將提供商獨(dú)立標(biāo)識Pl^id)作為請求的一個(gè)屬性包含在請求中,同時(shí)W所述的對提供商獨(dú)立標(biāo)識執(zhí)行第二變換操作后的1化作為分布式哈希的路由目標(biāo),由底層 的分布式哈希路由機(jī)制將請求路由到對應(yīng)的負(fù)責(zé)該ID的節(jié)點(diǎn)馬;
[0024] 步驟207 請求中的提供商獨(dú)立標(biāo)識Plg(id)作為鍵值查詢該負(fù)責(zé)節(jié)點(diǎn)馬的二 級映射表MT2;
[0025] 步驟208-1;若未找到對應(yīng)表項(xiàng),則向所述邊緣內(nèi)容路由器R。發(fā)送二級映射表項(xiàng) 不存在的消息,同時(shí)請求刪除對應(yīng)的一級映射表項(xiàng)MTi(PA<^ (id)),結(jié)束流程;
[0026] 步驟208-2;若找到對應(yīng)的表項(xiàng),則取得與提供商獨(dú)立標(biāo)識PI<^(id)關(guān)聯(lián)的緩存數(shù) 據(jù)塊;
[0027] 其中,所述的第一變換操作和第二變換操作可W是相同的變換操作,也可W是不 相同的變換操作;所述第二變換操作也可W是恒等變換。
[0028] 其中,所述請求刪除對應(yīng)的一級映射表項(xiàng)MTi(PAe(id)),由馬構(gòu)造一級映射表項(xiàng) 刪除消息,所述刪除消息包括待刪除表項(xiàng)的鍵值PA^id)。W對PA^id)執(zhí)行第一變換操作 后的IDi作為路由目標(biāo),由N2依據(jù)底層的分布式哈希路由機(jī)制將所述一級映射表項(xiàng)刪除消 息路由到所述負(fù)責(zé)該一級映射表項(xiàng)的節(jié)點(diǎn)Ni,并由Ni執(zhí)行相應(yīng)的刪除操作;
[0029] 進(jìn)一步地,所述更新兩級邏輯映射對應(yīng)表項(xiàng)的緩存替換狀態(tài)控制信息,包括:更新 對應(yīng)二級映射表項(xiàng)MT2 (Pig(id))和一級映射表項(xiàng)MTi(PAg(id))的緩存替換狀態(tài)控制信息;
[0030] 其中,所述更新對應(yīng)二級映射表項(xiàng)MT2(PIe(id))的緩存替換狀態(tài)控制信息,由所 述節(jié)點(diǎn)馬本地完成更新PIg(id)鍵值對應(yīng)的表項(xiàng);
[003U 其中,所述更新對應(yīng)一級映射表項(xiàng)MTi(PA^id))的緩存替換狀態(tài)控制信息,由馬 構(gòu)造緩存替換狀態(tài)控制消息,所述消息包括待更新表項(xiàng)的鍵值PA0(id)和更新操作。W對PA^id)執(zhí)行第一變換操作后的IDi作為路由目標(biāo),由N2依據(jù)底層的分布式哈希路由機(jī)制將 所述一級映射表項(xiàng)更新消息路由到所述負(fù)責(zé)該一級映射表項(xiàng)的節(jié)點(diǎn)N。并由Ni執(zhí)行相應(yīng)的 更新操作;
[0032] 進(jìn)一步地,所述邊緣內(nèi)容路由器將內(nèi)容數(shù)據(jù)塊D經(jīng)過兩級路由轉(zhuǎn)發(fā)到負(fù)責(zé)存儲該 內(nèi)容的域內(nèi)節(jié)點(diǎn),并建立對應(yīng)的兩級映射關(guān)系,包括:
[0033] 步驟301;對所述內(nèi)容數(shù)據(jù)塊的提供商依賴標(biāo)識PAD(id)執(zhí)行第一變換操作,將其 變換為分布式哈??臻g中的一個(gè)可路由標(biāo)識1〇3;
[0034] 步驟302 ;將所述的對提供商依賴標(biāo)識PAD(id)執(zhí)行第一變換操作后的作為分 布式哈希的路由目標(biāo),由底層的分布式哈希路由機(jī)制將內(nèi)容數(shù)據(jù)塊路由到對應(yīng)的負(fù)責(zé)該ID 的節(jié)點(diǎn)N3;
[0035] 步驟303 內(nèi)容數(shù)據(jù)塊中的提供商依賴標(biāo)識PAD(id)作為鍵值查詢該負(fù)責(zé)節(jié)點(diǎn)Ns 的一級映射表MTi;
[0036] 步驟304-1;若未找到對應(yīng)表項(xiàng),則在N3建立一級映射表項(xiàng)MT1(PAd(id))= PlD(id),并初始化所述表項(xiàng)的緩存替換狀態(tài)控制信息。其中,所述PlD(id)為內(nèi)容數(shù)據(jù)塊的 提供商獨(dú)立標(biāo)識,可W存儲在內(nèi)容數(shù)據(jù)塊本身并隨之在網(wǎng)絡(luò)中傳輸,也可W由節(jié)點(diǎn)對內(nèi)容 數(shù)據(jù)塊依據(jù)某種一致的算法計(jì)算而得;
[0037] 步驟304-2;若找到對應(yīng)的表項(xiàng),則停止轉(zhuǎn)發(fā),結(jié)束流程;
[003引步驟305;對所述的提供商獨(dú)立標(biāo)識PId(id)執(zhí)行第二變換操作,將其變換為分布 式哈??臻g中的一個(gè)可路由標(biāo)識104;
[0039] 步驟306 ;W所述的對提供商獨(dú)立標(biāo)識執(zhí)行第二變換操作后的1〇4作為分布式哈 希的路由目標(biāo),由底層的分布式哈希路由機(jī)制將內(nèi)容數(shù)據(jù)塊路由到對應(yīng)的負(fù)責(zé)該ID的節(jié) 點(diǎn)N4;
[0040] 步驟307 ;W內(nèi)容數(shù)據(jù)塊的提供商獨(dú)立標(biāo)識PlD(id)作為鍵值查詢該負(fù)責(zé)節(jié)點(diǎn)N4 的二級映射表MT2;
[004U步驟308-1 ;若未找到對應(yīng)表項(xiàng),則緩存內(nèi)容數(shù)據(jù)塊D,并在二級映射表項(xiàng)中增加 鍵值PlD(id)與內(nèi)容數(shù)據(jù)塊D的映射關(guān)系,初始化PlD(id)和提供商依賴標(biāo)識的逆映射集合 為{PAd(id)},初