專(zhuān)利名稱(chēng):一種Cache調(diào)度的方法、設(shè)備及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及有線電視領(lǐng)域,特別涉及一種Cache調(diào)度的方法、設(shè)備及系統(tǒng)。
背景技術(shù):
在有線電視領(lǐng)域中,將用戶訪問(wèn)頻繁的內(nèi)容緩存在Cache中,當(dāng)訪問(wèn)相同的數(shù)據(jù) 時(shí),可以不必訪問(wèn)物理設(shè)備,而是采用基于Cache調(diào)度技術(shù)訪問(wèn)Cache,從而提高了訪問(wèn)速度。
目前采用文件系統(tǒng)自身的Cache來(lái)對(duì)播出內(nèi)容進(jìn)行緩存,文件系統(tǒng)以頁(yè)為單位對(duì)
數(shù)據(jù)進(jìn)行緩存,頁(yè)的大小為1KB。其中,文件系統(tǒng)采用以頁(yè)為單元的Cache調(diào)度的方法訪問(wèn)
Cache,具體為當(dāng)終端向文件系統(tǒng)請(qǐng)求某頁(yè)數(shù)據(jù)時(shí),文件系統(tǒng)從自身的Cache中調(diào)度該頁(yè)
數(shù)據(jù),如果Cache中緩存有該頁(yè)的數(shù)據(jù),則向終端返回該頁(yè)數(shù)據(jù),如果Cache中沒(méi)有,則從物
理設(shè)備中讀取該頁(yè)數(shù)據(jù),將該頁(yè)數(shù)據(jù)緩存在Cache中,同時(shí)向終端返回該頁(yè)數(shù)據(jù)。 在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問(wèn)題 第一、隨著有線電視的快速發(fā)展,用戶訪問(wèn)的數(shù)據(jù)量的增加,而使用以頁(yè)為單位的
Cache調(diào)度的方法去訪問(wèn)Cache中的數(shù)據(jù)的效率已無(wú)法滿足高吞吐量的要求。 第二、當(dāng)終端需要的數(shù)據(jù)不在文件系統(tǒng)自身的Cache中,文件系統(tǒng)不能從網(wǎng)絡(luò)中
的其他的Cache中獲取數(shù)據(jù),從而降低訪問(wèn)數(shù)據(jù)的效率。
發(fā)明內(nèi)容
為了提高訪問(wèn)數(shù)據(jù)的效率,本發(fā)明實(shí)施例提供了一種Cache調(diào)度的方法、設(shè)備及 系統(tǒng)。所述技術(shù)方案如下 —種Cache調(diào)度的方法,所述方法包括 文件管理系統(tǒng)FMS接收來(lái)自終端獲取數(shù)據(jù)塊的請(qǐng)求,所述請(qǐng)求中攜帶數(shù)據(jù)塊的標(biāo) 識(shí)碼ID ; 所述FMS根據(jù)所述ID查找本地Cache節(jié)點(diǎn); 如果查找出所述ID對(duì)應(yīng)的數(shù)據(jù)塊,所述FMS返回所述數(shù)據(jù)塊給終端;
如果沒(méi)有查找出所述數(shù)據(jù)塊,所述FMS根據(jù)所述ID從網(wǎng)絡(luò)中查找緩存所述數(shù)據(jù)塊 的Cache節(jié)點(diǎn),如果查找出Cache節(jié)點(diǎn),從所述Cache節(jié)點(diǎn)中獲取所述數(shù)據(jù)塊給終端;如果 沒(méi)有查找出Cache節(jié)點(diǎn),查找出存儲(chǔ)所述數(shù)據(jù)塊的物理設(shè)備;所述本地Cache節(jié)點(diǎn)接收所 述物理設(shè)備對(duì)應(yīng)的Cache節(jié)點(diǎn)發(fā)送的所述數(shù)據(jù)塊,緩存所述數(shù)據(jù)塊;所述FMS從所述本地 Cache節(jié)點(diǎn)中獲取所述數(shù)據(jù)塊并返回給終端。 所述所述本地Cache節(jié)點(diǎn)接收所述物理設(shè)備對(duì)應(yīng)的Cache節(jié)點(diǎn)發(fā)送的所述數(shù)據(jù) 塊,緩存所述數(shù)據(jù)塊,具體包括 所述本地Cache節(jié)點(diǎn)接收所述物理設(shè)備對(duì)應(yīng)的Cache節(jié)點(diǎn)發(fā)送的所述數(shù)據(jù)塊,判 斷自身是否還有空間緩存所述數(shù)據(jù)塊; 如果沒(méi)有,回收訪問(wèn)次數(shù)低且沒(méi)有被操作的數(shù)據(jù)塊所占用的空間,再分配空間,將所述數(shù)據(jù)塊緩存在所述分配的空間中; 如果有,分配空間,將所述數(shù)據(jù)塊緩存在所述分配的空間中。 所述根據(jù)所述ID從網(wǎng)絡(luò)中查找緩存所述數(shù)據(jù)塊的Cache節(jié)點(diǎn),如果查找出Cache 節(jié)點(diǎn),從所述Cache節(jié)點(diǎn)中獲取所述數(shù)據(jù)塊給終端,具體包括 根據(jù)所述ID查找網(wǎng)絡(luò)中緩存所述數(shù)據(jù)塊的Cache節(jié)點(diǎn),如果查找出多個(gè)Cache節(jié) 點(diǎn),則選擇負(fù)荷最小的Cache節(jié)點(diǎn),從所述選擇的Cache節(jié)點(diǎn)中讀取所述數(shù)據(jù)塊并返回給終
丄山
順; 如果查找出一個(gè)Cache節(jié)點(diǎn),從所述Cache節(jié)點(diǎn)中讀取所述數(shù)據(jù)塊并返回給終端。 所述方法還包括 被訪問(wèn)的Cache節(jié)點(diǎn),記錄所述數(shù)據(jù)塊被訪問(wèn)的次數(shù)。 所述方法還包括 當(dāng)網(wǎng)絡(luò)中的任一 Cache節(jié)點(diǎn)中的數(shù)據(jù)塊剛沒(méi)有被操作時(shí),所述Cache節(jié)點(diǎn)為所述
數(shù)據(jù)塊設(shè)置荒廢時(shí)間,所述荒廢時(shí)間用于記錄所述數(shù)據(jù)塊沒(méi)有被操作的時(shí)間; 相應(yīng)地,所述回收訪問(wèn)次數(shù)低且沒(méi)有被操作的數(shù)據(jù)塊所占用的空間,具體包括 優(yōu)先回收訪問(wèn)次數(shù)低且荒廢時(shí)間長(zhǎng)的數(shù)據(jù)塊所占用的空間。 —種Cache調(diào)度的設(shè)備,所述設(shè)備包括 接收模塊,用于接收來(lái)自終端獲取數(shù)據(jù)塊的請(qǐng)求,所述請(qǐng)求中攜帶數(shù)據(jù)塊的標(biāo)識(shí)
碼ID ; 第一查找模塊,用于根據(jù)所述ID查找本地Cache節(jié)點(diǎn); 第一返回模塊,用于如果查找出所述ID對(duì)應(yīng)的數(shù)據(jù)塊,則返回所述數(shù)據(jù)塊給終
丄山
順; 第二查找模塊,用于如果沒(méi)有查找出所述數(shù)據(jù)塊,根據(jù)所述ID從網(wǎng)絡(luò)中查找緩存 所述數(shù)據(jù)塊的Cache節(jié)點(diǎn),如果查找出Cache節(jié)點(diǎn),從所述Cache節(jié)點(diǎn)中獲取所述數(shù)據(jù)塊給 終端;如果沒(méi)有查找出Cache節(jié)點(diǎn),查找出存儲(chǔ)所述數(shù)據(jù)塊的物理設(shè)備;當(dāng)所述本地Cache 節(jié)點(diǎn)緩存來(lái)自所述物理設(shè)備對(duì)應(yīng)的Cache節(jié)點(diǎn)的所述數(shù)據(jù)塊后,從所述本地Cache節(jié)點(diǎn)中 獲取所述數(shù)據(jù)塊并返回給終端。 所述第二查找模塊,具體用于如果沒(méi)有查找出所述數(shù)據(jù)塊,根據(jù)所述ID查找網(wǎng)絡(luò) 中緩存所述數(shù)據(jù)塊的Cache節(jié)點(diǎn),如果查找出多個(gè)Cache節(jié)點(diǎn),則選擇負(fù)荷最小的Cache節(jié) 點(diǎn),從所述選擇的Cache節(jié)點(diǎn)中讀取所述數(shù)據(jù)塊并返回給終端;如果查找出一個(gè)Cache節(jié) 點(diǎn),從所述Cache節(jié)點(diǎn)中讀取所述數(shù)據(jù)塊并返回給終端;如果沒(méi)有查找出Cache節(jié)點(diǎn),查 找出存儲(chǔ)所述數(shù)據(jù)塊的物理設(shè)備;當(dāng)所述本地Cache節(jié)點(diǎn)緩存來(lái)自所述物理設(shè)備對(duì)應(yīng)的 Cache節(jié)點(diǎn)的所述數(shù)據(jù)塊后,從所述本地Cache節(jié)點(diǎn)中獲取所述數(shù)據(jù)塊并返回給終端。
—種Cache調(diào)度的系統(tǒng),所述系統(tǒng)包括 Cache調(diào)度的設(shè)備,用于接收來(lái)自終端獲取數(shù)據(jù)塊的請(qǐng)求,所述請(qǐng)求中攜帶數(shù)據(jù)塊 的標(biāo)識(shí)碼ID ;根據(jù)所述ID查找本地Cache節(jié)點(diǎn);如果查找出所述ID對(duì)應(yīng)的數(shù)據(jù)塊,則返回 所述數(shù)據(jù)塊給終端;如果沒(méi)有查找出所述數(shù)據(jù)塊,根據(jù)所述ID從網(wǎng)絡(luò)中查找緩存所述數(shù)據(jù) 塊的Cache節(jié)點(diǎn),如果查找出Cache節(jié)點(diǎn),從所述Cache節(jié)點(diǎn)中獲取所述數(shù)據(jù)塊給終端;如 果沒(méi)有查找出Cache節(jié)點(diǎn),查找出存儲(chǔ)所述數(shù)據(jù)塊的物理設(shè)備;當(dāng)所述本地Cache節(jié)點(diǎn)緩存 來(lái)自所述物理設(shè)備對(duì)應(yīng)的Cache節(jié)點(diǎn)的所述數(shù)據(jù)塊后,從所述本地Cache節(jié)點(diǎn)中獲取所述數(shù)據(jù)塊并返回給終端; 被訪問(wèn)的Cache節(jié)點(diǎn),用于當(dāng)所述Cache調(diào)度的設(shè)備查找出所述本地Cache節(jié)點(diǎn) 中緩存有所述數(shù)據(jù)塊時(shí),返回所述數(shù)據(jù)塊給終端;當(dāng)所述Cache調(diào)度的設(shè)備查找出網(wǎng)絡(luò)中 緩存所述數(shù)據(jù)塊的Cache節(jié)點(diǎn)時(shí),返回所述數(shù)據(jù)塊給終端;當(dāng)所述本地Cache節(jié)點(diǎn)接收到來(lái) 自所述物理設(shè)備對(duì)應(yīng)的Cache節(jié)點(diǎn)的所述數(shù)據(jù)塊時(shí),緩存所述數(shù)據(jù)塊,并返回所述數(shù)據(jù)塊 給終端。 所述Cache節(jié)點(diǎn)具體包括 第二返回模塊,用于當(dāng)所述Cache調(diào)度的設(shè)備查找出所述本地Cache節(jié)點(diǎn)中緩存 有所述數(shù)據(jù)塊時(shí),返回所述數(shù)據(jù)塊給終端;當(dāng)所述Cache調(diào)度的設(shè)備查找出網(wǎng)絡(luò)中緩存所 述數(shù)據(jù)塊的Cache節(jié)點(diǎn)時(shí),返回所述數(shù)據(jù)塊給終端; 判斷模塊,用于當(dāng)所述本地Cache節(jié)點(diǎn)接收所述物理設(shè)備對(duì)應(yīng)的Cache節(jié)點(diǎn)發(fā)送 的所述數(shù)據(jù)塊,判斷自身是否還有空間緩存所述數(shù)據(jù)塊; 第三返回模塊,用于如果所述判斷模塊判斷出沒(méi)有,回收訪問(wèn)次數(shù)低且沒(méi)有被操 作的數(shù)據(jù)塊所占用的空間,再分配空間,將所述數(shù)據(jù)塊緩存在所述分配的空間中,并返回所 述數(shù)據(jù)塊給終端; 第四返回模塊,用于如果所述判斷模塊判斷出有,分配空間,將所述數(shù)據(jù)塊緩存在 所述分配的空間中,并返回所述數(shù)據(jù)塊給終端。
所述Cache節(jié)點(diǎn)還包括 記錄模塊,用于記錄所述數(shù)據(jù)塊被訪問(wèn)的次數(shù)。
所述Cache節(jié)點(diǎn)還包括 設(shè)置模塊,用于當(dāng)網(wǎng)絡(luò)中的任一 Cache節(jié)點(diǎn)中的數(shù)據(jù)塊剛沒(méi)有被操作時(shí),為所述
數(shù)據(jù)塊設(shè)置荒廢時(shí)間,所述荒廢時(shí)間用于記錄所述數(shù)據(jù)塊沒(méi)有被操作的時(shí)間;
相應(yīng)地, 所述第三返回模塊,具體用于如果所述判斷模塊判斷出沒(méi)有,優(yōu)先回收訪問(wèn)次數(shù) 低且荒廢時(shí)間長(zhǎng)的數(shù)據(jù)塊所占用的空間,再分配空間,將所述數(shù)據(jù)塊緩存在所述分配的空 間中,并返回所述數(shù)據(jù)塊給終端。 在本發(fā)明實(shí)施例中,根據(jù)來(lái)自終端的請(qǐng)求中攜帶的數(shù)據(jù)塊的ID,查找本地Cache 節(jié)點(diǎn),如果查找出數(shù)據(jù)塊,則直接返回該數(shù)據(jù)塊,如果沒(méi)有,則根據(jù)該ID從網(wǎng)絡(luò)中查找數(shù)據(jù) 塊,并返回該數(shù)據(jù)塊。由于以數(shù)據(jù)塊為單位進(jìn)行調(diào)度Cache節(jié)點(diǎn)中的數(shù)據(jù),從而提高了訪問(wèn) Cache節(jié)點(diǎn)中的數(shù)據(jù)的效率;由于網(wǎng)絡(luò)中的Cache節(jié)點(diǎn)都共享數(shù)據(jù),從而當(dāng)用戶訪問(wèn)的數(shù)據(jù) 在不在本地Cache節(jié)點(diǎn)中,可以從網(wǎng)絡(luò)Cache節(jié)點(diǎn)中獲得數(shù)據(jù),從而進(jìn)一步提高訪問(wèn)數(shù)據(jù)的 效率。
圖1是本發(fā)明實(shí)施例1提供的
圖2是本發(fā)明實(shí)施例1提供的
圖3是本發(fā)明實(shí)施例1提供的
圖4是本發(fā)明實(shí)施例2提供的
圖5是本發(fā)明實(shí)施例3提供的
一種Udp廣播網(wǎng)絡(luò)結(jié)構(gòu)示意圖; 一種組建高速共享網(wǎng)絡(luò)的方法流程圖; 一種高速共享網(wǎng)絡(luò)結(jié)構(gòu)示意圖; 一種Cache調(diào)度的方法流程圖; 一種Cache調(diào)度的方法流程 圖6是本發(fā)明實(shí)施例4提供的一種Cache調(diào)度的設(shè)備結(jié)構(gòu)示意圖;
圖7是本發(fā)明實(shí)施例5提供的一種Cache調(diào)度的系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方
式作進(jìn)一步地詳細(xì)描述。 實(shí)施例1 如圖1所示為一種Udp (User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)廣播網(wǎng)絡(luò), Udp廣播網(wǎng)絡(luò)是一種有線視頻網(wǎng)絡(luò),在Udp廣播網(wǎng)絡(luò)中設(shè)置有Cache節(jié)點(diǎn),Cache節(jié)點(diǎn)為 高速緩存設(shè)備,用于緩存用戶訪問(wèn)頻繁的內(nèi)容,其內(nèi)存大小可以為32GB或64GB等,其中, Cache節(jié)點(diǎn)還在Udp廣播網(wǎng)絡(luò)中共享自己的數(shù)據(jù)。在Udp廣播網(wǎng)絡(luò)中還設(shè)置有物理設(shè)備,物 理設(shè)備為硬磁盤(pán)設(shè)備,是一種用于存儲(chǔ)有線視頻的服務(wù)器,在每個(gè)物理設(shè)備中都設(shè)有一個(gè) 本地Cache節(jié)點(diǎn),該本地Cache節(jié)點(diǎn)用于緩存物理設(shè)備中用戶訪問(wèn)頻繁的內(nèi)容。當(dāng)訪問(wèn)數(shù) 據(jù)時(shí),首先訪問(wèn)Cache節(jié)點(diǎn),如果Cache節(jié)點(diǎn)中沒(méi)有要訪問(wèn)的內(nèi)容,再訪問(wèn)本地物理設(shè)備,如 此,可以提高訪問(wèn)速度。如果能將Udp廣播網(wǎng)絡(luò)中的所有Cache節(jié)點(diǎn)之間通過(guò)高速數(shù)據(jù)通 道進(jìn)行點(diǎn)對(duì)點(diǎn)的連接,以實(shí)現(xiàn)將Udp廣播網(wǎng)絡(luò)中的所有Cache節(jié)點(diǎn)組成一個(gè)高速的共享網(wǎng) 絡(luò),從而能夠提高用戶訪問(wèn)內(nèi)容的速度。 基于上述描述,本發(fā)明實(shí)施例提供了一種組建高速共享網(wǎng)絡(luò)的方法,該方法將Udp 廣播網(wǎng)絡(luò)中的所有Cache節(jié)點(diǎn)組建成一個(gè)點(diǎn)對(duì)點(diǎn)的高速共享網(wǎng)絡(luò),本實(shí)施例以Udp廣播網(wǎng) 絡(luò)中的第一 Cache節(jié)點(diǎn)與第二 Cache節(jié)點(diǎn)之間建立高速數(shù)據(jù)通道為例進(jìn)行說(shuō)明,當(dāng)將Udp 廣播網(wǎng)絡(luò)中的任意兩Cache節(jié)點(diǎn)按第一 Cache節(jié)點(diǎn)與第二 Cache節(jié)點(diǎn)所建高速數(shù)據(jù)通道的 方法進(jìn)行建立高速數(shù)據(jù)通道,就組建出了高速共享網(wǎng)絡(luò),如圖2所示,該方法包括
步驟101 :當(dāng)?shù)谝?Cache節(jié)點(diǎn)加入到Udp廣播網(wǎng)絡(luò)中時(shí),第一 Cache節(jié)點(diǎn)向Udp廣 播網(wǎng)絡(luò)廣播高速數(shù)據(jù)通道信息,該高速數(shù)據(jù)通道信息包含第一 Cache節(jié)點(diǎn)的IP(Internet Protocol,網(wǎng)際協(xié)議)和端口等; 其中,第一 Cache節(jié)點(diǎn)為Udp廣播網(wǎng)絡(luò)中的某個(gè)節(jié)點(diǎn),第一 Cache節(jié)點(diǎn)可以將高速 數(shù)據(jù)通道信息打包成心跳包的形式,然后再?gòu)V播到UDP廣播網(wǎng)絡(luò)中。 步驟102 :第二 Cache節(jié)點(diǎn)從Udp廣播網(wǎng)絡(luò)中接收第一 Cache節(jié)點(diǎn)廣播的高速數(shù) 據(jù)通道信息; 其中,第二 Cache節(jié)點(diǎn)也為Udp廣播網(wǎng)絡(luò)中的某個(gè)節(jié)點(diǎn)。 步驟103 :第二 Cache節(jié)點(diǎn)根據(jù)接收的高速數(shù)據(jù)通道信息,判斷是否與第一 Cache 節(jié)點(diǎn)已建立了高速數(shù)據(jù)通道,如果否,執(zhí)行步驟104,如果是,執(zhí)行步驟105 ;
其中,Cache節(jié)點(diǎn)通過(guò)IP和端口等信息,與另一個(gè)Cache節(jié)點(diǎn)建立高速數(shù)據(jù)通道。
具體地,第二 Cache節(jié)點(diǎn)從接收的高速數(shù)據(jù)通道信息中讀取包括的IP和端口等信 息,根據(jù)讀取的IP和端口等信息,從自身已建立的所有高速數(shù)據(jù)通道中查找,如果從已建 立的所有高速數(shù)據(jù)通道中沒(méi)有查找出與讀取的IP和端口等信息都相同的高速數(shù)據(jù)通道, 則第二 Cache節(jié)點(diǎn)與第一 Cache節(jié)點(diǎn)之間沒(méi)有建立高速數(shù)據(jù)通道,否則,第二 Cache節(jié)點(diǎn)與 第一 Cache節(jié)點(diǎn)之間已建立高速數(shù)據(jù)通道。 步驟104 :第二 Cache節(jié)點(diǎn)在其自身與第一 Cache節(jié)點(diǎn)之間創(chuàng)建一條高速數(shù)據(jù)通
8道; 其中,第二 Cache節(jié)點(diǎn)通過(guò)TCP(Transmission Control Protocol,傳輸控制協(xié) 議)協(xié)議與第一 Cache節(jié)點(diǎn)建立高速數(shù)據(jù)通道。 步驟105 :第二 Cache節(jié)點(diǎn)直接丟掉接收的高速數(shù)據(jù)通道信息。 其中,Udp廣播網(wǎng)絡(luò)中的其他每個(gè)Cache節(jié)點(diǎn)從Udp廣播網(wǎng)絡(luò)中接收第一 Cache節(jié)
點(diǎn)廣播的高速數(shù)據(jù)通道信息,并都按上述方法與第一 Cache節(jié)點(diǎn)建立高速數(shù)據(jù)通道。 其中,Udp廣播網(wǎng)絡(luò)中的每個(gè)Cache節(jié)點(diǎn)都按第一 Cache節(jié)點(diǎn)向Udp廣播網(wǎng)絡(luò)中廣
播高速數(shù)據(jù)通道信息,建立與其他每個(gè)Cache節(jié)點(diǎn)之間的高速數(shù)據(jù)通道,就得到了由Cache
節(jié)點(diǎn)組成的高速共享網(wǎng)絡(luò),如圖3所示的高速共享網(wǎng)絡(luò)。 其中,當(dāng)有一個(gè)新的Cache節(jié)點(diǎn)要加入高速共享網(wǎng)絡(luò)時(shí),該節(jié)點(diǎn)首先加入U(xiǎn)dp廣播 網(wǎng)絡(luò),再按第一 Cache節(jié)點(diǎn)的方法建立與高速共享網(wǎng)絡(luò)中的每個(gè)Cache節(jié)點(diǎn)之間的高速數(shù) 據(jù)通道。另外,高速共享網(wǎng)絡(luò)中的每個(gè)Cache節(jié)點(diǎn)以數(shù)據(jù)塊的單位存儲(chǔ)數(shù)據(jù),即在Cache節(jié) 點(diǎn)中存儲(chǔ)數(shù)據(jù)塊與其對(duì)應(yīng)的ID之間的一一對(duì)應(yīng)關(guān)系,且數(shù)據(jù)塊的大小通常為8Mb。
實(shí)施例2 如圖4所示,本發(fā)明實(shí)施例提供了一種Cache調(diào)度的方法,該方法對(duì)實(shí)施例1所建 立的高速共享網(wǎng)絡(luò)中的Cache節(jié)點(diǎn)進(jìn)行調(diào)度,包括 步驟201 :FMS接收來(lái)自終端獲取數(shù)據(jù)塊的請(qǐng)求,該請(qǐng)求中攜帶數(shù)據(jù)塊的ID ;
步驟202 :FMS根據(jù)該ID查找本地Cache節(jié)點(diǎn),如果查找出該ID對(duì)應(yīng)的數(shù)據(jù)塊,則 執(zhí)行步驟203,如果沒(méi)有查找出該數(shù)據(jù)塊,則執(zhí)行步驟204 ; 步驟203 :FMS從本地Cache節(jié)點(diǎn)獲取該數(shù)據(jù)塊,并返回該數(shù)據(jù)塊給終端,操作結(jié) 束; 步驟204 :FMS根據(jù)該ID從網(wǎng)絡(luò)中查找緩存該數(shù)據(jù)塊的Cache節(jié)點(diǎn),如果查找出 Cache節(jié)點(diǎn),執(zhí)行步驟205,否則,執(zhí)行步驟206 ; 步驟205 :FMS從查找的Cache節(jié)點(diǎn)中獲取該數(shù)據(jù)塊給終端,操作結(jié)束;
步驟206 :FMS查找出存儲(chǔ)該數(shù)據(jù)塊的物理設(shè)備; 步驟207 :本地Cache節(jié)點(diǎn)接收該物理設(shè)備對(duì)應(yīng)的Cache節(jié)點(diǎn)發(fā)送的該數(shù)據(jù)塊,緩 存該數(shù)據(jù)塊; 步驟208 :FMS從本地Cache節(jié)點(diǎn)中獲取該數(shù)據(jù)塊并返回給終端,操作結(jié)束。
其中,網(wǎng)絡(luò)中的每個(gè)Cache節(jié)點(diǎn)都共享其自身的內(nèi)容,當(dāng)本地Cache節(jié)點(diǎn)中沒(méi)有該 ID對(duì)應(yīng)的數(shù)據(jù)塊時(shí),可以從網(wǎng)絡(luò)中查找出該數(shù)據(jù)塊。 在本發(fā)明實(shí)施例中,根據(jù)來(lái)自終端的請(qǐng)求中攜帶的數(shù)據(jù)塊的ID,查找本地Cache 節(jié)點(diǎn),如果查找出數(shù)據(jù)塊,則直接返回該數(shù)據(jù)塊,如果沒(méi)有,則根據(jù)該ID從網(wǎng)絡(luò)中查找數(shù)據(jù) 塊,并返回該數(shù)據(jù)塊。由于以數(shù)據(jù)塊為單位進(jìn)行調(diào)度Cache節(jié)點(diǎn)中的數(shù)據(jù),從而提高了訪問(wèn) Cache節(jié)點(diǎn)中的數(shù)據(jù)的效率;由于網(wǎng)絡(luò)中的Cache節(jié)點(diǎn)都共享數(shù)據(jù),從而當(dāng)用戶訪問(wèn)的數(shù)據(jù) 在不在本地Cache節(jié)點(diǎn)中,可以從網(wǎng)絡(luò)Cache節(jié)點(diǎn)中獲得數(shù)據(jù),從而進(jìn)一步提高訪問(wèn)數(shù)據(jù)的 效率。 實(shí)施例3 本發(fā)明實(shí)施例提供了一種Cache調(diào)度的方法,該方法對(duì)實(shí)施例1所建立的高速共 享網(wǎng)絡(luò)中的Cache節(jié)點(diǎn)進(jìn)行調(diào)度,如圖5所示,該方法包括
步驟301 :終端向FMS(File Manager System,文件管理系統(tǒng))發(fā)送獲取數(shù)據(jù)塊的 請(qǐng)求,該請(qǐng)求中攜帶需要請(qǐng)求的數(shù)據(jù)塊的ID ; 其中,終端通過(guò)API函數(shù)發(fā)送請(qǐng)求,例如API函數(shù)中包括libfan函數(shù),終端通過(guò) libfan函數(shù)發(fā)送請(qǐng)求消息。具體地,終端調(diào)用libfan函數(shù),libfan函數(shù)通過(guò)TCP協(xié)議與 FMS建立通迅,當(dāng)通訊建立成功后,向FMS發(fā)送獲取數(shù)據(jù)塊的請(qǐng)求。 步驟302 :FMS接收請(qǐng)求后,根據(jù)請(qǐng)求中攜帶的ID,查找本地Cache節(jié)點(diǎn)中是否緩 存該ID對(duì)應(yīng)的數(shù)據(jù)塊,如果是,則執(zhí)行步驟303,如果否,則執(zhí)行步驟304 ;
其中,本地Cache節(jié)點(diǎn)是以數(shù)據(jù)塊為單位進(jìn)行緩存,在Cache節(jié)點(diǎn)中緩存數(shù)據(jù)塊與 其對(duì)應(yīng)的ID之間的對(duì)應(yīng)關(guān)系。 具體地,F(xiàn)MS以該ID為索引,從本地Cache節(jié)點(diǎn)中緩存的數(shù)據(jù)塊與ID的對(duì)應(yīng)關(guān)系 中進(jìn)行搜索,如果搜索出數(shù)據(jù)塊,則在本地Cache節(jié)點(diǎn)緩存有該ID對(duì)應(yīng)的數(shù)據(jù)塊,如果沒(méi)有 搜索出數(shù)據(jù)塊,則在本地Cache節(jié)點(diǎn)中沒(méi)有緩存該ID對(duì)應(yīng)的數(shù)據(jù)塊。 步驟303 :FMS從本地Cache節(jié)點(diǎn)中獲取查找的該ID對(duì)應(yīng)的數(shù)據(jù)塊,并返回給終 端,操作結(jié)束; 具體地,F(xiàn)MS發(fā)送通知給終端,該通知用于告知終端從本地Cache節(jié)點(diǎn)中讀取該ID 對(duì)應(yīng)的數(shù)據(jù)塊,終端接收到通知后,從本地Cache節(jié)點(diǎn)中讀取該ID對(duì)應(yīng)的數(shù)據(jù)塊。
其中,F(xiàn)MS查找出終端請(qǐng)求的數(shù)據(jù)塊在所在的Cache節(jié)點(diǎn)就會(huì)通知終端,終端從通 知中的Cache節(jié)點(diǎn)中讀取所需的數(shù)據(jù)塊。 其中,在本實(shí)施例中,用命中率記錄Cache點(diǎn)上存放的某個(gè)數(shù)據(jù)塊已被操作的次 數(shù),用引用計(jì)數(shù)記錄當(dāng)前正在對(duì)Cache節(jié)點(diǎn)上存放的某個(gè)數(shù)據(jù)塊進(jìn)行操作的操作數(shù)目,用 負(fù)荷記錄當(dāng)前正在對(duì)某個(gè)Cache節(jié)點(diǎn)進(jìn)行操作的操作數(shù)目。操作包括讀取、更新或?qū)懭搿F?中,命中率用于記錄某個(gè)數(shù)據(jù)塊被訪問(wèn)的次數(shù)。 其中,當(dāng)終端開(kāi)始在該本地Cache節(jié)點(diǎn)上讀取該數(shù)據(jù)塊時(shí),該本地Cache節(jié)點(diǎn)將 自身存放的該數(shù)據(jù)塊的命中率和引用計(jì)數(shù)遞增以及自身的負(fù)荷也遞增,當(dāng)終端從該本地 Cache節(jié)點(diǎn)上讀取完該數(shù)據(jù)塊時(shí),該本地Cache節(jié)點(diǎn)自身存放的該數(shù)據(jù)塊的引用計(jì)數(shù)以及 自身的負(fù)荷都遞減。其中,最簡(jiǎn)便的實(shí)現(xiàn)方式為該本地Cache節(jié)點(diǎn)采用加1的方式對(duì)命中 率、引用計(jì)數(shù)和負(fù)荷進(jìn)行遞增,采用減1的方式對(duì)引用計(jì)數(shù)和負(fù)荷進(jìn)行遞減。
其中,在本實(shí)施例中,當(dāng)Cache節(jié)點(diǎn)中的某個(gè)數(shù)據(jù)塊的引用計(jì)數(shù)減少為零時(shí),即該 數(shù)據(jù)塊剛沒(méi)有被操作時(shí),該Cache節(jié)點(diǎn)就為該數(shù)據(jù)塊設(shè)置荒廢時(shí)間?;膹U時(shí)間用于記錄該 數(shù)據(jù)塊沒(méi)有被操作的時(shí)間,隨時(shí)間進(jìn)行累加。當(dāng)Cache節(jié)點(diǎn)收回存儲(chǔ)區(qū)域時(shí),就會(huì)優(yōu)先收回 命中率低且荒廢時(shí)間長(zhǎng)的數(shù)據(jù)塊所占的存儲(chǔ)區(qū)域。 步驟304 :FMS根據(jù)該ID,查找高速共享網(wǎng)絡(luò)中是否存在該ID對(duì)應(yīng)的數(shù)據(jù)塊的其 他Cache節(jié)點(diǎn),如果從網(wǎng)絡(luò)中查找出多個(gè)Cache節(jié)點(diǎn),則執(zhí)行步驟305,如果從網(wǎng)絡(luò)中查找出 一個(gè)Cache節(jié)點(diǎn),則執(zhí)行步驟306,如果在網(wǎng)絡(luò)中沒(méi)有查找出Cache節(jié)點(diǎn),則執(zhí)行步驟307 ;
具體地,以ID為索引,對(duì)網(wǎng)絡(luò)中的其他每個(gè)Cache節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)塊ID與其對(duì)應(yīng) 的數(shù)據(jù)塊的對(duì)應(yīng)關(guān)系中,進(jìn)行搜索,搜索出網(wǎng)絡(luò)中存在該ID對(duì)應(yīng)的數(shù)據(jù)塊的所有Cache節(jié) 點(diǎn)。 步驟305 :FMS根據(jù)每個(gè)Cache節(jié)點(diǎn)的負(fù)荷,選擇負(fù)荷最小的一個(gè)Cache節(jié)點(diǎn),并從 該Cache節(jié)點(diǎn)中獲取該ID對(duì)應(yīng)的數(shù)據(jù)塊,并返回給終端,操作結(jié)束;
其中,F(xiàn)MS發(fā)送通知給終端,該通知用于告知終端從選擇的Cache節(jié)點(diǎn)中讀取請(qǐng)求 的數(shù)據(jù)塊,終端接收通知后,從該選擇的Cache節(jié)點(diǎn)中讀取該ID對(duì)應(yīng)的數(shù)據(jù)塊。
例如,F(xiàn)MS從網(wǎng)絡(luò)中查找出三個(gè)Cache節(jié)點(diǎn),負(fù)荷分別為2、4、7,則選擇負(fù)荷為2的 Cache節(jié)點(diǎn)。從負(fù)荷最小的Cache節(jié)點(diǎn)中讀取數(shù)據(jù)塊的速率最高,從而可以提高整個(gè)網(wǎng)絡(luò)的
吞吐量。 其中,當(dāng)開(kāi)始在該選擇的Cache節(jié)點(diǎn)上讀取該數(shù)據(jù)塊時(shí),選擇的Cache節(jié)點(diǎn)將自身 存放的該數(shù)據(jù)塊的命中率和引用計(jì)數(shù)以及自身的負(fù)荷都遞增,當(dāng)從選擇的Cache節(jié)點(diǎn)上讀 取完該數(shù)據(jù)塊時(shí),選擇的Cache節(jié)點(diǎn)將自身存放的該數(shù)據(jù)塊的引用計(jì)數(shù)以及自身的負(fù)荷都 遞減。 步驟306 :FMS從該查找的Cache節(jié)點(diǎn)中獲取該ID對(duì)應(yīng)的數(shù)據(jù)塊,并返回給終端, 操作結(jié)束; 具體地,F(xiàn)MS發(fā)送通知給終端,該通知用于告知終端從該查找的Cache節(jié)點(diǎn)中讀取 該ID對(duì)應(yīng)的數(shù)據(jù)塊,終端接收到通知后,從該查找的Cache節(jié)點(diǎn)中讀取該ID對(duì)應(yīng)的數(shù)據(jù) 塊。 其中,當(dāng)開(kāi)始在該查找的Cache節(jié)點(diǎn)上讀取該數(shù)據(jù)塊時(shí),查找的Cache節(jié)點(diǎn)將自身 存放的該數(shù)據(jù)塊的命中率和引用計(jì)數(shù)遞增以及自身的負(fù)荷也遞增,當(dāng)從查找的Cache節(jié)點(diǎn) 上讀取完該數(shù)據(jù)塊時(shí),查找的Cache節(jié)點(diǎn)將自身存放的該數(shù)據(jù)塊的引用計(jì)數(shù)以及自身的負(fù) 荷都遞減。 步驟307 :FMS從Udp廣播網(wǎng)絡(luò)中查找出存儲(chǔ)該ID對(duì)應(yīng)的數(shù)據(jù)塊的物理設(shè)備,并通 知該物理設(shè)備對(duì)應(yīng)的本地Cache節(jié)點(diǎn)從物理設(shè)備中讀取該數(shù)據(jù)塊,同時(shí)分發(fā)給本地Cache 節(jié)點(diǎn); 其中,物理設(shè)備是Udp網(wǎng)絡(luò)中存儲(chǔ)數(shù)據(jù)的服務(wù)器,物理設(shè)備的硬磁盤(pán)中存儲(chǔ)有大 量的數(shù)據(jù)塊與其對(duì)應(yīng)的ID的對(duì)應(yīng)關(guān)系,且每個(gè)物理設(shè)備都有一個(gè)本地Cache節(jié)點(diǎn),該Cache 節(jié)點(diǎn)用于緩存物理設(shè)備中的部分熱點(diǎn)數(shù)據(jù)。 具體地,F(xiàn)MS以該ID為索引,從每個(gè)物理設(shè)備中存儲(chǔ)的ID與數(shù)據(jù)塊的對(duì)應(yīng)關(guān)系中 搜索該ID對(duì)應(yīng)的數(shù)據(jù)塊,當(dāng)搜索出網(wǎng)絡(luò)中的某個(gè)物理設(shè)備中存儲(chǔ)有該ID對(duì)應(yīng)的數(shù)據(jù)塊時(shí), 就發(fā)送通知給該物理設(shè)備對(duì)應(yīng)的本地Cache節(jié)點(diǎn),該通知用于告知該物理設(shè)備對(duì)應(yīng)的本地 Cache節(jié)點(diǎn)從物理設(shè)備中讀取該ID對(duì)應(yīng)的數(shù)塊,并將讀取的數(shù)據(jù)塊分發(fā)到本地Cache節(jié)點(diǎn)。
步驟308 :該物理設(shè)備的Cache節(jié)點(diǎn)接收通知后,從該物理設(shè)備中讀取該ID對(duì)應(yīng) 的數(shù)據(jù)塊,并發(fā)送給本地Cache節(jié)點(diǎn); 具體地,該物理設(shè)備的Cache節(jié)點(diǎn)接收通知后,判斷自身是否還有存儲(chǔ)空間緩存 數(shù)據(jù)塊,如果沒(méi)有,回收命中率低且荒廢時(shí)間長(zhǎng)的數(shù)據(jù)塊所占用的存儲(chǔ)空間,再分配存儲(chǔ)空 間;如果有,直接分配存儲(chǔ)空間;根據(jù)通知的指示從物理設(shè)備中讀取該ID對(duì)應(yīng)數(shù)據(jù)塊,緩存 在分配的存儲(chǔ)空間中,并發(fā)送該數(shù)據(jù)塊給本地Cache節(jié)點(diǎn)。 其中,當(dāng)該物理設(shè)備對(duì)應(yīng)的本地Cache節(jié)點(diǎn)寫(xiě)入該讀取的數(shù)據(jù)塊時(shí),該物理設(shè)備 對(duì)應(yīng)的本地Cache節(jié)點(diǎn)為該數(shù)據(jù)塊設(shè)置命中率和引用計(jì)數(shù)為l,將自身的負(fù)荷遞增。
另外,該物理設(shè)備對(duì)應(yīng)的本地Cache節(jié)點(diǎn)在發(fā)送數(shù)據(jù)塊之前先判斷其與本地 Cache節(jié)點(diǎn)之間的高速數(shù)據(jù)通道是否存在,如果存在,則發(fā)送數(shù)據(jù)給本地Cache節(jié)點(diǎn),如果 不存在,則結(jié)束操作。
步驟309 :本地Cache節(jié)點(diǎn)接收該數(shù)據(jù)塊,并緩存該數(shù)據(jù)塊,再通知FMS ; 具體地,本地Cache節(jié)點(diǎn)接收到該數(shù)據(jù)塊后,判斷自身是否還有存儲(chǔ)空間緩存數(shù)
據(jù)塊,如果沒(méi)有,回收命中率低且荒廢時(shí)間長(zhǎng)的數(shù)據(jù)塊所占用的存儲(chǔ)空間,再分配存儲(chǔ)空
間;如果有,直接分配存儲(chǔ)空間;將該數(shù)據(jù)塊緩存在分配的存儲(chǔ)空間中,再通知FMS。 其中,當(dāng)本地Cache節(jié)點(diǎn)寫(xiě)入該數(shù)據(jù)塊時(shí),為該數(shù)據(jù)塊設(shè)置命中率和引用計(jì)數(shù)為
l,同時(shí)將自身的負(fù)荷遞增。 步驟310 :FMS接收通知后,從本地Cache節(jié)點(diǎn)中獲取該ID對(duì)應(yīng)的數(shù)據(jù)塊,并返回 給終端,操作結(jié)束。 具體地,F(xiàn)MS發(fā)送通知給終端,該通知用于告知終端從本地Cache節(jié)點(diǎn)中讀取所需 要的數(shù)據(jù)塊,終端接收通知后,根據(jù)通知從本地Cache節(jié)點(diǎn)中讀取該ID對(duì)應(yīng)的數(shù)據(jù)塊。
其中,當(dāng)終端再請(qǐng)求其他數(shù)據(jù)塊時(shí),則重復(fù)地按步驟201-210的過(guò)程進(jìn)行Cache調(diào) 度,獲取請(qǐng)求的數(shù)據(jù)塊,并將獲取的數(shù)據(jù)塊返回給終端。另外,在本實(shí)施例中終端可以為用 于播放視頻的視頻播出服務(wù)器,網(wǎng)絡(luò)中的Cache節(jié)點(diǎn)可以為CAN (Cache Access Node,緩存 訪問(wèn)節(jié)點(diǎn)),且CAN的大小為32GB或64GB等,物理設(shè)備可以為DAN (Disk Access Node,磁 盤(pán)訪問(wèn)節(jié)點(diǎn))服務(wù)器,且DAN服務(wù)器部署有CAN。 在本發(fā)明實(shí)施例中,根據(jù)來(lái)自終端的請(qǐng)求中攜帶的數(shù)據(jù)塊的ID,查找本地Cache 節(jié)點(diǎn),如果查找出數(shù)據(jù)塊,則直接返回該數(shù)據(jù)塊,如果沒(méi)有,則根據(jù)該ID從網(wǎng)絡(luò)中查找數(shù)據(jù) 塊,并返回該數(shù)據(jù)塊。由于以數(shù)據(jù)塊為單位進(jìn)行調(diào)度Cache節(jié)點(diǎn)中的數(shù)據(jù),從而提高了訪問(wèn) Cache節(jié)點(diǎn)中的數(shù)據(jù)的效率;由于網(wǎng)絡(luò)中的Cache節(jié)點(diǎn)都共享數(shù)據(jù),從而當(dāng)用戶訪問(wèn)的數(shù)據(jù) 在不在本地Cache節(jié)點(diǎn)中,可以從網(wǎng)絡(luò)Cache節(jié)點(diǎn)中獲得數(shù)據(jù),從而進(jìn)一步提高訪問(wèn)數(shù)據(jù)的 效率。 實(shí)施例4 如圖6所示,本發(fā)明實(shí)施例提供了一種Cache調(diào)度的設(shè)備,包括 接收模塊401,用于接收來(lái)自終端獲取數(shù)據(jù)塊的請(qǐng)求,該請(qǐng)求中攜帶數(shù)據(jù)塊的ID ; 第一查找模塊402,用于根據(jù)該ID查找本地Cache節(jié)點(diǎn); 第一返回模塊403,用于如果查找出該ID對(duì)應(yīng)的數(shù)據(jù)塊,則返回查找的數(shù)據(jù)塊給 終端; 第二查找模塊404,用于如果沒(méi)有查找出該數(shù)據(jù)塊,根據(jù)該ID從網(wǎng)絡(luò)中查找緩存 該數(shù)據(jù)塊的Cache節(jié)點(diǎn),如果查找出Cache節(jié)點(diǎn),從查找的Cache節(jié)點(diǎn)中獲取該數(shù)據(jù)塊給終 端;如果沒(méi)有查找出Cache節(jié)點(diǎn),查找出存儲(chǔ)該數(shù)據(jù)塊的物理設(shè)備;當(dāng)本地Cache節(jié)點(diǎn)緩存 來(lái)自該物理設(shè)備對(duì)應(yīng)的Cache節(jié)點(diǎn)的該數(shù)據(jù)塊后,從本地Cache節(jié)點(diǎn)中獲取該數(shù)據(jù)塊并返 回給終端。 其中,第二查找模塊404,具體用于如果沒(méi)有查找出該數(shù)據(jù)塊,根據(jù)該ID查找網(wǎng)絡(luò) 中緩存該數(shù)據(jù)塊的Cache節(jié)點(diǎn),如果查找出多個(gè)Cache節(jié)點(diǎn),則選擇負(fù)荷最小的Cache節(jié) 點(diǎn),從選擇的Cache節(jié)點(diǎn)中讀取該數(shù)據(jù)塊并返回給終端;如果查找出一個(gè)Cache節(jié)點(diǎn),從查 找的Cache節(jié)點(diǎn)中讀取該數(shù)據(jù)塊并返回給終端;如果沒(méi)有查找出Cache節(jié)點(diǎn),查找出存儲(chǔ)該 數(shù)據(jù)塊的物理設(shè)備;當(dāng)本地Cache節(jié)點(diǎn)緩存來(lái)自該物理設(shè)備對(duì)應(yīng)的Cache節(jié)點(diǎn)的該數(shù)據(jù)塊 后,從本地Cache節(jié)點(diǎn)中獲取該數(shù)據(jù)塊并返回給終端。 在本發(fā)明實(shí)施例中,根據(jù)來(lái)自終端的請(qǐng)求中攜帶的數(shù)據(jù)塊的ID,查找本地Cache
12節(jié)點(diǎn),如果查找出數(shù)據(jù)塊,則直接返回該數(shù)據(jù)塊,如果沒(méi)有,則根據(jù)該ID從網(wǎng)絡(luò)中查找數(shù)據(jù) 塊,并返回該數(shù)據(jù)塊。由于以數(shù)據(jù)塊為單位進(jìn)行調(diào)度Cache節(jié)點(diǎn)中的數(shù)據(jù),從而提高了訪問(wèn) Cache節(jié)點(diǎn)中的數(shù)據(jù)的效率;由于網(wǎng)絡(luò)中的Cache節(jié)點(diǎn)都共享數(shù)據(jù),從而當(dāng)用戶訪問(wèn)的數(shù)據(jù) 在不在本地Cache節(jié)點(diǎn)中,可以從網(wǎng)絡(luò)Cache節(jié)點(diǎn)中獲得數(shù)據(jù),從而進(jìn)一步提高訪問(wèn)數(shù)據(jù)的 效率。 實(shí)施例5 如圖7所示,本發(fā)明實(shí)施例提供了一種Cache調(diào)度的系統(tǒng),包括
Cache調(diào)度的設(shè)備501,用于接收來(lái)自終端獲取數(shù)據(jù)塊的請(qǐng)求,該請(qǐng)求中攜帶數(shù)據(jù) 塊的ID ;根據(jù)該ID查找本地Cache節(jié)點(diǎn);如果查找出該ID對(duì)應(yīng)的數(shù)據(jù)塊,則返回該數(shù)據(jù)塊 給終端;如果沒(méi)有查找出該數(shù)據(jù)塊,根據(jù)該ID從網(wǎng)絡(luò)中查找緩存該數(shù)據(jù)塊的Cache節(jié)點(diǎn),如 果查找出Cache節(jié)點(diǎn),從查找的Cache節(jié)點(diǎn)中獲取該數(shù)據(jù)塊給終端;如果沒(méi)有查找出Cache 節(jié)點(diǎn),查找出存儲(chǔ)該數(shù)據(jù)塊的物理設(shè)備;當(dāng)本地Cache節(jié)點(diǎn)緩存來(lái)自物理設(shè)備對(duì)應(yīng)的Cache 節(jié)點(diǎn)的該數(shù)據(jù)塊后,從本地Cache節(jié)點(diǎn)中獲取該數(shù)據(jù)塊并返回給終端;
被訪問(wèn)的Cache節(jié)點(diǎn)502,用于當(dāng)Cache調(diào)度的設(shè)備501查找出本地Cache節(jié)點(diǎn)中 緩存有該數(shù)據(jù)塊時(shí),返回該數(shù)據(jù)塊給終端;當(dāng)Cache調(diào)度的設(shè)備501查找出網(wǎng)絡(luò)中緩存該數(shù) 據(jù)塊的Cache節(jié)點(diǎn)時(shí),返回該數(shù)據(jù)塊給終端;當(dāng)本地Cache節(jié)點(diǎn)接收到來(lái)自物理設(shè)備對(duì)應(yīng)的 Cache節(jié)點(diǎn)的該數(shù)據(jù)塊時(shí),緩存該數(shù)據(jù)塊,并返回該數(shù)據(jù)塊給終端。
其中,被訪問(wèn)的Cache節(jié)點(diǎn)502具體包括 第二返回模塊,用于當(dāng)Cache調(diào)度的設(shè)備501查找出本地Cache節(jié)點(diǎn)中緩存有該 數(shù)據(jù)塊時(shí),返回該數(shù)據(jù)塊給終端;當(dāng)Cache調(diào)度的設(shè)備501查找出網(wǎng)絡(luò)中緩存該數(shù)據(jù)塊的 Cache節(jié)點(diǎn)時(shí),返回該數(shù)據(jù)塊給終端; 判斷模塊,用于當(dāng)本地Cache節(jié)點(diǎn)接收物理設(shè)備對(duì)應(yīng)的Cache節(jié)點(diǎn)發(fā)送的該數(shù)據(jù) 塊,判斷自身是否還有空間緩存該數(shù)據(jù)塊; 第三返回模塊,用于如果判斷模塊判斷出沒(méi)有,回收訪問(wèn)次數(shù)低且沒(méi)有被操作的 數(shù)據(jù)塊所占用的空間,再分配空間,將該數(shù)據(jù)塊緩存在分配的空間中,并返回該數(shù)據(jù)塊給終
丄山
順; 第四返回模塊,用于如果判斷模塊判斷出有,分配空間,將該數(shù)據(jù)塊緩存在分配的
空間中,并返回該數(shù)據(jù)塊給終端; 被訪問(wèn)的Cache節(jié)點(diǎn)502還包括 記錄模塊,用于記錄該數(shù)據(jù)塊被訪問(wèn)的次數(shù); 被訪問(wèn)的Cache節(jié)點(diǎn)還包括 設(shè)置模塊,用于當(dāng)網(wǎng)絡(luò)中的任一 Cache節(jié)點(diǎn)中的數(shù)據(jù)塊剛沒(méi)有被操作時(shí),為該數(shù)
據(jù)塊設(shè)置荒廢時(shí)間,其中,荒廢時(shí)間用于記錄數(shù)據(jù)塊沒(méi)有被操作的時(shí)間;
相應(yīng)地, 第三返回模塊,具體用于如果判斷模塊判斷出沒(méi)有,優(yōu)先回收訪問(wèn)次數(shù)低且荒廢 時(shí)間長(zhǎng)的數(shù)據(jù)塊所占用的空間,再分配空間,將該數(shù)據(jù)塊緩存在分配的空間中,并返回該數(shù) 據(jù)塊給終端。 其中,本實(shí)施提供的Cache調(diào)度的設(shè)備可以為FMS。 在本發(fā)明實(shí)施例中,根據(jù)來(lái)自終端的請(qǐng)求中攜帶的數(shù)據(jù)塊的ID,查找本地Cache節(jié)點(diǎn),如果查找出數(shù)據(jù)塊,則直接返回該數(shù)據(jù)塊,如果沒(méi)有,則根據(jù)該ID從網(wǎng)絡(luò)中查找數(shù)據(jù) 塊,并返回該數(shù)據(jù)塊。由于以數(shù)據(jù)塊為單位進(jìn)行調(diào)度Cache節(jié)點(diǎn)中的數(shù)據(jù),從而提高了訪問(wèn) Cache節(jié)點(diǎn)中的數(shù)據(jù)的效率;由于網(wǎng)絡(luò)中的Cache節(jié)點(diǎn)都共享數(shù)據(jù),從而當(dāng)用戶訪問(wèn)的數(shù)據(jù) 在不在本地Cache節(jié)點(diǎn)中,可以從網(wǎng)絡(luò)Cache節(jié)點(diǎn)中獲得數(shù)據(jù),從而進(jìn)一步提高訪問(wèn)數(shù)據(jù)的 效率。 以上實(shí)施例提供的技術(shù)方案中的全部或部分內(nèi)容可以通過(guò)軟件編程實(shí)現(xiàn),其軟件
程序存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)例如計(jì)算機(jī)中的硬盤(pán)、光盤(pán)或軟盤(pán)。 以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和
原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種Cache調(diào)度的方法,其特征在于,所述方法包括文件管理系統(tǒng)FMS接收來(lái)自終端獲取數(shù)據(jù)塊的請(qǐng)求,所述請(qǐng)求中攜帶數(shù)據(jù)塊的標(biāo)識(shí)碼ID;所述FMS根據(jù)所述ID查找本地Cache節(jié)點(diǎn);如果查找出所述ID對(duì)應(yīng)的數(shù)據(jù)塊,所述FMS返回所述數(shù)據(jù)塊給終端;如果沒(méi)有查找出所述數(shù)據(jù)塊,所述FMS根據(jù)所述ID從網(wǎng)絡(luò)中查找緩存所述數(shù)據(jù)塊的Cache節(jié)點(diǎn),如果查找出Cache節(jié)點(diǎn),從所述Cache節(jié)點(diǎn)中獲取所述數(shù)據(jù)塊給終端;如果沒(méi)有查找出Cache節(jié)點(diǎn),查找出存儲(chǔ)所述數(shù)據(jù)塊的物理設(shè)備;所述本地Cache節(jié)點(diǎn)接收所述物理設(shè)備對(duì)應(yīng)的Cache節(jié)點(diǎn)發(fā)送的所述數(shù)據(jù)塊,緩存所述數(shù)據(jù)塊;所述FMS從所述本地Cache節(jié)點(diǎn)中獲取所述數(shù)據(jù)塊并返回給終端。
2. 如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述ID從網(wǎng)絡(luò)中查找緩存所述數(shù) 據(jù)塊的Cache節(jié)點(diǎn),如果查找出Cache節(jié)點(diǎn),從所述Cache節(jié)點(diǎn)中獲取所述數(shù)據(jù)塊給終端, 具體包括根據(jù)所述ID查找網(wǎng)絡(luò)中緩存所述數(shù)據(jù)塊的Cache節(jié)點(diǎn),如果查找出多個(gè)Cache節(jié)點(diǎn), 則選擇負(fù)荷最小的Cache節(jié)點(diǎn),從所述選擇的Cache節(jié)點(diǎn)中讀取所述數(shù)據(jù)塊并返回給終丄山順;如果查找出一個(gè)Cache節(jié)點(diǎn),從所述Cache節(jié)點(diǎn)中讀取所述數(shù)據(jù)塊并返回給終端。
3. 如權(quán)利要求1所述的方法,其特征在于,所述所述本地Cache節(jié)點(diǎn)接收所述物理設(shè)備 對(duì)應(yīng)的Cache節(jié)點(diǎn)發(fā)送的所述數(shù)據(jù)塊,緩存所述數(shù)據(jù)塊,具體包括所述本地Cache節(jié)點(diǎn)接收所述物理設(shè)備對(duì)應(yīng)的Cache節(jié)點(diǎn)發(fā)送的所述數(shù)據(jù)塊,判斷自 身是否還有空間緩存所述數(shù)據(jù)塊;如果沒(méi)有,回收訪問(wèn)次數(shù)低且沒(méi)有被操作的數(shù)據(jù)塊所占用的空間,再分配空間,將所述 數(shù)據(jù)塊緩存在所述分配的空間中;如果有,分配空間,將所述數(shù)據(jù)塊緩存在所述分配的空間中。
4. 如權(quán)利要求1-3任一權(quán)利要求所述的方法,其特征在于,所述方法還包括 被訪問(wèn)的Cache節(jié)點(diǎn),記錄所述數(shù)據(jù)塊被訪問(wèn)的次數(shù)。
5. 如權(quán)利要求3所述的方法、其特征在于,所述方法還包括當(dāng)網(wǎng)絡(luò)中的任一 Cache節(jié)點(diǎn)中的數(shù)據(jù)塊剛沒(méi)有被操作時(shí),所述Cache節(jié)點(diǎn)為所述數(shù)據(jù) 塊設(shè)置荒廢時(shí)間,所述荒廢時(shí)間用于記錄所述數(shù)據(jù)塊沒(méi)有被操作的時(shí)間;相應(yīng)地,所述回收訪問(wèn)次數(shù)低且沒(méi)有被操作的數(shù)據(jù)塊所占用的空間,具體包括 優(yōu)先回收訪問(wèn)次數(shù)低且荒廢時(shí)間長(zhǎng)的數(shù)據(jù)塊所占用的空間。
6. —種Cache調(diào)度的設(shè)備,其特征在于,所述設(shè)備包括接收模塊,用于接收來(lái)自終端獲取數(shù)據(jù)塊的請(qǐng)求,所述請(qǐng)求中攜帶數(shù)據(jù)塊的標(biāo)識(shí)碼ID ;第一查找模塊,用于根據(jù)所述ID查找本地Cache節(jié)點(diǎn);第一返回模塊,用于如果查找出所述ID對(duì)應(yīng)的數(shù)據(jù)塊,則返回所述數(shù)據(jù)塊給終端; 第二查找模塊,用于如果沒(méi)有查找出所述數(shù)據(jù)塊,根據(jù)所述ID從網(wǎng)絡(luò)中查找緩存所述 數(shù)據(jù)塊的Cache節(jié)點(diǎn),如果查找出Cache節(jié)點(diǎn),從所述Cache節(jié)點(diǎn)中獲取所述數(shù)據(jù)塊給終 端;如果沒(méi)有查找出Cache節(jié)點(diǎn),查找出存儲(chǔ)所述數(shù)據(jù)塊的物理設(shè)備;當(dāng)所述本地Cache節(jié)點(diǎn)緩存來(lái)自所述物理設(shè)備對(duì)應(yīng)的Cache節(jié)點(diǎn)的所述數(shù)據(jù)塊后,從所述本地Cache節(jié)點(diǎn)中獲 取所述數(shù)據(jù)塊并返回給終端。
7. 如權(quán)利要求6所述的設(shè)備,其特征在于,所述第二查找模塊,具體用于如果沒(méi)有查 找出所述數(shù)據(jù)塊,根據(jù)所述ID查找網(wǎng)絡(luò)中緩存所述數(shù)據(jù)塊的Cache節(jié)點(diǎn),如果查找出多個(gè) Cache節(jié)點(diǎn),則選擇負(fù)荷最小的Cache節(jié)點(diǎn),從所述選擇的Cache節(jié)點(diǎn)中讀取所述數(shù)據(jù)塊并 返回給終端;如果查找出一個(gè)Cache節(jié)點(diǎn),從所述Cache節(jié)點(diǎn)中讀取所述數(shù)據(jù)塊并返回給終 端;如果沒(méi)有查找出Cache節(jié)點(diǎn),查找出存儲(chǔ)所述數(shù)據(jù)塊的物理設(shè)備;當(dāng)所述本地Cache節(jié) 點(diǎn)緩存來(lái)自所述物理設(shè)備對(duì)應(yīng)的Cache節(jié)點(diǎn)的所述數(shù)據(jù)塊后,從所述本地Cache節(jié)點(diǎn)中獲 取所述數(shù)據(jù)塊并返回給終端。
8. —種Cache調(diào)度的系統(tǒng),其特征在于,所述系統(tǒng)包括Cache調(diào)度的設(shè)備,用于接收來(lái)自終端獲取數(shù)據(jù)塊的請(qǐng)求,所述請(qǐng)求中攜帶數(shù)據(jù)塊的標(biāo) 識(shí)碼ID ;根據(jù)所述ID查找本地Cache節(jié)點(diǎn);如果查找出所述ID對(duì)應(yīng)的數(shù)據(jù)塊,則返回所述 數(shù)據(jù)塊給終端;如果沒(méi)有查找出所述數(shù)據(jù)塊,根據(jù)所述ID從網(wǎng)絡(luò)中查找緩存所述數(shù)據(jù)塊的 Cache節(jié)點(diǎn),如果查找出Cache節(jié)點(diǎn),從所述Cache節(jié)點(diǎn)中獲取所述數(shù)據(jù)塊給終端;如果沒(méi) 有查找出Cache節(jié)點(diǎn),查找出存儲(chǔ)所述數(shù)據(jù)塊的物理設(shè)備;當(dāng)所述本地Cache節(jié)點(diǎn)緩存來(lái)自 所述物理設(shè)備對(duì)應(yīng)的Cache節(jié)點(diǎn)的所述數(shù)據(jù)塊后,從所述本地Cache節(jié)點(diǎn)中獲取所述數(shù)據(jù) 塊并返回給終端;被訪問(wèn)的Cache節(jié)點(diǎn),用于當(dāng)所述Cache調(diào)度的設(shè)備查找出所述本地Cache節(jié)點(diǎn)中緩 存有所述數(shù)據(jù)塊時(shí),返回所述數(shù)據(jù)塊給終端;當(dāng)所述Cache調(diào)度的設(shè)備查找出網(wǎng)絡(luò)中緩存 所述數(shù)據(jù)塊的Cache節(jié)點(diǎn)時(shí),返回所述數(shù)據(jù)塊給終端;當(dāng)所述本地Cache節(jié)點(diǎn)接收到來(lái)自所 述物理設(shè)備對(duì)應(yīng)的Cache節(jié)點(diǎn)的所述數(shù)據(jù)塊時(shí),緩存所述數(shù)據(jù)塊,并返回所述數(shù)據(jù)塊給終丄山順。
9. 如權(quán)利要求8所述的系統(tǒng),其特征在于,所述被訪問(wèn)的Cache節(jié)點(diǎn)具體包括 第二返回模塊,用于當(dāng)所述Cache調(diào)度的設(shè)備查找出所述本地Cache節(jié)點(diǎn)中緩存有所述數(shù)據(jù)塊時(shí),返回所述數(shù)據(jù)塊給終端;當(dāng)所述Cache調(diào)度的設(shè)備查找出網(wǎng)絡(luò)中緩存所述數(shù) 據(jù)塊的Cache節(jié)點(diǎn)時(shí),返回所述數(shù)據(jù)塊給終端;判斷模塊,用于當(dāng)所述本地Cache節(jié)點(diǎn)接收所述物理設(shè)備對(duì)應(yīng)的Cache節(jié)點(diǎn)發(fā)送的所 述數(shù)據(jù)塊,判斷自身是否還有空間緩存所述數(shù)據(jù)塊;第三返回模塊,用于如果所述判斷模塊判斷出沒(méi)有,回收訪問(wèn)次數(shù)低且沒(méi)有被操作的 數(shù)據(jù)塊所占用的空間,再分配空間,將所述數(shù)據(jù)塊緩存在所述分配的空間中,并返回所述數(shù) 據(jù)塊給終端;第四返回模塊,用于如果所述判斷模塊判斷出有,分配空間,將所述數(shù)據(jù)塊緩存在所述 分配的空間中,并返回所述數(shù)據(jù)塊給終端。
10. 如權(quán)利要求8或9所述的系統(tǒng),其特征在于,所述Cache節(jié)點(diǎn)還包括 記錄模塊,用于記錄所述數(shù)據(jù)塊被訪問(wèn)的次數(shù)。
11. 如權(quán)利要求9所述的系統(tǒng)、其特征在于,所述Cache節(jié)點(diǎn)還包括 設(shè)置模塊,用于當(dāng)網(wǎng)絡(luò)中的任一 Cache節(jié)點(diǎn)中的數(shù)據(jù)塊剛沒(méi)有被操作時(shí),為所述數(shù)據(jù)塊設(shè)置荒廢時(shí)間,所述荒廢時(shí)間用于記錄所述數(shù)據(jù)塊沒(méi)有被操作的時(shí)間; 相應(yīng)地,所述第三返回模塊,具體用于如果所述判斷模塊判斷出沒(méi)有,優(yōu)先回收訪問(wèn)次數(shù)低且 荒廢時(shí)間長(zhǎng)的數(shù)據(jù)塊所占用的空間,再分配空間,將所述數(shù)據(jù)塊緩存在所述分配的空間中, 并返回所述數(shù)據(jù)塊給終端。
全文摘要
本發(fā)明公開(kāi)了一種Cache調(diào)度的方法、設(shè)備及系統(tǒng),屬于有線電視領(lǐng)域。所述方法包括文件管理系統(tǒng)FMS接收來(lái)自終端獲取數(shù)據(jù)塊的請(qǐng)求,所述請(qǐng)求中攜帶數(shù)據(jù)塊的標(biāo)識(shí)碼ID;所述FMS根據(jù)所述ID查找本地Cache節(jié)點(diǎn);如果查找出所述ID對(duì)應(yīng)的數(shù)據(jù)塊,所述FMS返回所述數(shù)據(jù)塊給終端;如果沒(méi)有查找出所述數(shù)據(jù)塊,所述FMS根據(jù)所述ID從網(wǎng)絡(luò)中查找緩存所述數(shù)據(jù)塊的Cache節(jié)點(diǎn),如果查找出Cache節(jié)點(diǎn),從所述Cache節(jié)點(diǎn)中獲取所述數(shù)據(jù)塊給終端;如果沒(méi)有查找出Cache節(jié)點(diǎn),查找出存儲(chǔ)所述數(shù)據(jù)塊的物理設(shè)備;所述本地Cache節(jié)點(diǎn)接收所述物理設(shè)備對(duì)應(yīng)的Cache節(jié)點(diǎn)發(fā)送的所述數(shù)據(jù)塊,緩存所述數(shù)據(jù)塊;所述FMS從所述本地Cache節(jié)點(diǎn)中獲取所述數(shù)據(jù)塊并返回給終端。本發(fā)明能夠提高訪問(wèn)數(shù)據(jù)的效率。
文檔編號(hào)G06F17/30GK101707684SQ20091023545
公開(kāi)日2010年5月12日 申請(qǐng)日期2009年10月14日 優(yōu)先權(quán)日2009年10月14日
發(fā)明者何營(yíng), 張寶柱, 朱峰, 段國(guó)學(xué), 王福云, 翁植林 申請(qǐng)人:北京東方廣視科技股份有限公司