專利名稱:一種點對點下載系統及其資源緩存方法
技術領域:
本發明屬于數據處理領域,尤其涉及一種點對點下栽系統及其資源緩存方法。
背景技術:
點對點(Peer-to-Peer, P2P )技術簡單來說就是直接將用戶節點連接到其 它用戶節點,讓各用戶節點通過互聯網直接交互的一種互聯網技術。其最大的 優勢就是可以提高網絡用戶的網絡利用率。
點對點下載系統是利用P2P技術實現節點間資源共享的系統。加入該系統
的節點遵從系統規定的法則,進行數據的下載和分發,從而實現資源的有效管 理和共享。
圖1示出了現有的點對點下載系統的系統架構,現有的點對點系統一般包 含P2P服務器,資源服務器和P2P節點。P2P服務器負責管理加入系統的節點 拓樸和節點間連接。資源服務器負責管理和維護整個下載系統中的資源。P2P 節點是指加入到該系統中的各計算機節點。
現有的點對點下載流程如下P2P節點A加入下載系統,登陸P2P服務器, 獲得P2P服務器分配的節點ID并進入服務器維護的節點拓樸列表中。開始一 個下載時,節點A首先登陸資源服務器查詢資源,并獲得該資源在下載系統中 的哈希值等參數。接著節點A利用獲得的資源參數到P2P服務器中查詢節點信 息。服務器會返回當前具有該資源的節點列表。節點A根據該列表建立跟其他 節點的連接,請相互下載和上傳數據。從而實現資源的P2P下載。在資源的P2P 下載過程中, 一般需要在節點本地對該資源進行緩存,當不需要該資源時,現 有的點對點下載系統一般是完全刪除緩存在節點本地中的資源,這樣,將無法為其它節點提供該資源的上傳服務,所以,對于點對點下載系統中存在的非常
熱門的資源,用戶常常因為尋找不到有效的資源而無法通過P2P進行下載。
發明內容
本發明的目的在于提供一種點對點下載系統中的資源緩存方法,旨在解決 現有的點對點下載系統由于節點刪除其緩存的資源時,完全刪除該資源,從而 造成資源總量減少的問題。
本發明是這樣實現的, 一種點對點下載系統中的資源緩存方法,所述方法
包括下述步驟
節點在刪除其援存的資源時,向服務器發送資源刪除請求,所述資源刪除 請求中攜帶待刪除資源的信息;
服務器在接收到所述資源刪除請求后,查詢點對點下載系統中完整保存寺 刪除資源的節點的總數,并根據完整保存待刪除資源的節點的總數與預設閾值 之間的關系,向節點返回相應的指令,所述指令為刪除資源的指令,或者保留 資源的指定分塊的指令;
節點根據服務器返回的指令,完全刪除所述資源,或者保留所述資源的指 定分塊,并刪除資源的其余分塊。
本發明的另一目的在于提供一種點對點下載系統,所述系統包括節點和服 務器,
所述節點在刪除其緩存的資源時,向服務器發送資源刪除請求,所述資源 刪除請求中攜帶待刪除資源的信息,并在接收到服務器返回的指令,完全刪除 所述資源,或者保留所述資源的指定分塊,并刪除資源的其余分塊;
所述服務器在接收到所述資源刪除請求后,查詢點對點下載系統中完整保 存待刪除資源的節點的總數,并根據完整保存待刪除資源的節點的總數與預設 閾值之間的關系,向節點返回相應的指令,所述指令為刪除資源的指令,或者 保留資源的指定分塊的指令。
6在本發明實施例中,節點在刪除其緩存的資源時,先向服務器上報待刪除 資源的信息,服務器根據上報的待刪除資源的信息判斷完整保存該資源的節點 的總數是否達到預設閾值,是則通知節點完全刪除該資源,否則通知節點保留 該資源的指定分塊,刪除該資源的其余分塊,從而保證了點對點系統中資源的 總量和資源共享率,為各節點之間通過點對點實現資源共享提供了保證。
圖l是現有技術提供的點對點下載系統的系統架構圖2是本發明實施例提供的點對點下載系統中的資源緩存方法的實現流程
圖3是本發明實施例提供的點對點下栽系統的結構框圖。
具體實施例方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實 施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅 僅用以解釋本發明,并不用于限定本發明。
在本發明實施例中,節點在刪除其緩存的資源時,先向服務器發送資源刪 除請求,攜帶待刪除資源的信息,服務器查找點對點下載系統中完整保存待刪 除資源的節點的總數,并在完整保存待刪除資源的節點的總數達到預設的閾值
時,通知節點完全刪除該資源,否則通知節點^:留該資源的指定分塊,刪除該 資源A的其余分塊,從而保證了點對點系統中資源的總量和資源共享率,為各 節點之間通過點對點實現資源共享提供了保證。
點對點下載系統一般包括節點和服務器,其中服務器包括點對點服務器和 資源服務器,點對點服務器主要用于管理加入點對點下載系統的節點拓樸和節 點間的連接關系,資源服務器主要用于管理和維護整個點對點下載系統中的資 源。節點加入至點對點下載系統的過程如下
節點首先登錄點對點服務器,向點對點服務器上報節點信息。其中節點信 息包括但不限于CPU信息、網卡信息等。點對點服務器根據節點上報的節點信 息為該節點分配一用于唯一標識該節點的節點編號D,并將該節點添加至其維 護的節點拓樸列表中后,將該節點編號D返回至節點。其中節點編號D—^:為 4字節的整型數。節點加入至點對點下載系統后,從其他節點下載資源的過程 如下
節點首先登錄資源服務器查詢資源,并獲得該資源的參數。其中資源的參 數包括但不限于該資源在點對點下載系統中的哈希值等參數,節點根據資源的 參數從點對點服務器中查詢當前具有該資源的節點信息,節點根據點對點服務 器返回的當前具有該資源的節點列表建立與其它節點之間的連接,這樣兩個建 立連接的節點之間即可共享(如下載、上傳等)資源。節點在共享與其建立連 接的節點上的資源時,需要在本地緩存該資源。
圖2示出了本發明實施例提供的點對點下載系統中資源緩存方法的實現流 程,詳述如下
在步驟S201中,節點在刪除其緩存的資源時,向服務器發送資源刪除請求, 該資源刪除請求中攜帶待刪除資源的信息。其中待刪除資源的信息包括但不限 于資源哈希值、資源名稱和節點編號D。該節點編號D是節點在點對點下載系 統中的唯一標識。
在本發明實施例中,該資源刪除請求的格式可以如下所示,但不以下述格 式為限
命令字節點編號D資源名稱資源p合希值
在步驟S202中,服務器在接收到節點發送的資源刪除請求后,查詢點對點 下載系統中完整保存待刪除資源的節點的總數。
在本發明實施例中,服務器可以包括點對點服務器和資源服務器,點對點 服務器主要用于管理加入點對點下載系統的節點拓樸和節點間的連接關系,資
8源服務器主要用于管理和維護整個點對點下載系統中的資源。當服務器包括點 對點服務器和資源服務器時,查詢點對點下載系統中完整保存待刪除資源的節
點的總數的具體過程如下
A、 資源服務器在接收到節點發送的資源刪除請求后,根據該資源刪除請 求中攜帶的待刪除資源的信息,向點對點服務器發送節點資源查詢請求。
在本發明實施例中,資源服務器在接收到節點發送的資源刪除請求后,根 據該待刪除資源的哈希值向點對點服務器發送節點資源查詢請求,以向點對點 服務器查詢完整保存^f寺刪除資源的節點的總數。
B、 點對點服務器根據資源服務器發送的節點資源查詢請求,查詢其維護 的節點拓樸列表中,完整保存該待刪除資源的節點的總數,并將查詢結果返回 至資源服務器。
在步驟S203中,服務器判斷點對點下載系統中完整保存待刪除資源的節點 的總數是否達到預設的閾值,如果是,執行步驟S205,否則,執行步驟S204。 在點對點下載系統中,當請求某資源的節點教:較少時,將導致可以共享該
資源的節點數也較少,為了保證點對點下栽系統的資源總量和資源共享率,在 本發明實施例中,預先設置完整保存某資源的節點數的閾值",以保證點對點 下栽系統中完整保存某資源的節點數不少于"個,此時,判斷點對點下載系統 中完整保存待刪除資源的節點的總數是否達到預設的閾值w 。
在步驟S204中,服務器確定需要保留的資源的指定分塊,并向節點返回保 留資源的指定分塊的指令后,執行步驟S206。
在本發明實施例中,可以通過在該保留資源的指定分塊的指令中攜帶需要 保留的資源的分塊編號,以標識需要保留的資源的指定分塊。
其中保留資源的指定分塊的指令的數據格式可以如下,但不以下述格式為
限
命令字節點編號D資源名稱資源p合希值資源的分塊編號置需要保留的資源分塊大小K。
當完整保存待刪除資源的節點的總數未達到預設的閾值時,為了保證點對 點下載系統的資源總量和資源共享率,在本發明實施例中,為了從大局上保證 一個資源的完整性,可以按照下述方式確定保留資源的指定分塊的指令中攜帶
的需要保留的資源的分塊編號 查詢待刪除資源的總大小S;
根據待刪除資源的總大小S和預設的資源分塊大小K,得到待刪除資源的
分塊數N,即N-
工
塊;
從資源刪除請求中獲取節點編號D,該節點編號D是節點在加入至點對點
下載系統時,點對點下載系統為節點分配的用于唯一標識該節點的節點標識。
根據節點編號D和待刪除資源的分塊數N,確定節點需要保留的待刪除資 源的分塊編號,其具體過程如下
當Z^7V時,節點需要保留的資源的分塊編號為"=D%W;
當IXW時,節點需要保留的資源的分塊編號為
在步驟S205中,服務器向節點返回刪除資源的指令。
在本發明實施例中,刪除資源的指令可以與保留資源指定分塊的指令的數 據格式相同,此時,可以通過設置需要保留的資源的分塊編號n為空值或者預 設的默認值,如負1 (-1)等,來標識服務器向節點返回的指令為刪除資源的 指令,以區分服務器向節點返回的指令是刪除資源的指令還是保留資源的指定 分塊的指令。
在步驟S206中,節點根據服務器返回的指令刪除整個待刪除資源,或者保 存待刪除資源中的指定分塊,并刪除資源的其余分塊。
在本發明實施例中,節點在接收到服務器返回的指令后,提取該指令中攜 帶的分塊編號n,如果分塊編號n為空值或者預設的默認值(如-l)時,則直 接刪除整個待刪除資源,否則將待刪除資源切分成N個分塊,每個分塊的大小 為K,同時保留該待刪除資源的第n個分塊,刪除該資源的其余分塊。圖3示出了本發明實施例提供的點對點下載系統的結構,為了便于說明, 僅示出了與本發明實施例相關的部分。
該點對點下載系統包括節點1和服務器2。其中節點1在刪除其緩存的資 源時,向服務器2發送資源刪除請求,并根據服務器2返回的指令,完全刪除 該資源,或者保留該資源的指定分塊,并刪除資源的其余分塊。該節點1包括 刪除請求發送單元ll、指令識別單元12、資源處理單元13。其中
刪除請求發送單元11在節點刪除其緩存的資源時,向服務器2發送資源刪 除請求,該資源刪除請求中攜帶待刪除資源的信息。其中待刪除資源的信息包 括但不限于資源哈希值、資源名稱和節點編號D。
指令識別單元12識別服務器2返回的是保留資源的指定分塊的指令還是刪 除資源的指令。服務器向節點返回的指令中攜帶資源的哈希值和資源的分塊編 號,資源的分塊編號用于標識需要保留的資源的指定分塊。指令識別單元12 通過提取指令中攜帶的資源的分塊編號n,如果該分塊編號n為空值或者預設 的默認值(如-l等),則指令識別單元12將服務器返回的指令識別為刪除資 源的指令,否則指令識別單元12將服務器返回的指令識別為保留資源的指定分 塊的指令。
資源處理單元13根據指令識別單元12識別出的指令,刪除待刪除資源, 或者保存待刪除資源中的指定分塊,并刪除待刪除資源中的其余分塊。在本發 明實施例中,當指令識別單元12識別出的指令為刪除資源的指令,則直接刪除 待刪除資源,如果為保留資源的指定分塊的指令,則以K為單位,將待刪除資 源切分成N個分塊,并保留該待刪除資源的指定分塊,如第n個分塊,刪除該 待刪除資源的其余分塊。其中n為保留資源的指定分塊的指令中攜帶的需要保 留的資源的分塊編號n。
服務器2在接收到節點發送的資源刪除請求后,查詢點對點下載系統中完 整保存待刪除資源的節點的總數,并在點對點下載系統中完整保存待刪除資源 的節點的總數達到預設的閾值時,向節點1返回刪除資源的指令,在點對點下載系統中完整保存待刪除資源的節點的總數小于預設的閾值時,向節點l返回 保留資源的指定分塊的指令。其中服務器2包括存儲單元、節點總凄t查詢單元
221、節點資源判斷單元222、指令返回單元224。其中
存儲單元中存儲加入至點對點下載系統中的節點拓樸和節點間連接的關 系,以及點對點下載系統中的資源信息。
節點總數查詢單元221在接收到節點1發送的資源刪除請求后,查詢存儲 單元中存儲的節點拓樸列表中完整保存待刪除資源的節點的總數。
節點資源判斷單元222判斷節點總數查詢單元221查詢到的完整保存待刪 除資源的節點的總數是否達到預設的閾值。
指令返回單元224根據節點資源判斷單元222的判斷結果,向節點1返回 保留資源的指定分塊的指令或者刪除資源的指令。在本發明實施例中,指令返 回單元224返回的指令中攜帶資源的哈希值和資源的分塊編號。其中資源的分 塊編號用于標識需要保留的資源的指定分塊。
在本發明實施例中,當節點資源判斷單元222判定節點總數查詢單元221 查詢到的完整保存待刪除資源的節點的總數達到預設的閾值時,指令返回單元 224向節點1返回刪除資源的指令,否則,向節點1返回保留資源的指定分塊 的指令。
在本發明實施例中,當指令返回單元224返回的指令為刪除資源的指令時, 該指令中攜帶的資源的分塊編號為空值或者預設的默認值。當指令返回單元 224返回的指令為保留資源的指定分塊的指令時,該系統還包括分塊編號確定 單元223。該分塊編號確定單元223根據待刪除資源的總大小、預設的分塊大 小以及節點編號確定需要保留的資源的分塊編號。其包括資源大小查詢模塊、 分塊數計算模塊和編號計算模塊。其中資源大小查詢模塊查詢待刪除資源的總 大小S;分塊數計算模塊根據待刪除資源的總大小S和預設的資源分塊大小K,
得到待刪除資源的分塊數N,即N-
塊;編號計算模塊根據節點編號D和待
刪除資源的分塊數N,確定節點需要保留的待刪除資源的分塊編號,其具體過程如下:
當。2iV時,節點需要保留的資源的分塊編號為n = JD%iV;
當"<〃時,節點需要保留的資源的分塊編號為n = iV%£)。
在本發明另一實施例中,該服務器2包括資源服務器21和點對點服務器 22。其中資源服務器21主要用于管理和維護整個點對點下載系統中的資源。點 對點服務器主要用于管理加入點對點下載系統的節點拓樸和節點間連接關系。
此時,存儲單元分為設置于資源服務器21中第一存儲單元和設置于點對點 服務器22中的第二存儲單元,其中第一存儲單元中存儲點對點下載系統中的資 源信息,第二存儲單元存儲加入至點對點下載系統中的節點拓樸和節點間連接 的關系。
此時資源服務器21還包括查詢請求發送單元225,該查詢請求發送單元225 在接收到節點l發送的資源刪除請求后,根據該資源刪除請求中攜帶的待刪除 資源的信息,向點對點服務器22發送節點資源查詢請求。此時節點總數查詢單 元221設置于點對點服務器22中,節點資源判斷單元222、指令返回單元224 以及分塊編號確定單元223設置于資源服務器21中。
在本發明實施例中,在節點刪除其緩存的資源時,向服務器上報該資源的 信息,服務器根據上報的待刪除資源的信息判斷完整保存該資源的節點的總數 是否達到預設的閾值,如果是,通知節點完全刪除該資源,否則通知節點保留 該資源的指定分塊,刪除該資源的其余分塊,從而保證了點對點系統中資源的 總量和資源共享率,為各節點之間通過點對點實現資源共享提供了保證。通過 根據資源的總大小、預設的資源的分塊大小以及節點編號確定需要保留的資源 的分塊編號,從而有效的管理資源在點對點下載系統中的分布。
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發 明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明 的保護范圍之內。
1權利要求
1、一種點對點下載系統中的資源緩存方法,其特征在于,所述方法包括下述步驟節點在刪除其緩存的資源時,向服務器發送資源刪除請求,所述資源刪除請求中攜帶待刪除資源的信息;服務器在接收到所述資源刪除請求后,查詢點對點下載系統中完整保存待刪除資源的節點的總數,并根據完整保存待刪除資源的節點的總數與預設的閾值之間的關系,向節點返回相應的指令,所述指令為刪除資源的指令,或者保留資源的指定分塊的指令;節點根據服務器返回的指令,完全刪除所述資源,或者保留所述資源的指定分塊,并刪除資源的其余分塊。
2、 如權利要求1所述的方法,其特征在于,所述步驟根據完整保存待刪除 資源的節點的總數與預設閾值之間的關系,向節點返回相應的指令具體為當完整保存待刪除資源的節點的總數達到預設的閾值時,向節點返回刪除 資源的指令;當完整保存待刪除資源的節點的總數未達到預設的閾值時,向節點返回保 留資源的指定分塊的指令。
3、 如權利要求l所述的方法,其特征在于,所述向節點返回的相應的指令 攜帶資源的哈希值和資源的分塊編號,所述資源的分塊編號用于標識需要保留 的資源的指定分塊。
4、 如權利要求3所述的方法,其特征在于,當完整保存待刪除資源的節點 的總數達到預設閾值時,所述資源的分塊編號為空值或者預設的默認值。
5、 如權利要求3所述的方法,其特征在于,當完整保存待刪除資源的節點 的總數小于預設閾值時,確定所述資源的分塊編號的步驟具體為查詢待刪除資源的總大小;根據待刪除資源的總大小和預設的資源分塊大小之商,得到待刪除資源的分塊數;根據所述待刪除資源的分塊數和節點編號確定需要保留的待刪除資源的分 塊編號。
6、 如權利要求5所述的方法,其特征在于,所述步驟才艮據所述待刪除資源 的分塊數和節點編號確定需要保留的待刪除資源的分塊編號具體為當節點編號大于或者等于所述待刪除資源的分塊數時,需要保留的資源的 分塊編號為節點編號除以待刪除資源的分塊數所得的余數;當節點編號小于所述待刪除資源的分塊數時,需要保留的資源的分塊編號 為待刪除資源的分塊數除以節點編號所得的余數。
7、 如權利要求3所述的方法,其特征在于,節點根據服務器返回的指令, 完全刪除所述資源,或者保留所述資源的指定分塊,并刪除資源的其余分塊的 步驟具體為節點提取所述指令攜帶的資源的分塊編號,當所述資源的分塊編號為空值 或者預設的默認值時,完全刪除所述資源;當所述資源分塊編號大于O時,將 所述資源按預設分塊大小切分成多塊,并保留所述資源的分塊編號指定的分塊, 刪除資源的其余分塊。
8、 一種點對點下載系統,所述系統包括節點和服務器,其特征在于, 所述節點在刪除其緩存的資源時,向服務器發送資源刪除請求,所述資源刪除請求中攜帶待刪除資源的信息,并在接收到服務器返回的指令,完全刪除 所述資源,或者保留所述資源的指定分塊,并刪除資源的其余分塊;所述服務器在接收到所述資源刪除請求后,查詢點對點下載系統中完整保 存待刪除資源的節點的總數,并根據完整保存待刪除資源的節點的總數與預設 閾值之間的關系,向節點返回相應的指令,所述指令為刪除資源的指令,或者 保留資源的指定分塊的指令。
9、 如權利要求8所述的服務器,其特征在于,所述節點包括 刪除請求發送單元,在所述節點刪除其緩存的資源時,向所述服務器發送資源刪除請求,所述資源刪除請求中攜帶待刪除資源的信息;指令識別單元,用于根據服務器返回的指令中攜帶的資源的分塊編號識別服務器返回的指令為保留資源的指定分塊的指令還是刪除資源的指令;資源處理單元,用于根據所述指令識別單元識別出的指令,刪除整個待刪 除資源,或者保存資源的指定分塊,并刪除資源的其余分塊。
10、 如權利要求8所述的服務器,其特征在于,所述服務器包括 存儲單元,用于存儲加入至點對點下載系統中的節點拓樸和節點間連接的關系,以及點對點下載系統中的資源信息;節點總數查詢單元,用于在接收到所述節點發送的資源刪除請求后,查詢 所述存儲單元中存儲的節點拓樸列表中,完整保存待刪除資源的節點的總數;節點資源判斷單元,用于判斷所述節點總數查詢單元查詢到的完整保存待 刪除資源的節點的總數是否達到預設的閾值;指令返回單元,用于根據所述節點資源判斷單元的判斷結果,向節點返回 保留資源的指定分塊的指令或者刪除資源的指令,所述指令攜帶資源的哈希值 和資源的分塊編號。
11、 如權利要求IO所述的系統,其特征在于,當所述指令返回羊元返回的 指令為保留資源的指定分塊的指令時,所述系統還包括分塊編號確定單元,用于根據待刪除資源的總大小、預設的分塊大小以及 節點編號確定需要保留的資源的分塊編號。
12、 如權利要求11所述的系統,其特征在于,所述分塊編號確定單元包括 資源大小查詢才莫塊,用于查詢待刪除資源的總大小; 分塊數計算模塊,用于根據所述資源大小查詢模塊查詢到的待刪除資源的總大小和預設的資源分塊大小之商,得到待刪除資源的分塊數;編號計算模塊,用于根據節點編號和所述分塊計算模塊計算得到的待刪除資源的分塊數,確定節點需要保留的待刪除資源的分塊編號。
全文摘要
本發明適用于資源共享領域,提供了一種點對點下載系統及其資源緩存方法,該方法包括下述步驟節點在刪除其緩存的資源時,向服務器發送資源刪除請求;服務器查詢點對點下載系統中完整保存待刪除資源的節點的總數,并根據完整保存待刪除資源的節點的總數與預設的閾值之間的關系,向節點返回刪除資源的指令,或者保留資源的指定分塊的指令;節點根據服務器返回的指令,完全刪除該資源,或者保留該資源的指定分塊,并刪除資源的其余分塊。由于在節點刪除緩存的資源前,根據該資源的緩存情況來確定完全刪除該資源還是保留該資源的一部分,從而保證了點對點系統中資源的總量和資源共享率,為各節點之間通過點對點實現資源共享提供了保證。
文檔編號H04L29/06GK101557424SQ200910107358
公開日2009年10月14日 申請日期2009年5月15日 優先權日2009年5月15日
發明者王澤強 申請人:騰訊科技(深圳)有限公司