一种基于K‑V存储引擎的数据去重方法及装置制造方法及图纸

技术编号:15057287 阅读:56 留言:0更新日期:2017-04-06 03:20
一种基于K‑V存储引擎的数据去重方法及装置,其中方法包括如下步骤,将文件分割成定长的数据块,对各数据块进行哈希计算,得到数据块摘要数组,将数组中摘要逐个与已存储在K‑V存储引擎中的数据块摘要进行比对,若存在相同的摘要,则不进行存储,否则以数据块摘要为Key,待存储数据块为Value存入K‑V存储引擎。

【技术实现步骤摘要】

本专利技术涉及数据存储领域,尤其涉及一种基于K-V存储引擎的数据去重方法及装置。
技术介绍
随着电子计算机、科学计算、互联网以及移动互联网的迅速普及,全球的数据信息量呈爆炸式的增长。人们越来越深切地感觉到,如何存储和管理这些海量数据信息已经成为一个相当棘手的问题。虽然存储设备的售价一直在不停地下降,但也远远赶不上用户需要存储和处理数据量的攀升速度。据IDC权威统计,2010年全球数据总量达到了1.2ZB,2011年全球数据总量达到了1.8ZB,2020年全球的数据总量预计将达到40ZB。然而,在这些海量数据中重复数据占据了相当大的比重。微软研究院于2011年公布了其收集的将近900个用户桌面文件系统的重复数据负载个人的文件系统中平均存在着约40%的重复数据、用户之间共享的重复数据也高达68%、数据块级去重往往比文件级去重多找到约20%的重复数据。微软研究院于2012年公布的微软桌面服务器文件系统的重复数据负载,显示了微软服务器文件系统中的重复数据更为丰富,约为15-90%。德国美因茨大学(全称:德国美因茨约翰内斯-古腾堡大学,JohannesGutenberg-universityMainz,Germany)也于2012年公布了其调查的欧洲四个高性能计算数据中心的重复数据负载,其显示重复数据在科学计算这种数据中心场合也占有约20-30%的比例。上述各大研究机构公布的数据表明,现在的大规模的存储系统中广泛地存在重复数据。因此有效地积极地消除存储系统中重复数据有着极大的意义:高效地节约有限的存储空间:消除重复数据(数据削减)极大地提高了存储系统的空间利用率,节省了存储系统的硬件成本。减少网络中冗余数据的传输:在网络存储系统中,消除重复数据可以减少重复数据的网络传输,优化网络带宽使用率。帮助用户节约时间和成本:具体体现在帮助用户加快数据传输和节省存储设备空间上,从而帮助用户简化数据存储管理和改进用户体验。
技术实现思路
为此,需要提供一种新的去重方法,解决简化数据管理的问题。为实现上述目的,专利技术人提供了一种基于K-V存储引擎的数据去重方法,包括如下步骤,将文件分割成定长的数据块,对各数据块进行哈希计算,得到数据块摘要数组,将数组中摘要逐个与已存储在K-V存储引擎中的数据块摘要进行比对,若存在相同的摘要,则不进行存储,否则以数据块摘要为Key,待存储数据块为Value存入K-V存储引擎。进一步地,还包括步骤,将各数据块计算得到的数据摘要数组及文件的基本属性信息作为元数据信息保存到K-V存储引擎,元数据的Key值包括自增数字、UUID或GUID。具体地,文件分割后的数据块定长为4KB-128KB。具体地,所述算法包括MD5或SHA-1算法。一种基于K-V存储引擎的数据去重装置,包括分割模块、计算模块、对比模块、存储模块,所述分割模块用于将文件分割成定长的数据块;所述计算模块用于对各数据块进行哈希计算,得到数据块摘要数组,所述对比模块用于对待存储数据块的摘要数组中摘要逐个与已存储在K-V存储引擎中的数据块摘要进行比对,所述存储模块用于在存在相同的摘要时不进行存储,否则以数据块摘要为Key,待存储数据块为Value存入K-V存储引擎。进一步地,所述存储模块还用于,将各数据块计算得到的数据摘要数组及文件的基本属性信息作为元数据信息保存到K-V存储引擎,元数据的Key值包括自增数字、UUID或GUID。具体地,文件分割后的数据块定长为4KB-128KB。具体地,所述算法包括MD5或SHA-1算法。区别于现有技术,上述技术方案通过结合K-V引擎进行存储,提高了文件存取的效率,同时也减少了对资源的消耗。附图说明图1为本专利技术具体实施方式所述的方法流程图;图2为本专利技术具体实施方式所述的数据关系结构图;图3为本专利技术实施方式所述的装置模块图。附图标记说明:300、分割模块;302、计算模块;304、对比模块;306、存储模块。具体实施方式为详细说明技术方案的
技术实现思路
、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。请参阅图1,为本专利技术一种基于K-V存储引擎的数据去重方法流程图,包括如下步骤,S100将文件分割成定长的数据块,S102对各数据块进行哈希计算,得到数据块摘要数组,S104对待存储数据块摘要数组中摘要逐个与已存储数据块的摘要数组进行比对,若存在相同的摘要,则不对该摘要对应的数据块进行存储,若不存在相同的摘要则进行步骤S106以数据块摘要为Key,对应的待存储数据块为Value存入K-V存储引擎。对比现在的一些去重技术,人们一般使用数据块的哈希摘要来唯一标识和识别该数据块,存储文件时根据数据块的摘要查找匹配,如果有两个数据块的摘要匹配相等,那么它们所表示的数据块也相等。数据存储时,将非重复数据块直接写入存储系统,如果是重复数据块,则将重复的数据块地址信息记录下来。在小规模的数据去重系统中,所有的指纹索引信息可以存储在内存里,可使用普通的哈希表快速索引。但是随着数据规模的持续增长,这些指纹的数据量会变得异常庞大,所以只能放在磁盘上存储和索引。众所周知,磁盘访问速度远远低于内存访问速度,这使得数据去重的指纹查找非常缓慢。也就是说,每输入一个数据块,都需要访问磁盘指纹索引,这严重影响了数据去重的系统吞吐率。因此在本专利技术中,提出了基于K-V存储引擎的数据去重方法,将数据分割为若干数据块,利用K-V存储引擎的特性,将各数据块的摘要作为K值,与对应数据块作为V值进行直接的对应存储。对比传统方案去除了存储数据块摘要与数据块存储地址之间的映射关系的步骤,在同等去重效果下减少了对资源的消耗,提高系统吞吐量。现有技术通常在内存中记录数据链接,将数据块存储在硬盘中,在我们的方案中,由于省掉了数据链接,节省了空间。另一些实施例中在数据量大的情况下,K-V存储引擎的特性能够根据使用热度,将部分热度高的数据块存储在内存中,从而达到很高的读写效率。在其他一些实施例中,如频繁写入的场景就可以采用leveldb存储引擎(写入速度是读取的7~9倍),在读写均衡的场景可以采用bitcast存储引擎等等。我们的方法还可以通过不同的K-V存储引擎灵活适配不同的应用场景,提高了系统的灵活性。进一步地一些实施例中,还包括步骤,将各数据块计算得到的数据摘要数组及文件的基本属性信息作为元数据信息保存到K-V存储引擎,元数据的Key值包括自增数字、UUID或GUID。如图3所示,为K-V存储引擎内数据关系结构图,如图所示,存储引擎中包括元数据区和数据块区,数据块区用于存储Key值摘要数组及Value值数据块,在元数据区中,以文件为单位存储元数据作为Value值,其对应的Key值只要不重复,一一对应即可,在图中我们可以看到,不同文件的数据块中的摘要数组可能指向数据块区中的同一份数据,从而达到去重的目的,通过上述方案,形成了每个文件元数据与其包含数据块之间的对应关系,可以看到摘要值相同的数据块只保存了一份数据,存在多个指向它的引用,达到数据去重的目的。在另一些具体的实施例中,文件分割后的数据块定长为4KB-128KB。将数据块定为4KB-128KB较为合适,既不会产生过量的计算冗余,还能够保证足够的读取、写入速度。在另一些具体的实施例中,所述算法包括M本文档来自技高网
...

【技术保护点】
一种基于K‑V存储引擎的数据去重方法,其特征在于,包括如下步骤:将文件分割成定长的数据块;对各数据块进行哈希计算,得到数据块摘要数组;将数组中摘要逐个与已存储在K‑V存储引擎中的数据块摘要进行比对,若存在相同的摘要,则不进行存储,否则以数据块摘要为Key,待存储数据块为Value存入K‑V存储引擎。

【技术特征摘要】
1.一种基于K-V存储引擎的数据去重方法,其特征在于,包括如下步骤:将文件分割成定长的数据块;对各数据块进行哈希计算,得到数据块摘要数组;将数组中摘要逐个与已存储在K-V存储引擎中的数据块摘要进行比对,若存在相同的摘要,则不进行存储,否则以数据块摘要为Key,待存储数据块为Value存入K-V存储引擎。2.根据权利要求1所述的基于K-V存储引擎的数据去重方法,其特征在于,还包括步骤,将各数据块计算得到的数据块摘要数组及文件的基本属性信息作为元数据信息保存到K-V存储引擎,元数据的Key值包括自增数字、UUID或GUID。3.根据权利要求1所述的基于K-V存储引擎的数据去重方法,其特征在于,文件分割后的数据块定长为4KB-128KB。4.根据权利要求1所述的基于K-V存储引擎的数据去重方法,其特征在于,所述哈希计算包括MD5或SHA-1算法。5.一种基于K-V存储引擎的数据去重装置,其特征在于,包...

【专利技术属性】
技术研发人员:张垚倪时龙苏江文
申请(专利权)人:福建亿榕信息技术有限公司国家电网公司国网浙江省电力公司国网信息通信产业集团有限公司国网信通亿力科技有限责任公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1