本發(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à)值;
其中,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ì)的概率;
其中,θ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à)值;
其中,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ì)的概率;
其中,θ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à)值;
其中,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ì)的概率;
其中,θ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à)值;
其中,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)。
其中,θ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à)值;
其中,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ì)的概率;
其中,θ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)。