數(shù)據(jù)存取方法、調(diào)度方法、設備及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開一種數(shù)據(jù)存取方法、調(diào)度方法、設備及系統(tǒng),該數(shù)據(jù)調(diào)度方法包括:分布式緩存系統(tǒng)的服務器獲取各緩存節(jié)點的內(nèi)存使用信息;所述服務器根據(jù)各緩存節(jié)點的內(nèi)存使用信息,確定需要進行數(shù)據(jù)遷移的源緩存節(jié)點,并在確定出需要遷移的源緩存節(jié)點后,確定出所述源緩存節(jié)點上需要遷移的哈希桶,以及能夠容納該哈希桶中的數(shù)據(jù)的目標緩存節(jié)點;所述服務器向所述源緩存節(jié)點發(fā)送數(shù)據(jù)調(diào)度指令,以指示所述源緩存節(jié)點將需要遷移的哈希桶中的數(shù)據(jù)遷移到所述目標緩存節(jié)點;所述服務器向被遷移的哈希桶所屬的客戶端設備發(fā)送映射關(guān)系更新指令,以指示該客戶端根據(jù)本次數(shù)據(jù)遷移操作更新哈希桶與緩存節(jié)點的映射關(guān)系。
【專利說明】數(shù)據(jù)存取方法、調(diào)度方法、設備及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信網(wǎng)絡【技術(shù)領(lǐng)域】,尤其涉及一種數(shù)據(jù)存取方法、調(diào)度方法、設備及系統(tǒng)。
【背景技術(shù)】
[0002]在Web2.0時代,互聯(lián)網(wǎng)上的大部分應用都是將數(shù)據(jù)保存在關(guān)系型數(shù)據(jù)庫中,客戶端從數(shù)據(jù)庫中讀取數(shù)據(jù)。但是隨著數(shù)據(jù)量的增加和數(shù)據(jù)訪問量的增大,就會出現(xiàn)數(shù)據(jù)庫負載加重、性能下降、響應緩慢、網(wǎng)站顯示延遲等一系列問題,在這種背景下,基于內(nèi)存的緩存服務器應運而生。
[0003]通常,現(xiàn)有的支持多客戶端的數(shù)據(jù)存取方案通過一致性哈希算法實現(xiàn)。一致性哈希算法通過將各緩存節(jié)點和數(shù)據(jù)主鍵的哈希值投射到一個環(huán)形空間上,來實現(xiàn)數(shù)據(jù)的分布式存儲。在判斷某個數(shù)據(jù)落在哪個緩存節(jié)點時,一致性哈希算法以該數(shù)據(jù)在環(huán)上的位置為起點,按照順時針方向遍歷環(huán)形域值空間,遇到的第一個緩存節(jié)點即為該數(shù)據(jù)所屬的緩存節(jié)點。為了避免數(shù)據(jù)在緩存節(jié)點上分布不均勻,一致性哈希算法通過將一個實體緩存節(jié)點復制為幾個虛擬緩存節(jié)點來稀釋環(huán)形域值空間上的數(shù)據(jù)。虛擬緩存節(jié)點只負責對數(shù)據(jù)的劃分,分布到虛擬緩存節(jié)點上的數(shù)據(jù)依然通過實體緩存節(jié)點來存儲。
[0004]但是,一致性哈希算法的虛擬緩存節(jié)點數(shù)據(jù)存取方案存在以下缺點:
[0005]1、在引入了虛擬緩存節(jié)點后,存取一條數(shù)據(jù)所屬的緩存節(jié)點至少需要三個步驟:a.計算該數(shù)據(jù)在環(huán)形域值空間上的位置;b.根據(jù)計算所得位置找到該數(shù)據(jù)所屬的虛擬緩存節(jié)點;c.根據(jù)虛擬緩存節(jié)點找到對應的實體緩存節(jié)點。由此可以看出,虛擬緩存節(jié)點的引入,使得數(shù)據(jù)存取過程變得更為復雜,降低了數(shù)據(jù)存取性能。
[0006]2、在多客戶端環(huán)境下,不同客戶端的單條數(shù)據(jù)大小可能不同,這就導致即使每個緩存節(jié)點上緩存的數(shù)據(jù)條數(shù)相同,但是總數(shù)據(jù)大小卻不同,即,有的緩存節(jié)點占用內(nèi)存較多,有的緩存節(jié)點占用內(nèi)存較少,數(shù)據(jù)分布不均勻的問題不但沒有避免,反而還有可能放大,進而使得緩存服務器節(jié)點的內(nèi)存利用率大打折扣。
[0007]因此,亟需一種數(shù)據(jù)存取方案以及數(shù)據(jù)調(diào)度方案出現(xiàn),用以解決上述技術(shù)問題。
【發(fā)明內(nèi)容】
[0008]本發(fā)明實施例提供了一種數(shù)據(jù)存取方法及設備,用以降低數(shù)據(jù)訪問的復雜性,提升數(shù)據(jù)存取性能。
[0009]為了實現(xiàn)上述目的,本發(fā)明實施例采用以下技術(shù)手段:
[0010]本發(fā)明實施例提供一種數(shù)據(jù)存取方法,應用于分布式緩存系統(tǒng),所述方法包括:
[0011]分布式緩存系統(tǒng)的客戶端設備根據(jù)請求存取的數(shù)據(jù)主鍵,確定所述數(shù)據(jù)主鍵對應的哈希桶,并根據(jù)哈希桶與緩存節(jié)點的映射關(guān)系,確定所述哈希桶對應的緩存節(jié)點;其中,一個哈希桶唯一對應一個緩存節(jié)點;
[0012]所述客戶端設備向所述哈希桶對應的緩存節(jié)點發(fā)起數(shù)據(jù)存取請求,以請求所述緩存節(jié)點根據(jù)所述數(shù)據(jù)存取請求進行存取處理。
[0013]本發(fā)明實施例還提供一種客戶端設備,應用于分布式緩存系統(tǒng),包括:
[0014]確定模塊,用于根據(jù)請求存取的數(shù)據(jù)主鍵,確定所述數(shù)據(jù)主鍵對應的哈希桶,并根據(jù)哈希桶與緩存節(jié)點的映射關(guān)系,確定所述哈希桶對應的緩存節(jié)點;其中,一個哈希桶唯一對應一個緩存節(jié)點;
[0015]存取請求模塊,用于向所述哈希桶對應的緩存節(jié)點發(fā)起數(shù)據(jù)存取請求,以請求所述緩存節(jié)點根據(jù)所述數(shù)據(jù)存取請求進行存取處理。
[0016]與現(xiàn)有技術(shù)相比,本發(fā)明的上述實施例具有以下有益技術(shù)效果:
[0017]本發(fā)明實施例提供的數(shù)據(jù)存取方案,客戶端設備根據(jù)請求存取的數(shù)據(jù)主鍵確定對應的哈希桶,并根據(jù)哈希桶與緩存節(jié)點的映射關(guān)系確定該哈希桶對應的緩存節(jié)點,通過上述兩層映射關(guān)系即可確定數(shù)據(jù)存儲位置,簡化了數(shù)據(jù)存取過程,提高了數(shù)據(jù)處理速度,并提升數(shù)據(jù)存取性能。
[0018]本發(fā)明實施例還提供了一種數(shù)據(jù)調(diào)度方法、設備及系統(tǒng),用以實現(xiàn)數(shù)據(jù)均勻分布,提高緩存節(jié)點的內(nèi)存利用率。
[0019]為了實現(xiàn)上述目的,本發(fā)明實施例采用以下技術(shù)手段:
[0020]本發(fā)明實施例提供一種基于前述數(shù)據(jù)存取方法實現(xiàn)的數(shù)據(jù)調(diào)度方法,所述方法包括:
[0021]分布式緩存系統(tǒng)的服務器獲取各緩存節(jié)點的內(nèi)存使用信息;
[0022]所述服務器根據(jù)各緩存節(jié)點的內(nèi)存使用信息,確定需要進行數(shù)據(jù)遷移的源緩存節(jié)點,并在確定出需要遷移的源緩存節(jié)點后,確定出所述源緩存節(jié)點上需要遷移的哈希桶,以及能夠容納該哈希桶中的數(shù)據(jù)的目標緩存節(jié)點;
[0023]所述服務器向所述源緩存節(jié)點發(fā)送數(shù)據(jù)調(diào)度指令,以指示所述源緩存節(jié)點將需要遷移的哈希桶中的數(shù)據(jù)遷移到所述目標緩存節(jié)點;
[0024]所述服務器向被遷移的哈希桶所屬的客戶端設備發(fā)送映射關(guān)系更新指令,以指示客戶端根據(jù)本次數(shù)據(jù)遷移操作更新哈希桶與緩存節(jié)點的映射關(guān)系。
[0025]本發(fā)明實施例還提供一種服務器,應用于分布式緩存系統(tǒng),包括:
[0026]獲取模塊,用于獲取各緩存節(jié)點的內(nèi)存使用信息;
[0027]決策模塊,用于根據(jù)所述獲取模塊獲取的各緩存節(jié)點的內(nèi)存使用信息,確定需要進行數(shù)據(jù)遷移的源緩存節(jié)點,并在確定出需要遷移的源緩存節(jié)點后,確定出所述源緩存節(jié)點上需要遷移的哈希桶,以及能夠容納該哈希桶中的數(shù)據(jù)的目標緩存節(jié)點;
[0028]調(diào)度模塊,用于向所述源緩存節(jié)點發(fā)送數(shù)據(jù)調(diào)度指令,以指示所述源緩存節(jié)點將需要遷移的哈希桶中的數(shù)據(jù)遷移到所述目標緩存節(jié)點;
[0029]更新指示模塊,用于向被遷移的哈希桶所屬的客戶端設備發(fā)送映射關(guān)系更新指令,以指示客戶端根據(jù)本次數(shù)據(jù)遷移操作更新哈希桶與緩存節(jié)點的映射關(guān)系。
[0030]本發(fā)明實施例還提供一種分布式緩存系統(tǒng),所述系統(tǒng)包括:前述的客戶端設備、前述的服務器以及至少2個緩存節(jié)點,其中,
[0031]緩存節(jié)點,用于接收客戶端設備發(fā)起的數(shù)據(jù)存取請求,并對所述數(shù)據(jù)存取請求進行存取處理;以及,接收服務器發(fā)送的數(shù)據(jù)調(diào)度指令,并根據(jù)所述數(shù)據(jù)調(diào)度指令,將需要遷移的哈希桶中的數(shù)據(jù)遷移到目標緩存節(jié)點。[0032]與現(xiàn)有技術(shù)相比,本發(fā)明的上述實施例具有以下有益技術(shù)效果:
[0033]本發(fā)明實施例提供的數(shù)據(jù)調(diào)度方案,由服務器確定需要進行數(shù)據(jù)調(diào)度的源緩存節(jié)點,并控制源緩存節(jié)點以哈希桶為單位,將數(shù)據(jù)遷移至其他緩存節(jié)點,從而實現(xiàn)數(shù)據(jù)在緩存節(jié)點上均勻分布,提高了內(nèi)存利用率。
【專利附圖】
【附圖說明】
[0034]圖1為本發(fā)明實施例的系統(tǒng)架構(gòu)示意圖;
[0035]圖2為本發(fā)明實施例提供的數(shù)據(jù)存取流程示意圖;
[0036]圖3為本發(fā)明實施例提供的數(shù)據(jù)調(diào)度流程示意圖;
[0037]圖4a-圖4d為本發(fā)明實施例二叉樹數(shù)據(jù)調(diào)度算法示意圖;
[0038]圖5為本發(fā)明實施例提供的客戶端設備的結(jié)構(gòu)示意圖;
[0039]圖6為本發(fā)明實施例提供的服務器的結(jié)構(gòu)示意圖。
【具體實施方式】
[0040]針對現(xiàn)有技術(shù)存在的上述問題,本發(fā)明實施例提供了一種數(shù)據(jù)存取方案以及數(shù)據(jù)調(diào)度方案。下面結(jié)合附圖對本發(fā)明實施例進行詳細描述。
[0041]圖1示出了本發(fā)明實施例提供的分布式緩存系統(tǒng)架構(gòu),該緩存系統(tǒng)支持多客戶端的數(shù)據(jù)訪問請求。該系統(tǒng)架構(gòu)中可包括:客戶端設備11(可以是多個,圖中僅示出了一個客戶端設備)、服務器12和至少2個緩存節(jié)點13。客戶端設備11用于進行數(shù)據(jù)存取訪問;月艮務器12用于監(jiān)控和調(diào)度各緩存節(jié)點13的數(shù)據(jù)分布;緩存節(jié)點13用于在內(nèi)存緩存數(shù)據(jù),并響應客戶端設備11的數(shù)據(jù)存取請求。
[0042]本發(fā)明實施例的分布式緩存系統(tǒng)將數(shù)據(jù)存儲空間劃分為多個哈希桶,數(shù)據(jù)以哈希桶為存儲單元存儲于各緩存節(jié)點上,哈希桶的數(shù)目可以依據(jù)分布式緩存系統(tǒng)性能以及數(shù)據(jù)業(yè)務需求設定。哈希桶只是一個邏輯上的數(shù)據(jù)存儲單元,真正存儲數(shù)據(jù)的是緩存節(jié)點。一個哈希桶中的數(shù)據(jù)不能跨節(jié)點存儲,即,一個哈希桶只能唯一對應一個緩存節(jié)點,而一個緩存節(jié)點則可以對應多個哈希桶。
[0043]當客戶端設備接入到分布式緩存系統(tǒng)時,向分布式緩存系統(tǒng)請求分配哈希桶,即,客戶端設備向服務器發(fā)起內(nèi)存空間分配請求。服務器根據(jù)該請求中攜帶的本客戶端需要占用的哈希捅數(shù)目,為該客戶端分配相應數(shù)量的哈希桶,并建立哈希桶與緩存節(jié)點之間的對應關(guān)系,以生成映射表,并將映射表發(fā)送給客戶端設備。優(yōu)選的,服務器可以在本地存儲映射表。映射表結(jié)構(gòu)如表I所不:
[0044]表I
[0045]
【權(quán)利要求】
1.一種數(shù)據(jù)存取方法,應用于分布式緩存系統(tǒng),其特征在于,包括: 分布式緩存系統(tǒng)的客戶端設備根據(jù)請求存取的數(shù)據(jù)主鍵,確定所述數(shù)據(jù)主鍵對應的哈希桶,并根據(jù)哈希桶與緩存節(jié)點的映射關(guān)系,確定所述哈希桶對應的緩存節(jié)點;其中,一個哈希桶唯一對應一個緩存節(jié)點; 所述客戶端設備向所述哈希桶對應的緩存節(jié)點發(fā)起數(shù)據(jù)存取請求,以請求所述緩存節(jié)點根據(jù)所述數(shù)據(jù)存取請求對進行存取處理。
2.如權(quán)利要求1所述的方法,其特征在于,所述客戶端設備根據(jù)請求存取的數(shù)據(jù)主鍵,確定所述數(shù)據(jù)主鍵對應的哈希桶,具體為: 所述客戶端設備計算所述數(shù)據(jù)主鍵的哈希值,并通過將計算得到的哈希值,對為所述客戶端設備分配的哈希桶數(shù)量進行取模運算,確定出所述數(shù)據(jù)主鍵對應的哈希桶。
3.如權(quán)利要求1所述的方法,其特征在于,該方法還包括: 在所述客戶端設備接入所述分布式緩存系統(tǒng)時,向所述分布式緩存系統(tǒng)請求分配哈希桶; 所述客戶端設備接收并存儲所述分布式緩存系統(tǒng)為其所述客戶端設備分配的哈希桶信息,以及該哈希桶與緩存節(jié)點的映射關(guān)系信息。
4.一種基于如權(quán)利要 求1-3之一所述的數(shù)據(jù)存取方法實現(xiàn)的數(shù)據(jù)調(diào)度方法,其特征在于,所述方法包括: 分布式緩存系統(tǒng)的服務器獲取各緩存節(jié)點的內(nèi)存使用信息; 所述服務器根據(jù)各緩存節(jié)點的內(nèi)存使用信息,確定需要進行數(shù)據(jù)遷移的源緩存節(jié)點,并在確定出需要遷移的源緩存節(jié)點后,確定出所述源緩存節(jié)點上需要遷移的哈希桶,以及能夠容納該哈希桶中的數(shù)據(jù)的目標緩存節(jié)點; 所述服務器向所述源緩存節(jié)點發(fā)送數(shù)據(jù)調(diào)度指令,以指示所述源緩存節(jié)點將需要遷移的哈希桶中的數(shù)據(jù)遷移到所述目標緩存節(jié)點; 所述服務器向被遷移的哈希桶所屬的客戶端設備發(fā)送映射關(guān)系更新指令,以指示客戶端根據(jù)本次數(shù)據(jù)遷移操作更新哈希桶與緩存節(jié)點的映射關(guān)系。
5.如權(quán)利要求4所述的方法,其特征在于,所述服務器根據(jù)各緩存節(jié)點的內(nèi)存使用信息,確定需要進行數(shù)據(jù)遷移的源緩存節(jié)點,具體包括: 所述服務器將各緩存節(jié)點的內(nèi)存使用信息與預設閾值進行比較,若有緩存節(jié)點的內(nèi)存空閑空間占有率低于所述預設閾值,則確定該緩存節(jié)點需要進行數(shù)據(jù)遷移。
6.如權(quán)利要求4所述的方法,其特征在于,所述服務器獲取各緩存節(jié)點的內(nèi)存使用信息之后,還包括:根據(jù)各緩存節(jié)點的內(nèi)存使用信息創(chuàng)建二叉樹模型;其中,所述二叉樹模型中,葉子節(jié)點為各緩存節(jié)點,每兩個孩子節(jié)點共享一個雙親節(jié)點,葉子節(jié)點的權(quán)值為緩存節(jié)點的內(nèi)存空閑空間占有率,雙親節(jié)點的權(quán)值等于其兩個孩子節(jié)點中較大的權(quán)值; 所述服務器確定能夠容納該哈希桶中的數(shù)據(jù)的目標緩存節(jié)點,具體包括: 步驟a、將二叉樹模型的根節(jié)點作為起始節(jié)點; 步驟b、判斷起始節(jié)點的孩子節(jié)點中是否存在內(nèi)存空閑空間占有率大于需要遷移的哈希桶的數(shù)據(jù)容量,且二者之差大于預設閾值的節(jié)點,若存在,則執(zhí)行步驟C,否則,結(jié)束本流程; 步驟C、若起始節(jié)點的兩個孩子節(jié)點的內(nèi)存空閑空間占有率均大于需要遷移的哈希桶的數(shù)據(jù)容量,且二者之差大于所述預設閾值,則選擇其中權(quán)值較大的節(jié)點;若起始節(jié)點的兩個孩子節(jié)點中僅有一個孩子節(jié)點的內(nèi)存空閑空間占有率大于需要遷移的哈希桶的數(shù)據(jù)容量,且二者之差大于所述預設閾值,則選擇該孩子節(jié)點; 步驟d、判斷選擇出的孩子節(jié)點是否為二叉樹的葉子節(jié)點,若是,則將選擇出的孩子節(jié)點確定為能夠容納該哈希桶中的數(shù)據(jù) 的目標緩存節(jié)點;否則,執(zhí)行步驟e ; 步驟e、將選擇出的孩子節(jié)點作為起始節(jié)點,并執(zhí)行步驟b。
7.如權(quán)利要求4所述的方法,其特征在于,確定所述源緩存節(jié)點上需要遷移的哈希桶的過程,具體包括: 隨機選擇所述源緩存節(jié)點中的至少一個哈希桶;或者 按照內(nèi)存空閑空間占有率從大到小的順序,選擇所述源緩存節(jié)點中的至少一個哈希桶;或者 按照內(nèi)存空閑空間占有率從小到大的順序,選擇所述源緩存節(jié)點中的至少一個哈希桶。
8.一種客戶端設備,應用于分布式緩存系統(tǒng),其特征在于,包括: 確定模塊,用于根據(jù)請求存取的數(shù)據(jù)主鍵,確定所述數(shù)據(jù)主鍵對應的哈希桶,并根據(jù)哈希桶與緩存節(jié)點的映射關(guān)系,確定所述哈希桶對應的緩存節(jié)點;其中,一個哈希桶唯一對應一個緩存節(jié)點; 存取請求模塊,用于向所述哈希桶對應的緩存節(jié)點發(fā)起數(shù)據(jù)存取請求,以請求所述緩存節(jié)點根據(jù)所述數(shù)據(jù)存取請求對進行存取處理。
9.如權(quán)利要求8所述的客戶端設備,其特征在于,所述確定模塊具體用于,計算所述數(shù)據(jù)主鍵的哈希值,并通過將計算得到的哈希值,對為所述客戶端設備分配的哈希桶數(shù)量進行取模運算,確定出所述數(shù)據(jù)主鍵對應的哈希桶。
10.如權(quán)利要求8所述的客戶端設備,其特征在于,還包括: 接入模塊,用于在接入所述分布式緩存系統(tǒng)時,向所述分布式緩存系統(tǒng)請求分配哈希桶;以及,接收所述分布式緩存系統(tǒng)為其所述客戶端設備分配的哈希桶信息,以及該哈希桶與緩存節(jié)點的映射關(guān)系信息; 存儲模塊,用于存儲所述希桶與緩存節(jié)點的映射關(guān)系信息。
11.如權(quán)利要求8所述的客戶端設備,其特征在于,還包括: 更新模塊,用于在接收到服務器發(fā)送的映射關(guān)系更新指令后,根據(jù)所述映射關(guān)系更新指令更新哈希桶與緩存節(jié)點的映射關(guān)系;所述映射關(guān)系更新指令是所述服務器在指示源緩存節(jié)點將需要遷移的哈希桶中的數(shù)據(jù)遷移到目標緩存節(jié)點之后發(fā)送的。
12.一種服務器,應用于分布式緩存系統(tǒng),其特征在于,所述服務器包括: 獲取模塊,用于獲取各緩存節(jié)點的內(nèi)存使用信息; 決策模塊,用于根據(jù)所述獲取模塊獲取的各緩存節(jié)點的內(nèi)存使用信息,確定需要進行數(shù)據(jù)遷移的源緩存節(jié)點,并在確定出需要遷移的源緩存節(jié)點后,確定出所述源緩存節(jié)點上需要遷移的哈希桶,以及能夠容納該哈希桶中的數(shù)據(jù)的目標緩存節(jié)點; 調(diào)度模塊,用于向所述源緩存節(jié)點發(fā)送數(shù)據(jù)調(diào)度指令,以指示所述源緩存節(jié)點將需要遷移的哈希桶中的數(shù)據(jù)遷移到所述目標緩存節(jié)點; 更新指示模塊,用于向被遷移的哈希桶所屬的客戶端設備發(fā)送映射關(guān)系更新指令,以指示客戶端根據(jù)本次數(shù)據(jù)遷移操作更新哈希桶與緩存節(jié)點的映射關(guān)系。
13.如權(quán)利要求12所述的服務器,其特征在于,所述決策模塊,具體用于將各緩存節(jié)點的內(nèi)存使用信息與預設閾值進行比較,若有緩存節(jié)點的內(nèi)存空閑空間占有率低于所述預設閾值,則確定該緩存節(jié)點需要進行數(shù)據(jù)遷移。
14.如權(quán)利要求12所述的服務器,其特征在于,還包括:二叉樹模型維護模塊; 所述二叉樹模型維護模塊,用于根據(jù)各緩存節(jié)點的內(nèi)存使用信息創(chuàng)建和維護二叉樹模型;其中,所述二叉樹模型中,葉子節(jié)點為各緩存節(jié)點,每兩個孩子節(jié)點共享一個雙親節(jié)點,葉子節(jié)點的權(quán)值為緩存節(jié)點的內(nèi)存空閑空間占有率,雙親節(jié)點的權(quán)值等于其兩個孩子節(jié)點中較大的權(quán)值; 所述決策模塊具體用于,通過以下方式確定能夠容納該哈希桶中的數(shù)據(jù)的目標緩存節(jié)占-^ \\\.步驟a、將二叉樹模型的根節(jié)點作為起始節(jié)點; 步驟b、判斷起始節(jié)點的孩子節(jié)點中是否存在內(nèi)存空閑空間占有率大于需要遷移的哈希桶的數(shù)據(jù)容量,且二者之差大于預設閾值的節(jié)點,若存在,則執(zhí)行步驟C,否則,結(jié)束本流程; 步驟c、若起始節(jié)點的兩個孩子節(jié)點的內(nèi)存空閑空間占有率均大于需要遷移的哈希桶的數(shù)據(jù)容量,且二者之差大于所述預設閾值,則選擇其中權(quán)值較大的節(jié)點;若起始節(jié)點的兩個孩子節(jié)點中僅有一個孩 子節(jié)點的內(nèi)存空閑空間占有率大于需要遷移的哈希桶的數(shù)據(jù)容量,且二者之差大于所述預設閾值,則選擇該孩子節(jié)點; 步驟d、判斷選擇出的孩子節(jié)點是否為二叉樹的葉子節(jié)點,若是,則將選擇出的孩子節(jié)點確定為能夠容納該哈希桶中的數(shù)據(jù)的目標緩存節(jié)點;否則,執(zhí)行步驟e ; 步驟e、將選擇出的孩子節(jié)點作為起始節(jié)點,并執(zhí)行步驟b。
15.如權(quán)利要求12所述的服務器,其特征在于,所述決策模塊具體用于,隨機選擇所述源緩存節(jié)點中的至少一個哈希桶;或者,按照內(nèi)存空閑空間占有率從大到小的順序,選擇所述源緩存節(jié)點中的至少一個哈希桶;或者,按照內(nèi)存空閑空間占有率從小到大的順序,選擇所述源緩存節(jié)點中的至少一個哈希桶。
16.—種分布式緩存系統(tǒng),包括:如權(quán)利要求9-11任一項所述的客戶端設備、如權(quán)利12-15任一項所述的服務器以及至少2個緩存節(jié)點,其特征在于, 緩存節(jié)點,用于接收客戶端設備發(fā)起的數(shù)據(jù)存取請求,并根據(jù)所述存取請求進行存取處理;以及,接收服務器發(fā)送的數(shù)據(jù)調(diào)度指令,并根據(jù)所述數(shù)據(jù)調(diào)度指令,將需要遷移的哈希桶中的數(shù)據(jù)遷移到目標緩存節(jié)點。
17.如權(quán)利要求16所述的系統(tǒng),其特征在于,所述緩存節(jié)點還用于,在將哈希桶的數(shù)據(jù)遷移至本地后,向服務器返回數(shù)據(jù)調(diào)度成功響應; 所述服務器還用于,在接收到目標緩存節(jié)點返回的數(shù)據(jù)調(diào)度成功響應后,向被遷移的哈希桶所屬的客戶端設備發(fā)送映射關(guān)系更新指令。
【文檔編號】H04L29/08GK103905503SQ201210581492
【公開日】2014年7月2日 申請日期:2012年12月27日 優(yōu)先權(quán)日:2012年12月27日
【發(fā)明者】梁智超, 錢嶺, 周大, 孫少陵 申請人:中國移動通信集團公司