CN105022593A - 一种基于数据压缩和数据去冗协同的存储优化方法 - Google Patents
一种基于数据压缩和数据去冗协同的存储优化方法 Download PDFInfo
- Publication number
- CN105022593A CN105022593A CN201510508298.1A CN201510508298A CN105022593A CN 105022593 A CN105022593 A CN 105022593A CN 201510508298 A CN201510508298 A CN 201510508298A CN 105022593 A CN105022593 A CN 105022593A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- data block
- cryptographic hash
- redundant
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000013144 data compression Methods 0.000 title claims abstract description 29
- 238000005457 optimization Methods 0.000 title claims abstract description 16
- 238000007906 compression Methods 0.000 claims abstract description 18
- 230000006835 compression Effects 0.000 claims abstract description 18
- 238000005070 sampling Methods 0.000 claims abstract description 8
- 230000008569 process Effects 0.000 claims description 32
- 230000008030 elimination Effects 0.000 claims description 21
- 238000003379 elimination reaction Methods 0.000 claims description 21
- 238000003780 insertion Methods 0.000 claims description 11
- 230000037431 insertion Effects 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 10
- 238000007599 discharging Methods 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 abstract description 12
- 238000013500 data storage Methods 0.000 abstract 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 240000007643 Phytolacca americana Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种基于数据压缩和数据去冗协同的存储优化方法。本方法会在数据压缩机制起作用之前判断是否需要进行数据去冗余。给定一批需要压缩的数据块,本方法首先会基于采样来估算性能开销较高的数据去冗余机制的收益,并判断是否值得进行数据去冗余:如果值得,就对全部给定数据块先进行去冗余,然后再压缩,否则就直接进行压缩。本发明通过协同原本独立的两套减少数据存储量的机制,能够最大化数据存储的效率。
Description
技术领域
本发明涉及计算机数据处理领域,特别是一种基于数据压缩和数据去冗协同的存储优化方法。
背景技术
提高物理介质的有限的容量的利用率,当前有两种主流的方法,分别为数据去冗余(Data Deduplication)和数据压缩(Date Compression)。其中数据去冗余是通过对数据块进行扫描检查,以hash值作为特征组织数据块,发现多个相同的数据块,通过间接引用的方式合并成一块,进而节省整个存储的空间,。而数据压缩依赖于现有的数据压缩算法(如LZW),尝试压缩数据块,如果压缩率高于阈值,就保存压缩后的数据块,并释放原来数据块空间,以达到节省空间的目的。数据压缩技术相比较数据块去冗技术在节约存储资源上有不同的特性差异:前者相对反应迅速,有较稳定的数据压缩比,;而后者需要找到两个完全相同的数据块,因此必须扫描所有数据块,扫描过程持续时间长,且在不同的场景下数据压缩比有较大差异,在某些场景下有前者无法比拟的压缩比,然在另外一些场景下则几乎没有压缩效果。因此,实际的应用中,这两种方法无法互相替代。在考虑压缩速度、计算代价、压缩比等多种因素的情况下,为了达到更高效率的存储压缩,需要考虑这两种方法在实际应用中的协同性问题。实际中要同时使用这两种方法并不能简单的让它们先后执行。如果单纯的先用数据压缩,再进行数据去冗余,会导致节约数据空间效果没有达到最好。而单纯的先进行数据去冗余,再进行数据压缩又不能保证时间效率。在同时使用这两种方法时需要一种方法来协调调度它们,在进行数据去冗余前需要做出判断,只有判断认为消耗时间进行数据去冗余是有价值的,再进行数据去冗余,否则进行数据压缩。
发明内容
发明目的:本发明所要解决的技术问题是当前数据压缩机制与数据去冗余机制并不协同工作的缺陷,用一种基于数据压缩和数据去冗协同的存储优化方法来协调调度,在进行数据去冗余前需要做出判断,只有判断认为消耗时间进行数据去冗余是有价值的,再进行数据去冗余,否则进行数据压缩。
为了解决上述技术问题,本发明公开了一种基于数据压缩和数据去冗协同的存储优化方法,包括以下步骤:
步骤1,假设计算机在某个情况下需要回收释放存储介质(内存、磁盘)中N个数据块的空间来存储更多的新数据,候选的可用于释放的数据块集合DSet包含M个数据块(M>N),则此次处理期望释放出的数据存储比率S=N/M。设置采样比率阈值R,0%<R≤100%,数据去冗余执行百分比阈值P,0%<P≤100%;
步骤2,使用系统提供的随机发生器,产生随机种子,填入伪随机算法产生一个数据块随机扫描序列Block1、Block2、…BlockM;
步骤3,选择一个快速的去冗扫描的哈希算法H,对前M×R个数据块Block1、Block2、…BlockM×R进行扫描,计算每个数据块的哈希值H(Block1)、H(Block2)…H(BlockM×R);
步骤4,将所有数据块哈希值,逐个插入到查找数据结构;在插入过程中,如果有相同的哈希值,则进一步判断是否哈希函数为加密强度哈希算法(如MD5、SHA1),如果是加密强度,则将其中一个数据块作为冗余数据块处理,并跳转至步骤6;如果不是加密强度则继续步骤5;如果没有相同的哈希值,则将该哈希值作为查找数据结构的一个键值插入到结构中;
步骤5,逐字节比对哈希值相同的数据块内容,如果数据块内容也相同,那么将其中一个数据块作为冗余数据块处理;如果数据块内容不相同,则将该哈希值作为查找数据结构的一个键值插入到结构中;
步骤6,统计步骤4和5中的所有冗余数据块的数量,计数为C;计算实际冗余度E=C/(M×R),如果P≤E,则扫描数据块序列BlockM×R+1、BlockM×R+2、…BlockM,计算每个数据块对应的哈希值,将所有数据块哈希值,插入到查找数据结构;在插入过程中,如果有相同的哈希值,则进一步判断是否哈希函数为加密强度哈希算法(如MD5、SHA1),如果是加密强度,则将其中一个数据块作为冗余数据块处理,如果不是加密强度则需要进一步逐字节比对所对应的内存数据块内容,如果内存数据块内容也相同,那么将其中一个数据块作为冗余数据块处理;如果没有相同的哈希值或者逐字节比较的数据块内容不一样,则将该哈希值作为查找数据结构的一个键值插入到结构中;并统计剩余冗余计数为C’,所有数据块扫描完成以后,得出的尚未释放的数据块集合,定义为Dset’;如果P>E那么,令实际节省的数据存储空间比率Q=0,并跳转至步骤8;
步骤7,计算出实际节省的数据存储空间比率Q,Q=(C+C')/M,如果S≤Q,则已经回收超过N个数据块,结束,否则,如果S>Q,则继续步骤8;
步骤8,选择针对内存的快速压缩算法Z,逐个扫描并压缩数据块集合Dset’,针对每个数据块压缩以后的数据块BZi=Z(Blocki),其中i为Dset’中任意一个合法的索引值即Blocki∈Dset’。释放数据块Blocki并将数据块BZi写入至存储设备。此过程持续直到释放空闲出的数据块数量大于N。
数据块集合DSet的载体为任意用以存储数据的物理设备。
有益效果:本发明适用于需要进一步节省存储空间的软件系统中,其主要有益效果体现在:对数据压缩和数据去冗余两种方法进行协作,比简单组合这两种方法,提供更好的时间效率和存储效率。本方法能够协同两类不同的存储优化方法,优化更加完善。根据不同的具体实施场景,数据去冗机制与数据压缩可以自适应不同的阈值S与P进行协同工作。本方法不限定特定的数据去冗机制算法与压缩算法,具有具体算法的普遍适用性。
附图说明
图1为本发明处理流程图。
具体实施方式
本发明提出了一种基于数据压缩和数据去冗协同的存储优化方法。本方法会在数据压缩机制起作用之前判断是否需要进行数据去冗余。给定一批需要压缩的数据块,本方法首先会基于采样来估算性能开销较高的数据去冗余机制的收益,并判断是否值得进行数据去冗余:如果值得,就对全部给定数据块先进行去冗余,然后再压缩,否则就直接进行压缩。本发明通过协同原本独立的两套减少数据存储量的机制,能够最大化数据存储的效率。
如图1所示,本发明公开了一种基于数据压缩和数据去冗协同的存储优化方法,包括以下步骤:
步骤1,假设计算机在某个情况下需要回收释放存储介质(内存、磁盘)中N个数据块的空间来存储更多的新数据,候选的可用于释放的数据块集合DSet包含M个数据块(M>N),则此次处理期望释放出的数据存储比率S=N/M。设置采样比率阈值R,0%<R≤100%,数据去冗余执行百分比阈值P,0%<P≤100%;
步骤2,使用系统提供的随机发生器,产生随机种子,填入伪随机算法产生一个数据块随机扫描序列Block1、Block2、…BlockM;
步骤3,选择一个快速的去冗扫描的哈希算法H,对前M×R个数据块Block1、Block2、…BlockM×R进行扫描,计算每个数据块的哈希值H(Block1)、H(Block2)…H(BlockM×R);
步骤4,将所有数据块哈希值,逐个插入到查找数据结构;在插入过程中,如果有相同的哈希值,则进一步判断是否哈希函数为加密强度哈希算法(如MD5、SHA1),如果是加密强度,则将其中一个数据块作为冗余数据块处理,并跳转至步骤6;如果不是加密强度则继续步骤5;如果没有相同的哈希值,则将该哈希值作为查找数据结构的一个键值插入到结构中;
步骤5,逐字节比对哈希值相同的数据块内容,如果数据块内容也相同,那么将其中一个数据块作为冗余数据块处理;如果数据块内容不相同,则将该哈希值作为查找数据结构的一个键值插入到结构中;
步骤6,统计步骤4和5中的所有冗余数据块的数量,计数为C;计算实际冗余度E=C/(M×R),如果P≤E,则扫描数据块序列BlockM×R+1、BlockM×R+2、…BlockM,计算每个数据块对应的哈希值,将所有数据块哈希值,插入到查找数据结构;在插入过程中,如果有相同的哈希值,则进一步判断是否哈希函数为加密强度哈希算法(如MD5、SHA1),如果是加密强度,则将其中一个数据块作为冗余数据块处理,如果不是加密强度则需要进一步逐字节比对所对应的内存数据块内容,如果内存数据块内容也相同,那么将其中一个数据块作为冗余数据块处理;如果没有相同的哈希值或者逐字节比较的数据块内容不一样,则将该哈希值作为查找数据结构的一个键值插入到结构中;并统计剩余冗余计数为C’,所有数据块扫描完成以后,得出的尚未释放的数据块集合,定义为Dset’;如果P>E那么,令实际节省的数据存储空间比率Q=0,并跳转至步骤8;
步骤7,计算出实际节省的数据存储空间比率Q,Q=(C+C')/M,如果S≤Q,则已经回收超过N个数据块,结束,否则,如果S>Q,则继续步骤8;
步骤8,选择针对内存的快速压缩算法Z,逐个扫描并压缩数据块集合Dset’,针对每个数据块压缩以后的数据块BZi=Z(Blocki),其中i为Dset’中任意一个合法的索引值即Blocki∈Dset’。释放数据块Blocki并将数据块BZi写入至存储设备。此过程持续直到释放空闲出的数据块数量大于N。
实施例1
如图1所示,本实施例公开了一种基于数据压缩和数据去冗协同的存储优化方法,包括以下步骤:
步骤1,假设计算机在某个情况下需要回收释放存储介质(内存、磁盘)中N个数据块的空间来存储更多的新数据,候选的可用于释放的数据块集合DSet包含M个数据块(M>N),则此次处理期望释放出的数据存储比率S=N/M。设置采样比率阈值R,0%<R≤100%,数据去冗余执行百分比阈值P,0%<P≤100%;
步骤2,使用系统提供的随机发生器,产生随机种子,填入伪随机算法产生一个数据块随机扫描序列Block1、Block2、…BlockM;
步骤3,选择一个快速的去冗扫描的哈希算法H,对前M×R个数据块Block1、Block2、…BlockM×R进行扫描,计算每个数据块的哈希值H(Block1)、H(Block2)…H(BlockM×R);
步骤4,将所有数据块哈希值,逐个插入到查找数据结构;在插入过程中,如果有相同的哈希值,则进一步判断是否哈希函数为加密强度哈希算法(如MD5、SHA1),如果是加密强度,则将其中一个数据块作为冗余数据块处理,并跳转至步骤6;如果不是加密强度则继续步骤5;如果没有相同的哈希值,则将该哈希值作为查找数据结构的一个键值插入到结构中;
步骤5,逐字节比对哈希值相同的数据块内容,如果数据块内容也相同,那么将其中一个数据块作为冗余数据块处理;如果没有相同的哈希值,则将该哈希值作为查找数据结构的一个键值插入到结构中;
步骤6,统计步骤4和5中的所有冗余数据块的数量,计数为C;计算实际冗余度E=C/(M×R),如果P≤E,则扫描数据块序列BlockM×R+1、BlockM×R+2、…BlockM,计算每个数据块对应的哈希值,将所有数据块哈希值,插入到查找数据结构;在插入过程中,如果有相同的哈希值,则进一步判断是否哈希函数为加密强度哈希算法(如MD5、SHA1),如果是加密强度,则将其中一个数据块作为冗余数据块处理,如果不是加密强度则需要进一步逐字节比对所对应的内存数据块内容,如果内存数据块内容也相同,那么将其中一个数据块作为冗余数据块处理;如果没有相同的哈希值或者逐字节比较的数据块内容不一样,则将该哈希值作为查找数据结构的一个键值插入到结构中;并统计剩余冗余计数为C’,所有数据块扫描完成以后,得出的尚未释放的数据块集合,定义为Dset’;如果P>E那么,令实际节省的数据存储空间比率Q=0,并跳转至步骤8;
步骤7,计算出实际节省的数据存储空间比率Q,Q=(C+C')/M,如果S≤Q,则已经回收超过N个数据块,结束,否则,如果S>Q,则继续步骤8;
步骤8,选择针对内存的快速压缩算法Z,逐个扫描并压缩数据块集合Dset’,针对每个数据块压缩以后的数据块BZi=Z(Blocki),其中i为Dset’中任意一个合法的索引值即Blocki∈Dset’。释放数据块Blocki并将数据块BZi写入至存储设备。此过程持续直到释放空闲出的数据块数量大于N。
扫描的过程所用的数据压缩的算法根据场景而定,一般来说,具体的实施场景应已有合适的数据压缩算法。
本方法可用于提高存储介质的存数效率,此类需求可以广泛出现在存储系统,内存管理,数据备份等等很多场景,接下来实施例将具体阐述。
实施例2
本实施案例公开了一种基于数据压缩和数据去冗协同的存储优化方法在一个操作系统内存管理上的应用。实施场景如下所述:
一个计算机系统有固定大小的物理内存RAM和磁盘交换SWAP,若系统中程序在不断地申请内存超过RAM的容量,那么系统就需要进行速度缓慢的磁盘交换以换取更多的物理内存空间。当代操作系统如Linux和OS X,具有内存压缩机制(ZSWAP)和页面内存去冗机制(KSM)能缓解交换的压力,提升系统内存使用效率,但是,它们不能协同工作。
在此场景下,本实施例的方法具体实施步骤为:
步骤1,假定系统在某时刻由于内存空间不足企图回收N个页面,则定义数据块集合DSet为所有可交换的内存页面,数量为M,则此次处理期望节省的数据存储比率S=N/M,取数据去冗采样比率为R=1%,数据去冗余执行百分比阈值为P=30%。
步骤2,为了能够得出对有规律分布的内存页面的一个比较合理的评估值,使用系统提供的随机发生器,产生随机种子,填入伪随机算法产生一个页面随机扫描序列Page1、Page2、…PageM。
步骤3,选择一个快速的内存去冗扫描的哈希算法H(可以选择Jhash,SuperFastHash等),对前M×R个页面即进行Page1、Page2、…PageM×R,进行扫描,计算每个页面的哈希值H(Page1)、H(Page2)…H(PageM×R)。
步骤4,将所有页面哈希值,插入到查找数据结构,可以选择红黑树,AVL树等。在插入过程中,如果碰到有相同的哈希值,那么,进一步逐字节比对,所对应的内存页面内容,如果页面内容也相同,那么其中一个页面作为冗余页面处理(如可以通过COW方式合并)。如果没有碰到相同的哈希值,那么该哈希值则作为查找数据结构的一个键值被插入到结构中去。该步骤完成之后,某些页面可能已经合并,所以Page1、Page2、…PageM×R中某些页面已经释放。
步骤5,统计步骤4中的所有冗余页面的数量,计数为C。计算实际冗余度E=C/(M×R),如果P≤E,那么,使用步骤3、4的方式扫描页面序列PageM×R+1、…PageM,并统计冗余计数为C’,所有页面扫描完成以后,得出的尚未释放的页面集合,定义为Dset’。如果P>E那么,令Q=0跳转至步骤7。
步骤6,计算出实际节省的数据存储空间比率Q(扫描结束后产生的空闲页面占DSet的比率),Q=(C+C')/M。如果S≤Q,那么系统已经回收超过N个页面,整个方法结束。如果S>Q那么继续步骤7。
步骤7,选择针对内存的快速压缩算法,如LZO。逐个扫描可能已经经过冗余去除优化过的页面集合Dset’,针对每个页面压缩以后的数据块PZi=LZO(Pagei)。然后释放Pagei,并同时异步将PZi写入至OS页面交换设备(一般为硬盘)并释放PZi。该过程持续至释放空闲出的页面数量大于N。
本实施例与当前Linux已有技术比较,比同时打开KSM机制和ZSWAP机制提供更高的内存使用率,因为当前Linux系统中,KSM与ZSWAP不协同工作,使得同时打开时,KSM来不及进行去冗,ZSWAP就已经将大部分需要交换的页面压缩,而压缩以后的页面无法进行KSM去冗。
实施例3
本实施案例公开了一种基于数据压缩和数据去冗协同的存储优化方法在一个磁盘存储系统中的应用。实施场景如下所述:
一个计算机系统使用硬盘存储文件资料,以4k磁盘块的方式组织数据。如果磁盘渐满,则需要优化存储空间来获得更多的空闲存储。当代的服务器文件系统如zfs,btrfs等都同时具有去冗余与压缩的功能,然而这两个功能都是独立地按照同步或者异步方式运行,两者并不能将协同工作。实施了本方法以后,硬盘存储可以获得更多的空闲存储,并且整体优化的速度得以提高。
在此场景下,本实施例的方法具体实施步骤为:
步骤1,假设计算机磁盘中仅有个A个空闲数据块,但即将写入B个空闲块,则此次期望优化得出的空闲块数量N,N=B-A,候选的可用于释放的数据块集合DSet为磁盘中尚未经过优化处理的数据块,其数量为M(M>N),则此次处理期望释放出的数据存储比率S=N/M。设置采样比率阈值R为1%,数据去冗余执行百分比阈值P为20%;
步骤2,使用系统提供的随机发生器,产生随机种子,填入伪随机算法产生一个数据块随机扫描序列Block1、Block2、…BlockM,将此序列放入内存中;
步骤3,选择密码学强度的哈希算法SHA256,对前M×R个数据块Block1、Block2、…BlockM×R进行扫描,计算每个数据块的哈希值SHA256(Block1)、SHA256(Block2)…SHA256(BlockM×R);
步骤4,将所有数据块哈希值,逐个插入到内存中的哈希表中;在插入过程中,如果有相同的哈希值,则将其中一个数据块的存储空间释放,而将其磁盘块索引指针指向另一个数据块;如果没有相同的哈希值,则将该哈希值作为查找数据结构的一个键值插入到哈希表中;
步骤5,统计步骤4中的所有冗余数据块的数量,计数为C;计算实际冗余度E=C/(M×R),如果P≤E,则扫描剩余的数据块序列BlockM×R+1、BlockM×R+2、…BlockM,计算每个数据块对应的哈希值,将所有数据块哈希值,插入哈希表;在插入过程中,如果有相同的哈希值,则将其中一个数据块的存储空间释放,而将其磁盘块索引指针指向另一个数据块,如果没有相同的哈希值,则将该哈希值作为查找数据结构的一个键值插入到结构中,并统计剩余冗余计数为C’,所有数据块扫描完成以后,得出的尚未释放的数据块集合,定义为Dset’;如果P>E那么,令实际节省的数据存储空间比率Q=0,并跳转至步骤7;
步骤7,计算出实际节省的数据存储空间比率Q,Q=(C+C')/M,如果S≤Q,则已经回收超过N个数据块,结束,否则,如果S>Q,则继续步骤8;
步骤8,选择针对内存的快速压缩算法LZMA,逐个扫描并压缩数据块集合Dset’,针对每个数据块压缩以后的数据块BZi=LZMA(Blocki),其中i为Dset’中任意一个合法的索引值即Blocki∈Dset’。释放数据块Blocki并将数据块BZi写入至存储设备。此过程持续直到释放空闲出的数据块数量大于N。
本发明提供了一种基于数据压缩和数据去冗协同的存储优化方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (2)
1.一种基于数据压缩和数据去冗协同的存储优化方法,其特征在于,包含以下步骤:
步骤1,假设计算机需要回收释放存储介质中N个数据块的空间,候选的可用于释放的数据块集合DSet包含M个数据块,M>N,则此次处理期望释放出的数据存储比率S=N/M;设置采样比率阈值R,0%<R≤100%,数据去冗余执行百分比阈值P,0%<P≤100%;
步骤2,使用随机发生器产生随机种子,填入伪随机算法产生一个数据块随机扫描序列Block1、Block2、…BlockM;
步骤3,选择一个快速的去冗扫描的哈希算法H,对前M×R个数据块Block1、Block2、…BlockM×R进行扫描,计算每个数据块的哈希值H(Block1)、H(Block2)…H(BlockM×R);
步骤4,将所有数据块哈希值,逐个插入到查找数据结构;在插入过程中,如果有两个数据块的哈希值相同,则进一步判断哈希函数是否为加密强度哈希算法,如果是,则将其中一个数据块作为冗余数据块处理,并跳转至步骤6;如果否,则继续步骤5;如果没有两个数据块的哈希值相同,则将该哈希值作为查找数据结构的一个键值插入到查找数据结构中,继续步骤6;
步骤5,逐字节比对哈希值相同的数据块内容,如果数据块内容相同,那么将其中一个数据块作为冗余数据块处理;如果数据块内容不相同,则将该哈希值作为查找数据结构的一个键值插入到数据结构中;
步骤6,统计步骤4和5中的所有冗余数据块的数量,计数为C;计算实际冗余度E=C/(M×R),如果P≤E,则扫描剩余的数据块序列BlockM×R+1、BlockM×R+2、…BlockM,计算每个数据块对应的哈希值,将所有数据块哈希值,插入到查找数据结构;在插入过程中,两个数据块的哈希值相同,则进一步判断是否哈希函数为加密强度哈希算法,如果是,则将其中一个数据块作为冗余数据块处理,如果不是,则进一步逐字节比对所对应的内存数据块内容;如果内存数据块内容相同,则将其中一个数据块作为冗余数据块处理;如果没有两个数据块的哈希值相同或者逐字节比较的数据块内容不一样,则将该哈希值作为查找数据结构的一个键值插入到结构中;并统计剩余冗余计数为C’,所有数据块扫描完成以后,得出的尚未释放的数据块集合,定义为数据块集合Dset’;如果P>E那么,令实际节省的数据存储空间比率Q=0,并跳转至步骤8;
步骤7,计算出实际节省的数据存储空间比率Q,Q=(C+C')/M,如果S≤Q,则已经回收超过N个数据块,结束,否则,如果S>Q,则继续步骤8;
步骤8,选择针对内存的快速压缩算法Z,逐个扫描并压缩数据块集合Dset’,针对每个数据块压缩以后的数据块BZi=Z(Blocki),其中i为数据块集合Dset’中任意一个合法的索引值即Blocki∈Dset’;释放数据块Blocki并将数据块BZi写入至存储设备,此过程持续直到释放空闲出的数据块数量大于N。
2.根据权利要求1所述的方法,其特征在于,数据块集合DSet的载体为任意用以存储数据的物理设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510508298.1A CN105022593B (zh) | 2015-08-18 | 2015-08-18 | 一种基于数据压缩和数据去冗协同的存储优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510508298.1A CN105022593B (zh) | 2015-08-18 | 2015-08-18 | 一种基于数据压缩和数据去冗协同的存储优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105022593A true CN105022593A (zh) | 2015-11-04 |
CN105022593B CN105022593B (zh) | 2017-09-26 |
Family
ID=54412588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510508298.1A Active CN105022593B (zh) | 2015-08-18 | 2015-08-18 | 一种基于数据压缩和数据去冗协同的存储优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105022593B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815057A (zh) * | 2015-11-30 | 2017-06-09 | 联发科技股份有限公司 | 依需合并具有相同内容的页面的方法和系统 |
CN109558442A (zh) * | 2018-11-19 | 2019-04-02 | 中国科学院信息工程研究所 | 一种数据实时汇聚方法及系统 |
TWI673958B (zh) * | 2018-08-30 | 2019-10-01 | 英屬開曼群島商捷鼎創新股份有限公司 | 基於抽樣猜測之資料壓縮方法 |
CN110419036A (zh) * | 2016-09-30 | 2019-11-05 | 华为技术有限公司 | 数据压缩方法、设备与计算设备 |
CN111309690A (zh) * | 2020-02-05 | 2020-06-19 | 吉林大学 | 一种数控机床g代码数据无损压缩方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831222A (zh) * | 2012-08-24 | 2012-12-19 | 华中科技大学 | 一种基于重复数据删除的差量压缩方法 |
CN103020317A (zh) * | 2013-01-10 | 2013-04-03 | 曙光信息产业(北京)有限公司 | 基于重复数据删除的数据压缩方法和装置 |
CN103914522A (zh) * | 2014-03-20 | 2014-07-09 | 电子科技大学 | 一种应用于云存储重复数据删除的数据块合并方法 |
US20150149739A1 (en) * | 2013-11-25 | 2015-05-28 | Research & Business Foundation Sungkyunkwan University | Method of storing data in distributed manner based on technique of predicting data compression ratio, and storage device and system using same |
-
2015
- 2015-08-18 CN CN201510508298.1A patent/CN105022593B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831222A (zh) * | 2012-08-24 | 2012-12-19 | 华中科技大学 | 一种基于重复数据删除的差量压缩方法 |
CN103020317A (zh) * | 2013-01-10 | 2013-04-03 | 曙光信息产业(北京)有限公司 | 基于重复数据删除的数据压缩方法和装置 |
US20150149739A1 (en) * | 2013-11-25 | 2015-05-28 | Research & Business Foundation Sungkyunkwan University | Method of storing data in distributed manner based on technique of predicting data compression ratio, and storage device and system using same |
CN103914522A (zh) * | 2014-03-20 | 2014-07-09 | 电子科技大学 | 一种应用于云存储重复数据删除的数据块合并方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815057A (zh) * | 2015-11-30 | 2017-06-09 | 联发科技股份有限公司 | 依需合并具有相同内容的页面的方法和系统 |
CN110419036A (zh) * | 2016-09-30 | 2019-11-05 | 华为技术有限公司 | 数据压缩方法、设备与计算设备 |
CN110419036B (zh) * | 2016-09-30 | 2022-04-12 | 华为技术有限公司 | 数据压缩方法、设备与计算设备 |
TWI673958B (zh) * | 2018-08-30 | 2019-10-01 | 英屬開曼群島商捷鼎創新股份有限公司 | 基於抽樣猜測之資料壓縮方法 |
CN109558442A (zh) * | 2018-11-19 | 2019-04-02 | 中国科学院信息工程研究所 | 一种数据实时汇聚方法及系统 |
CN109558442B (zh) * | 2018-11-19 | 2020-10-20 | 中国科学院信息工程研究所 | 一种数据实时汇聚方法及系统 |
CN111309690A (zh) * | 2020-02-05 | 2020-06-19 | 吉林大学 | 一种数控机床g代码数据无损压缩方法 |
CN111309690B (zh) * | 2020-02-05 | 2022-10-21 | 吉林大学 | 一种数控机床g代码数据无损压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105022593B (zh) | 2017-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105022593A (zh) | 一种基于数据压缩和数据去冗协同的存储优化方法 | |
CN102567427B (zh) | 一种对象数据处理方法及装置 | |
US7856437B2 (en) | Storing nodes representing respective chunks of files in a data store | |
CN103412825B (zh) | 一种内存释放方法及装置 | |
CN102436408B (zh) | 基于Map/Dedup的数据存储云化和云备份方法 | |
US20090037456A1 (en) | Providing an index for a data store | |
CN104571955A (zh) | 提高存储容量的方法和装置 | |
CN104238962A (zh) | 向缓存中写入数据的方法及装置 | |
CN111061752B (zh) | 数据处理方法、装置及电子设备 | |
CN103902407A (zh) | 一种虚拟机恢复方法及服务器 | |
CN105183399A (zh) | 一种基于弹性块存储的数据写、读方法及装置 | |
CN103823807A (zh) | 一种去除重复数据的方法、装置及系统 | |
CN110019063B (zh) | 计算节点数据容灾回放的方法、终端设备及存储介质 | |
CN104035822A (zh) | 一种低开销的高效内存去冗余方法及系统 | |
CN104965835A (zh) | 一种分布式文件系统的文件读写方法及装置 | |
CN114490060A (zh) | 内存分配方法、装置、计算机设备和计算机可读存储介质 | |
CN110007860A (zh) | 基于lsm数据库的垃圾处理的方法、固态硬盘以及存储装置 | |
CN111061428B (zh) | 一种数据压缩的方法及装置 | |
CN111026736B (zh) | 数据血缘管理方法及装置、数据血缘解析方法及装置 | |
CN110955496A (zh) | 内存处理方法及装置、存储介质、电子装置 | |
CN104298614A (zh) | 数据块在存储设备中存储方法和存储设备 | |
WO2020238750A1 (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
CN113342836A (zh) | 同步数据处理方法、装置、计算机设备及存储介质 | |
CN112800123A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN103853850A (zh) | 用户为中心的Android系统数据清除方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |