用于分布式緩存系統(tǒng)的數(shù)據(jù)處理方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及分布式緩存技術(shù)領(lǐng)域,尤其涉及用于分布式緩存系統(tǒng)的數(shù)據(jù)處理方法和裝置。
【背景技術(shù)】
[0002]目前,隨著各行業(yè)的高速緩存(Cache)數(shù)據(jù)的存儲(chǔ)規(guī)模的不斷擴(kuò)大,為了提供更高容量的數(shù)據(jù),通常會(huì)采用多個(gè)緩存服務(wù)器(Cache Server)來存儲(chǔ)數(shù)據(jù),并通過代理服務(wù)器(Proxy)根據(jù)預(yù)定的哈希(hash)算法將數(shù)據(jù)分發(fā)到各個(gè)緩存服務(wù)器上。同時(shí),會(huì)部署一個(gè)元數(shù)據(jù)管理服務(wù)器來管理這些數(shù)據(jù)的存儲(chǔ)位置信息。
[0003]然而,在具有多個(gè)代理服務(wù)器,并且每個(gè)代理服務(wù)器都連接至少一個(gè)緩存服務(wù)器的環(huán)境中,由于各個(gè)代理服務(wù)器所連接的緩存服務(wù)器的數(shù)量不同,導(dǎo)致了不同緩存服務(wù)器的內(nèi)存中的數(shù)據(jù)量不同,因此可能會(huì)出現(xiàn)一些緩存服務(wù)器的內(nèi)存占用量已經(jīng)接近內(nèi)存總?cè)萘?,而其他緩存服?wù)器內(nèi)存占用相對(duì)較少的情況,因此導(dǎo)致了各個(gè)緩存服務(wù)器的內(nèi)存中的數(shù)據(jù)量不均衡,從而使分布式緩存系統(tǒng)的內(nèi)存利用率較低。
【發(fā)明內(nèi)容】
[0004]本申請(qǐng)的目的在于提出一種用于分布式緩存系統(tǒng)的數(shù)據(jù)處理方法和裝置,來解決以上【背景技術(shù)】部分提到的技術(shù)問題。
[0005]第一方面,本申請(qǐng)?zhí)峁┝艘环N用于分布式緩存系統(tǒng)的數(shù)據(jù)處理方法,所述方法包括:獲取分布式緩存系統(tǒng)中的每個(gè)緩存服務(wù)器的當(dāng)前內(nèi)存占用量和內(nèi)存總?cè)萘?;根?jù)當(dāng)前內(nèi)存占用量和內(nèi)存總?cè)萘?,?duì)各個(gè)緩存服務(wù)器進(jìn)行數(shù)據(jù)均衡處理,所述數(shù)據(jù)均衡處理包括:基于當(dāng)前內(nèi)存占用量和內(nèi)存總?cè)萘浚瑢⑺龇植际骄彺嫦到y(tǒng)中的緩存服務(wù)器分為高負(fù)載服務(wù)器集合和低負(fù)載服務(wù)器集合;在高負(fù)載服務(wù)器集合中選擇一個(gè)緩存服務(wù)器作為源緩存服務(wù)器,并在低負(fù)載服務(wù)器集合中選擇一個(gè)緩存服務(wù)器作為目標(biāo)緩存服務(wù)器,將所述源緩存服務(wù)器中的部分?jǐn)?shù)據(jù)迀移到所述目標(biāo)緩存服務(wù)器中。
[0006]在一些實(shí)施例中,所述基于當(dāng)前內(nèi)存占用量和內(nèi)存總?cè)萘浚瑢⑺龇植际骄彺嫦到y(tǒng)中的緩存服務(wù)器分為高負(fù)載服務(wù)器集合和低負(fù)載服務(wù)器集合,包括:根據(jù)當(dāng)前內(nèi)存占用量和內(nèi)存總?cè)萘?,得到每個(gè)所述緩存服務(wù)器的內(nèi)存占用比以及所述分布式緩存系統(tǒng)中的緩存服務(wù)器的平均內(nèi)存占用比;基于各個(gè)緩存服務(wù)器的內(nèi)存占用比和所述平均內(nèi)存占用比,將所述分布式緩存系統(tǒng)中的緩存服務(wù)器分為高負(fù)載服務(wù)器集合和低負(fù)載服務(wù)器集合。
[0007]在一些實(shí)施例中,所述數(shù)據(jù)均衡處理還包括:在得到每個(gè)所述緩存服務(wù)器的內(nèi)存占用比之后,確定所述緩存服務(wù)器的內(nèi)存占用比中的最大值和最小值的差值是否小于預(yù)定的閾值;如果是,則終止執(zhí)行所述數(shù)據(jù)均衡處理。
[0008]在一些實(shí)施例中,所述方法還包括:在將所述源緩存服務(wù)器中的部分?jǐn)?shù)據(jù)迀移到所述目標(biāo)緩存服務(wù)器中之后,重新獲取所述分布式緩存系統(tǒng)中的每個(gè)緩存服務(wù)器的當(dāng)前內(nèi)存占用量和內(nèi)存總?cè)萘?;根?jù)重新獲取的所述分布式緩存系統(tǒng)中的每個(gè)緩存服務(wù)器的當(dāng)前內(nèi)存占用量和內(nèi)存總?cè)萘浚瑢?duì)所述分布式緩存系統(tǒng)的中的緩存服務(wù)器進(jìn)行所述數(shù)據(jù)均衡處理。
[0009]在一些實(shí)施例中,所述分布式緩存系統(tǒng)中的各個(gè)緩存服務(wù)器包括至少一個(gè)內(nèi)存桶;以及所述將所述源緩存服務(wù)器中的部分?jǐn)?shù)據(jù)迀移到所述目標(biāo)緩存服務(wù)器中,包括:將所述源緩存服務(wù)器的一個(gè)內(nèi)存桶中的數(shù)據(jù)迀移到所述目標(biāo)緩存服務(wù)器中。
[0010]在一些實(shí)施例中,所述方法還包括:在將所述分布式緩存系統(tǒng)中的緩存服務(wù)器分為高負(fù)載服務(wù)器集合和低負(fù)載服務(wù)器集合之前,根據(jù)內(nèi)存占用比對(duì)所述分布式緩存系統(tǒng)中的緩存服務(wù)器進(jìn)行排序。
[0011]在一些實(shí)施例中,所述方法還包括:在高負(fù)載服務(wù)器集合中選擇一個(gè)緩存服務(wù)器作為源緩存服務(wù)器,并在低負(fù)載服務(wù)器集合中選擇一個(gè)緩存服務(wù)器作為目標(biāo)緩存服務(wù)器之前,分別將所述高負(fù)載服務(wù)器集合和所述低負(fù)載服務(wù)器集合中的緩存服務(wù)器隨機(jī)排列。
[0012]第二方面,本申請(qǐng)?zhí)峁┝艘环N用于分布式緩存系統(tǒng)的數(shù)據(jù)處理裝置,所述裝置包括:第一內(nèi)存信息獲取單元,用于獲取分布式緩存系統(tǒng)中的每個(gè)緩存服務(wù)器的當(dāng)前內(nèi)存占用量和內(nèi)存總?cè)萘?;?shù)據(jù)均衡處理單元,用于根據(jù)當(dāng)前內(nèi)存占用量和內(nèi)存總?cè)萘浚瑢?duì)各個(gè)緩存服務(wù)器進(jìn)行數(shù)據(jù)均衡處理,所述數(shù)據(jù)均衡處理單元包括:服務(wù)器劃分子單元,用于基于當(dāng)前內(nèi)存占用量和內(nèi)存總?cè)萘?,將所述分布式緩存系統(tǒng)中的緩存服務(wù)器分為高負(fù)載服務(wù)器集合和低負(fù)載服務(wù)器集合;數(shù)據(jù)迀移子單元,用于在高負(fù)載服務(wù)器集合中選擇一個(gè)緩存服務(wù)器作為源緩存服務(wù)器,并在低負(fù)載服務(wù)器集合中選擇一個(gè)緩存服務(wù)器作為目標(biāo)緩存服務(wù)器,將所述源緩存服務(wù)器中的部分?jǐn)?shù)據(jù)迀移到所述目標(biāo)緩存服務(wù)器中。
[0013]在一些實(shí)施例中,所述服務(wù)器劃分子單元包括:內(nèi)存占用比獲取模塊,用于根據(jù)當(dāng)前內(nèi)存占用量和內(nèi)存總?cè)萘?,得到每個(gè)所述緩存服務(wù)器的內(nèi)存占用比以及所述分布式緩存系統(tǒng)中的緩存服務(wù)器的平均內(nèi)存占用比;服務(wù)器劃分模塊,用于基于各個(gè)緩存服務(wù)器的內(nèi)存占用比和所述平均內(nèi)存占用比,將所述分布式緩存系統(tǒng)中的緩存服務(wù)器分為高負(fù)載服務(wù)器集合和低負(fù)載服務(wù)器集合。
[0014]在一些實(shí)施例中,所述數(shù)據(jù)均衡處理單元還包括:均衡處理終止子單元,用于在得到每個(gè)所述緩存服務(wù)器的內(nèi)存占用比之后,確定所述緩存服務(wù)器的內(nèi)存占用比中的最大值和最小值的差值是否小于預(yù)定的閾值,如果是,則終止執(zhí)行所述數(shù)據(jù)均衡處理。
[0015]在一些實(shí)施例中,所述裝置還包括:第二內(nèi)存信息獲取單元,用于在將所述源緩存服務(wù)器中的部分?jǐn)?shù)據(jù)迀移到所述目標(biāo)緩存服務(wù)器中之后,重新獲取所述分布式緩存系統(tǒng)中的每個(gè)緩存服務(wù)器的當(dāng)前內(nèi)存占用量和內(nèi)存總?cè)萘?;?shù)據(jù)均衡指示單元,用于指示所述數(shù)據(jù)均衡處理單元根據(jù)重新獲取的所述分布式緩存系統(tǒng)中的每個(gè)緩存服務(wù)器的當(dāng)前內(nèi)存占用量和內(nèi)存總?cè)萘?,?duì)所述分布式緩存系統(tǒng)的中的緩存服務(wù)器進(jìn)行所述數(shù)據(jù)均衡處理。
[0016]在一些實(shí)施例中,所述分布式緩存系統(tǒng)中的各個(gè)緩存服務(wù)器包括至少一個(gè)內(nèi)存桶;以及所述數(shù)據(jù)迀移子單元進(jìn)一步配置用于將所述源緩存服務(wù)器的一個(gè)內(nèi)存桶中的數(shù)據(jù)迀移到所述目標(biāo)緩存服務(wù)器中。
[0017]在一些實(shí)施例中,所述裝置還包括:服務(wù)器排序單元,用于在將所述分布式緩存系統(tǒng)中的緩存服務(wù)器分為高負(fù)載服務(wù)器集合和低負(fù)載服務(wù)器集合之前,根據(jù)內(nèi)存占用比對(duì)所述分布式緩存系統(tǒng)中的緩存服務(wù)器進(jìn)行排序。
[0018]在一些實(shí)施例中,所述裝置還包括:隨機(jī)排列單元,用于在高負(fù)載服務(wù)器集合中選擇一個(gè)緩存服務(wù)器作為源緩存服務(wù)器,并在低負(fù)載服務(wù)器集合中選擇一個(gè)緩存服務(wù)器作為目標(biāo)緩存服務(wù)器之前,分別將所述高負(fù)載服務(wù)器集合和所述低負(fù)載服務(wù)器集合中的緩存服務(wù)器隨機(jī)排列。
[0019]本申請(qǐng)?zhí)峁┑挠糜诜植际骄彺嫦到y(tǒng)的數(shù)據(jù)處理方法和裝置,通過根據(jù)分布式緩存系統(tǒng)中的緩存服務(wù)器的當(dāng)前內(nèi)存占用量和內(nèi)存總?cè)萘?,將上述分布式緩存系統(tǒng)中的緩存服務(wù)器分為高負(fù)載服務(wù)器集合和低負(fù)載服務(wù)器集合,并將高負(fù)載服務(wù)器集合中的緩存服務(wù)器中的部分?jǐn)?shù)據(jù)迀移到低負(fù)載服務(wù)器集合中的緩存服務(wù)器中,從而使各個(gè)緩存服務(wù)器的內(nèi)存中的數(shù)據(jù)量更均衡,提高了分布式緩存系統(tǒng)的內(nèi)存利用率。
【附圖說明】
[0020]通過閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本申請(qǐng)的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
[0021]圖1是本申請(qǐng)可以應(yīng)用于其中的示例性系統(tǒng)架構(gòu)圖;
[0022]圖2是根據(jù)本申請(qǐng)的用于分布式緩存系統(tǒng)的數(shù)據(jù)處理方法的一個(gè)實(shí)施例的流程圖;
[0023]圖3是根據(jù)本申請(qǐng)的用于分布式緩存系統(tǒng)的數(shù)據(jù)處理方法的另一個(gè)實(shí)施例的流程圖;
[0024]圖4是根據(jù)本申請(qǐng)的用于分布式緩存系統(tǒng)的數(shù)據(jù)處理裝置的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
[0025]圖5是適于用來實(shí)現(xiàn)本申請(qǐng)實(shí)施例的終端設(shè)備、代理服務(wù)器或緩存服務(wù)器的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0026]下面結(jié)合附圖和實(shí)施例對(duì)本申請(qǐng)作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖?,此處所描述的具體實(shí)施例僅僅用于解釋相關(guān)發(fā)明,而非對(duì)該發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。
[0027]需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本申請(qǐng)。
[0028]圖1示出了可以應(yīng)用本申請(qǐng)的數(shù)據(jù)處理方法或數(shù)據(jù)處理裝置的實(shí)施例的示例性系統(tǒng)架構(gòu)100。
[0029]如圖1所示,系統(tǒng)架構(gòu)100可以包括終端設(shè)備101、102,代理服務(wù)器103、104,緩存服務(wù)器105、106和元數(shù)據(jù)管理服務(wù)器107。終端設(shè)備101、102,代理服務(wù)器103、104、緩存服務(wù)器105、106和元數(shù)據(jù)管理服務(wù)器107之間通過網(wǎng)絡(luò)通信。其中,網(wǎng)絡(luò)可以包括各種連接類型,例如有線、無