一种基于去重系统的分层编码方法、装置及去重系统制造方法及图纸

技术编号:26065213 阅读:15 留言:0更新日期:2020-10-28 16:38
本发明专利技术公开了一种基于去重系统的分层编码方法、装置及去重系统,计算机存储领域,包括:预先将数据块的被引用次数划分为N个层级,并在内存中对应创建N个缓存区作为N个数据容器;编码时,当一个数据块经过去重之后,若是唯一块,则将其被引用次数记为1;否则,将其被引用次数加1;之后,将被引用次数记录到数据块的元数据中,并确定数据块所处的层级,将其存储到对应的数据容器中;当数据容器满时,按照其所处层级对应的编码方式进行编码,并将同一条带中的分块存储到不同的节点中;层级越高,对应的被引用次数范围越大,编码条带越短。本发明专利技术能够保证去重系统具有良好的存储效率,同时又保证在数据节点失效时,去重系统具有良好的修复速率。

【技术实现步骤摘要】
一种基于去重系统的分层编码方法、装置及去重系统
本专利技术属于计算机存储领域,更具体地,涉及一种基于去重系统的分层编码方法、装置及去重系统。
技术介绍
伴随着VR(VirtualReality,虚拟现实)技术、短视频、网络直播等新兴互联网行业的崛起,越来越多的图片、视频等大数据量的数据内容需要保存。这对于企业和用户来说,也将面临越来越大的存储压力。尤其是对于企业来说,考虑到数据安全性和可靠性,需要定期对数据进行备份,这虽然保证了数据安全性,但是大大增加了存储的成本。对各种存储系统和备份系统中相关数据的研究发现,在系统中存在着大约60%的重复数据。该数据表明,释放重复数据占用的存储空间,可以节省出大量存储资源。因此,催生出一种新技术——数据去重技术。在存储系统中,数据去重技术可以减少传输、存储和管理的数据量,提升系统的性能,减少存储成本和管理开销,因此,数据去重技术得到了学术界和工业界的广泛关注,并逐渐成为了数据密集型存储系统和产品中的重要组成。采用了数据去重技术的存储系统,即为去重系统。纠删码因其良好的存储效率和高可靠性,常常被应用于去重系统,来提高去重系统可靠性。但纠删码有一个众所周知的修复问题,即在数据丢失后,系统进行降级读修复时会消耗大量的网络开销。当前有大量的研究针对纠删码的修复问题进行研究,但这些研究都没有考虑因数据块引用次数增加带来的修复开销问题。而由于纠删码的特性,当数据节点失效时,随着数据块的引用次数增加,被传回到客户端的数据量成倍增长,给网络资源带来了巨大压力。当前一些研究更多的是考虑使用副本方式来减少数据丢失时的网络开销,但是这样又会增加存储成本。因此,针对去重系统即追求存储性能又追求修复性能的情况,提出一种编码方案来对数据进行编码,保证去重系统中数据的可靠性是十分重要且有意义的。
技术实现思路
针对现有技术的缺陷和改进需求,本专利技术提供了一种基于去重系统的分层编码方法、装置及去重系统,其目的在于,保证去重系统具有良好的存储效率,同时又保证在数据节点失效时,去重系统具有良好的修复速率。为实现上述目的,按照本专利技术的一个方面,提供了一种基于去重系统的分层编码方法,包括:预定义N-1个阈值,用于将数据块的被引用次数划分为N个层级,并预先在去重系统的内存中创建N个缓存区作为N个数据容器,用于对应存储N个层级的数据块;在数据块编码时,当一个数据块经过去重之后,若该数据块是唯一块,则将其被引用次数记为1;若该数据块不是唯一块,则将其被引用次数加1;将更新之后的被引用次数记录到数据块的元数据中,并根据更新之后的被引用次数确定数据块所处的层级,将该数据块存储到对应层级的数据容器中;当任意一个数据容器满时,按照其所处层级对应的编码方式,对其中的数据块进行编码,并将同一条带中的分块存储到不同的节点中;层级越高,对应的被引用次数范围越大,且对应的编码条带越短;其中,N为大于1的正整数;条带中的分块为该条带内的数据块或校验块。进一步地,本专利技术提供的基于去重系统的分层编码方法,还包括:发生降级读时,从丢失数据块的元数据信息中提取被引用次数,以确定丢失数据块所处的层级,根据该层级对应的编码方式确定丢失数据块对应的解码方式;获得丢失数据块所属的条带,遍历存储该条带中分块的节点,从其中k个未失效的节点中获取分块,并按照丢失数据块对应的解码方式对所获取的分块进行解码操作,以修复出丢失数据块;其中,k为丢失数据块所属条带中数据块的数量。进一步地,N=3,相应地,数据块根据其被引用次数被划分为高、中、低三个层级。按照本专利技术的另一个方面,提供了一种基于去重系统的分层编码装置,包括:预处理模块、引用更新模块、分层存储模块以及分层编码模块;预处理模块,用于预定义N-1个阈值,所定义的N-1个用于将数据块的被引用次数划分为N个层级;预处理模块,还用于预先在去重系统的内存中创建N个缓存区作为N个数据容器,所创建的N个数据容器用于对应存储N个层级的数据块;引用更新模块,用于在数据块编码时,当一个数据块经过去重之后,若该数据块是唯一块,则将其被引用次数记为1;若该数据块不是唯一块,则将其被引用次数加1;分层存储模块,用于将引用更新模块更新之后的被引用次数记录到数据块的元数据中,并根据更新之后的被引用次数确定数据块所处的层级,将该数据块存储到对应层级的数据容器中;分层编码模块,用于在任意一个数据容器满时,按照其所处层级对应的编码方式,对其中的数据块进行编码,并将同一条带中的分块存储到不同的节点中;层级越高,对应的被引用次数范围越大,且对应的编码条带越短;其中,N为大于1的正整数;条带中的分块为该条带内的数据块或校验块。进一步地,本专利技术提供的基于去重系统的分层编码装置,还包括:元数据解析模块和降级读修复模块;元数据解析模块,用于在发生降级读时,从丢失数据块的元数据信息中提取被引用次数,以确定丢失数据块所处的层级,根据该层级对应的编码方式确定丢失数据块对应的解码方式;降级读修复模块,用于获得丢失数据块所属的条带,遍历存储该条带中分块的节点,从其中k个未失效的节点中获取分块,并按照丢失数据块对应的解码方式对所获取的分块进行解码操作,以修复出丢失数据块;其中,k为丢失数据块所属条带中数据块的数量。进一步地,N=3,相应地,数据块根据其被引用次数被划分为高、中、低三个层级。按照本专利技术的又一个方面,提供了一种去重系统,该去重系统包括本专利技术所提供的上述基于去重系统的分层编码装置。总体而言,通过本专利技术所构思的以上技术方案,能够取得以下有益效果:本专利技术根据数据块的被引用次数进行数据块层级划分,对不同层级的数据块采用不同的编码条长度带进行编码操作,为高频引用的数据块分配短编码条带来保证其修复效率,为低频引用的数据块分配长编码条带来保证其存储效率,使得占据数据块数量最多的低层级数据块占用较少的存储空间,而在降级读时被访问更频繁的高层级数据块占用较少的降级读时间,由此能够结合高引用数据块总是被频繁访问,低引用数据块数量众多的特点,平衡去重系统存储效率和修复效率,既保证了去重系统具有良好的存储效率,又保证了在数据节点失效时,去重系统具有良好的修复速率。附图说明图1为现有的去重系统中数据去重的流程示意图;图2为本专利技术实施例提供的基于去重系统的分层编码方法示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。在本专利技术中,本专利技术及附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。在详细解释本专利技术的技术方案之前,先对去重系统中的数据去重流程做如下简要介绍:<本文档来自技高网
...

【技术保护点】
1.一种基于去重系统的分层编码方法,其特征在于,包括:/n预定义N-1个阈值,用于将数据块的被引用次数划分为N个层级,并预先在去重系统的内存中创建N个缓存区作为N个数据容器,用于对应存储N个层级的数据块;/n在数据块编码时,当一个数据块经过去重之后,若该数据块是唯一块,则将其被引用次数记为1;若该数据块不是唯一块,则将其被引用次数加1;将更新之后的被引用次数记录到数据块的元数据中,并根据更新之后的被引用次数确定数据块所处的层级,将该数据块存储到对应层级的数据容器中;/n当任意一个数据容器满时,按照其所处层级对应的编码方式,对其中的数据块进行编码,并将同一条带中的分块存储到不同的节点中;层级越高,对应的被引用次数范围越大,且对应的编码条带越短;/n其中,N为大于1的正整数;条带中的分块为该条带内的数据块或校验块。/n

【技术特征摘要】
1.一种基于去重系统的分层编码方法,其特征在于,包括:
预定义N-1个阈值,用于将数据块的被引用次数划分为N个层级,并预先在去重系统的内存中创建N个缓存区作为N个数据容器,用于对应存储N个层级的数据块;
在数据块编码时,当一个数据块经过去重之后,若该数据块是唯一块,则将其被引用次数记为1;若该数据块不是唯一块,则将其被引用次数加1;将更新之后的被引用次数记录到数据块的元数据中,并根据更新之后的被引用次数确定数据块所处的层级,将该数据块存储到对应层级的数据容器中;
当任意一个数据容器满时,按照其所处层级对应的编码方式,对其中的数据块进行编码,并将同一条带中的分块存储到不同的节点中;层级越高,对应的被引用次数范围越大,且对应的编码条带越短;
其中,N为大于1的正整数;条带中的分块为该条带内的数据块或校验块。


2.如权利要求1所述的基于去重系统的分层编码方法,其特征在于,还包括:
发生降级读时,从丢失数据块的元数据信息中提取被引用次数,以确定丢失数据块所处的层级,根据该层级对应的编码方式确定丢失数据块对应的解码方式;
获得所述丢失数据块所属的条带,遍历存储该条带中分块的节点,从其中k个未失效的节点中获取分块,并按照丢失数据块对应的解码方式对所获取的分块进行解码操作,以修复出丢失数据块;
其中,k为丢失数据块所属条带中数据块的数量。


3.如权利要求1或2所述的基于去重系统的分层编码方法,其特征在于,N=3,相应地,数据块根据其被引用次数被划分为高、中、低三个层级。


4.一种基于去重系统的分层编码装置,其特征在于,包括:预处理模块、引用更新模块、分层存储模块以及分层编码模块;
所述预处理模块,用于预定义N-1个阈值,所定义的N-1个用于将数据块的被引用次...

【专利技术属性】
技术研发人员:胡燏翀冯丹刘振池
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

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

1