重復(fù)數(shù)據(jù)刪除系統(tǒng)及其動態(tài)緩存的分配方法
【專利摘要】本發(fā)明公開了一種重復(fù)數(shù)據(jù)刪除系統(tǒng)及其動態(tài)緩存的分配方法。該分配方法基于重復(fù)數(shù)據(jù)刪除系統(tǒng)分配指紋緩存和讀緩存,其包括:根據(jù)指紋緩存的命中次數(shù)、讀緩存的命中次數(shù)、當(dāng)前指紋緩存的容量以及當(dāng)前讀緩存的容量獲取指紋緩存的效益和讀緩存的效益;根據(jù)指紋緩存的效益和讀緩存的效益進(jìn)行分配指紋緩存和讀緩存。通過以上方式,本發(fā)明能夠提高重復(fù)數(shù)據(jù)刪除系統(tǒng)的效率,并且提高空間利用率。
【專利說明】
重復(fù)數(shù)據(jù)刪除系統(tǒng)及其動態(tài)緩存的分配方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及動態(tài)緩存分配技術(shù)領(lǐng)域,特別是涉及一種重復(fù)數(shù)據(jù)刪除系統(tǒng)及其動態(tài) 緩存的分配方法。
【背景技術(shù)】
[0002] 通過某種技術(shù)檢測數(shù)據(jù)集中相同的部分,將這些內(nèi)容相同的數(shù)據(jù)刪除,只保留其 中一份,這種技術(shù)稱為重復(fù)數(shù)據(jù)刪除(Data Deduplication)。為了快速判斷數(shù)據(jù)塊是否相 同,需要分配存儲數(shù)據(jù)塊的指紋的指紋緩存。在重復(fù)數(shù)據(jù)刪除存儲系統(tǒng)中,緩存可以分為讀 緩存和指紋緩存兩部分。讀請求是同步的,如果讀請求被阻塞,將會影響整個上層應(yīng)用。因 此在重復(fù)數(shù)據(jù)刪除系統(tǒng)中除了考慮指紋緩存以外,還需要考慮讀緩存對系統(tǒng)性能的影響。 指紋緩存容量的大小會對寫性能產(chǎn)生較大的影響,讀緩存大小會對讀性能產(chǎn)生較大的影 響。由于外部應(yīng)用負(fù)載并不是一成不變的,讀寫請求會交替出現(xiàn)。
[0003] 因此,在重復(fù)數(shù)據(jù)刪除存儲系統(tǒng)中,讀緩存和指紋緩存的大小對系統(tǒng)讀寫性能有 直接的影響,讀緩存和指紋緩存的大小分配不合適,會造成讀寫性能差和緩存利用率不足 的技術(shù)問題。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明實(shí)施例提供了一種重復(fù)數(shù)據(jù)刪除系統(tǒng)及其動態(tài)緩存的分配方法,能夠提高 重復(fù)數(shù)據(jù)刪除系統(tǒng)的效率。
[0005] 第一方面提供一種動態(tài)緩存的分配方法,分配方法基于重復(fù)數(shù)據(jù)刪除系統(tǒng)分配指 紋緩存和讀緩存,其包括:根據(jù)指紋緩存的命中次數(shù)、讀緩存的命中次數(shù)、當(dāng)前指紋緩存的 容量以及當(dāng)前讀緩存的容量獲取指紋緩存的效益和讀緩存的效益;根據(jù)指紋緩存的效益和 讀緩存的效益進(jìn)行分配指紋緩存和讀緩存。
[0006] 結(jié)合第一方面的實(shí)現(xiàn)方式,在第一種實(shí)現(xiàn)方式中,根據(jù)指紋緩存的命中次數(shù)、讀緩 存的命中次數(shù)、當(dāng)前指紋緩存的容量以及當(dāng)前讀緩存的容量獲取指紋緩存的效益和讀緩存 的效益之前,還包括:統(tǒng)計(jì)在預(yù)設(shè)時間內(nèi)指紋緩存的命中次數(shù)和讀緩存的命中次數(shù)。
[0007] 結(jié)合第一方面的第一種實(shí)現(xiàn)方式,在第二種實(shí)現(xiàn)方式中,指紋緩存的效益滿足以 下公式:
[0008] Cgl=Hgl/Scl;
[0009] 其中,Cgl為指紋緩存的效益,H gl為指紋緩存的命中次數(shù),S "為當(dāng)前指紋緩存的容 量。
[0010] 結(jié)合第一方面的第二種實(shí)現(xiàn)方式,在第三種實(shí)現(xiàn)方式中,讀緩存的效益滿足以下 公式:
[0011] Cgr= H gr/Scr;
[0012] 其中,Q為讀緩存的效益,Η p為讀緩存的命中次數(shù),S "為當(dāng)前讀緩存的容量。
[0013] 結(jié)合第一方面的第三種實(shí)現(xiàn)方式,在第四種實(shí)現(xiàn)方式中,根據(jù)指紋緩存的效益和 讀緩存的效益進(jìn)行分配指紋緩存和讀緩存包括:將指紋緩存的效益與讀緩存的效益進(jìn)行比 較;若指紋緩存的效益大于讀緩存的效益,則調(diào)整指紋緩存增加第一調(diào)整值,調(diào)整讀緩存減 少第一調(diào)整值;若讀緩存的效益大于指紋緩存的效益,則調(diào)整指紋緩存減少第二調(diào)整值,調(diào) 整讀緩存增加第二調(diào)整值。
[0014] 結(jié)合第一方面的第四種實(shí)現(xiàn)方式,在第五種實(shí)現(xiàn)方式中,第一調(diào)整值滿足以下公 式:
[0015] S1= S2*(Cgl/Cgr)
[0016] 其中,Si為第一調(diào)整值;S 2為緩存調(diào)整的單位值;
[0017] 第二調(diào)整值滿足以下公式:
[0018] S3= S2*(Cgr/Cgl)
[0019] 其中,S3為第二調(diào)整值。
[0020] 第二方面提供一種重復(fù)數(shù)據(jù)刪除系統(tǒng),其包括:緩存效益分析模塊,用于根據(jù)指紋 緩存的命中次數(shù)、讀緩存的命中次數(shù)、當(dāng)前指紋緩存的容量以及當(dāng)前讀緩存的容量獲取指 紋緩存的效益和讀緩存的效益;緩存分配模塊,與緩存效益分析模塊連接,用于根據(jù)指紋緩 存的效益和讀緩存的效益進(jìn)行分配指紋緩存和讀緩存。
[0021] 結(jié)合第二方面的實(shí)現(xiàn)方式,在第一種實(shí)現(xiàn)方式中,系統(tǒng)還包括負(fù)載檢測模塊,負(fù)載 檢測模塊與緩存效益分析模塊連接,負(fù)載檢測模塊用于統(tǒng)計(jì)在預(yù)設(shè)時間內(nèi)指紋緩存的命中 次數(shù)和讀緩存的命中次數(shù)。
[0022] 結(jié)合第二方面的第一種實(shí)現(xiàn)方式,在第二種實(shí)現(xiàn)方式中,緩存效益分析模塊根據(jù) 以下公式獲取指紋緩存的效益:
[0023] Cgl=Hgl/Scl;
[0024] 其中,Cgl為指紋緩存的效益,H gl為指紋緩存的命中次數(shù),S "為當(dāng)前指紋緩存的容 量。
[0025] 結(jié)合第二方面的第二種實(shí)現(xiàn)方式,在第三種實(shí)現(xiàn)方式中,緩存效益分析模塊根據(jù) 以下公式獲取讀緩存的效益:
[0026] Cgr= H gr/Scr;
[0027] 其中,Q為讀緩存的效益,Η p為讀緩存的命中次數(shù),S "為當(dāng)前讀緩存的容量。
[0028] 結(jié)合第二方面的第三種實(shí)現(xiàn)方式,在第四種實(shí)現(xiàn)方式中,緩存分配模塊將指紋緩 存的效益與讀緩存的效益進(jìn)行比較;
[0029] 若指紋緩存的效益大于讀緩存的效益,則緩存分配模塊調(diào)整指紋緩存增加第一調(diào) 整值,緩存分配模塊調(diào)整讀緩存減少第一調(diào)整值;
[0030] 若讀緩存的效益大于指紋緩存的效益,則緩存分配模塊調(diào)整指紋緩存減少第二調(diào) 整值,緩存分配模塊調(diào)整讀緩存增加第二調(diào)整值。
[0031] 結(jié)合第二方面的第四種實(shí)現(xiàn)方式,在第五種實(shí)現(xiàn)方式中,第一調(diào)整值滿足以下公 式:
[0032] S1= S2*(Cgl/Cgr)
[0033] 其中,Si為第一調(diào)整值;S 2為緩存調(diào)整的單位值;
[0034] 第二調(diào)整值滿足以下公式:
[0035] S3= S2*(Cgr/Cgl)
[0036] 其中,S3為第二調(diào)整值。
[0037] 通過上述方案,本發(fā)明的有益效果是:本發(fā)明通過根據(jù)指紋緩存的命中次數(shù)、讀緩 存的命中次數(shù)、當(dāng)前指紋緩存的容量以及當(dāng)前讀緩存的容量獲取指紋緩存的效益和讀緩存 的效益;根據(jù)指紋緩存的效益和讀緩存的效益分配指紋緩存和讀緩存,能夠提高重復(fù)數(shù)據(jù) 刪除系統(tǒng)的效率,并且提高緩存空間利用率。
【附圖說明】
[0038] 為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使 用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于 本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他 的附圖。其中:
[0039] 圖1是本發(fā)明第一實(shí)施例的重復(fù)數(shù)據(jù)刪除系統(tǒng)的緩存的結(jié)構(gòu)示意圖;
[0040] 圖2是本發(fā)明第一實(shí)施例的動態(tài)緩存的分配方法的流程圖;
[0041] 圖3是本發(fā)明第三實(shí)施例的動態(tài)緩存的分配方法的流程圖;
[0042] 圖4是本發(fā)明第一實(shí)施例的重復(fù)數(shù)據(jù)刪除系統(tǒng)的結(jié)構(gòu)示意圖;
[0043] 圖5是本發(fā)明第二實(shí)施例的重復(fù)數(shù)據(jù)刪除系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0044] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部實(shí)施例。基于本 發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性的勞動前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0045] 本實(shí)發(fā)明所描述的動態(tài)緩存的分配方法基于重復(fù)數(shù)據(jù)刪除系統(tǒng)分配指紋緩存和 讀緩存。其中,重復(fù)數(shù)據(jù)刪除系統(tǒng)通過對相同內(nèi)容的數(shù)據(jù)進(jìn)行刪除,只保留其中一份,實(shí)現(xiàn) 重復(fù)數(shù)據(jù)刪除,能夠大量節(jié)省存儲空間提供存儲系統(tǒng)性能。
[0046] 其中,重復(fù)數(shù)據(jù)刪除系統(tǒng)進(jìn)行重復(fù)數(shù)據(jù)刪除具體包括:首先將文件切分為數(shù)據(jù)塊, 為每個數(shù)據(jù)塊計(jì)算指紋值;然后以指紋值為關(guān)鍵字進(jìn)行查找,若查找到相同指紋值,則表示 數(shù)據(jù)塊的內(nèi)容相同;若查找到的指紋值不相同,則表示數(shù)據(jù)塊不相同。
[0047] 其中,重復(fù)數(shù)據(jù)刪除系統(tǒng)的緩存包括指紋緩存11、影子指紋緩存12、讀緩存13以 及影子讀緩存14,如圖1所示。影子緩存為存儲在重復(fù)數(shù)據(jù)刪除系統(tǒng)的后備存儲設(shè)備上緩 存數(shù)據(jù)的鏡像,即影子指紋緩存12為存儲在后備存儲設(shè)備上指紋緩存數(shù)據(jù)的鏡像,影子讀 緩存14為存儲在后備設(shè)備上讀緩存數(shù)據(jù)的鏡像。
[0048] 請參見圖2,圖2是本發(fā)明第一實(shí)施例的動態(tài)緩存的分配方法的流程圖。如圖2所 示,本實(shí)施例所揭示的分配方法包括:
[0049] S201 :重復(fù)數(shù)據(jù)刪除系統(tǒng)根據(jù)指紋緩存的命中次數(shù)、讀緩存的命中次數(shù)、當(dāng)前指紋 緩存的容量以及當(dāng)前讀緩存的容量獲取指紋緩存的效益和讀緩存的效益。
[0050] 其中,重復(fù)數(shù)據(jù)刪除系統(tǒng)獲取在預(yù)設(shè)時間內(nèi)指紋緩存的命中次數(shù)和讀緩存的命中 次數(shù),即重復(fù)數(shù)據(jù)刪除系統(tǒng)統(tǒng)計(jì)在預(yù)設(shè)時間內(nèi)指紋緩存的命中次數(shù)和讀緩存的命中次數(shù)。 指紋緩存的命中為緩存了要被訪問的指紋數(shù)據(jù)存在,讀緩存的命中為緩存了要被訪問的讀 數(shù)據(jù)存在。
[0051] 在本實(shí)施例中,指紋緩存的命中次數(shù)包括指紋緩存11的命中次數(shù)和影子指紋緩 存12的命中次數(shù),讀緩存的命中次數(shù)包括讀緩存13的命中次數(shù)和影子讀緩存14的命中次 數(shù)。重復(fù)數(shù)據(jù)刪除系統(tǒng)記錄當(dāng)前指紋緩存的容量以及當(dāng)前讀緩存的容量,指紋緩存的容量 包括指紋緩存11的容量和影子指紋緩存12的容量,讀緩存的容量包括讀緩存13的容量和 影子讀緩存14的容量。
[0052] 其中,重復(fù)數(shù)據(jù)刪除系統(tǒng)根據(jù)指紋緩存的命中次數(shù)以及當(dāng)前指紋緩存的容量計(jì)算 指紋緩存的效益,并滿足以下公式:
[0053] Cgl=Hgl/Scl (1)
[0054] 其中,Cgl為指紋緩存的效益,H gl為指紋緩存的命中次數(shù),S "為當(dāng)前指紋緩存的容 量。
[0055] 重復(fù)數(shù)據(jù)刪除系統(tǒng)根據(jù)讀緩存的命中次數(shù)以及當(dāng)前讀緩存的容量計(jì)算讀緩存的 效益,并滿足以下公式:
[0056] Cgr=Hgr/Scr (2)
[0057] 其中,Q為讀緩存的效益,Η p為讀緩存的命中次數(shù),S "為當(dāng)前讀緩存的容量。
[0058] S202:重復(fù)數(shù)據(jù)刪除系統(tǒng)根據(jù)指紋緩存的效益和讀緩存的效益進(jìn)行分配指紋緩存 和讀緩存。
[0059] 具體地,重復(fù)數(shù)據(jù)刪除系統(tǒng)將指紋緩存的效益Cgl與讀緩存的效益C ρ進(jìn)行比較; 若指紋緩存的效益Cgl大于讀緩存的效益C 則重復(fù)數(shù)據(jù)刪除系統(tǒng)調(diào)整指紋緩存增加第一 調(diào)整值Si,并且調(diào)整讀緩存減少第一調(diào)整值S1;其中第一調(diào)整值S ^茜足以下公式;
[0060] S1= S2*(Cgl/Cgr) (3)
[0061] 其中,Si為第一調(diào)整值;S2為緩存調(diào)整的單位值,即52是一個調(diào)整的粒度單位,這 個調(diào)整單位是可以動態(tài)的由指紋數(shù)據(jù)或者讀數(shù)據(jù)占用的空間大小的單位,既可以調(diào)整為指 紋緩存,也可以調(diào)整為讀緩存,只要指紋緩存的效益C gl大于讀緩存的效益C 要調(diào)整的就 是這個粒度的Cgl/Cff倍。例如:在初始化時將讀緩存設(shè)置為4GB、指紋緩存設(shè)置為4GB,5 2定 義為1GB (調(diào)整單位的大小可以根據(jù)經(jīng)驗(yàn)進(jìn)行設(shè)定)。如果Cgl/Cff的值是1. 5,那么要調(diào)整的 就是1. 5GB,即最后的指紋緩存為初始值4GB+調(diào)整值1. 5GB = 5. 5GB,讀緩存為4GB-1. 5GB =2. 5GB,總的緩存仍然為8GB。但是為了防止Si的計(jì)算結(jié)果超出讀緩存或指紋緩存的大 小,需要限制Cgl/C ff的上限。當(dāng)C gl/Cff的值超過S "/S2時(一般初始化時,優(yōu)選的會設(shè)置 為&和S "相等,且均大于S 2),將Cgl/Cff取值為S "/S2,這是一種極端情況,這種情況下即 當(dāng)前所有緩存空間都用作指紋緩存,如上面例子中,Cgl/C ff的上限值是4GB/1GB,即為4, Cgl/ Cp的值大于4,也會取值為4。臨界狀態(tài)是所有緩存空間被指紋或者讀數(shù)據(jù)占用,即全部調(diào) 整為一種緩存。即指紋緩存為8GB,沒有讀緩存。當(dāng)然,為了保證緩存中的指紋和讀數(shù)據(jù)的 存儲緩存都有最基本的空間,也可以限制C gl/Cff的上限值,例如,上面例子中,若希望指紋 緩存和讀緩存最小要保存2GB的基本空間,則限制C gl/Cff的上限為2,這樣,指紋緩存和讀 緩存最大的緩存空間為4G+2G = 6G,最小也會有4G-2G = 2G的緩存空間;
[0062] 若讀緩存的效益Cp大于指紋緩存的效益C gl,則重復(fù)數(shù)據(jù)刪除系統(tǒng)調(diào)整指紋緩存 減少第二調(diào)整值S3,并且調(diào)整讀緩存增加第二調(diào)整值S 3。
[0063] S3=S2*(Cgr/Cgl) (4)
[0064] 其中,S3為第二調(diào)整值。S2為緩存調(diào)整的單位值,即5 2是一個調(diào)整的粒度單位,只 要指紋緩存的效益Cp大于讀緩存的效益cgl,要調(diào)整的就是這個粒度的c gycgl倍;S3的調(diào)整 方法與調(diào)整方法類似,此處不再贅述。
[0065] 因此,重復(fù)數(shù)據(jù)刪除系統(tǒng)能夠根據(jù)應(yīng)用負(fù)載的情況動態(tài)調(diào)整指紋緩存和讀緩存的 比例,提高整個系統(tǒng)的性能。此外,重復(fù)數(shù)據(jù)刪除系統(tǒng)能夠保證指紋查找的性能的同時,還 能提尚緩存的利用率。
[0066] S203 :重復(fù)數(shù)據(jù)刪除系統(tǒng)對變量進(jìn)行歸零化處理,并更新指紋緩存的容量和讀緩 存的容量。
[0067] 其中,返回S201進(jìn)入下一輪緩存分配。
[0068] 本實(shí)施例所揭示的分配方法通過重復(fù)數(shù)據(jù)刪除系統(tǒng)根據(jù)指紋緩存的命中次數(shù)、讀 緩存的命中次數(shù)、當(dāng)前指紋緩存的容量以及當(dāng)前讀緩存的容量獲取指紋緩存的效益和讀緩 存的效益,并根據(jù)指紋緩存的效益和讀緩存的效益進(jìn)行分配指紋緩存和讀緩存,能夠調(diào)整 指紋緩存和讀緩存的比例,提高整個系統(tǒng)的性能,并且提高緩存的利用率。
[0069] 本發(fā)明還提供第二實(shí)施例的動態(tài)緩存的分配方法,其在第一實(shí)施例所揭示的動態(tài) 緩存的分配方法的基礎(chǔ)上進(jìn)行描述。本實(shí)施例所揭示的分配方法的運(yùn)算程序?yàn)椋?br>[0070]
[0072] 本發(fā)明還提供第三實(shí)施例的動態(tài)緩存的分配方法,其在第一實(shí)施例所揭示的動態(tài) 緩存的分配方法的基礎(chǔ)上進(jìn)行描述。本實(shí)施例所揭示的重復(fù)數(shù)據(jù)刪除系統(tǒng)將數(shù)據(jù)流中的文 件進(jìn)行分塊,形成多個數(shù)據(jù)塊,并獲得數(shù)據(jù)塊指紋值,根據(jù)指紋值進(jìn)行查找數(shù)據(jù)塊,能夠提 高系統(tǒng)的性能。如圖3所示,分配方法還包括:
[0073] S301 :重復(fù)數(shù)據(jù)刪除系統(tǒng)將寫請求的文件劃分為多個數(shù)據(jù)塊。
[0074] 其中,數(shù)據(jù)塊分為三種類型:第一種類型,完全重復(fù)的數(shù)據(jù)塊;第二種類型,部分 重復(fù)的數(shù)據(jù)塊,重復(fù)的數(shù)據(jù)塊和新的數(shù)據(jù)庫混合且重復(fù)的數(shù)據(jù)塊數(shù)量小于預(yù)設(shè)的閾值,閾 值優(yōu)選為3 ;第三種類型,部分重復(fù)的數(shù)據(jù)塊,重復(fù)的數(shù)據(jù)塊和新的數(shù)據(jù)塊混合且重復(fù)的數(shù) 據(jù)塊數(shù)量大于預(yù)設(shè)的閾值。
[0075] S302 :重復(fù)數(shù)據(jù)刪除系統(tǒng)獲取每個數(shù)據(jù)塊的指紋值。
[0076] S303:重復(fù)數(shù)據(jù)刪除系統(tǒng)將數(shù)據(jù)塊的指紋值與存儲在指紋緩存的指紋值進(jìn)行比 較,對指紋緩存和讀緩存進(jìn)行分配。
[0077] 其中,當(dāng)寫請求比較密集時,重復(fù)數(shù)據(jù)刪除系統(tǒng)增加指令緩存的容量,減少讀緩存 的容量。當(dāng)數(shù)據(jù)塊被淘汰時,重復(fù)數(shù)據(jù)刪除系統(tǒng)將被淘汰的數(shù)據(jù)塊存儲在影子指紋緩存12 中。
[0078] 當(dāng)讀請求比較密集時,重復(fù)數(shù)據(jù)刪除系統(tǒng)增加讀緩存的容量,減少指紋緩存的容 量。當(dāng)數(shù)據(jù)塊被淘汰時,重復(fù)數(shù)據(jù)刪除系統(tǒng)將被淘汰的數(shù)據(jù)塊存儲在影子讀緩存14中。
[0079] 當(dāng)讀緩存的容量和指令緩存的容量發(fā)生改變時,讀緩存和指令緩存均有換入或換 出的操作,換入或換出的緩存數(shù)據(jù)存儲在后備存儲設(shè)備中。
[0080] S304 :若數(shù)據(jù)塊的指紋值與存儲在指紋緩存的指紋值不相同,則重復(fù)數(shù)據(jù)刪除系 統(tǒng)將數(shù)據(jù)塊寫入后備存儲設(shè)備,并更新指紋庫。
[0081] 若數(shù)據(jù)塊的指紋值與存儲在指紋緩存的指紋值相同,則重復(fù)數(shù)據(jù)刪除系統(tǒng)更新指 紋引用值,并更新指紋庫。
[0082] 本發(fā)明還提供第一實(shí)施例的重復(fù)數(shù)據(jù)刪除系統(tǒng),其在第一實(shí)施例所揭示的動態(tài)緩 存的分配方法的基礎(chǔ)上進(jìn)行描述。如圖4所示,本實(shí)施所描述的重復(fù)數(shù)據(jù)刪除系統(tǒng)包括:負(fù) 載檢測模塊41、緩存效益分析模塊42以及緩存分配模塊43,緩存效益分析模塊42分別與 負(fù)載檢測模塊41、緩存分配模塊43連接。
[0083] 其中,負(fù)載檢測模塊41用于獲取在預(yù)設(shè)時間內(nèi)指紋緩存的命中次數(shù)和讀緩存的 命中次數(shù),即負(fù)載檢測模塊41用于統(tǒng)計(jì)在預(yù)設(shè)時間內(nèi)指紋緩存的命中次數(shù)和讀緩存的命 中次數(shù)。指紋緩存的命中為緩存了要被訪問的指紋數(shù)據(jù)存在,讀緩存的命中為緩存了要被 訪問的讀數(shù)據(jù)存在。指紋緩存的命中次數(shù)包括指紋緩存11的命中次數(shù)和影子指紋緩存12 的命中次數(shù),讀緩存的命中次數(shù)包括讀緩存13的命中次數(shù)和影子讀緩存14的命中次數(shù)。負(fù) 載檢測模塊41還記錄當(dāng)前指紋緩存的容量以及當(dāng)前讀緩存的容量,指紋緩存的容量包括 指紋緩存11的容量和影子指紋緩存12的容量,讀緩存的容量包括讀緩存13的容量和影子 讀緩存14的容量。
[0084] 在本實(shí)施例中,緩存效益分析模塊42從負(fù)載檢測模塊41獲取指紋緩存的命中次 數(shù)、讀緩存的命中次數(shù)、當(dāng)前指紋緩存的容量以及當(dāng)前讀緩存的容量,緩存效益分析模塊42 用于根據(jù)指紋緩存的命中次數(shù)、讀緩存的命中次數(shù)、當(dāng)前指紋緩存的容量以及當(dāng)前讀緩存 的容量獲取指紋緩存的效益和讀緩存的效益。
[0085] 其中,緩存效益分析模塊42根據(jù)指紋緩存的命中次數(shù)以及當(dāng)前指紋緩存的容量 計(jì)算指紋緩存的效益,并滿足以下公式:
[0086] Cgl=Hgl/Scl (1)
[0087] 其中,Cgl為指紋緩存的效益,H gl為指紋緩存的命中次數(shù),S "為當(dāng)前指紋緩存的容 量。
[0088] 緩存效益分析模塊42根據(jù)讀緩存的命中次數(shù)以及當(dāng)前讀緩存的容量計(jì)算讀緩存 的效益,并滿足以下公式:
[0089] Cgr=Hgr/Scr (2)
[0090] 其中,Q為讀緩存的效益,Η p為讀緩存的命中次數(shù),S "為當(dāng)前讀緩存的容量。
[0091] 緩存分配模塊43從緩存效益分析模塊42獲取指紋緩存的效益和讀緩存的效益, 緩存分配模塊43用于根據(jù)指紋緩存的效益和讀緩存的效益進(jìn)行分配指紋緩存和讀緩存。
[0092] 具體地,緩存分配模塊43將指紋緩存的效益Cgl與讀緩存的效益C #進(jìn)行比較;若 指紋緩存的效益Cgl大于讀緩存的效益C 則緩存分配模塊43調(diào)整指紋緩存增加第一調(diào)整 值Si,并且調(diào)整讀緩存減少第一調(diào)整值S1;其中第一調(diào)整值S ^茜足以下公式;
[0093] S1= S2*(Cgl/Cgr) (3)
[0094] 其中,Si為第一調(diào)整值;S2為緩存調(diào)整的單位值,即52是一個調(diào)整的粒度單位,這 個調(diào)整單位是可以動態(tài)的由指紋數(shù)據(jù)或者讀數(shù)據(jù)占用的空間大小的單位,既可以調(diào)整為指 紋緩存,也可以調(diào)整為讀緩存,只要指紋緩存的效益C gl大于讀緩存的效益C 要調(diào)整的就 是這個粒度的Cgl/Cff倍,S i的具體調(diào)整方法與前面本發(fā)明第一實(shí)施例的動態(tài)緩存的分配方 法中類似,此處不再贅述;
[0095] 若讀緩存的效益大于指紋緩存的效益C gl,則緩存分配模塊43調(diào)整指紋緩存減 少第二調(diào)整值S3,并且調(diào)整讀緩存增加第二調(diào)整值S 3。
[0096] S3=S2*(Cgr/Cgl) (4)
[0097] 其中,S3為第二調(diào)整值。S2為緩存調(diào)整的單位值,即5 2是一個調(diào)整的粒度單位,只 要指紋緩存的效益Cp大于讀緩存的效益cgl,要調(diào)整的就是這個粒度的c gycgl倍;S3的調(diào)整 方法與調(diào)整方法類似,此處不再贅述。
[0098] 緩存分配模塊43還對變量進(jìn)行歸零化處理,并更新指紋緩存的容量和讀緩存的 容量,以進(jìn)入下一輪緩存分配。
[0099] 本實(shí)施例所揭示的重復(fù)數(shù)據(jù)刪除系統(tǒng)通過緩存效益分析模塊42根據(jù)指紋緩存的 命中次數(shù)、讀緩存的命中次數(shù)、當(dāng)前指紋緩存的容量以及當(dāng)前讀緩存的容量獲取指紋緩存 的效益和讀緩存的效益,緩存分配模塊43根據(jù)指紋緩存的效益和讀緩存的效益進(jìn)行分配 指紋緩存和讀緩存,能夠調(diào)整指紋緩存和讀緩存的比例,提高整個系統(tǒng)的性能,并且提高緩 存的利用率。
[0100] 本發(fā)明還提供第二實(shí)施例的重復(fù)數(shù)據(jù)刪除系統(tǒng),其在第一實(shí)施例所揭示的重復(fù)數(shù) 據(jù)刪除系統(tǒng)的基礎(chǔ)上進(jìn)行描述。如圖5所示,本實(shí)施例所揭示的重復(fù)數(shù)據(jù)刪除系統(tǒng)包括處 理器51、存儲器52以及通信接口 53,處理器51通過通信接口 53與存儲器52進(jìn)行連接。處 理器51從存儲器52獲取運(yùn)行程序,并運(yùn)行運(yùn)算程序,以獲取指紋緩存的效益和讀緩存的效 益,并根據(jù)指紋緩存的效益和讀緩存的效益進(jìn)行分配指紋緩存和讀緩存。處理器51運(yùn)行運(yùn) 算程序執(zhí)行的分配指紋緩存和讀緩存的方法與圖2中本發(fā)明第一實(shí)施例的動態(tài)緩存的分 配方法相同,本處不再贅述。運(yùn)行的該運(yùn)算程序可以為:
[0101]
[0103] 本發(fā)明還提供第三實(shí)施例的重復(fù)數(shù)據(jù)刪除系統(tǒng),其在第一實(shí)施例所揭示的重復(fù)數(shù) 據(jù)刪除系統(tǒng)的基礎(chǔ)上進(jìn)行描述。本實(shí)施例所揭示的重復(fù)數(shù)據(jù)刪除系統(tǒng)將寫請求的文件劃 分為多個數(shù)據(jù)塊。其中,數(shù)據(jù)塊分為三種類型:第一種類型,完全重復(fù)的數(shù)據(jù)塊;第二種類 型,部分重復(fù)的數(shù)據(jù)塊,重復(fù)的數(shù)據(jù)塊和新的數(shù)據(jù)庫混合且重復(fù)的數(shù)據(jù)塊數(shù)量小于預(yù)設(shè)的 閾值,閾值優(yōu)選為3 ;第三種類型,部分重復(fù)的數(shù)據(jù)塊,重復(fù)的數(shù)據(jù)塊和新的數(shù)據(jù)塊混合且 重復(fù)的數(shù)據(jù)塊數(shù)量大于預(yù)設(shè)的閾值。
[0104] 重復(fù)數(shù)據(jù)刪除系統(tǒng)獲取每個數(shù)據(jù)塊的指紋值,并將數(shù)據(jù)塊的指紋值與存儲在指紋 緩存的指紋值進(jìn)行比較,對指紋緩存和讀緩存進(jìn)行分配。
[0105] 其中,當(dāng)寫請求比較密集時,重復(fù)數(shù)據(jù)刪除系統(tǒng)增加指令緩存的容量,減少讀緩存 的容量。當(dāng)數(shù)據(jù)塊被淘汰時,重復(fù)數(shù)據(jù)刪除系統(tǒng)將被淘汰的數(shù)據(jù)塊存儲在影子指紋緩存12 中。
[0106] 當(dāng)讀請求比較密集時,重復(fù)數(shù)據(jù)刪除系統(tǒng)增加讀緩存的容量,減少指紋緩存的容 量。當(dāng)數(shù)據(jù)塊被淘汰時,重復(fù)數(shù)據(jù)刪除系統(tǒng)將被淘汰的數(shù)據(jù)塊存儲在影子讀緩存14中。
[0107] 當(dāng)讀緩存的容量和指令緩存的容量發(fā)生改變時,讀緩存和指令緩存均有換入或換 出的操作,換入或換出的緩存數(shù)據(jù)存儲在后備存儲設(shè)備中。
[0108] 若數(shù)據(jù)塊的指紋值與存儲在指紋緩存的指紋值不相同,則重復(fù)數(shù)據(jù)刪除系統(tǒng)將數(shù) 據(jù)塊寫入后備存儲設(shè)備,并更新指紋庫。
[0109] 若數(shù)據(jù)塊的指紋值與存儲在指紋緩存的指紋值相同,則重復(fù)數(shù)據(jù)刪除系統(tǒng)更新指 紋引用值,并更新指紋庫。
[0110] 綜上所述,本發(fā)明通過根據(jù)指紋緩存的命中次數(shù)、讀緩存的命中次數(shù)、當(dāng)前指紋緩 存的容量以及當(dāng)前讀緩存的容量獲取指紋緩存的效益和讀緩存的效益;根據(jù)指紋緩存的效 益和讀緩存的效益進(jìn)行分配指紋緩存和讀緩存,能夠提高重復(fù)數(shù)據(jù)刪除系統(tǒng)的效率,并且 提高空間利用率。
[0111] 以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā) 明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技 術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1. 一種動態(tài)緩存的分配方法,其特征在于,所述分配方法基于重復(fù)數(shù)據(jù)刪除系統(tǒng)分配 指紋緩存和讀緩存,所述分配方法包括: 根據(jù)所述指紋緩存的命中次數(shù)、所述讀緩存的命中次數(shù)、當(dāng)前所述指紋緩存的容量以 及當(dāng)前所述讀緩存的容量獲取所述指紋緩存的效益和所述讀緩存的效益; 根據(jù)所述指紋緩存的效益和所述讀緩存的效益進(jìn)行調(diào)整所述指紋緩存和所述讀緩存。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述指紋緩存的命中次數(shù)、所述 讀緩存的命中次數(shù)、當(dāng)前所述指紋緩存的容量以及當(dāng)前所述讀緩存的容量獲取所述指紋緩 存的效益和所述讀緩存的效益之前,還包括: 統(tǒng)計(jì)在預(yù)設(shè)時間內(nèi)所述指紋緩存的命中次數(shù)和所述讀緩存的命中次數(shù)。3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述指紋緩存的效益滿足以下公式: Cgl=Hgl/Scl; 其中,Cgl為所述指紋緩存的效益,H gl為所述指紋緩存的命中次數(shù),S "為當(dāng)前所述指紋 緩存的容量。4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述讀緩存的效益滿足以下公式: Cgr H gr/Scr; 其中,為所述讀緩存的效益,H 為所述讀緩存的命中次數(shù),S 為當(dāng)前所述讀緩存的 容量。5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)所述指紋緩存的效益和所述讀 緩存的效益進(jìn)行調(diào)整所述指紋緩存和所述讀緩存包括: 將所述指紋緩存的效益與所述讀緩存的效益進(jìn)行比較; 若所述指紋緩存的效益大于所述讀緩存的效益,則調(diào)整所述指紋緩存增加第一調(diào)整 值,調(diào)整所述讀緩存減少所述第一調(diào)整值; 若所述讀緩存的效益大于所述指紋緩存的效益,則調(diào)整所述指紋緩存減少第二調(diào)整 值,調(diào)整所述讀緩存增加所述第二調(diào)整值。6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述第一調(diào)整值滿足以下公式: s1= s2*(cgl/cgr) 其中,Si為所述第一調(diào)整值;S 2為緩存調(diào)整的單位值; 所述第二調(diào)整值滿足以下公式: s3=s2*(cgr/c gl) 其中,s3為所述第二調(diào)整值。7. -種重復(fù)數(shù)據(jù)刪除系統(tǒng),其特征在于,所述系統(tǒng)包括: 緩存效益分析模塊,用于根據(jù)所述指紋緩存的命中次數(shù)、所述讀緩存的命中次數(shù)、當(dāng)前 所述指紋緩存的容量以及當(dāng)前所述讀緩存的容量獲取所述指紋緩存的效益和所述讀緩存 的效益; 緩存分配模塊,與所述緩存效益分析模塊連接,用于根據(jù)所述指紋緩存的效益和所述 讀緩存的效益進(jìn)行調(diào)整所述指紋緩存和所述讀緩存。8. 根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括負(fù)載檢測模塊,所述負(fù)載 檢測模塊與所述緩存效益分析模塊連接,所述負(fù)載檢測模塊用于統(tǒng)計(jì)在預(yù)設(shè)時間內(nèi)所述指 紋緩存的命中次數(shù)和所述讀緩存的命中次數(shù)。9. 根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述緩存效益分析模塊根據(jù)以下公式獲 取所述指紋緩存的效益: Cgl=Hgl/Scl; 其中,Cgl為所述指紋緩存的效益,H gl為所述指紋緩存的命中次數(shù),S "為當(dāng)前所述指紋 緩存的容量。10. 根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述緩存效益分析模塊根據(jù)以下公式獲 取所述讀緩存的效益: Cgr H gr/Scr; 其中,為所述讀緩存的效益,H 為所述讀緩存的命中次數(shù),S 為當(dāng)前所述讀緩存的 容量。11. 根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述緩存分配模塊將所述指紋緩存的 效益與所述讀緩存的效益進(jìn)行比較; 若所述指紋緩存的效益大于所述讀緩存的效益,則所述緩存分配模塊調(diào)整所述指紋緩 存增加第一調(diào)整值,所述緩存分配模塊調(diào)整所述讀緩存減少所述第一調(diào)整值; 若所述讀緩存的效益大于所述指紋緩存的效益,則所述緩存分配模塊調(diào)整所述指紋緩 存減少第二調(diào)整值,所述緩存分配模塊調(diào)整所述讀緩存增加所述第二調(diào)整值。12. 根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述第一調(diào)整值滿足以下公式: s1= s2*(cgl/cgr) 其中,Si為所述第一調(diào)整值;S 2為緩存調(diào)整的容量單位值; 所述第二調(diào)整值滿足以下公式: s3=s2*(cgr/c gl) 其中,s3為所述第二調(diào)整值。
【文檔編號】G06F12/08GK105868124SQ201510026483
【公開日】2016年8月17日
【申請日】2015年1月19日
【發(fā)明人】毛波, 李俊
【申請人】華為技術(shù)有限公司