網(wǎng)絡緩存服務器處理文件的方法及處理緩存文件的設備的制作方法
【專利摘要】本發(fā)明提供一種網(wǎng)絡緩存服務器處理文件的方法及處理緩存文件的設備,該方法包括:接收到上層應用讀取文件請求后,根據(jù)網(wǎng)絡緩存服務器內(nèi)存中的索引表中查找所述文件的存儲位置,所述索引表中存儲全部文件在網(wǎng)絡緩存服務器低速外部存儲設備、網(wǎng)絡緩存服務器內(nèi)存和網(wǎng)絡緩存服務器高速外部存儲設備中的位置;在所述存儲位置獲取所述文件,發(fā)送到所述上層應用。通過本發(fā)明,利用索引表查找文件的存儲位置,更加快了讀取文件速度,節(jié)省了資源。
【專利說明】網(wǎng)絡緩存服務器處理文件的方法及處理緩存文件的設備
【技術(shù)領域】
[0001] 本發(fā)明涉及通信領域技術(shù),尤其涉及網(wǎng)絡緩存服務器處理文件的方法及處理緩存 文件的設備。
【背景技術(shù)】
[0002] 現(xiàn)有技術(shù),網(wǎng)絡緩存服務器等存儲設備處理海量文件時,需要使用大量的低速外 部存儲設備如硬盤陣列存儲數(shù)據(jù)。獲取數(shù)據(jù)時,服務器首先在自身的內(nèi)存中查找數(shù)據(jù),若不 存在該數(shù)據(jù),則依次查找每個低速外部存儲設備,查找到該數(shù)據(jù)后,發(fā)送服務器中的內(nèi)存, 未查找到時,向服務器返回查找失敗。由于低速外部存儲設備存儲了全部文件,且處理數(shù)據(jù) 的速度低,獲取的文件效率較低,尤其當某個文件被多次獲取時,每次都需要重新在低速外 部存儲設備中查找獲取,浪費了大量資源。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明實施例提供了網(wǎng)絡緩存服務器中網(wǎng)絡緩存服務器處理文件的方法、設備及 網(wǎng)絡緩存服務器,通過使用網(wǎng)絡緩存服務器高速外部存儲設備存儲網(wǎng)絡緩存服務器內(nèi)存中 讀取次數(shù)較多的文件,縮短了讀取文件的時間,并利用索引表查找文件的存儲位置,進一步 加快了讀取文件速度,節(jié)省了資源。
[0004] 本發(fā)明實施例提供了一種網(wǎng)絡緩存服務器處理文件的方法,應用于網(wǎng)絡緩存服務 器中,該方法包括:
[0005] 接收到上層應用讀取文件請求后,根據(jù)網(wǎng)絡緩存服務器內(nèi)存中的索引表中查找所 述文件的存儲位置,所述索引表中存儲全部文件在網(wǎng)絡緩存服務器低速外部存儲設備、網(wǎng) 絡緩存服務器內(nèi)存和網(wǎng)絡緩存服務器高速外部存儲設備中的位置;
[0006] 在所述存儲位置獲取所述文件,發(fā)送到所述上層應用。
[0007] 相應的,本發(fā)明實施例提供了一種處理緩存文件的設備,包括:
[0008] 查找單元,用于接收到上層應用讀取文件請求后,根據(jù)網(wǎng)絡緩存服務器內(nèi)存中的 索引表中查找所述文件的存儲位置,所述索引表中存儲全部文件在網(wǎng)絡緩存服務器低速外 部存儲設備、網(wǎng)絡緩存服務器內(nèi)存和/或網(wǎng)絡緩存服務器高速外部存儲設備中的位置;
[0009] 獲取單元,用于在所述存儲位置獲取所述文件,發(fā)送到所述上層應用。
[0010] 本發(fā)明實施例提供了網(wǎng)絡緩存服務器中網(wǎng)絡緩存服務器處理文件的方法及處理 緩存文件的設備,用于接收到上層應用讀取文件請求后,根據(jù)網(wǎng)絡緩存服務器內(nèi)存中的索 引表中查找所述文件的存儲位置,所述索引表中存儲全部文件在網(wǎng)絡緩存服務器低速外部 存儲設備、網(wǎng)絡緩存服務器內(nèi)存和網(wǎng)絡緩存服務器高速外部存儲設備中的位置;在所述存 儲位置獲取所述文件,發(fā)送到所述上層應用。使用本發(fā)明實施例提供的網(wǎng)絡緩存服務器處 理文件的方法、設備及網(wǎng)絡緩存服務器,使用網(wǎng)絡緩存服務器高速外部存儲設備存儲網(wǎng)絡 緩存服務器內(nèi)存中讀取次數(shù)較多的文件,縮短了讀取文件的時間,并利用索引表查找文件 的存儲位置,更加快了讀取文件速度,節(jié)省了資源。
【專利附圖】
【附圖說明】 toon] 圖1為本發(fā)明實施例中網(wǎng)絡緩存服務器處理文件的方法流程示意圖;
[0012] 圖2為本發(fā)明另一實施例中網(wǎng)絡緩存服務器處理文件的方法流程示意圖;
[0013] 圖3為本發(fā)明實施例中將文件寫入網(wǎng)絡緩存服務器內(nèi)存時的流程示意圖;
[0014] 圖4為本發(fā)明實施例中將文件寫入網(wǎng)絡緩存服務器高速外部存儲設備時的流程 示意圖;
[0015] 圖5A-圖5B為本發(fā)明另一實施例中處理文件的設備示意圖;
[0016] 圖6為本發(fā)明另一實施例中處理文件的系統(tǒng)不意圖。
【具體實施方式】
[0017] 下面結(jié)合各個附圖對本發(fā)明實施例技術(shù)方案的主要實現(xiàn)原理、【具體實施方式】及其 對應能夠達到的有益效果進行詳細地闡述。
[0018] 為了解決現(xiàn)有技術(shù)存在的問題,本發(fā)明實施例提供了一種網(wǎng)絡緩存服務器處理文 件的方法,應用于網(wǎng)絡緩存服務器中,如圖1所示,包括以下步驟:
[0019] 步驟101、接收到上層應用讀取文件請求后,根據(jù)網(wǎng)絡緩存服務器內(nèi)存中的索引表 中查找文件的存儲位置,該索引表中存儲全部文件在網(wǎng)絡緩存服務器內(nèi)存和/或網(wǎng)絡緩存 服務器高速外部存儲設備以及網(wǎng)絡緩存服務器低速外部存儲設備中的位置;
[0020] 步驟102、在存儲位置獲取文件,發(fā)送到上層應用。
[0021] 具體的,本發(fā)明實施例中在接收上層應用文件請求之前,還包括根據(jù)文件訪問熱 度將不同熱度的文件存儲在絡緩存服務器低速外部存儲設備、網(wǎng)絡緩存服務器內(nèi)存或網(wǎng)絡 緩存服務器高速外部存儲設備中。
[0022] 網(wǎng)絡緩存服務器內(nèi)存中存儲寫入的當前文件,以及全部文件中上一次讀取時間與 當前時間的時間差值小于時間閾值的第一類文件。該網(wǎng)絡緩存服務器內(nèi)存相當于中轉(zhuǎn)站, 新寫入的文件必須先寫入到網(wǎng)絡緩存服務器內(nèi)存中,再寫入外部存儲設備,如網(wǎng)絡緩存服 務器高速外部存儲設備、網(wǎng)絡緩存服務器低速外部存儲設備,同時,網(wǎng)絡緩存服務器內(nèi)存也 具有一定的容量,用于存儲較少的文件,如新寫入的文件、最近訪問過的文件。
[0023] 具體的,本發(fā)明實施例中判斷最近訪問過的文件時,將該文件的上一次讀取時間 與當前時間進行比較,獲得兩者的時間差,若該時間差小于時間閾值,則可判定該文件為最 近訪問過的文件,歸為第一類文件,并將其存儲在網(wǎng)絡緩存服務器內(nèi)存中。
[0024] 本發(fā)明實施例中優(yōu)選在網(wǎng)絡緩存服務器內(nèi)存中存儲熱度最高的文件,在網(wǎng)絡緩存 服務器中存儲熱度最高的文件可采用如下方式:
[0025] 按照公式:熱度=(文件訪問次數(shù)*文件大?。?間隔時間,計算當前文件的熱度;
[0026] 根據(jù)當前文件的熱度,判斷當前文件是否為熱度最高的文件;
[0027] 如果當前文件為熱度最高的文件,將網(wǎng)絡緩存服務器內(nèi)存中緩存的熱度最低的文 件進行換出操作,并將當前文件寫入網(wǎng)絡緩存服務器內(nèi)存中。
[0028] 進一步的,本發(fā)明實施例中判斷當前文件是否為熱度最高的文件,具體包括:
[0029] 采用固定大小的最小二叉堆算法,對全部文件的熱度進行堆棧排序,并確定當前 文件的熱度是否大于堆頂元素的熱度;
[0030] 在當前文件的熱度大于堆頂元素的熱度時,確定當前文件為熱度最高文件。
[0031] 進一步的,本發(fā)明實施例中按照最小二叉堆算法進行文件存儲時,可優(yōu)選如下方 式:
[0032] 首先,最小二叉堆的內(nèi)存存儲空間是設定的,一般是整個內(nèi)存空間的60 %左右;
[0033] 其次,當設定的最小二叉堆的內(nèi)存存儲空間足夠時,文件可直接存儲至內(nèi)存中,當 設定的最小二叉堆的內(nèi)存存儲空間不足時,對設定的最小二叉堆的內(nèi)存存儲空間中存儲的 文件進行最小二叉堆排序,以實際訪問為基礎確定二叉堆大小,實現(xiàn)將位于堆頂以內(nèi)的元 素對應的文件存儲在內(nèi)存中。
[0034] 本發(fā)明實施例中進行熱度最高文件篩選時采用固定大小的最小二叉堆,利用最小 二叉堆的特性可以有效的避免比較的次數(shù),同時我們并不關(guān)心最熱文件的實際訪問次數(shù), 只需要保證熱度最高的這部分文件的內(nèi)容保存在內(nèi)存,即可使得系統(tǒng)內(nèi)存的利用率最高。 [0035] 網(wǎng)絡緩存服務器高速外部存儲設備存儲全部文件中讀取次數(shù)大于次數(shù)閾值的第 二類文件。由于網(wǎng)絡緩存服務器內(nèi)存存儲的文件數(shù)量有限,因此需要將文件存儲在不易丟 失文件的外部存儲設備中。該網(wǎng)絡緩存服務器高速外部存儲設備中存儲網(wǎng)絡緩存服務器內(nèi) 存中讀取次數(shù)較多的文件,也就是文件讀取次數(shù)大于次數(shù)閾值時,判定該文件為讀取次數(shù) 較多的文件,被認為是熱點訪問的文件,將其歸為第二類文件;
[0036] 優(yōu)選的,本發(fā)明實施例中第二類文件可以是熱度最低的文件,本發(fā)明實施例中采 用固定大小的最大二叉堆算法,篩選出熱度最低的文件;將熱度最低的文件,存儲在網(wǎng)絡緩 存服務器高速外部存儲設備中。
[0037] 具體的,所述將所述熱度最低的文件,存儲在網(wǎng)絡緩存服務器高速外部存儲設備 中,具體包括:
[0038] 當網(wǎng)絡緩存服務器高速外部存儲設備的剩余存儲空間大于當前熱度最低的文件 大小時,直接將所述熱度最低文件存儲在網(wǎng)絡緩存服務器高速外部存儲設備中;
[0039] 當網(wǎng)絡緩存服務器高速外部存儲設備的剩余存儲空間小于當前熱度最低的文件 大小時,將當前熱度最低文件與近期最少使用LRU隊列中倒數(shù)的m個文件的熱度進行比較, 若當前熱度最低文件的熱度高于所述m個文件的熱度,則將隊列中倒數(shù)m個文件進行換出 操作,并將當前熱度最低文件存儲在網(wǎng)絡緩存服務器高速外部存儲設備中。
[0040] 本發(fā)明實施例中確定固定大小的最大二叉堆時,可優(yōu)選如下方式:
[0041] 首先,確定存儲在網(wǎng)絡緩存服務器高速外部存儲設備中字節(jié)數(shù)最大的文件,最大 二叉堆的文件的總字節(jié)數(shù)約為最大文件的2倍;
[0042] 其次,假定當前平均文件的字節(jié)數(shù)約為16KB,則最大二叉堆的大小=最大二叉堆 的文件的總字節(jié)數(shù)/16KB。
[0043] 本發(fā)明實施例中采用固定大小的最大二叉堆算法來篩選出熱度最低的文件,同時 用LRU(Least Recently Used,近期最少使用)隊列將最大二叉堆的元素進行組織,這樣低 熱度文件基本上是有序組織的。
[0044] 網(wǎng)絡緩存服務器低速外部存儲設備存儲全部文件,以確保全部文件的完整性和安 全性。
[0045] 進一步的,本發(fā)明實施例中對于網(wǎng)絡緩存服務器低速外部存儲設備、網(wǎng)絡緩存服 務器內(nèi)存和網(wǎng)絡緩存服務器高速外部存儲設備進行文件存儲時均采用文件系統(tǒng)形式,并采 用具體的緩存指令進行存儲空間的設定,具體形式如下:
【權(quán)利要求】
1. 一種網(wǎng)絡緩存服務器處理文件的方法,其特征在于,包括: 接收到上層應用讀取文件請求后,根據(jù)網(wǎng)絡緩存服務器內(nèi)存中的索引表查找所述文件 的存儲位置,所述索引表中存儲全部文件在網(wǎng)絡緩存服務器低速外部存儲設備、網(wǎng)絡緩存 服務器內(nèi)存和網(wǎng)絡緩存服務器高速外部存儲設備中的位置; 在所述存儲位置獲取所述文件,發(fā)送到所述上層應用。
2. 如權(quán)利要求1所述的方法,其特征在于,在接收上層應用讀取文件請求之前,該方法 還包括: 按照公式:熱度=(文件訪問次數(shù)*文件大小)/間隔時間,計算當前文件的熱度; 根據(jù)當前文件的熱度,判斷當前文件是否為熱度最高的文件; 如果當前文件為熱度最高的文件,將網(wǎng)絡緩存服務器內(nèi)存中緩存的熱度最低的文件進 行換出操作,并將當前文件寫入網(wǎng)絡緩存服務器內(nèi)存中。
3. 如權(quán)利要求2所述的方法,其特征在于,所述根據(jù)當前文件的熱度,判斷當前文件是 否為熱度最商的文件,具體包括: 采用固定大小的最小二叉堆算法,對全部文件的熱度進行堆棧排序,并確定當前文件 的熱度是否大于堆頂元素的熱度; 在所述當前文件的熱度大于堆頂元素的熱度時,確定當前文件為熱度最高文件。
4. 如權(quán)利要求1所述的方法,該方法還包括: 采用固定大小的最大二叉堆算法,篩選出全部文件中熱度最低的文件; 將所述熱度最低的文件,存儲在網(wǎng)絡緩存服務器高速外部存儲設備中。
5. 如權(quán)利要求4所述的方法,所述將所述熱度最低的文件,存儲在網(wǎng)絡緩存服務器高 速外部存儲設備中,具體包括: 當網(wǎng)絡緩存服務器高速外部存儲設備的剩余存儲空間大于所述熱度最低的文件大小 時,直接將所述熱度最低文件存儲在網(wǎng)絡緩存服務器高速外部存儲設備中; 當網(wǎng)絡緩存服務器高速外部存儲設備的剩余存儲空間小于當前熱度最低的文件大小 時,將所述熱度最低文件與按照近期最少使用LRU算法得到的隊列中倒數(shù)第m個文件的熱 度進行比較,若當前熱度最低文件的熱度高于所述第m個文件的熱度,則將隊列中倒數(shù)m個 文件進行換出操作,并將所述熱度最低文件存儲在網(wǎng)絡緩存服務器高速外部存儲設備中。
6. -種處理緩存文件的設備,其特征在于,包括: 查找單元,用于接收到上層應用讀取文件請求后,根據(jù)網(wǎng)絡緩存服務器內(nèi)存中的索引 表中查找所述文件的存儲位置,所述索引表中存儲全部文件在網(wǎng)絡緩存服務器低速外部存 儲設備、網(wǎng)絡緩存服務器內(nèi)存和網(wǎng)絡緩存服務器高速外部存儲設備中的位置; 獲取單元,用于在所述存儲位置獲取所述文件,發(fā)送到所述上層應用。
7. 如權(quán)利要求6所述的設備,其特征在于,還包括:分級存儲配置單元,所述分級存儲 配置單元用于: 按照公式:熱度=(文件訪問次數(shù)*文件大?。?間隔時間,計算當前文件的熱度; 根據(jù)當前文件的熱度,判斷當前文件是否為熱度最高的文件; 如果當前文件為熱度最高的文件,將網(wǎng)絡緩存服務器內(nèi)存中緩存的熱度最低的文件進 行換出操作,并將當前文件寫入網(wǎng)絡緩存服務器內(nèi)存中。
8. 如權(quán)利要求7所述的設備,其特征在于,所述分級存儲配置單元,具體用于: 采用固定大小的最小二叉堆算法,對全部文件的熱度進行堆棧排序,并確定當前文件 的熱度是否大于堆頂元素的熱度; 在所述當前文件的熱度大于堆頂元素的熱度時,確定當前文件為熱度最高文件。
9. 如權(quán)利要求8所述的設備,其特征在于,所述分級存儲配置單元,還用于: 采用固定大小的最大二叉堆算法,篩選出全部文件中熱度最低的文件; 將所述熱度最低的文件,存儲在網(wǎng)絡緩存服務器高速外部存儲設備中。
10. 如權(quán)利要求9所述的設備,其特征在于,所述分級存儲配置單元,具體用于: 當網(wǎng)絡緩存服務器高速外部存儲設備的剩余存儲空間大于所述熱度最低的文件大小 時,直接將所述熱度最低文件存儲在網(wǎng)絡緩存服務器高速外部存儲設備中; 當網(wǎng)絡緩存服務器高速外部存儲設備的剩余存儲空間小于當前熱度最低的文件大小 時,將所述熱度最低文件與按照近期最少使用LRU算法得到的隊列中倒數(shù)第m個文件的熱 度進行比較,若當前熱度最低文件的熱度高于所述第m個文件的熱度,則將隊列中倒數(shù)m個 文件進行換出操作,并將所述熱度最低文件存儲在網(wǎng)絡緩存服務器高速外部存儲設備中。
【文檔編號】H04L29/06GK104092670SQ201410291015
【公開日】2014年10月8日 申請日期:2014年6月25日 優(yōu)先權(quán)日:2014年6月25日
【發(fā)明者】黃龍 申請人:北京藍汛通信技術(shù)有限責任公司