亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種在線數(shù)據(jù)壓縮在存儲中的集成方法及系統(tǒng)與流程

文檔序號:12728763閱讀:494來源:國知局
一種在線數(shù)據(jù)壓縮在存儲中的集成方法及系統(tǒng)與流程

本發(fā)明涉及數(shù)據(jù)存儲領(lǐng)域,尤其涉及一種在線數(shù)據(jù)壓縮在存儲中的集成方法及系統(tǒng)。



背景技術(shù):

當(dāng)今社會數(shù)據(jù)量暴增,這個對整個IT的結(jié)構(gòu)造成了嚴(yán)重的沖擊,尤其是磁盤容量的需求越來越大,這無疑增加了企業(yè)的成本。為了降低數(shù)據(jù)的存儲量,通常采用將數(shù)據(jù)壓縮后進(jìn)行儲存,而傳統(tǒng)的壓縮一般是非實(shí)時壓縮,傳統(tǒng)壓縮首先是將數(shù)據(jù)存儲到后端磁盤,然后在存儲系統(tǒng)空閑的時候,從后端磁盤將數(shù)據(jù)讀取出來進(jìn)行壓縮,壓縮完畢后將壓縮的IO存儲到磁盤,這樣數(shù)據(jù)壓縮無法預(yù)估數(shù)據(jù)的壓縮率,需要再次從磁盤讀取出來進(jìn)行壓縮,壓縮數(shù)據(jù)是非實(shí)時生效的。



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

為了克服上述現(xiàn)有技術(shù)中的不足,本發(fā)明提供一種在線數(shù)據(jù)壓縮在存儲中的集成方法,方法包括:

將IO數(shù)據(jù)寫入上層緩存中;

壓縮模塊根據(jù)預(yù)設(shè)的壓縮量將上層緩存中多個IO數(shù)據(jù)進(jìn)行組合壓縮,形成組合壓縮IO數(shù)據(jù)塊;

壓縮模塊針對組合壓縮IO數(shù)據(jù)塊中的每個IO數(shù)據(jù)對應(yīng)生成一元數(shù)據(jù),元數(shù)據(jù)用于記錄壓縮前后的每個IO數(shù)據(jù)處于磁盤中的位置;

壓縮模塊將組合壓縮IO數(shù)據(jù)塊以及與該組合壓縮IO數(shù)據(jù)塊內(nèi)部IO數(shù)據(jù)相對應(yīng)的元數(shù)據(jù)下發(fā)給下層緩存;

下層緩存保存組合壓縮IO數(shù)據(jù)塊和元數(shù)據(jù);

下層緩存將保存的組合壓縮IO數(shù)據(jù)塊和元數(shù)據(jù)保存到后端磁盤。

優(yōu)選地,主機(jī)接口層接收讀IO數(shù)據(jù)請求,并在上層緩存中讀取IO數(shù)據(jù);

若在上層緩存中讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)返回給主機(jī)接口層。

優(yōu)選地,若在上層緩存中未讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)讀請求發(fā)送至壓縮模塊,在壓縮模塊中讀取IO數(shù)據(jù);

若在壓縮模塊中讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)返回給上層緩存,繼而返回至主機(jī)接口層。

優(yōu)選地,若在壓縮模塊中未讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)讀請求發(fā)送至下層緩存,在下層緩存讀取所述IO數(shù)據(jù)的元數(shù)據(jù),根據(jù)元數(shù)據(jù)信息查找到對應(yīng)的組合壓縮IO數(shù)據(jù)塊內(nèi)的IO數(shù)據(jù);

若在下層緩存中讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)所在的組合壓縮IO數(shù)據(jù)塊返回至壓縮模塊,壓縮模塊對所述組合壓縮IO數(shù)據(jù)塊進(jìn)行解壓,恢復(fù)IO數(shù)據(jù);

將IO數(shù)據(jù)返回給上層緩存,繼而返回至主機(jī)接口層。

優(yōu)選地,若在下層緩存中未讀取到所述IO數(shù)據(jù),則在后端磁盤讀取所述IO數(shù)據(jù)的元數(shù)據(jù),根據(jù)元數(shù)據(jù)信息查找到對應(yīng)的組合壓縮IO數(shù)據(jù)塊內(nèi)的IO數(shù)據(jù);

若在后端磁盤中讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)所在的組合壓縮IO數(shù)據(jù)塊返回至壓縮模塊,壓縮模塊對所述組合壓縮IO數(shù)據(jù)塊進(jìn)行解壓,恢復(fù)IO數(shù)據(jù);

將IO數(shù)據(jù)返回給上層緩存,繼而返回至主機(jī)接口層。

優(yōu)選地,預(yù)設(shè)的壓縮量的獲取方式包括:

在上層緩存隨機(jī)抽取N個IO數(shù)據(jù)塊,N為非零的自然數(shù),對抽取的IO數(shù)據(jù)塊進(jìn)行組合壓縮,組合壓縮后計(jì)算出N個IO數(shù)據(jù)塊的平均MD5值,將該值作為預(yù)設(shè)的壓縮量。

一種在線數(shù)據(jù)壓縮在存儲中的集成系統(tǒng),包括:上層緩存模塊,壓縮模塊,下層緩存模塊,后端磁盤;

上層緩存模塊用于供IO數(shù)據(jù)寫入;

壓縮模塊用于根據(jù)預(yù)設(shè)的壓縮量將上層緩存模塊中多個IO數(shù)據(jù)進(jìn)行組合壓縮,形成組合壓縮IO數(shù)據(jù)塊;壓縮模塊針對組合壓縮IO數(shù)據(jù)塊中的每個IO數(shù)據(jù)對應(yīng)生成一元數(shù)據(jù),元數(shù)據(jù)用于記錄壓縮前后的每個IO數(shù)據(jù)處于磁盤中的位置;壓縮模塊將組合壓縮IO數(shù)據(jù)塊以及與該組合壓縮IO數(shù)據(jù)塊內(nèi)部IO數(shù)據(jù)相對應(yīng)的元數(shù)據(jù)下發(fā)給下層緩存模塊;

下層緩存模塊用于保存組合壓縮IO數(shù)據(jù)塊和元數(shù)據(jù),并將保存的組合壓縮IO數(shù)據(jù)塊和元數(shù)據(jù)保存到后端磁盤。

優(yōu)選地,還包括:上層緩存IO數(shù)據(jù)處理模塊,壓縮模塊IO數(shù)據(jù)處理模塊,下層緩存IO數(shù)據(jù)處理模塊;

上層緩存IO數(shù)據(jù)處理模塊用于根據(jù)主機(jī)接口層接收讀IO數(shù)據(jù)請求,上層緩存IO數(shù)據(jù)處理模塊在上層緩存模塊中讀取IO數(shù)據(jù),若在上層緩存中讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)返回給主機(jī)接口層;

壓縮模塊IO數(shù)據(jù)處理模塊用于若在上層緩存模塊中未讀取到所述IO數(shù)據(jù),上層緩存IO數(shù)據(jù)處理模塊將IO數(shù)據(jù)讀請求發(fā)送至壓縮模塊,壓縮模塊IO數(shù)據(jù)處理模塊在壓縮模塊中讀取IO數(shù)據(jù);若在壓縮模塊中讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)返回給上層緩存,繼而返回至主機(jī)接口層;

下層緩存IO數(shù)據(jù)處理模塊用于若在壓縮模塊中未讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)讀請求發(fā)送至下層緩存模塊,下層緩存IO數(shù)據(jù)處理模塊在下層緩存模塊讀取所述IO數(shù)據(jù)的元數(shù)據(jù),根據(jù)元數(shù)據(jù)信息查找到對應(yīng)的組合壓縮IO數(shù)據(jù)塊內(nèi)的IO數(shù)據(jù);

若在下層緩存模塊中讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)所在的組合壓縮IO數(shù)據(jù)塊返回至壓縮模塊,壓縮模塊對所述組合壓縮IO數(shù)據(jù)塊進(jìn)行解壓,恢復(fù)IO數(shù)據(jù);將IO數(shù)據(jù)返回給上層緩存模塊,繼而返回至主機(jī)接口層。

優(yōu)選地,還包括:后端磁盤數(shù)據(jù)處理模塊;

后端磁盤數(shù)據(jù)處理模塊用于若在下層緩存模塊中未讀取到所述IO數(shù)據(jù),則在后端磁盤讀取所述IO數(shù)據(jù)的元數(shù)據(jù),根據(jù)元數(shù)據(jù)信息查找到對應(yīng)的組合壓縮IO數(shù)據(jù)塊內(nèi)的IO數(shù)據(jù);若在后端磁盤中讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)所在的組合壓縮IO數(shù)據(jù)塊返回至壓縮模塊,壓縮模塊對所述組合壓縮IO數(shù)據(jù)塊進(jìn)行解壓,恢復(fù)IO數(shù)據(jù);將IO數(shù)據(jù)返回給上層緩存模塊,繼而返回至主機(jī)接口層。

優(yōu)選地,還包括:預(yù)設(shè)的壓縮量設(shè)置模塊;

預(yù)設(shè)的壓縮量設(shè)置模塊用于在上層緩存模塊隨機(jī)抽取N個IO數(shù)據(jù)塊,N為非零的自然數(shù),對抽取的IO數(shù)據(jù)塊進(jìn)行組合壓縮,組合壓縮后計(jì)算出N個IO數(shù)據(jù)塊的平均MD5值,將該值作為預(yù)設(shè)的壓縮量。

從以上技術(shù)方案可以看出,本發(fā)明具有以下優(yōu)點(diǎn):

在線數(shù)據(jù)壓縮在存儲中的集成方法涉及了壓縮模塊,存儲從前端接收IO數(shù)據(jù)進(jìn)行壓縮,壓縮后下發(fā)到緩存,然后由緩存刷寫到后端磁盤。與傳統(tǒng)的壓縮相比,在線數(shù)據(jù)壓縮可以預(yù)估數(shù)據(jù)的壓縮率,因?yàn)镮O數(shù)據(jù)在下發(fā)磁盤之前已經(jīng)完成壓縮;在線壓縮還節(jié)約了磁盤空間,不需要再次從磁盤讀取出來進(jìn)行壓縮;壓縮數(shù)據(jù)是實(shí)時生效的,并且對IO數(shù)據(jù)的性能不產(chǎn)生影響。

附圖說明

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

圖1為在線數(shù)據(jù)壓縮在存儲中的集成方法的整體流程圖;

圖2為IO數(shù)據(jù)的讀取方式流程圖;

圖3為IO數(shù)據(jù)的另一讀取方式流程圖;

圖4為IO數(shù)據(jù)的另一讀取方式流程圖;

圖5為在線數(shù)據(jù)壓縮在存儲中的集成系統(tǒng)整體示意圖。

具體實(shí)施方式

為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點(diǎn)能夠更加的明顯和易懂,下面將運(yùn)用具體的實(shí)施例及附圖,對本發(fā)明保護(hù)的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,下面所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而非全部的實(shí)施例?;诒緦@械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實(shí)施例,都屬于本專利保護(hù)的范圍。

本實(shí)施例提供一種在線數(shù)據(jù)壓縮在存儲中的集成方法,如圖1所示,方法包括:

S1:將IO數(shù)據(jù)寫入上層緩存中;

S2:壓縮模塊根據(jù)預(yù)設(shè)的壓縮量將上層緩存中多個IO數(shù)據(jù)進(jìn)行組合壓縮,形成組合壓縮IO數(shù)據(jù)塊;

S3:壓縮模塊針對組合壓縮IO數(shù)據(jù)塊中的每個IO數(shù)據(jù)對應(yīng)生成一元數(shù)據(jù),元數(shù)據(jù)用于記錄壓縮前后的每個IO數(shù)據(jù)處于磁盤中的位置;

S4:壓縮模塊將組合壓縮IO數(shù)據(jù)塊以及與該組合壓縮IO數(shù)據(jù)塊內(nèi)部IO數(shù)據(jù)相對應(yīng)的元數(shù)據(jù)下發(fā)給下層緩存;

S5:下層緩存保存組合壓縮IO數(shù)據(jù)塊和元數(shù)據(jù);

S6:下層緩存將保存的組合壓縮IO數(shù)據(jù)塊和元數(shù)據(jù)保存到后端磁盤。

數(shù)據(jù)經(jīng)過壓縮后才會下發(fā)到后端磁盤,這樣利用較少的磁盤空間存儲較大的數(shù)據(jù),提高磁盤的空間利用率和整個存儲系統(tǒng)的性能,將壓縮功能集成到傳統(tǒng)存儲中。本實(shí)施例中采用實(shí)時壓縮方法,數(shù)據(jù)在存儲到后端磁盤之前已經(jīng)完成了對數(shù)據(jù)的壓縮,而且在線實(shí)時壓縮不會影響IO數(shù)據(jù)的性能。

在壓縮過程中雖然壓縮本身耗掉了一部分資源并且增加了延遲,但是在IO寫磁盤過程時節(jié)約了時間,整體實(shí)測結(jié)果表明壓縮性能并沒有下降。

其中,預(yù)設(shè)的壓縮量的獲取方式包括:在上層緩存隨機(jī)抽取N個IO數(shù)據(jù)塊,N為非零的自然數(shù),對抽取的IO數(shù)據(jù)塊進(jìn)行組合壓縮,組合壓縮后計(jì)算出N個IO數(shù)據(jù)塊的平均MD5值,將該值作為預(yù)設(shè)的壓縮量。

例如:在上層緩存隨機(jī)抽取三個IO數(shù)據(jù)塊進(jìn)行壓縮,每個IO數(shù)據(jù)塊壓縮后均為4K,壓縮完畢后計(jì)算出這三個IO數(shù)據(jù)塊的平均MD5值,將該值作為預(yù)設(shè)的壓縮量。

壓縮模塊根據(jù)預(yù)設(shè)的壓縮量將上層緩存中多個IO數(shù)據(jù)進(jìn)行組合壓縮,當(dāng)壓縮值跟預(yù)設(shè)的壓縮量相等時,此大小為組合壓縮IO數(shù)據(jù)塊的大小。

本實(shí)施例中,如圖2所示, IO數(shù)據(jù)的讀取方式為:

S11:主機(jī)接口層接收讀IO數(shù)據(jù)請求,并在上層緩存中讀取IO數(shù)據(jù);

S12:若在上層緩存中讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)返回給主機(jī)接口層。

本實(shí)施例中,如圖3所示, IO數(shù)據(jù)的讀取方式為:

S21:主機(jī)接口層接收讀IO數(shù)據(jù)請求,并在上層緩存中讀取IO數(shù)據(jù);

S22:若在上層緩存中未讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)讀請求發(fā)送至壓縮模塊,在壓縮模塊中讀取IO數(shù)據(jù);

S23:若在壓縮模塊中讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)返回給上層緩存,繼而返回至主機(jī)接口層。

本實(shí)施例中,如圖4所示, IO數(shù)據(jù)的讀取方式為:

S31:主機(jī)接口層接收讀IO數(shù)據(jù)請求,并在上層緩存中讀取IO數(shù)據(jù);

S32:若在上層緩存中未讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)讀請求發(fā)送至壓縮模塊,在壓縮模塊中讀取IO數(shù)據(jù);

S33:若在壓縮模塊中未讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)讀請求發(fā)送至下層緩存,在下層緩存讀取所述IO數(shù)據(jù)的元數(shù)據(jù),根據(jù)元數(shù)據(jù)信息查找到對應(yīng)的組合壓縮IO數(shù)據(jù)塊內(nèi)的IO數(shù)據(jù);

S34:若在下層緩存中讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)所在的組合壓縮IO數(shù)據(jù)塊返回至壓縮模塊,壓縮模塊對所述組合壓縮IO數(shù)據(jù)塊進(jìn)行解壓,恢復(fù)IO數(shù)據(jù);

S35:將IO數(shù)據(jù)返回給上層緩存,繼而返回至主機(jī)接口層。

進(jìn)一步的,若在下層緩存中未讀取到所述IO數(shù)據(jù),則在后端磁盤讀取所述IO數(shù)據(jù)的元數(shù)據(jù),根據(jù)元數(shù)據(jù)信息查找到對應(yīng)的組合壓縮IO數(shù)據(jù)塊內(nèi)的IO數(shù)據(jù);

若在后端磁盤中讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)所在的組合壓縮IO數(shù)據(jù)塊返回至壓縮模塊,壓縮模塊對所述組合壓縮IO數(shù)據(jù)塊進(jìn)行解壓,恢復(fù)IO數(shù)據(jù);

將IO數(shù)據(jù)返回給上層緩存,繼而返回至主機(jī)接口層。

本發(fā)明還提供一種在線數(shù)據(jù)壓縮在存儲中的集成系統(tǒng),如圖5所示,包括:上層緩存模塊1,壓縮模塊2,下層緩存模塊3,后端磁盤4;

上層緩存模塊1用于供IO數(shù)據(jù)寫入;

壓縮模塊2用于根據(jù)預(yù)設(shè)的壓縮量將上層緩存模塊1中多個IO數(shù)據(jù)進(jìn)行組合壓縮,形成組合壓縮IO數(shù)據(jù)塊;壓縮模塊2針對組合壓縮IO數(shù)據(jù)塊中的每個IO數(shù)據(jù)對應(yīng)生成一元數(shù)據(jù),元數(shù)據(jù)用于記錄壓縮前后的每個IO數(shù)據(jù)處于磁盤中的位置;壓縮模塊2將組合壓縮IO數(shù)據(jù)塊以及與該組合壓縮IO數(shù)據(jù)塊內(nèi)部IO數(shù)據(jù)相對應(yīng)的元數(shù)據(jù)下發(fā)給下層緩存模塊3;下層緩存模塊3用于保存組合壓縮IO數(shù)據(jù)塊和元數(shù)據(jù),并將保存的組合壓縮IO數(shù)據(jù)塊和元數(shù)據(jù)保存到后端磁盤4。

本實(shí)施例中,還包括:上層緩存IO數(shù)據(jù)處理模塊,壓縮模塊IO數(shù)據(jù)處理模塊,下層緩存IO數(shù)據(jù)處理模塊;

上層緩存IO數(shù)據(jù)處理模塊用于根據(jù)主機(jī)接口層接收讀IO數(shù)據(jù)請求,上層緩存IO數(shù)據(jù)處理模塊在上層緩存模塊中讀取IO數(shù)據(jù),若在上層緩存中讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)返回給主機(jī)接口層;

壓縮模塊IO數(shù)據(jù)處理模塊用于若在上層緩存模塊中未讀取到所述IO數(shù)據(jù),上層緩存IO數(shù)據(jù)處理模塊將IO數(shù)據(jù)讀請求發(fā)送至壓縮模塊,壓縮模塊IO數(shù)據(jù)處理模塊在壓縮模塊中讀取IO數(shù)據(jù);若在壓縮模塊中讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)返回給上層緩存,繼而返回至主機(jī)接口層;

下層緩存IO數(shù)據(jù)處理模塊用于若在壓縮模塊中未讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)讀請求發(fā)送至下層緩存模塊,下層緩存IO數(shù)據(jù)處理模塊在下層緩存模塊讀取所述IO數(shù)據(jù)的元數(shù)據(jù),根據(jù)元數(shù)據(jù)信息查找到對應(yīng)的組合壓縮IO數(shù)據(jù)塊內(nèi)的IO數(shù)據(jù);

若在下層緩存模塊中讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)所在的組合壓縮IO數(shù)據(jù)塊返回至壓縮模塊,壓縮模塊對所述組合壓縮IO數(shù)據(jù)塊進(jìn)行解壓,恢復(fù)IO數(shù)據(jù);將IO數(shù)據(jù)返回給上層緩存模塊,繼而返回至主機(jī)接口層。

集成系統(tǒng)還包括:后端磁盤數(shù)據(jù)處理模塊;后端磁盤數(shù)據(jù)處理模塊用于若在下層緩存模塊中未讀取到所述IO數(shù)據(jù),則在后端磁盤讀取所述IO數(shù)據(jù)的元數(shù)據(jù),根據(jù)元數(shù)據(jù)信息查找到對應(yīng)的組合壓縮IO數(shù)據(jù)塊內(nèi)的IO數(shù)據(jù);若在后端磁盤中讀取到所述IO數(shù)據(jù),則將IO數(shù)據(jù)所在的組合壓縮IO數(shù)據(jù)塊返回至壓縮模塊,壓縮模塊對所述組合壓縮IO數(shù)據(jù)塊進(jìn)行解壓,恢復(fù)IO數(shù)據(jù);將IO數(shù)據(jù)返回給上層緩存模塊,繼而返回至主機(jī)接口層。

集成系統(tǒng)還包括:預(yù)設(shè)的壓縮量設(shè)置模塊;預(yù)設(shè)的壓縮量設(shè)置模塊用于在上層緩存模塊隨機(jī)抽取N個IO數(shù)據(jù)塊,N為非零的自然數(shù),對抽取的IO數(shù)據(jù)塊進(jìn)行組合壓縮,組合壓縮后計(jì)算出N個IO數(shù)據(jù)塊的平均MD5值,將該值作為預(yù)設(shè)的壓縮量。

本說明書中各個實(shí)施例采用遞進(jìn)的方式描述,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個實(shí)施例之間相同相似部分互相參考即可。

對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1