CN1716215A - 减少存储介质中的数据冗余的方法 - Google Patents
减少存储介质中的数据冗余的方法 Download PDFInfo
- Publication number
- CN1716215A CN1716215A CN 200410062646 CN200410062646A CN1716215A CN 1716215 A CN1716215 A CN 1716215A CN 200410062646 CN200410062646 CN 200410062646 CN 200410062646 A CN200410062646 A CN 200410062646A CN 1716215 A CN1716215 A CN 1716215A
- Authority
- CN
- China
- Prior art keywords
- data
- fundamental block
- key assignments
- storage area
- storage medium
- 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
Images
Abstract
本发明公开了一种减少块存储介质中数据冗余的方法,用以解决存储介质中数据冗余过多的问题,该方法将所述块存储介质的块数据存储空间划分为访问区和公共存储区两部分,实际块数据存储在所述公共存储区中,所述访问区包括一个线性地址表,所述线性地址表由指针构成,所述指针所指地址为所述公共存储区中存储的某个实际数据的存储地址,多个所述指针可以指向同一数据的地址。利用该方法可避免相同数据块的重复存储,产生良好的经济效益。
Description
技术领域
本发明涉及数据存储技术,尤其涉及一种在块存储介质的数据存储中减少数据冗余的方法。
背景技术
随着信息技术的发展,数据信息正以爆炸式的速度增长,人们对数据存储容量的需求也越来越多,而这种爆炸式的需求增长,同时也带来了大量的数据冗余,这既是对存储介质的浪费,也不利于在网络应用中满足存储的需求,因此,需要提出新的技术方案来减少大量数据存储所产生的大量的数据冗余。然而,目前为止,尚未发现有可显著减少数据冗余的实用方案。
发明内容
鉴于现有的数据存储技术的上述缺陷,本发明的目的是解决现有技术的存储介质中存在过多的数据冗余的问题。
为实现上述目的,本发明提供了一种减少存储介质中的数据冗余的方法,包括:将所述存储介质的数据存储空间划分为访问区和公共存储区,所述公共存储区用于储存实际块数据,所述访问区包括线性地址表;和利用所述线性地址表作为对所述公共存储区的数据地址索引,对所述公共存储区中的实际块数据进行数据处理。
优选地,所述线性地址表由指针构成,所述指针所指地址为所述公共存储区中存储的实际数据的存储地址,并且多个所述指针可以指向同一数据的地址。
优选地,所述实际数据以元数据的形式存储在所述公共存储区中,所述元数据包括基本块和基本块键值,所述基本块键值为所述基本块的索引,并根据所述基本块确定,例如,可利用哈希算法从所述基本块中计算出来。
另外,所述访问区还可包括磁盘基本数据区。
利用本发明的方法,可以避免相同数据块的重复存储,减少存储介质的浪费。
附图说明
图1是本发明一个实施例的访问区的示意图;
图2是本发明一个实施例的公用存储区的示意图;
图3是本发明的数据模型及操作示意图。
具体实施方式
下面结合附图详细介绍本发明,附图仅用于说明,不是对本发明专利范围的限制。
针对现有的大多数块存储介质,本发明提供了一种减少数据冗余的方法。块存储介质主要是以块为单位对存储介质进行访问,并且按照线性的方式进行寻址,例如一个块大小为512k,则地址为1的块实际上代表存储介质0~524288字节的数据,而地址为2则代表524289~1048577字节的数据,以此类推...。本发明的方法将原来整个的线性的块数据存储空间构建成访问区和公共存储区两部分。其中访问区包括所存储的实际数据的一个线性地址表。该线性地址表由元数据指针构成,元数据指针所指地址为在公共存储区中存储的某个块数据的地址,可以由多个指针指向公共存储区中的同一个块数据,这样可以避免相同数据块的重复存储。
可以认为,块数据的冗余量与块数据的大小成反比。不同的文件系统,甚至同样的文件系统所产生的块大小都会不同,因此需要将实际文件系统所处理的块大小与本发明中的所进行冗余操作的块大小区分开,在本发明中,进行冗余操作的最小块数据为基本块,其它所有块数据的大小都应该是它的整数倍。
为便于以下对本发明具体实施方案的说明,首先定义下面的术语:
1.基本块大小(BBS):
指对块数据进行操作的最小单位
2.基本块(BBL):
指本方法中进行最小操作的数据实体
3.元数据指针(MDP,即基本块指针):
元数据在公共存储区内的偏移量
4.存储介质容量(SMC):
物理存储介质的真实容量;
5.操作块大小(SBS):
外界对存储介质进行操作时的块数据的大小
6.基本块键值(BBK):
该值由基本块数据通过哈希算法获得,作为基本块数据索引。当然,也可采用其它适合的算法来获得基本块数据
7.基本块键值大小(BBKS):
该键值的取值将影响到对基本块数据索引的效率
8.元数据(MD):
由基本块和基本块键值组成的数据单元
9.显示存储容量(DSC):
指由计算机读取并显示给用户的介质的存储容量
如图1所示,在本发明的一个实施方案中,访问区由磁盘基本信息及线性地址表所组成。其中磁盘基本信息部分主要用来记录磁盘的一些基本信息,这些信息包括:磁盘容量、基本块数据大小、厂家信息以及保留字等。线性地址表由一系列元数据指针所组成,每一个元数据指针都指向公共存储区的一个基本块数据,一个或者多个基本块组成一个操作块。多个这样的地址组成了线性地址表。
如图2所示,在本发明中,公用存储区用来存放基本块数据,公共存储区是一个以基本块为单位进行访问的线性的地址空间,其最小单元(元数据)由一个基本块和一个基本块键值组成。基本块键值由基本块数据通过适当的哈希算法获得,并作为基本块数据的索引值。当写入的时候,需要将需写入的数据块依据哈希算法计算出哈希值,并与已经存在的基本块的键值(哈希值)进行比较,从而确定是否已经存在相同的数据块,通过该值,可以很快地索引到某一个基本块数据,这对于某个基本块数据的写入十分重要。
在本发明中,采用哈希算法从基本块数据得到基本块键值,通过该算法构建一个哈希表。由于具体实现的算法可以有很多种,本方法并不规定具体的实现,而只是就实现公共存储区的构建和操作对该算法的要求提出约束条件:
1.该算法必须能真实反映基本块数据的均匀分布。假如一个数据块大小是8位,则每一位都有可能是0,也有可能是1,这意味着由8位0或1组成的数可能是0~255中的任何一个。对于这个范围的数而言,都一定是会出现的,算法必须能真实地反应这种出现的可能。即使通过基本块键值不能一次就决断出块数据,也必须能在一个有限的最小次数内决断出块数据。
2.通过该算法,基本块键值的大小能够反映出基本块的内容,也就是说,基本块数据的内容递增或递减(以前面一个8位数据块为例,当该数据块以0~255的方向递增时,通过算法获得的基本块键值也应该是递增的,反之亦然。)所得出的基本块键值也会相应递增或递减,它们是线性正比关系。
3.通过该算法,必须能得到恰当的基本块键值大小、元数据指针大小、以及基本块大小。实际上,针对具体存储介质,在实际存储介质大小已经确定的情况下,选取最小的元数据指针大小(即该指针是一个32位的指针或者16位的,甚至8位的),并且在考虑到性能的情况下,选取最恰当的基本块键值大小和基本块大小都是非常重要的。好的哈希算法可以在保持恰当的最大决断次数的情况下计算出更小的键值。
m-元数据指针数目;x-块冗余数
A)考虑到没有任何一个冗余存在的情况,冗余数为0:
实际存储容量=m*(MDP的大小+BBKS+BBS)
显示已存储容量=m*BBS
B)考虑到所有块都冗余的情况,冗余数为m-1:
实际存储容量=m*MDP的大小+BBKS+BBS
显示已存储容量=m*BBS
C)考虑到中间状况,有部分块冗余,冗余数为x:
实际存储容量=m*MDP的大小+(m-x)(BBKS+BBS)
显示已存储容量=m*BBS
那么此时:
剩余容量
=(SMC-(m*MDP的大小+(m-x)(BBKS+BBS)))/(MDP的大小+BBKS+BBS)*BBS
=(SMC+x*(BBKS+BBS)/(MDP的大小+BBKS+BBS)-m)*BBS
可以很直观地了解到,元数据的尺寸越大,则m与MDP的值越小,它们成反比关系
MDP的大小=f1(1/MD的大小);
m=f2(1/MD的大小)
式中,f1和f2分别表示MDP的大小与MD的大小的函数关系。在基于前两个原则的情况下,元数据的大小越大,必然会导致BBKS增大,而BBS过小,针对一个比较大的实际的存储设备,为了能够寻址则会产生一个比较大MDP,从而导致实际上存储空间利用率的下降;而针对确定的BBS,过小的BBKS则造成决断次数的增加(为了获得更小的BBKS而形成的哈希算法计算出的更小的BBK将会导致一个BBK面对更多的BBL),从而造成性能上的下降。因此需要平衡这几者之间的关系,以保证x*BBS-((m-x)*BBKS+m*MDP)的值最大化。这也是本发明的目的所在。其中,x*BBS是所节约下来的空间,((m-x)*BBKS+m*MDP)是为了节约空间所造成的必然的开销。
图3是本发明的数据模型及操作示意图,如图3所示,本发明的方法涉及以下的块数据操作:
1.读取
读取块数据是最简单的,当需要读取一个操作块的时候,这个操作块是由一个或者多个元数据指针所指的元数据所组成,通过读出这些元数据并合并,合并只是按照该基本块地址指针在访问区中的顺序将其所指的基本块数据进行简单的合并即可,就可以得出所需要的数据了。
2.写入
写入块数据则相对复杂一些,首先将要写入的操作块拆分成若干个基本块,并计算每一个基本块的键值,通过该键值在公共存储区中进行决断,当无法决断出该基本块时,即认为该基本块为新的数据,将其与键值作为元数据写入公共存储区,并将元数据指针保存到访问区的线性地址表中。如果该基本块被决断,则只是简单地将元数据指针保存到访问区即可。
3.删除
删除也比较简单,将相应的元数据指针与基本块键值置为0即可。
以上所述仅为本发明的优选实施方案,不是对本发明专利范围的限制,凡利用本发明的说明书及附图内容所作的等效结构变换,都包括在本发明的专利范围内。
Claims (10)
1.一种用于减少存储介质中数据冗余的方法,其特征在于,所述方法包括:
将所述存储介质的数据存储空间划分为访问区和公共存储区,所述公共存储区用于储存实际块数据,所述访问区包括线性地址表;和
利用所述线性地址表作为对所述公共存储区的数据地址索引,对所述公共存储区中的实际块数据进行数据处理。
2.根据权利要求1所述的方法,其特征在于,所述线性地址表由指针构成,所述指针所指地址为所述公共存储区中存储的实际数据的存储地址。
3.根据权利要求2所述的方法,其特征在于,有多个所述指针指向同一数据的地址。
4.根据权利要求2所述的方法,其特征在于,所述实际数据以元数据的形式存储在所述公共存储区中,所述元数据包括基本数据块和基本块键值,所述基本块键值为所述基本块的索引。
5.根据权利要求4所述的方法,其特征在于,所述基本块键值是根据所述基本块计算出来的。
6.根据权利要求5所述的方法,其特征在于,所述基本块键值是利用哈希算法从所述基本块中计算出来的。
7.根据权利要求3所述的方法,其特征在于,所述实际数据以元数据的形式存储在所述公共存储区中,所述元数据包括基本数据块和基本块键值,所述基本块键值为所述基本块的索引。
8.根据权利要求7所述的方法,其特征在于,所述基本块键值是根据所述基本块计算出来的。
9.根据权利要求1到8任一项所述的方法,其特征在于,所述数据处理包括对所述存储介质的数据进行读取、写入和删除。
10.根据权利要求9所述的方法,其特征在于,所述访问区进一步包括磁盘基本数据区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100626469A CN100511183C (zh) | 2004-06-30 | 2004-06-30 | 减少存储介质中的数据冗余的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100626469A CN100511183C (zh) | 2004-06-30 | 2004-06-30 | 减少存储介质中的数据冗余的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1716215A true CN1716215A (zh) | 2006-01-04 |
CN100511183C CN100511183C (zh) | 2009-07-08 |
Family
ID=35822067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100626469A Active CN100511183C (zh) | 2004-06-30 | 2004-06-30 | 减少存储介质中的数据冗余的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100511183C (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101551817B (zh) * | 2009-01-24 | 2011-06-08 | 普天信息技术研究院有限公司 | 一种低冗余数据存储方法 |
CN101482733B (zh) * | 2009-02-04 | 2011-10-19 | 浙江中控技术股份有限公司 | 一种数据冗余的方法及装置 |
CN102467458A (zh) * | 2010-11-05 | 2012-05-23 | 英业达股份有限公司 | 建立数据区块的索引方法 |
CN102955861A (zh) * | 2012-11-30 | 2013-03-06 | 华为技术有限公司 | 一种基于备份文件的索引文件生成方法和装置 |
CN103098035A (zh) * | 2010-08-31 | 2013-05-08 | 日本电气株式会社 | 存储系统 |
CN104216666A (zh) * | 2014-09-03 | 2014-12-17 | 浪潮(北京)电子信息产业有限公司 | 一种管理磁盘数据写入的方法及装置 |
CN104866473A (zh) * | 2014-02-20 | 2015-08-26 | 携程计算机技术(上海)有限公司 | 存储单元的数据存储、访问方法以及服务器 |
CN105183399A (zh) * | 2015-09-30 | 2015-12-23 | 北京奇艺世纪科技有限公司 | 一种基于弹性块存储的数据写、读方法及装置 |
CN105279102A (zh) * | 2014-06-03 | 2016-01-27 | 爱思开海力士有限公司 | 用于控制非易失性存储器的控制器和包括其的半导体器件 |
-
2004
- 2004-06-30 CN CNB2004100626469A patent/CN100511183C/zh active Active
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101551817B (zh) * | 2009-01-24 | 2011-06-08 | 普天信息技术研究院有限公司 | 一种低冗余数据存储方法 |
CN101482733B (zh) * | 2009-02-04 | 2011-10-19 | 浙江中控技术股份有限公司 | 一种数据冗余的方法及装置 |
CN103098035A (zh) * | 2010-08-31 | 2013-05-08 | 日本电气株式会社 | 存储系统 |
US9201891B2 (en) | 2010-08-31 | 2015-12-01 | Nec Corporation | Storage system |
CN103098035B (zh) * | 2010-08-31 | 2016-04-27 | 日本电气株式会社 | 存储系统 |
CN102467458A (zh) * | 2010-11-05 | 2012-05-23 | 英业达股份有限公司 | 建立数据区块的索引方法 |
CN102467458B (zh) * | 2010-11-05 | 2014-08-06 | 英业达股份有限公司 | 建立数据区块的索引方法 |
CN102955861B (zh) * | 2012-11-30 | 2017-04-12 | 华为技术有限公司 | 一种基于备份文件的索引文件生成方法和装置 |
CN102955861A (zh) * | 2012-11-30 | 2013-03-06 | 华为技术有限公司 | 一种基于备份文件的索引文件生成方法和装置 |
CN104866473A (zh) * | 2014-02-20 | 2015-08-26 | 携程计算机技术(上海)有限公司 | 存储单元的数据存储、访问方法以及服务器 |
CN105279102B (zh) * | 2014-06-03 | 2019-05-28 | 爱思开海力士有限公司 | 用于控制非易失性存储器的控制器和包括其的半导体器件 |
CN105279102A (zh) * | 2014-06-03 | 2016-01-27 | 爱思开海力士有限公司 | 用于控制非易失性存储器的控制器和包括其的半导体器件 |
CN104216666A (zh) * | 2014-09-03 | 2014-12-17 | 浪潮(北京)电子信息产业有限公司 | 一种管理磁盘数据写入的方法及装置 |
CN105183399A (zh) * | 2015-09-30 | 2015-12-23 | 北京奇艺世纪科技有限公司 | 一种基于弹性块存储的数据写、读方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100511183C (zh) | 2009-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200175070A1 (en) | Low ram space, high-throughput persistent key-value store using secondary memory | |
CN104346357B (zh) | 一种嵌入式终端的文件存取方法及系统 | |
CN102473092B (zh) | 索引缓存树 | |
CN102012867B (zh) | 资料储存系统 | |
CN1206604C (zh) | 使用位移表建立一个完备的散列 | |
US20180089074A1 (en) | Techniques to Manage Key-Value Storage at a Memory or Storage Device | |
CN101645043B (zh) | 写数据的方法、读数据的方法及存储设备 | |
WO2010151750A1 (en) | Scalable indexing in a non-uniform access memory | |
CN1822217A (zh) | 将数据存储在非易失性高速缓冲存储器中的设备和方法 | |
CN110825748A (zh) | 利用差异化索引机制的高性能和易扩展的键值存储方法 | |
CN1272296A (zh) | Vp/vc查找技术 | |
CN112860594B (zh) | 一种固态盘地址重映射方法、设备及固态盘 | |
CN1716215A (zh) | 减少存储介质中的数据冗余的方法 | |
CN100338607C (zh) | 一种组织和访问分布式文件系统目录的方法 | |
CN1808366A (zh) | 廉价磁盘冗余阵列中硬盘重新识别系统及其方法 | |
CN1187933C (zh) | 路由器的ip地址的建立和寻找方法及其装置 | |
CN1908937A (zh) | 一种闪存中的flash文件的管理方法及系统 | |
CN100342374C (zh) | 一种数据存储方法及装置 | |
CN101034416A (zh) | 一种利用文件分配表进行文件寻道的方法及系统架构 | |
CN1612114A (zh) | 在分配存储器时通过偏移地址避免高速缓存拥塞的方法 | |
US7321909B1 (en) | Method and apparatus for forwarding references to objects concurrently with space-incremental garbage collection | |
Yao et al. | A set-aware key-value store on shingled magnetic recording drives with dynamic band | |
CN101055509A (zh) | 高效流媒体数据读写系统 | |
Chen et al. | The real-time compression layer for flash memory in mobile multimedia devices | |
CN108874315A (zh) | 一种在线数据去重文件系统数据访问性能优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |