欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種分布式緩存的方法、裝置和系統(tǒng)與流程

文檔序號(hào):11879045閱讀:321來(lái)源:國(guó)知局
一種分布式緩存的方法、裝置和系統(tǒng)與流程

本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種分布式緩存的方法、裝置和系統(tǒng)。



背景技術(shù):

隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,越來(lái)越多的互聯(lián)網(wǎng)應(yīng)用需要分布式存儲(chǔ)系統(tǒng)存儲(chǔ)海量數(shù)據(jù),而為了減少對(duì)分布式存儲(chǔ)系統(tǒng)中海量數(shù)據(jù)的訪問(wèn)壓力,常常通過(guò)分布式緩存的方式作為緩沖。

目前分布式緩存的主要方式是,利用SSD硬盤作為緩存,其與機(jī)械式硬盤混插在同一服務(wù)器中,該SSD硬盤僅對(duì)其所在服務(wù)器中的數(shù)據(jù)進(jìn)行緩存,例如:分布式存儲(chǔ)中,服務(wù)器1中的SSD硬盤1僅對(duì)服務(wù)器1中的數(shù)據(jù)進(jìn)行緩存,服務(wù)器2中的SSD硬盤2僅對(duì)服務(wù)器2中的數(shù)據(jù)進(jìn)行緩存,由于每個(gè)服務(wù)器中的緩存SSD硬盤僅對(duì)本地?cái)?shù)據(jù)進(jìn)行緩存,那么,每個(gè)服務(wù)器中的緩存SSD硬盤中緩存的數(shù)據(jù)量可能存在較大差異,造成分布式緩存負(fù)載不均衡。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明實(shí)施例提供了一種分布式緩存的方法、裝置和系統(tǒng),實(shí)現(xiàn)了分布式緩存均衡。

一種分布式緩存的方法,構(gòu)建各個(gè)緩存介質(zhì)之間的關(guān)聯(lián)關(guān)系,并為所述各個(gè)緩存介質(zhì)設(shè)置轉(zhuǎn)移條件,還包括:

在所述各個(gè)緩存介質(zhì)中,為目標(biāo)緩存對(duì)象確定根緩存介質(zhì);

判斷所述根緩存介質(zhì)是否滿足所述轉(zhuǎn)移條件,如果是,則為所述根緩存介質(zhì)確定待轉(zhuǎn)移對(duì)象,計(jì)算所述待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到所述各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率,根據(jù)所述概率,確定目標(biāo)緩存介質(zhì),根據(jù)所述關(guān)聯(lián)關(guān)系,將所述待轉(zhuǎn)移對(duì)象緩存到所述目標(biāo)緩存介質(zhì);否則,直接將所述目標(biāo)緩存對(duì)象緩存到所述根緩存介質(zhì)。

優(yōu)選地,上述方法進(jìn)一步包括:為各個(gè)緩存介質(zhì)分配守護(hù)進(jìn)程,通過(guò)所述守護(hù)進(jìn)程確定所述各個(gè)緩存介質(zhì)中緩存對(duì)象的價(jià)值以及任意兩個(gè)緩存介質(zhì)之間的距離;

所述計(jì)算所述待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到所述各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率,包括:

根據(jù)所述任意兩個(gè)緩存介質(zhì)之間的距離,確定所述根緩存介質(zhì)到所述每一個(gè)緩存介質(zhì)的距離;

根據(jù)下述計(jì)算公式(1),計(jì)算所述每一個(gè)緩存介質(zhì)的價(jià)值;

<mrow> <msub> <mi>V</mi> <mi>j</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mo>&Sigma;</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <msub> <mi>c</mi> <mi>i</mi> </msub> </mrow> <msub> <mi>C</mi> <mi>j</mi> </msub> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

其中,Vj表征緩存介質(zhì)j的價(jià)值;vi表征緩存介質(zhì)j中緩存的緩存對(duì)象i的價(jià)值,ci表征緩存介質(zhì)j中緩存的緩存對(duì)象i的數(shù)據(jù)量大小;Cj表征緩存介質(zhì)j的緩存容量;

根據(jù)下述計(jì)算公式(2),計(jì)算所述待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到所述各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率;

<mrow> <msub> <mi>&theta;</mi> <mrow> <mi>m</mi> <mi>n</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mi>a</mi> <msub> <mi>D</mi> <mrow> <mi>m</mi> <mi>n</mi> </mrow> </msub> </mfrac> <mrow> <mo>(</mo> <msub> <mi>V</mi> <mi>m</mi> </msub> <mo>-</mo> <msub> <mi>V</mi> <mi>n</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

其中,θmn表征根緩存介質(zhì)m的待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到緩存介質(zhì)n的概率;Dmn表征根緩存介質(zhì)m到緩存介質(zhì)n的距離;a表征轉(zhuǎn)移系數(shù);Vm表征根緩存介質(zhì)m的價(jià)值;Vn表征緩存介質(zhì)n的價(jià)值。

優(yōu)選地,所述確定所述各個(gè)緩存介質(zhì)中任意兩個(gè)緩存介質(zhì)之間的距離,包括:

統(tǒng)計(jì)所述各個(gè)緩存介質(zhì)中任意兩個(gè)緩存介質(zhì)之間交換機(jī)的個(gè)數(shù);

根據(jù)下述計(jì)算公式(3),計(jì)算所述任意兩個(gè)緩存介質(zhì)之間的距離:

Dkw=βNkw (3)

其中,Dkw表征緩存介質(zhì)k和緩存介質(zhì)w之間的距離;β表征距離常數(shù);Nkw表征緩存介質(zhì)k和緩存介質(zhì)w之間交換機(jī)的個(gè)數(shù)。

優(yōu)選地,上述方法進(jìn)一步包括:設(shè)置(0,1)區(qū)間內(nèi)的等概率隨機(jī)函數(shù)rand();

所述根據(jù)所述概率,確定目標(biāo)緩存介質(zhì),包括:

將所述待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到所述各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率轉(zhuǎn)化為(0,1)區(qū)間內(nèi)的各個(gè)線段長(zhǎng)度比;

根據(jù)所述各個(gè)線段長(zhǎng)度比,將所述(0,1)區(qū)間劃分為至少兩個(gè)子區(qū)間;

利用所述隨機(jī)函數(shù)rand(),計(jì)算出一個(gè)數(shù)值;

確定所述數(shù)值屬于的目標(biāo)子區(qū)間,并根據(jù)所述目標(biāo)子區(qū)間,確定目標(biāo)概率對(duì)應(yīng)的目標(biāo)緩存介質(zhì)。

優(yōu)選地,所述根據(jù)所述概率,確定目標(biāo)緩存介質(zhì),包括:

在所述待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到每一個(gè)緩存介質(zhì)的概率中確定出最大概率;

確定所述最大概率對(duì)應(yīng)的緩存介質(zhì)為目標(biāo)緩存介質(zhì)。

優(yōu)選地,在所述為所述根緩存介質(zhì)確定待轉(zhuǎn)移對(duì)象之后,在所述計(jì)算所述待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到所述各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率之前,進(jìn)一步包括:

判斷各個(gè)緩存介質(zhì)是否全部滿足所述轉(zhuǎn)移條件,如果是,則將所述待轉(zhuǎn)移對(duì)象直接存儲(chǔ)到本地存儲(chǔ)硬盤,否則,執(zhí)行所述計(jì)算所述待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到所述各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率。

優(yōu)選地,上述方法進(jìn)一步包括:構(gòu)建專用緩存集群,并設(shè)置價(jià)值閾值;

在判斷出各個(gè)緩存介質(zhì)全部滿足所述轉(zhuǎn)移條件之后,在所述將所述待轉(zhuǎn)移對(duì)象直接存儲(chǔ)到本地存儲(chǔ)硬盤之前,進(jìn)一步包括:

確定所述待轉(zhuǎn)移對(duì)象的價(jià)值,并判斷所述待轉(zhuǎn)移對(duì)象的價(jià)值是否大于等于所述價(jià)值閾值,如果是,則將所述待轉(zhuǎn)移對(duì)象溢出到所述專用緩存集群;否則,執(zhí)行所述將所述待轉(zhuǎn)移對(duì)象直接存儲(chǔ)到本地存儲(chǔ)硬盤。

一種分布式緩存的裝置,包括:

構(gòu)建設(shè)置單元,用于構(gòu)建外設(shè)的各個(gè)緩存介質(zhì)之間的關(guān)聯(lián)關(guān)系,并為所述外設(shè)的各個(gè)緩存介質(zhì)設(shè)置轉(zhuǎn)移條件;

確定單元,用于在外設(shè)的各個(gè)緩存介質(zhì)中,為目標(biāo)緩存對(duì)象確定根緩存介質(zhì);

計(jì)算轉(zhuǎn)移緩存單元,用于判斷所述確定單元確定的根緩存介質(zhì)是否滿足所述構(gòu)建設(shè)置單元設(shè)置的轉(zhuǎn)移條件,如果是,則為所述確定單元確定的根緩存介質(zhì)確定待轉(zhuǎn)移對(duì)象,計(jì)算所述待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到所述外設(shè)的各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率,根據(jù)所述概率,確定目標(biāo)緩存介質(zhì),根據(jù)所述構(gòu)建設(shè)置單元構(gòu)建的關(guān)聯(lián)關(guān)系,將所述待轉(zhuǎn)移對(duì)象緩存到所述目標(biāo)緩存介質(zhì);否則,直接將所述目標(biāo)緩存對(duì)象緩存到所述確定單元確定的根緩存介質(zhì)。

優(yōu)選地,所述計(jì)算轉(zhuǎn)移緩存單元,包括:計(jì)算距離子單元、計(jì)算價(jià)值子單元和計(jì)算概率子單元,其中,

所述計(jì)算距離子單元,用于接收外設(shè)的監(jiān)控設(shè)備發(fā)送的任意兩個(gè)外設(shè)的緩存介質(zhì)之間交換機(jī)的個(gè)數(shù),根據(jù)下述計(jì)算公式(3),計(jì)算所述任意兩個(gè)緩存介質(zhì)之間的距離:

Dkw=βNkw (3)

其中,Dkw表征緩存介質(zhì)k和緩存介質(zhì)w之間的距離;β表征距離常數(shù);Nkw表征緩存介質(zhì)k和緩存介質(zhì)w之間交換機(jī)的個(gè)數(shù);并根據(jù)所述任意兩個(gè)外設(shè)的緩存介質(zhì)之間的距離,確定所述根緩存介質(zhì)到所述每一個(gè)緩存介質(zhì)的距離;

所述計(jì)算價(jià)值子單元,用于為各個(gè)緩存介質(zhì)分配守護(hù)進(jìn)程,通過(guò)所述守護(hù)進(jìn)程確定所述外設(shè)的各個(gè)緩存介質(zhì)中緩存對(duì)象的價(jià)值,根據(jù)下述計(jì)算公式(1)和所述計(jì)算距離子單元確定的根緩存介質(zhì)到所述每一個(gè)緩存介質(zhì)的距離,計(jì)算外設(shè)的每一個(gè)緩存介質(zhì)的價(jià)值;

<mrow> <msub> <mi>V</mi> <mi>j</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mo>&Sigma;</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <msub> <mi>C</mi> <mi>i</mi> </msub> </mrow> <msub> <mi>C</mi> <mi>j</mi> </msub> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

其中,Vj表征緩存介質(zhì)j的價(jià)值;vi表征緩存介質(zhì)j中緩存的緩存對(duì)象i的價(jià)值,Ci表征緩存介質(zhì)j中緩存的緩存對(duì)象i的數(shù)據(jù)量大?。?/p>

所述計(jì)算概率子單元,用于根據(jù)下述計(jì)算公式(2)和所述計(jì)算價(jià)值子單元計(jì)算的外設(shè)的每一個(gè)緩存介質(zhì)的價(jià)值,計(jì)算所述待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到所述各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率;

<mrow> <msub> <mi>&theta;</mi> <mrow> <mi>m</mi> <mi>n</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mi>a</mi> <msub> <mi>D</mi> <mrow> <mi>m</mi> <mi>n</mi> </mrow> </msub> </mfrac> <mrow> <mo>(</mo> <msub> <mi>V</mi> <mi>m</mi> </msub> <mo>-</mo> <msub> <mi>V</mi> <mi>n</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

其中,θmn表征根緩存介質(zhì)m的待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到緩存介質(zhì)n的概率;Dmn表征根緩存介質(zhì)m到緩存介質(zhì)n的距離;a表征轉(zhuǎn)移系數(shù);Vm表征根緩存介質(zhì)m的價(jià)值;Vn表征緩存介質(zhì)n的價(jià)值。

優(yōu)選地,所述計(jì)算轉(zhuǎn)移緩存單元,包括:設(shè)置子單元、轉(zhuǎn)化劃分子單元和計(jì)算確定子單元,其中,

所述設(shè)置子單元,用于設(shè)置(0,1)區(qū)間內(nèi)的等概率隨機(jī)函數(shù)rand();

所述轉(zhuǎn)化劃分子單元,用于將所述待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到所述外設(shè)的各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率轉(zhuǎn)化為(0,1)區(qū)間內(nèi)的各個(gè)線段長(zhǎng)度比;根據(jù)所述各個(gè)線段長(zhǎng)度比,將所述(0,1)區(qū)間劃分為至少兩個(gè)子區(qū)間;

所述計(jì)算確定子單元,用于利用所述設(shè)置子單元設(shè)置的隨機(jī)函數(shù)rand(),計(jì)算出一個(gè)數(shù)值,確定所述數(shù)值屬于的所述轉(zhuǎn)化劃分子單元?jiǎng)澐殖龅哪繕?biāo)子區(qū)間,并根據(jù)所述目標(biāo)子區(qū)間,確定目標(biāo)概率對(duì)應(yīng)的目標(biāo)緩存介質(zhì)。

優(yōu)選地,所述計(jì)算轉(zhuǎn)移緩存單元,包括:第一判斷子單元、第二判斷子單元、計(jì)算概率子單元和溢出子單元,其中,

所述第一判斷子單元,用于判斷各個(gè)緩存介質(zhì)是否全部滿足所述轉(zhuǎn)移條件,如果是,則觸發(fā)所述第二判斷子單元,否則,觸發(fā)所述計(jì)算概率子單元;

所述第二判斷子單元,用于設(shè)置價(jià)值閾值,在接收到所述第一判斷子單元的觸發(fā)時(shí),判斷所述待轉(zhuǎn)移對(duì)象的價(jià)值是否大于等于所述價(jià)值閾值,如果是,則觸發(fā)所述溢出子單元;否則,將所述待轉(zhuǎn)移對(duì)象直接發(fā)送給外設(shè)的本地存儲(chǔ)硬盤;

所述計(jì)算概率子單元,用于在接收到所述第一判斷子單元的觸發(fā)時(shí),計(jì)算所述待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到所述外設(shè)的各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率;

所述溢出子單元,用于在接收到所述第二判斷單元的觸發(fā)時(shí),將所述待轉(zhuǎn)移對(duì)象溢出到外設(shè)的專用緩存集群。

一種分布式緩存的系統(tǒng),包括:至少兩個(gè)虛塊設(shè)備、至少一個(gè)交換機(jī)、奇數(shù)個(gè)監(jiān)控設(shè)備、上述任一所述的分布式緩存的裝置及專用緩存集群,其中,

所述至少兩個(gè)虛塊設(shè)備中,每一個(gè)虛塊設(shè)備包括:一個(gè)緩存介質(zhì)和與所述緩存介質(zhì)相連的至少一個(gè)存儲(chǔ)硬盤;

所述至少一個(gè)交換機(jī),用于連通所述至少兩個(gè)虛塊設(shè)備;

所述奇數(shù)個(gè)監(jiān)控設(shè)備中,每一個(gè)監(jiān)控設(shè)備,用于連接至少一個(gè)虛塊設(shè)備,監(jiān)控連接的虛塊設(shè)備中緩存介質(zhì)的容量和連接的虛塊設(shè)備間交換機(jī)的個(gè)數(shù),并將所述緩存介質(zhì)的容量和交換機(jī)的個(gè)數(shù)發(fā)送給所述分布式緩存的裝置;

所述分布式緩存的裝置,用于為每一個(gè)緩存介質(zhì)分配守護(hù)進(jìn)程,并觸發(fā)所述守護(hù)進(jìn)程,并接收所述奇數(shù)個(gè)監(jiān)控設(shè)備中任意監(jiān)控設(shè)備發(fā)送的緩存介質(zhì)的容量和交換機(jī)的個(gè)數(shù),并獲取每一個(gè)緩存介質(zhì)的守護(hù)進(jìn)程生成的緩存對(duì)象的價(jià)值;

每一個(gè)緩存介質(zhì)的守護(hù)進(jìn)程,用于在接收到所述分布式緩存的裝置的觸發(fā)時(shí),記錄緩存對(duì)象的訪問(wèn)信息和緩存對(duì)象的位置,根據(jù)所述緩存對(duì)象的位置,為所在的緩存介質(zhì)與所述至少一個(gè)存儲(chǔ)硬盤之間傳輸緩存對(duì)象,并為所在的緩存介質(zhì)與所述專用緩存集群之間傳輸緩存對(duì)象,并為每一個(gè)緩存對(duì)象生成對(duì)應(yīng)的價(jià)值。

本發(fā)明實(shí)施例提供了一種分布式緩存的方法、裝置和系統(tǒng),該方法通過(guò)構(gòu)建各個(gè)緩存介質(zhì)之間的關(guān)聯(lián)關(guān)系,并為各個(gè)緩存介質(zhì)設(shè)置轉(zhuǎn)移條件,在各個(gè)緩存介質(zhì)中,為目標(biāo)緩存對(duì)象確定根緩存介質(zhì);判斷根緩存介質(zhì)是否滿足轉(zhuǎn)移條件,如果是,則為根緩存介質(zhì)確定待轉(zhuǎn)移對(duì)象,計(jì)算待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率,根據(jù)概率,確定目標(biāo)緩存介質(zhì),根據(jù)關(guān)聯(lián)關(guān)系,將待轉(zhuǎn)移對(duì)象緩存到目標(biāo)緩存介質(zhì);否則,直接將目標(biāo)緩存對(duì)象緩存到根緩存介質(zhì),通過(guò)上述過(guò)程使得緩存介質(zhì)滿足轉(zhuǎn)移條件如達(dá)到一定存儲(chǔ)率等,在緩存介質(zhì)中確定出待轉(zhuǎn)移對(duì)象,從而避免某一緩存介質(zhì)負(fù)載過(guò)大,實(shí)現(xiàn)了分布式緩存均衡。

附圖說(shuō)明

為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1是本發(fā)明一個(gè)實(shí)施例提供的一種分布式緩存的方法的流程圖;

圖2是本發(fā)明另一個(gè)實(shí)施例提供的一種分布式緩存的方法的流程圖;

圖3是本發(fā)明實(shí)施例提供的分布式緩存的裝置所在架構(gòu)的結(jié)構(gòu)示意圖;

圖4是本發(fā)明一個(gè)實(shí)施例提供的一種分布式緩存的裝置的結(jié)構(gòu)示意圖;

圖5是本發(fā)明另一個(gè)實(shí)施例提供的一種分布式緩存的裝置的結(jié)構(gòu)示意圖;

圖6是本發(fā)明又一個(gè)實(shí)施例提供的一種分布式緩存的裝置的結(jié)構(gòu)示意圖;

圖7是本發(fā)明另一個(gè)實(shí)施例提供的一種分布式緩存的裝置的結(jié)構(gòu)示意圖;

圖8是本發(fā)明一個(gè)實(shí)施例提供的一種分布式緩存的系統(tǒng)的結(jié)構(gòu)示意圖。

具體實(shí)施方式

為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

如圖1所示,本發(fā)明實(shí)施例提供了一種分布式緩存的方法,該方法可以包括以下步驟:

步驟101:構(gòu)建各個(gè)緩存介質(zhì)之間的關(guān)聯(lián)關(guān)系,并為各個(gè)緩存介質(zhì)設(shè)置轉(zhuǎn)移條件;

步驟102:在各個(gè)緩存介質(zhì)中,為目標(biāo)緩存對(duì)象確定根緩存介質(zhì);

步驟103:判斷根緩存介質(zhì)是否滿足轉(zhuǎn)移條件,如果是,則執(zhí)行步驟104;否則,執(zhí)行步驟108;

步驟104:為根緩存介質(zhì)確定待轉(zhuǎn)移對(duì)象;

步驟105:計(jì)算待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率;

步驟106:根據(jù)概率,確定目標(biāo)緩存介質(zhì);

步驟107:根據(jù)關(guān)聯(lián)關(guān)系,將待轉(zhuǎn)移對(duì)象緩存到目標(biāo)緩存介質(zhì),并結(jié)束當(dāng)前流程;

步驟108:直接將目標(biāo)緩存對(duì)象緩存到根緩存介質(zhì)。

在圖1所示的實(shí)施例中,通過(guò)構(gòu)建各個(gè)緩存介質(zhì)之間的關(guān)聯(lián)關(guān)系,并為各個(gè)緩存介質(zhì)設(shè)置轉(zhuǎn)移條件,在各個(gè)緩存介質(zhì)中,為目標(biāo)緩存對(duì)象確定根緩存介質(zhì);判斷根緩存介質(zhì)是否滿足轉(zhuǎn)移條件,如果是,則為根緩存介質(zhì)確定待轉(zhuǎn)移對(duì)象,計(jì)算待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率,根據(jù)概率,確定目標(biāo)緩存介質(zhì),根據(jù)關(guān)聯(lián)關(guān)系,將待轉(zhuǎn)移對(duì)象緩存到目標(biāo)緩存介質(zhì);否則,直接將目標(biāo)緩存對(duì)象緩存到根緩存介質(zhì),通過(guò)上述過(guò)程使得緩存介質(zhì)滿足轉(zhuǎn)移條件如達(dá)到一定存儲(chǔ)率等,在緩存介質(zhì)中確定出待轉(zhuǎn)移對(duì)象,從而避免某一緩存介質(zhì)負(fù)載過(guò)大,實(shí)現(xiàn)了分布式緩存均衡。

在本發(fā)明一個(gè)實(shí)施例中,為了進(jìn)一步提高緩存均衡,同時(shí)保證轉(zhuǎn)移的效率,設(shè)計(jì)緩存介質(zhì)的概率與其自身的價(jià)值和距離根緩存介質(zhì)的大小有關(guān),上述方法進(jìn)一步包括:為各個(gè)緩存介質(zhì)分配守護(hù)進(jìn)程,通過(guò)所述守護(hù)進(jìn)程確定所述各個(gè)緩存介質(zhì)中緩存對(duì)象的價(jià)值以及任意兩個(gè)緩存介質(zhì)之間的距離;步驟105的具體實(shí)施方式,包括:根據(jù)任意兩個(gè)緩存介質(zhì)之間的距離,確定根緩存介質(zhì)到每一個(gè)緩存介質(zhì)的距離;

根據(jù)下述計(jì)算公式(1),計(jì)算每一個(gè)緩存介質(zhì)的價(jià)值;

<mrow> <msub> <mi>V</mi> <mi>j</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mo>&Sigma;</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <msub> <mi>C</mi> <mi>i</mi> </msub> </mrow> <msub> <mi>C</mi> <mi>j</mi> </msub> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

其中,Vj表征緩存介質(zhì)j的價(jià)值;vi表征緩存介質(zhì)j中緩存的緩存對(duì)象i的價(jià)值,Ci表征緩存介質(zhì)j中緩存的緩存對(duì)象i的數(shù)據(jù)量大小;

根據(jù)下述計(jì)算公式(2),計(jì)算待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率;

<mrow> <msub> <mi>&theta;</mi> <mrow> <mi>m</mi> <mi>n</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mi>a</mi> <msub> <mi>D</mi> <mrow> <mi>m</mi> <mi>n</mi> </mrow> </msub> </mfrac> <mrow> <mo>(</mo> <msub> <mi>V</mi> <mi>m</mi> </msub> <mo>-</mo> <msub> <mi>V</mi> <mi>n</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

其中,θmn表征根緩存介質(zhì)m的待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到緩存介質(zhì)n的概率;Dmn表征根緩存介質(zhì)m到緩存介質(zhì)n的距離;a表征轉(zhuǎn)移系數(shù);Vm表征根緩存介質(zhì)m的價(jià)值;Vn表征緩存介質(zhì)n的價(jià)值。例如:緩存介質(zhì)1需要轉(zhuǎn)移其緩存的待轉(zhuǎn)移對(duì)象a,假設(shè)緩存介質(zhì)1到緩存介質(zhì)2的距離為1,到緩存介質(zhì)3的距離為2等等,同時(shí)通過(guò)計(jì)算公式(1)計(jì)算得到的緩存介質(zhì)1的價(jià)值為V1,緩存介質(zhì)2的價(jià)值和緩存介質(zhì)3的價(jià)值相等即V2=V3,那么,V1-V2=V1-V3,通過(guò)公式(2)可知,待轉(zhuǎn)移對(duì)象a轉(zhuǎn)移到緩存介質(zhì)2的概率為a(V1-V2),待轉(zhuǎn)移對(duì)象a轉(zhuǎn)移到緩存介質(zhì)3的概率為[a(V1-V2)]/2,即待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到緩存介質(zhì)2的概率大于待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到緩存介質(zhì)3的概率,另外,當(dāng)緩存介質(zhì)間距離相同時(shí),緩存介質(zhì)間價(jià)值差越大,概率越高,即概率與緩存介質(zhì)間距離成反比,與緩存介質(zhì)間的價(jià)值差成正比,通過(guò)該過(guò)程能夠選擇比較合適的緩存介質(zhì)接收待轉(zhuǎn)移對(duì)象,從而進(jìn)一步實(shí)現(xiàn)分布式緩存均衡。

在本發(fā)明一個(gè)實(shí)施例中,為了保障緩存對(duì)象的轉(zhuǎn)移效率,并使概率計(jì)算更加準(zhǔn)確,確定各個(gè)緩存介質(zhì)中任意兩個(gè)緩存介質(zhì)之間的距離的具體實(shí)施方式,包括:統(tǒng)計(jì)各個(gè)緩存介質(zhì)中任意兩個(gè)緩存介質(zhì)之間交換機(jī)的個(gè)數(shù),根據(jù)下述計(jì)算公式(3),計(jì)算任意兩個(gè)緩存介質(zhì)之間的距離:

Dkw=βNkw (3)

其中,Dkw表征緩存介質(zhì)k和緩存介質(zhì)w之間的距離;β表征距離常數(shù);Nkw表征緩存介質(zhì)k和緩存介質(zhì)w之間交換機(jī)的個(gè)數(shù),由于分布式緩存系統(tǒng)中,對(duì)于同一個(gè)服務(wù)器中的緩存介質(zhì)能夠直接相連,而對(duì)于不同的服務(wù)器中的緩存介質(zhì)往往通過(guò)交換機(jī)轉(zhuǎn)移緩存對(duì)象,而交換機(jī)的個(gè)數(shù)將直接影響緩存對(duì)象的專利速率,因此,本發(fā)明實(shí)施例以緩存介質(zhì)間交換機(jī)的個(gè)數(shù)來(lái)表征緩存介質(zhì)間的距離,并將其作為計(jì)算概率的一個(gè)參數(shù),能夠保證待轉(zhuǎn)移對(duì)象的轉(zhuǎn)移效率的同時(shí),實(shí)現(xiàn)緩存均衡。

在本發(fā)明一個(gè)實(shí)施例中,為了使緩存對(duì)象轉(zhuǎn)移更加合理,保證各個(gè)緩存介質(zhì)負(fù)載均衡,上述方法進(jìn)一步包括:設(shè)置(0,1)區(qū)間內(nèi)的等概率隨機(jī)函數(shù)rand();步驟106的具體實(shí)施方式,包括:將待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率轉(zhuǎn)化為(0,1)區(qū)間內(nèi)的各個(gè)線段長(zhǎng)度比,根據(jù)各個(gè)線段長(zhǎng)度比,將(0,1)區(qū)間劃分為至少兩個(gè)子區(qū)間,利用隨機(jī)函數(shù)rand(),計(jì)算出一個(gè)數(shù)值,確定數(shù)值屬于的目標(biāo)子區(qū)間,并根據(jù)目標(biāo)子區(qū)間,確定目標(biāo)概率對(duì)應(yīng)的目標(biāo)緩存介質(zhì);或者,在待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到每一個(gè)緩存介質(zhì)的概率中確定出最大概率,確定最大概率對(duì)應(yīng)的緩存介質(zhì)為目標(biāo)緩存介質(zhì)。例如:緩存介質(zhì)1中待轉(zhuǎn)移對(duì)象a轉(zhuǎn)移到緩存介質(zhì)2中的概率為0.5,轉(zhuǎn)移到緩存介質(zhì)3中的概率為0.1,轉(zhuǎn)移到緩存介質(zhì)4中的概率為0.3,轉(zhuǎn)移到緩存介質(zhì)5中的概率為0.1,將這些概率值轉(zhuǎn)換為對(duì)應(yīng)的線段長(zhǎng)度比,即線段分別為0-0.5、0.5-0.6、0.6-0.9、0.9-1;其組成0-1的線段,通過(guò)等概率隨機(jī)函數(shù)rand()計(jì)算一個(gè)數(shù)值,該數(shù)值如果落到0-0.5,則將待轉(zhuǎn)移對(duì)象a轉(zhuǎn)移到緩存介質(zhì)2;如果該數(shù)值落到0.5-0.6,則將待轉(zhuǎn)移對(duì)象a轉(zhuǎn)移到緩存介質(zhì)3等等,其中,等概率隨機(jī)函數(shù)rand()可以根據(jù)當(dāng)前時(shí)間或者是硬件屬性等等得到一個(gè)數(shù)值。

在本發(fā)明一個(gè)實(shí)施例中,為了避免任意一個(gè)緩存介質(zhì)超負(fù)載,在步驟104之后,在步驟105之前,進(jìn)一步包括:判斷各個(gè)緩存介質(zhì)是否全部滿足轉(zhuǎn)移條件,如果是,則將待轉(zhuǎn)移對(duì)象直接存儲(chǔ)到本地存儲(chǔ)硬盤,否則,執(zhí)行步驟105。為了避免分布式緩存中任意緩存介質(zhì)超負(fù)載,在進(jìn)行轉(zhuǎn)移之前,還需要判斷各個(gè)緩存介質(zhì)是否全部滿足轉(zhuǎn)移條件,例如:緩存介質(zhì)2中待轉(zhuǎn)移對(duì)象b的本地緩存為緩存介質(zhì)1,那么,當(dāng)各個(gè)緩存介質(zhì)均被存滿,則將待轉(zhuǎn)移對(duì)象b存儲(chǔ)到緩存介質(zhì)1對(duì)應(yīng)的硬盤中。

在本發(fā)明一個(gè)實(shí)施例中,為了提高緩存率,實(shí)現(xiàn)緩存擴(kuò)展,上述方法進(jìn)一步包括:構(gòu)建專用緩存集群,并設(shè)置價(jià)值閾值;在判斷出各個(gè)緩存介質(zhì)全部滿足轉(zhuǎn)移條件之后,在將待轉(zhuǎn)移對(duì)象直接存儲(chǔ)到本地存儲(chǔ)硬盤之前,進(jìn)一步包括:確定待轉(zhuǎn)移對(duì)象的價(jià)值,并判斷待轉(zhuǎn)移對(duì)象的價(jià)值是否大于等于價(jià)值閾值,如果是,則將待轉(zhuǎn)移對(duì)象溢出到專用緩存集群;否則,執(zhí)行將待轉(zhuǎn)移對(duì)象直接存儲(chǔ)到本地存儲(chǔ)硬盤,當(dāng)待轉(zhuǎn)移對(duì)象價(jià)值大于價(jià)值閾值說(shuō)明該待轉(zhuǎn)移對(duì)象被訪問(wèn)頻率或者最后一次訪問(wèn)時(shí)間離當(dāng)前時(shí)間較近,如果直接將該價(jià)值高于價(jià)值閾值的待轉(zhuǎn)移對(duì)象直接存儲(chǔ)到本地硬盤,則可能導(dǎo)致訪問(wèn)該待轉(zhuǎn)移對(duì)象的效率降低,因此,本發(fā)明將其轉(zhuǎn)移到專用的緩存集群中,另外該專用的緩存集群獨(dú)立存在于一個(gè)或多個(gè)服務(wù)器中,能夠通過(guò)增加緩存介質(zhì)擴(kuò)展緩存容量。

在本發(fā)明一個(gè)實(shí)施例中,轉(zhuǎn)移條件包括:為各個(gè)緩存介質(zhì)設(shè)置存儲(chǔ)率閾值,緩存介質(zhì)當(dāng)前的存儲(chǔ)率達(dá)到存儲(chǔ)率閾值;或者,設(shè)置緩存介質(zhì)間的價(jià)值差閾值,緩存介質(zhì)間價(jià)值差大于設(shè)置的價(jià)值差閾值。例如:設(shè)置存儲(chǔ)率閾值為緩存介質(zhì)存儲(chǔ)容量的70%,則當(dāng)緩存介質(zhì)1的存儲(chǔ)率達(dá)到70%,則該緩存介質(zhì)1達(dá)到了轉(zhuǎn)移條件,當(dāng)該緩存介質(zhì)1再接收到目標(biāo)緩存對(duì)象時(shí),則需要為該緩存介質(zhì)1確定轉(zhuǎn)移對(duì)象,將轉(zhuǎn)移對(duì)象轉(zhuǎn)移,以確保緩存介質(zhì)1的存儲(chǔ)率在70%以內(nèi)。又比如:設(shè)置緩存介質(zhì)1和緩存介質(zhì)2間的價(jià)值差閾值為10,而且當(dāng)緩存介質(zhì)間的距離增大,該價(jià)值差閾值也應(yīng)該調(diào)大,即當(dāng)緩存介質(zhì)1和緩存介質(zhì)2的價(jià)值差達(dá)到10時(shí),則需要將存儲(chǔ)率高的緩存介質(zhì)中的部分緩存對(duì)象進(jìn)行轉(zhuǎn)移,以保證緩存介質(zhì)間的均衡,同時(shí)避免微小的不平衡而導(dǎo)致頻繁進(jìn)行緩存轉(zhuǎn)移而降低效率。

在本發(fā)明一個(gè)實(shí)施例中,緩存介質(zhì)包括:固態(tài)硬盤(SSD)或機(jī)械式硬盤中的任意一種或多種。

在本發(fā)明一個(gè)實(shí)施例中,確定待轉(zhuǎn)移對(duì)象的價(jià)值的具體實(shí)施方式,包括:確定當(dāng)前時(shí)間及目標(biāo)緩存對(duì)象和根緩存介質(zhì)中每一個(gè)緩存對(duì)象的最后一次訪問(wèn)的訪問(wèn)時(shí)間戳;

根據(jù)下述計(jì)算公式(4),計(jì)算目標(biāo)緩存對(duì)象和所述根緩存介質(zhì)中每一個(gè)緩存對(duì)象的價(jià)值;

vi=|ti-t| (4)

其中,vi表征緩存對(duì)象i的緩存價(jià)值;ti表征緩存對(duì)象i最后一次訪問(wèn)的訪問(wèn)時(shí)間戳;t表征當(dāng)前時(shí)間;

將目標(biāo)緩存對(duì)象及根緩存介質(zhì)中每一個(gè)緩存對(duì)象之間進(jìn)行對(duì)比,確定價(jià)值最小的緩存對(duì)象為待轉(zhuǎn)移對(duì)象;通過(guò)該發(fā)明實(shí)施例計(jì)算得到的緩存對(duì)象價(jià)值主要與訪問(wèn)時(shí)間有關(guān),最后一次訪問(wèn)緩存對(duì)象時(shí)間越靠近當(dāng)前時(shí)間,緩存對(duì)象的價(jià)值越高。

在本發(fā)明一個(gè)實(shí)施例中,確定待轉(zhuǎn)移對(duì)象的價(jià)值的具體實(shí)施方式,包括:確定目標(biāo)緩存對(duì)象和所述根緩存介質(zhì)中每一個(gè)緩存對(duì)象的訪問(wèn)頻率;根據(jù)下述計(jì)算公式(5),計(jì)算目標(biāo)緩存對(duì)象和根緩存介質(zhì)中每一個(gè)緩存對(duì)象的價(jià)值;

vi=αpi (5)

其中,vi表征緩存對(duì)象i的緩存價(jià)值;α表征價(jià)值常數(shù);pi表征緩存對(duì)象i的訪問(wèn)頻率;

將目標(biāo)緩存對(duì)象及根緩存介質(zhì)中每一個(gè)緩存對(duì)象之間進(jìn)行對(duì)比,確定價(jià)值最小的緩存對(duì)象為待轉(zhuǎn)移對(duì)象。通過(guò)該發(fā)明實(shí)施例計(jì)算得到的緩存對(duì)象價(jià)值主要與訪問(wèn)頻率有關(guān),訪問(wèn)頻率越高的緩存對(duì)象,價(jià)值越高。

下面以固態(tài)硬盤(SSD)作為緩存介質(zhì),展開說(shuō)明分布式緩存的方法,如圖2所示,該方法可以包括以下步驟:

步驟200:為各個(gè)SSD分配守護(hù)進(jìn)程;

步驟201:設(shè)置(0,1)區(qū)間內(nèi)的等概率隨機(jī)函數(shù)rand(),構(gòu)建專用緩存集群,并設(shè)置價(jià)值閾值;

該等概率隨機(jī)函數(shù)rand()可以根據(jù)當(dāng)前時(shí)間或者是硬件屬性等等得到一個(gè)數(shù)值,使得得到的數(shù)值落到(0,1)區(qū)間中任意一點(diǎn)的概率相等,該專用緩存集群主要是為了緩存當(dāng)各個(gè)SSD均被存滿或達(dá)到轉(zhuǎn)移條件時(shí),轉(zhuǎn)移出的大于價(jià)值閾值的緩存對(duì)象。

步驟202:構(gòu)建各個(gè)SSD之間的關(guān)聯(lián)關(guān)系,并為各個(gè)SSD設(shè)置轉(zhuǎn)移條件;

在該步驟中,各個(gè)SSD之間主要通過(guò)交換機(jī)關(guān)聯(lián),該步驟設(shè)置的轉(zhuǎn)移條件包括:為各個(gè)緩存介質(zhì)設(shè)置存儲(chǔ)率閾值,緩存介質(zhì)當(dāng)前的存儲(chǔ)率達(dá)到存儲(chǔ)率閾值;或者,設(shè)置緩存介質(zhì)間的價(jià)值差閾值,緩存介質(zhì)間價(jià)值差大于設(shè)置的價(jià)值差閾值。以當(dāng)存儲(chǔ)率達(dá)到存儲(chǔ)閾值為例說(shuō)明轉(zhuǎn)移條件,例如:設(shè)置存儲(chǔ)率閾值為緩存介質(zhì)存儲(chǔ)容量的70%,則當(dāng)緩存介質(zhì)1的存儲(chǔ)率達(dá)到70%,則該緩存介質(zhì)1達(dá)到了轉(zhuǎn)移條件,當(dāng)該緩存介質(zhì)1再接收到目標(biāo)緩存對(duì)象時(shí),則需要為該緩存介質(zhì)1確定轉(zhuǎn)移對(duì)象,將轉(zhuǎn)移對(duì)象轉(zhuǎn)移,以確保緩存介質(zhì)1的存儲(chǔ)率在70%以內(nèi)。

步驟203:通過(guò)守護(hù)進(jìn)程實(shí)時(shí)確定各個(gè)SSD中緩存對(duì)象的價(jià)值以及任意兩個(gè)SSD之間的距離;

在該步驟中,確定各個(gè)SSD中緩存對(duì)象的價(jià)值的方式主要有兩種,其中,

方式一:統(tǒng)計(jì)緩存對(duì)象最后一次訪問(wèn)時(shí)間,通過(guò)下述計(jì)算公式(4),計(jì)算得到每一個(gè)緩存對(duì)象的價(jià)值;

vi=|ti-t| (4)

其中,vi表征緩存對(duì)象i的緩存價(jià)值;ti表征緩存對(duì)象i最后一次訪問(wèn)的訪問(wèn)時(shí)間戳;t表征當(dāng)前時(shí)間;

方式二:統(tǒng)計(jì)緩存對(duì)象的訪問(wèn)頻率,通過(guò)下述計(jì)算公式(5),計(jì)算得到每一個(gè)緩存對(duì)象的價(jià)值;

vi=αpi (5)

其中,vi表征緩存對(duì)象i的緩存價(jià)值;α表征價(jià)值常數(shù);pi表征緩存對(duì)象i的訪問(wèn)頻率。

同時(shí)確定緩存對(duì)象的價(jià)值越高,其被保留在本地緩存的概率越高,反之,緩存對(duì)象的價(jià)值較低,其被轉(zhuǎn)移的概率越高。

該任意兩個(gè)SSD之間的距離可以通過(guò)下述計(jì)算公式(3)得到,

Dkw=βNkw (3)

其中,Dkw表征緩存介質(zhì)k和緩存介質(zhì)w之間的距離;β表征距離常數(shù);Nkw表征緩存介質(zhì)k和緩存介質(zhì)w之間交換機(jī)的個(gè)數(shù),由于分布式緩存系統(tǒng)中,對(duì)于同一個(gè)服務(wù)器中的緩存介質(zhì)能夠直接相連,而對(duì)于不同的服務(wù)器中的緩存介質(zhì)往往通過(guò)交換機(jī)轉(zhuǎn)移緩存對(duì)象,而交換機(jī)的個(gè)數(shù)將直接影響緩存對(duì)象的專利速率,因此,本發(fā)明實(shí)施例以緩存介質(zhì)間交換機(jī)的個(gè)數(shù)來(lái)表征緩存介質(zhì)間的距離,并將其作為計(jì)算概率的一個(gè)參數(shù),能夠保證待轉(zhuǎn)移對(duì)象的轉(zhuǎn)移效率的同時(shí),實(shí)現(xiàn)緩存均衡。

步驟204:在各個(gè)SSD中,為目標(biāo)緩存對(duì)象確定根SSD;

在本發(fā)明實(shí)施例中,設(shè)置一個(gè)SSD與幾個(gè)存儲(chǔ)硬盤相連,作為該幾個(gè)存儲(chǔ)硬盤的緩存,則該SSD即為該幾個(gè)存儲(chǔ)硬盤的根SSD,例如:在服務(wù)器1中,SSD1與存儲(chǔ)硬盤1、存儲(chǔ)硬盤2和存儲(chǔ)硬盤3相連,SSD2與存儲(chǔ)硬盤4、存儲(chǔ)硬盤5和存儲(chǔ)硬盤6相連,則SSD1為存儲(chǔ)硬盤1、存儲(chǔ)硬盤2和存儲(chǔ)硬盤3的根SSD;SSD2為存儲(chǔ)硬盤4、存儲(chǔ)硬盤5和存儲(chǔ)硬盤6的根SSD;在該步驟中,通過(guò)確定目標(biāo)緩存對(duì)象對(duì)應(yīng)的存儲(chǔ)硬盤,即可確定根SSD,如:訪問(wèn)存儲(chǔ)硬盤1中的數(shù)據(jù),則該數(shù)據(jù)對(duì)應(yīng)的緩存對(duì)象的根根SSD即為SSD1。

步驟205:判斷根SSD是否滿足轉(zhuǎn)移條件,如果是,則執(zhí)行步驟206;否則,執(zhí)行步驟222;

以轉(zhuǎn)移條件為存儲(chǔ)率大于存儲(chǔ)量的70%為例,該步驟通過(guò)判斷根SSD的存儲(chǔ)率是否大于等于70%,來(lái)確定是否轉(zhuǎn)移對(duì)象或者直接存儲(chǔ)目標(biāo)緩存對(duì)象。

步驟206:為根SSD確定待轉(zhuǎn)移對(duì)象;

該步驟主要根據(jù)步驟203確定的根SSD中當(dāng)前各個(gè)緩存對(duì)象的價(jià)值來(lái)確定,即選擇價(jià)值最低的緩存對(duì)象為待轉(zhuǎn)移對(duì)象。例如:步驟204確定的根SSD緩存有緩存對(duì)象1、緩存對(duì)象2、緩存對(duì)象3、……、緩存對(duì)象N,外加待緩存對(duì)象,其中,緩存對(duì)象3的價(jià)值最低,則確定待轉(zhuǎn)移對(duì)象為緩存對(duì)象3。通過(guò)該過(guò)程表明緩存對(duì)象的價(jià)值越高越應(yīng)該被保留在根SSD中,價(jià)值低的被轉(zhuǎn)移到其他SSD中,甚至轉(zhuǎn)移到專用緩存集群或者本地存儲(chǔ)硬盤中,實(shí)現(xiàn)全局緩存資源的利用最大化。

步驟207:判斷各個(gè)SSD是否全部滿足轉(zhuǎn)移條件,如果是,則執(zhí)行步驟步驟208,否則,執(zhí)行步驟213;

仍以轉(zhuǎn)移條件為存儲(chǔ)率大于存儲(chǔ)量的70%為例,該步驟通過(guò)判斷分布式緩存中所有的SSD的存儲(chǔ)率是否全部大于等于70%,來(lái)確定待轉(zhuǎn)移對(duì)象的轉(zhuǎn)移方向。

步驟208:判斷待轉(zhuǎn)移對(duì)象的價(jià)值是否大于等于價(jià)值閾值,如果是,則執(zhí)行步驟209,否則,執(zhí)行步驟211;

當(dāng)待轉(zhuǎn)移對(duì)象的價(jià)值大于等于價(jià)值閾值時(shí),說(shuō)明該待轉(zhuǎn)移對(duì)象訪問(wèn)還比較頻繁,則將該待轉(zhuǎn)移對(duì)象緩存到專用緩存集群中,以方便訪問(wèn)。

步驟209:將待轉(zhuǎn)移對(duì)象溢出到專用緩存集群;

步驟210:確定專用緩存集群中價(jià)值小于價(jià)值閾值的緩存對(duì)象,將價(jià)值小于價(jià)值閾值的緩存對(duì)象作為待轉(zhuǎn)移對(duì)象,執(zhí)行步驟204;

步驟211:將待轉(zhuǎn)移對(duì)象直接存儲(chǔ)到本地存儲(chǔ)硬盤;

例如:SSD2中待轉(zhuǎn)移對(duì)象b的本地緩存為SSD1,那么,當(dāng)各個(gè)SSD均被存滿,且待緩存對(duì)象的價(jià)值小于價(jià)值閾值,則將待轉(zhuǎn)移對(duì)象b存儲(chǔ)到SSD1對(duì)應(yīng)的硬盤中。

步驟212:確定本地硬盤中價(jià)值升高的對(duì)象,將價(jià)值升高的對(duì)象作為待轉(zhuǎn)移對(duì)象,執(zhí)行步驟204;

在該步驟中,當(dāng)本地存儲(chǔ)硬盤中存儲(chǔ)的對(duì)象的價(jià)值升高,如訪問(wèn)頻率增加,可能大于SSD中緩存的某一個(gè)或多個(gè)緩存對(duì)象的價(jià)值,那么需要將該對(duì)象作為目標(biāo)緩存對(duì)象。

步驟213:根據(jù)任意兩個(gè)SSD之間的距離,確定根SSD到每一個(gè)SSD的距離;

在該步驟中,通過(guò)步驟203中的計(jì)算公式(3)計(jì)算的任意兩個(gè)SSD之間的距離,確定根SSD到每一個(gè)SSD的距離。

步驟214:確定各個(gè)SSD中緩存對(duì)象數(shù)據(jù)量和各個(gè)SSD的緩存容量;

該確定的過(guò)程可以通過(guò)監(jiān)控設(shè)備獲得。

步驟215:根據(jù)各個(gè)SSD中緩存對(duì)象的價(jià)值、緩存對(duì)象數(shù)據(jù)量和各個(gè)SSD的緩存容量,計(jì)算每一個(gè)SSD的價(jià)值;

在該步驟中,根據(jù)下述計(jì)算公式(1),計(jì)算每一個(gè)SSD的價(jià)值;

<mrow> <msub> <mi>V</mi> <mi>j</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mo>&Sigma;</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <msub> <mi>c</mi> <mi>i</mi> </msub> </mrow> <msub> <mi>C</mi> <mi>j</mi> </msub> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

其中,Vj表征SSD j的價(jià)值;vi表征SSD j中緩存的緩存對(duì)象i的價(jià)值,ci表征SSD j中緩存的緩存對(duì)象i的數(shù)據(jù)量大?。籆j表征SSD j的緩存容量;

步驟216:根據(jù)各個(gè)SSD的價(jià)值和根SSD到每一個(gè)緩存介質(zhì)的距離,計(jì)算待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到各個(gè)SSD中每一個(gè)緩存介質(zhì)的概率;

在該步驟中,通過(guò)熱傳導(dǎo)方程(6),在溫度固定,定常壓下,換算出熱流計(jì)算公式(7),通過(guò)將此熱流公式中的溫度T替換為SSD盤的價(jià)值,熱傳導(dǎo)系數(shù)a替換為轉(zhuǎn)移系數(shù)a,則得到計(jì)算公式(2)。

<mrow> <mfrac> <mrow> <mo>&part;</mo> <mi>T</mi> </mrow> <mrow> <mo>&part;</mo> <mi>t</mi> </mrow> </mfrac> <mo>=</mo> <mi>a</mi> <mfrac> <mrow> <msup> <mo>&part;</mo> <mn>2</mn> </msup> <mi>T</mi> </mrow> <mrow> <mo>&part;</mo> <mi>x</mi> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mi>Q</mi> <mo>=</mo> <mfrac> <mi>a</mi> <msub> <mi>D</mi> <mn>21</mn> </msub> </mfrac> <mrow> <mo>(</mo> <msub> <mi>T</mi> <mn>2</mn> </msub> <mo>-</mo> <msub> <mi>T</mi> <mn>1</mn> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <msub> <mi>&theta;</mi> <mrow> <mi>m</mi> <mi>n</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mi>a</mi> <msub> <mi>D</mi> <mrow> <mi>m</mi> <mi>n</mi> </mrow> </msub> </mfrac> <mrow> <mo>(</mo> <msub> <mi>V</mi> <mi>m</mi> </msub> <mo>-</mo> <msub> <mi>V</mi> <mi>n</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

其中,θmn表征根緩存介質(zhì)m的待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到緩存介質(zhì)n的概率;Dmn表征根緩存介質(zhì)m到緩存介質(zhì)n的距離;a表征轉(zhuǎn)移系數(shù);Vm表征根緩存介質(zhì)m的價(jià)值;Vn表征緩存介質(zhì)n的價(jià)值。

根據(jù)計(jì)算公式(2),計(jì)算待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率。

例如:緩存介質(zhì)1需要轉(zhuǎn)移其緩存的待轉(zhuǎn)移對(duì)象a,假設(shè)緩存介質(zhì)1到緩存介質(zhì)2的距離為1,到緩存介質(zhì)3的距離為2等等,同時(shí)通過(guò)計(jì)算公式(1)計(jì)算得到的緩存介質(zhì)1的價(jià)值為V1,緩存介質(zhì)2的價(jià)值和緩存介質(zhì)3的價(jià)值相等即V2=V3,那么,V1-V2=V1-V3,通過(guò)公式(2)可知,待轉(zhuǎn)移對(duì)象a轉(zhuǎn)移到緩存介質(zhì)2的概率為a(V1-V2),待轉(zhuǎn)移對(duì)象a轉(zhuǎn)移到緩存介質(zhì)3的概率為[a(V1-V2)]/2,即待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到緩存介質(zhì)2的概率大于待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到緩存介質(zhì)3的概率,另外,當(dāng)緩存介質(zhì)間距離相同時(shí),緩存介質(zhì)間價(jià)值差越大,概率越高,即概率與緩存介質(zhì)間距離成反比,與緩存介質(zhì)間的價(jià)值差成正比,通過(guò)該過(guò)程能夠選擇比較合適的緩存介質(zhì)接收待轉(zhuǎn)移對(duì)象,從而進(jìn)一步實(shí)現(xiàn)分布式緩存均衡。

步驟217:將概率轉(zhuǎn)化為(0,1)區(qū)間內(nèi)的各個(gè)線段長(zhǎng)度比;

步驟218:根據(jù)各個(gè)線段長(zhǎng)度比,將(0,1)區(qū)間劃分為至少兩個(gè)子區(qū)間;

步驟219:利用隨機(jī)函數(shù)rand(),計(jì)算出一個(gè)數(shù)值;

步驟220:確定數(shù)值屬于的目標(biāo)子區(qū)間,并根據(jù)目標(biāo)子區(qū)間,確定目標(biāo)概率對(duì)應(yīng)的目標(biāo)SSD;

步驟217至步驟220的具體過(guò)程:如緩存介質(zhì)1中待轉(zhuǎn)移對(duì)象a轉(zhuǎn)移到緩存介質(zhì)2中的概率為0.5,轉(zhuǎn)移到緩存介質(zhì)3中的概率為0.1,轉(zhuǎn)移到緩存介質(zhì)4中的概率為0.3,轉(zhuǎn)移到緩存介質(zhì)5中的概率為0.1,將這些概率值轉(zhuǎn)換為對(duì)應(yīng)的線段長(zhǎng)度比,即線段分別為0-0.5、0.5-0.6、0.6-0.9、0.9-1;其組成0-1的線段,通過(guò)等概率隨機(jī)函數(shù)rand()計(jì)算一個(gè)數(shù)值,該數(shù)值如果落到0-0.5,則將待轉(zhuǎn)移對(duì)象a轉(zhuǎn)移到緩存介質(zhì)2;如果該數(shù)值落到0.5-0.6,則將待轉(zhuǎn)移對(duì)象a轉(zhuǎn)移到緩存介質(zhì)3等等,其中,等概率隨機(jī)函數(shù)rand()可以根據(jù)當(dāng)前時(shí)間或者是硬件屬性等等得到一個(gè)數(shù)值。

另外,步驟217至步驟220還可以通過(guò)在待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到每一個(gè)SSD的概率中確定出最大概率;確定最大概率對(duì)應(yīng)的SSD為目標(biāo)緩存介質(zhì),確定目標(biāo)緩存介質(zhì)。

步驟221:根據(jù)關(guān)聯(lián)關(guān)系,將待轉(zhuǎn)移對(duì)象緩存到目標(biāo)SSD,并結(jié)束當(dāng)前流程;

步驟222:直接將目標(biāo)緩存對(duì)象緩存到根SSD。

通過(guò)對(duì)本發(fā)明實(shí)施例提供的方案進(jìn)行測(cè)試發(fā)現(xiàn),4K隨機(jī)讀和寫的性能比現(xiàn)有的緩存方案有20%以上的提升,從而進(jìn)一步表明本發(fā)明提供的方案具有優(yōu)良的讀寫性能。

值得說(shuō)明的是,為各個(gè)SSD分配的守護(hù)進(jìn)程能夠定位各個(gè)緩存對(duì)象的位置和轉(zhuǎn)移對(duì)象轉(zhuǎn)移的位置,以便后續(xù)訪問(wèn)。

另外,本發(fā)明實(shí)施例提及的目標(biāo)緩存對(duì)象主要分為以下幾種:

第一種為:新的待緩存對(duì)象;

第二種為:設(shè)置緩存介質(zhì)間的價(jià)值差閾值,緩存介質(zhì)間價(jià)值差大于設(shè)置的價(jià)值差閾值時(shí),存儲(chǔ)率高的緩存介質(zhì)中待轉(zhuǎn)移的緩存對(duì)象為目標(biāo)緩存對(duì)象,例如:設(shè)置緩存介質(zhì)1和緩存介質(zhì)2間的價(jià)值差閾值為10,而且當(dāng)緩存介質(zhì)間的距離增大,該價(jià)值差閾值也應(yīng)該調(diào)大,即當(dāng)緩存介質(zhì)1和緩存介質(zhì)2的價(jià)值差達(dá)到10時(shí),則需要將存儲(chǔ)率高的緩存介質(zhì)中的部分緩存對(duì)象進(jìn)行轉(zhuǎn)移,那么,該緩存介質(zhì)1中待轉(zhuǎn)移的緩存對(duì)象即為目標(biāo)緩存對(duì)象。

第三種為:專用緩存集群中,價(jià)值小于價(jià)值閾值的緩存對(duì)象;

第四種為:本地存儲(chǔ)硬盤中,價(jià)值升高的存儲(chǔ)對(duì)象等等。

如圖3、圖4所示,本發(fā)明實(shí)施例提供了一種分布式緩存的裝置。裝置實(shí)施例可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。從硬件層面而言,如圖3所示,為本發(fā)明實(shí)施例提供的分布式緩存的裝置所在設(shè)備的一種硬件結(jié)構(gòu)圖,除了圖3所示的處理器、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲(chǔ)器之外,實(shí)施例中裝置所在的設(shè)備通常還可以包括其他硬件,如負(fù)責(zé)處理報(bào)文的轉(zhuǎn)發(fā)芯片等等。以軟件實(shí)現(xiàn)為例,如圖4所示,作為一個(gè)邏輯意義上的裝置,是通過(guò)其所在設(shè)備的CPU將非易失性存儲(chǔ)器中對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。本實(shí)施例提供的一種分布式緩存的裝置,包括:

構(gòu)建設(shè)置單元401,用于構(gòu)建外設(shè)的各個(gè)緩存介質(zhì)之間的關(guān)聯(lián)關(guān)系,并為外設(shè)的各個(gè)緩存介質(zhì)設(shè)置轉(zhuǎn)移條件;

確定單元402,用于在外設(shè)的各個(gè)緩存介質(zhì)中,為目標(biāo)緩存對(duì)象確定根緩存介質(zhì);

計(jì)算轉(zhuǎn)移緩存單元403,用于判斷確定單元402確定的根緩存介質(zhì)是否滿足構(gòu)建設(shè)置單元401設(shè)置的轉(zhuǎn)移條件,如果是,則為確定單元402確定的根緩存介質(zhì)確定待轉(zhuǎn)移對(duì)象,計(jì)算待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到外設(shè)的各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率,根據(jù)概率,確定目標(biāo)緩存介質(zhì),根據(jù)構(gòu)建設(shè)置單元401構(gòu)建的關(guān)聯(lián)關(guān)系,將待轉(zhuǎn)移對(duì)象緩存到目標(biāo)緩存介質(zhì);否則,直接將目標(biāo)緩存對(duì)象緩存到確定單元402確定的根緩存介質(zhì)。

如圖5所示,在本發(fā)明另一實(shí)施例中,計(jì)算轉(zhuǎn)移緩存單元403,包括:計(jì)算距離子單元501、計(jì)算價(jià)值子單元502和計(jì)算概率子單元503,其中,

計(jì)算距離子單元501,用于接收外設(shè)的監(jiān)控設(shè)備發(fā)送的任意兩個(gè)外設(shè)的緩存介質(zhì)之間交換機(jī)的個(gè)數(shù),根據(jù)下述計(jì)算公式(3),計(jì)算任意兩個(gè)緩存介質(zhì)之間的距離:

Dkw=βNkw (3)

其中,Dkw表征緩存介質(zhì)k和緩存介質(zhì)w之間的距離;β表征距離常數(shù);Nkw表征緩存介質(zhì)k和緩存介質(zhì)w之間交換機(jī)的個(gè)數(shù);并根據(jù)所述任意兩個(gè)外設(shè)的緩存介質(zhì)之間的距離,確定所述根緩存介質(zhì)到所述每一個(gè)緩存介質(zhì)的距離;

計(jì)算價(jià)值子單元502,用于為各個(gè)緩存介質(zhì)分配守護(hù)進(jìn)程,通過(guò)守護(hù)進(jìn)程確定外設(shè)的各個(gè)緩存介質(zhì)中緩存對(duì)象的價(jià)值,根據(jù)下述計(jì)算公式(1)和計(jì)算距離子單元501確定的根緩存介質(zhì)到每一個(gè)緩存介質(zhì)的距離,計(jì)算外設(shè)的每一個(gè)緩存介質(zhì)的價(jià)值;

<mrow> <msub> <mi>V</mi> <mi>j</mi> </msub> <mo>=</mo> <mfrac> <mrow> <mo>&Sigma;</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <msub> <mi>C</mi> <mi>i</mi> </msub> </mrow> <msub> <mi>C</mi> <mi>j</mi> </msub> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

其中,Vj表征緩存介質(zhì)j的價(jià)值;vi表征緩存介質(zhì)j中緩存的緩存對(duì)象i的價(jià)值,Ci表征緩存介質(zhì)j中緩存的緩存對(duì)象i的數(shù)據(jù)量大?。?/p>

計(jì)算概率子單元503,用于根據(jù)下述計(jì)算公式(2)和計(jì)算價(jià)值子單元502計(jì)算的外設(shè)的每一個(gè)緩存介質(zhì)的價(jià)值,計(jì)算待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率;

<mrow> <msub> <mi>&theta;</mi> <mrow> <mi>m</mi> <mi>n</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mi>a</mi> <msub> <mi>D</mi> <mrow> <mi>m</mi> <mi>n</mi> </mrow> </msub> </mfrac> <mrow> <mo>(</mo> <msub> <mi>V</mi> <mi>m</mi> </msub> <mo>-</mo> <msub> <mi>V</mi> <mi>n</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

其中,θmn表征根緩存介質(zhì)m的待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到緩存介質(zhì)n的概率;Dmn表征根緩存介質(zhì)m到緩存介質(zhì)n的距離;a表征轉(zhuǎn)移系數(shù);Vm表征根緩存介質(zhì)m的價(jià)值;Vn表征緩存介質(zhì)n的價(jià)值。

如圖6所示,在本發(fā)明又一實(shí)施例中,計(jì)算轉(zhuǎn)移緩存單元403,包括:設(shè)置子單元601、轉(zhuǎn)化劃分子單元602和計(jì)算確定子單元603,其中,

設(shè)置子單元601,用于設(shè)置(0,1)區(qū)間內(nèi)的等概率隨機(jī)函數(shù)rand();

轉(zhuǎn)化劃分子單元602,用于將待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到外設(shè)的各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率轉(zhuǎn)化為(0,1)區(qū)間內(nèi)的各個(gè)線段長(zhǎng)度比;根據(jù)各個(gè)線段長(zhǎng)度比,將(0,1)區(qū)間劃分為至少兩個(gè)子區(qū)間;

計(jì)算確定子單元603,用于利用設(shè)置子單元601設(shè)置的隨機(jī)函數(shù)rand(),計(jì)算出一個(gè)數(shù)值,確定數(shù)值屬于的轉(zhuǎn)化劃分子單元602劃分出的目標(biāo)子區(qū)間,并根據(jù)目標(biāo)子區(qū)間,確定目標(biāo)概率對(duì)應(yīng)的目標(biāo)緩存介質(zhì)。

如圖7所示,在本發(fā)明另一實(shí)施例中,計(jì)算轉(zhuǎn)移緩存單元403,包括:第一判斷子單元701、第二判斷子單元702、計(jì)算概率子單元703和溢出子單元704,其中,

第一判斷子單元701,用于判斷各個(gè)緩存介質(zhì)是否全部滿足轉(zhuǎn)移條件,如果是,則觸發(fā)第二判斷子單元702,否則,觸發(fā)計(jì)算概率子單元703;

第二判斷子單元702,用于設(shè)置價(jià)值閾值,在接收到第一判斷子單元701的觸發(fā)時(shí),判斷待轉(zhuǎn)移對(duì)象的價(jià)值是否大于等于價(jià)值閾值,如果是,則觸發(fā)溢出子單元704;否則,將待轉(zhuǎn)移對(duì)象直接發(fā)送給外設(shè)的本地存儲(chǔ)硬盤;

計(jì)算概率子單元703,用于在接收到第一判斷子單元701的觸發(fā)時(shí),計(jì)算待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到外設(shè)的各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率;

溢出子單元704,用于在接收到第二判斷單元702的觸發(fā)時(shí),將待轉(zhuǎn)移對(duì)象溢出到外設(shè)的專用緩存集群。

本發(fā)明實(shí)施例通過(guò)分布式緩存裝置自動(dòng)進(jìn)行,其相對(duì)于上層的應(yīng)用來(lái)說(shuō)是透明的。

上述裝置內(nèi)的各單元之間的信息交互、執(zhí)行過(guò)程等內(nèi)容,由于與本發(fā)明方法實(shí)施例基于同一構(gòu)思,具體內(nèi)容可參見(jiàn)本發(fā)明方法實(shí)施例中的敘述,此處不再贅述。

如圖8所示,本發(fā)明實(shí)施例提供一種分布式緩存的系統(tǒng),包括:至少兩個(gè)虛塊設(shè)備801、至少一個(gè)交換機(jī)802、奇數(shù)個(gè)監(jiān)控設(shè)備803、上述任意一種分布式緩存的裝置804及專用緩存集群805,其中,

至少兩個(gè)虛塊設(shè)備801中,每一個(gè)虛塊設(shè)備801包括:一個(gè)緩存介質(zhì)8011和與緩存介質(zhì)8011相連的至少一個(gè)存儲(chǔ)硬盤8012;

至少一個(gè)交換機(jī)802,用于連通至少兩個(gè)虛塊設(shè)備801,另外,位于同一服務(wù)器中的虛塊設(shè)備801之間可以直接相連;

奇數(shù)個(gè)監(jiān)控設(shè)備803中,每一個(gè)監(jiān)控設(shè)備803,用于連接至少一個(gè)虛塊設(shè)備801,監(jiān)控連接的虛塊設(shè)備801中緩存介質(zhì)的容量和連接的虛塊設(shè)備801間交換機(jī)的個(gè)數(shù),并將緩存介質(zhì)的容量和交換機(jī)的個(gè)數(shù)發(fā)送給分布式緩存的裝置804;

分布式緩存的裝置804,用于為每一個(gè)緩存介質(zhì)8011分配守護(hù)進(jìn)程,并觸發(fā)守護(hù)進(jìn)程,并接收奇數(shù)個(gè)監(jiān)控設(shè)備803中任意監(jiān)控設(shè)備發(fā)送的緩存介質(zhì)的容量和交換機(jī)的個(gè)數(shù),并獲取每一個(gè)緩存介質(zhì)的守護(hù)進(jìn)程生成的緩存對(duì)象的價(jià)值;

每一個(gè)緩存介質(zhì)8011的守護(hù)進(jìn)程,用于在接收到分布式緩存的裝置804的觸發(fā)時(shí),記錄緩存對(duì)象的訪問(wèn)信息和緩存對(duì)象的位置,根據(jù)緩存對(duì)象的位置,為所在的緩存介質(zhì)8011與至少一個(gè)存儲(chǔ)硬盤8012之間傳輸緩存對(duì)象,并為所在的緩存介質(zhì)8011與專用緩存集群805之間傳輸緩存對(duì)象,并為每一個(gè)緩存對(duì)象生成對(duì)應(yīng)的價(jià)值。

值得說(shuō)明的是,在專用緩存集群805中設(shè)置代理進(jìn)程,通過(guò)該代理進(jìn)程實(shí)現(xiàn)緩存對(duì)象的溢出和回流到緩存介質(zhì)中,另外,奇數(shù)個(gè)監(jiān)控設(shè)備803之間可以相互通信,以保證監(jiān)控信息完整性和準(zhǔn)確性。

根據(jù)上述方案,本發(fā)明的各實(shí)施例,至少具有如下有益效果:

1.通過(guò)構(gòu)建各個(gè)緩存介質(zhì)之間的關(guān)聯(lián)關(guān)系,并為各個(gè)緩存介質(zhì)設(shè)置轉(zhuǎn)移條件,在各個(gè)緩存介質(zhì)中,為目標(biāo)緩存對(duì)象確定根緩存介質(zhì);判斷根緩存介質(zhì)是否滿足轉(zhuǎn)移條件,如果是,則為根緩存介質(zhì)確定待轉(zhuǎn)移對(duì)象,計(jì)算待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到各個(gè)緩存介質(zhì)中每一個(gè)緩存介質(zhì)的概率,根據(jù)概率,確定目標(biāo)緩存介質(zhì),根據(jù)關(guān)聯(lián)關(guān)系,將待轉(zhuǎn)移對(duì)象緩存到目標(biāo)緩存介質(zhì);否則,直接將目標(biāo)緩存對(duì)象緩存到根緩存介質(zhì),通過(guò)上述過(guò)程使得緩存介質(zhì)滿足轉(zhuǎn)移條件如達(dá)到一定存儲(chǔ)率等,在緩存介質(zhì)中確定出待轉(zhuǎn)移對(duì)象,從而避免某一緩存介質(zhì)負(fù)載過(guò)大,實(shí)現(xiàn)了分布式緩存均衡。

2.在整個(gè)緩存過(guò)程中,首先為目標(biāo)緩存對(duì)象確定根緩存介質(zhì),只有當(dāng)根緩存介質(zhì)達(dá)到轉(zhuǎn)移條件時(shí),才確定待轉(zhuǎn)移對(duì)象,并對(duì)待轉(zhuǎn)移對(duì)象進(jìn)行轉(zhuǎn)移,即緩存對(duì)象首先選擇的是根緩存介質(zhì),由于根緩存介質(zhì)與本地存儲(chǔ)硬盤直接相連,根緩存介質(zhì)與本地存儲(chǔ)硬盤之間無(wú)需網(wǎng)絡(luò)傳輸緩存對(duì)象,能夠降低分布式緩存中網(wǎng)絡(luò)壓力,同時(shí)保證高效的性能。

3.通過(guò)計(jì)算待轉(zhuǎn)移對(duì)象轉(zhuǎn)移到各個(gè)緩存介質(zhì)的概率,并根據(jù)概率,確定目標(biāo)緩存介質(zhì),由于概率與根緩存介質(zhì)與各個(gè)緩存介質(zhì)間的價(jià)值差和距離相關(guān),其中,與根緩存介質(zhì)的價(jià)值差越大,距離越短的緩存介質(zhì)的概率越大,即接收待轉(zhuǎn)移對(duì)象的概率越大,在保證緩存均衡的同時(shí),避免緩存效率過(guò)低。

4.通過(guò)設(shè)置專用緩存集群,當(dāng)緩存介質(zhì)達(dá)到緩存瓶頸時(shí),可以通過(guò)擴(kuò)展專用緩存集群來(lái)實(shí)現(xiàn)擴(kuò)展緩存,從而實(shí)現(xiàn)了緩存容量的擴(kuò)展。

5.本發(fā)明實(shí)施例主要通過(guò)緩存對(duì)象的價(jià)值確定待轉(zhuǎn)移緩存對(duì)象,即緩存對(duì)象的價(jià)值越高越應(yīng)該被保留在根SSD中,價(jià)值低的被轉(zhuǎn)移到其他SSD中,甚至轉(zhuǎn)移到專用緩存集群或者本地存儲(chǔ)硬盤中,實(shí)現(xiàn)全局緩存資源的利用最大化。

6.在本發(fā)明實(shí)施例中,設(shè)置價(jià)值差閾值,當(dāng)緩存介質(zhì)間價(jià)值差大于設(shè)置的價(jià)值差閾值,需要將存儲(chǔ)率高的緩存介質(zhì)中的部分緩存對(duì)象進(jìn)行轉(zhuǎn)移,以保證緩存介質(zhì)間的均衡,同時(shí)避免微小的不平衡而導(dǎo)致頻繁進(jìn)行緩存轉(zhuǎn)移而降低效率。

需要說(shuō)明的是,在本文中,諸如第一和第二之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)〃·····”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同因素。

本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)在計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)中。

最后需要說(shuō)明的是:以上所述僅為本發(fā)明的較佳實(shí)施例,僅用于說(shuō)明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
阿克陶县| 高淳县| 泉州市| 陈巴尔虎旗| 扶绥县| 平谷区| 西城区| 邛崃市| 涟源市| 房产| 信阳市| 冀州市| 光泽县| 洛宁县| 博罗县| 公安县| 舒城县| 同仁县| 鹤壁市| 武鸣县| 庄河市| 通海县| 德阳市| 原平市| 哈尔滨市| 石城县| 武鸣县| 耒阳市| 沙坪坝区| 云浮市| 宜丰县| 久治县| 上饶市| 绵阳市| 岐山县| 古丈县| 旌德县| 临海市| 乌拉特后旗| 桂东县| 芦山县|