当前位置: 首页 > 专利查询>南京大学专利>正文

一种基于简单再生码的自适应编码存储容错方法技术

技术编号:13739895 阅读:136 留言:0更新日期:2016-09-22 16:22
本发明专利技术公开一种基于简单再生码的自适应编码存储容错方法,其包含以下四个主要步骤:1)存入HDFS中的文件,以三副本方式存储;2)一个时间周期后,文件转为简单再生码快速码编码;3)当文件访问减少后,文件转为简单再生码紧凑码编码;4)随着运行中文件的动态属性,可能发生步骤2)和步骤3)中文件编码状态相互转化的情况。本发明专利技术通过在分布式文件系统HDFS中同时使用简单再生码紧凑码和快速码的两种编码形态,来达到存储开销和修复代价的折中,将基于简单再生码的自适应编码方法引入到HDFS中,结合文件状态和系统状态,建立了自适应编码机制,提高分布式存储系统的整体存储效率,降低修复代价。

【技术实现步骤摘要】

本专利技术涉及分布式存储领域,特别涉及一种基于简单再生码的自适应编码存储容错方法
技术介绍
由于使用纠删码可以在低存储开销的情况下达到高可靠性,大型的分布式存储系统都开始转向使用纠删码。但大多数线上运行的存储系统只使用唯一一种纠删码,系统中实际使用的纠删码可能会从减少修复带宽开销或减少存储开销等方面进行优化。比如说,RS编码是广泛使用的一类纠删码,已经使用在了谷歌的ColossusFS、FaceBook的HDFS-Raid等许多存储系统中。ColossusFS中使用的RS码的存储开销为1.5x,在修复一个数据块时需要6次磁盘读和网络传输。而在HDFS-Raid中使用的RS码的存储开销为1.4x,但修复一个数据块需读取其他10个块。另外常用的一类局部修复码也是类似存储开销和修复代价的折中。优化纠删码是为了解决系统运行时的故障修复问题。FaceBook的数据仓库和其他HDFS生产系统中所有故障情况超过98%都是单个块的故障,1.87%是两个块丢失,另外少于0.05%是三个块或更多块的错误。所以很多关于存储系统中纠删码的研究都集中在降低单个块失效时的修复开销上。同时,数据访问不均衡是Hadoop工作流的一个普遍特性。分布式存储系统中,大部分容量的数据都是冷数据,即只被访问过很少的次数。同样的,大部分访问都集中在一小部分数据上,这部分数据被称作热数据。由于编码理论本身的限制,低冗余和低修复代价是不能同时达到的。若仅对存储效率进行优化,那么会增加修复时的开销,这会导致对于热数据的修复开销增加。而大部分的数据访问都集中在热数据上,修复开销增加势必会影响整个系统的读写性能。同理,若仅对修复开销优化,那么会使纠删码的存储效率降低。由于大部分数据都是冷数据,不会经常被访问,这些冷数据存储效率的降低将会需要增加很多存储空间,导致整个系统存储开销的迅速增加。无论哪一方面,在实际生产系统中都是不能接受的。根据上面的观察,对于热数据来说,由于访问比较频繁,即使存储开销大一点,只要保证可用性即可,也就是修复开销要小,修复要很快完成。所以热数据比较适合在保证可靠性的情况下存储效率不高但修复代价比较小的编码方法。而对于冷数据来说,由于并不是很频繁地被访问,由数据不可用而导致退化读的可能性较小。由于修复并不是很频繁发生,即使修复开销稍大一点,对于系统的整体性能影响并不大。而只要存储效
率高,对于庞大的数据量就可以节省很多存储空间。所以在保证数据可靠性的前提下,冷数据比较适合存储效率高,修复开销较大的编码方法。
技术实现思路
专利技术目的:为了克服现有技术中存在的不足,本专利技术提供一种提高分布式存储系统整体存储效率,并降低修复代价减少修复开销的基于简单再生码的自适应编码存储容错方法。技术方案:为解决上述技术问题,本专利技术提供了一种基于简单再生码的自适应编码存储容错方法,包括如下步骤:步骤一:在分布式文件系统HDFS中设定数据文件的访问频度为A,系统整体的存储开销为B,第一个时间周期为T1,第二个时间周期为T2;时间周期可根据实际情况而设定,可设为一天、一周或更长。访问频度的阈值A可根据时间周期的长短而设定,若时间周期为一天,则可设访问频度阈值为10。步骤二:先将数据文件存入分布式文件系统HDFS,然后将数据文件以64MB为单位分为若干个数据块,对每一个数据块备份三份并存入不同的存储节点中;步骤三:第一个时间周期T1后,HDFS中的自适应编码模块将数据文件由步骤二中的副本方式存储转化为编码方式存储,所述编码方式为简单再生码快速码方式存储;步骤四:第二个时间周期T2后,自适应编码模块检测在该周期内该数据文件的访问频度和系统整体的存储开销;步骤五:第二个时间周期T2内访问频度超过预设访问频度A的数据文件标记为热数据,低于预设访问频度A的文件标记为冷数据,当数据文件为冷数据时,将该数据文件由简单再生码快速码编码转化为简单再生码紧凑码编码,该过程成为升码;当文件被较为频繁访问时,文件被简单再生码快速码编码,快速码对于退化读和对于单个存储节点的修复开销较小;当文件不被频繁访问时,文件被简单再生码紧凑码编码,紧凑码对于退化读和对于单个存储节点的修复开销较大,但访问频度低的文件不常发生退化读情况。该机制加入了对于文件本身差异性的考虑,存储系统中的绝大部分数据为冷数据,并不会频繁被访问,较少部分数据为热数据,较为频繁被访问,这种划分符合80-20法则,也符合计算机系统中的局部性原理。当文件在某一周期的访问频度与文件冷热属性不符时,则会触发编码形态间的转化;当系统整体存储开销超过预设阈值时,会触发快速码编码文件到紧凑码编码的转化。步骤六:当第二个时间周期T2内系统整体存储开销高于预设系统整体的存储开销B时,将HDFS中所有被简单再生码快速码编码的数据文件的访问频度进行排序,根据数据文件的访问频度从低到高依次将数据文件由简单再生码快速编码转化为简单再生
码紧凑编码,直到系统整体存储开销低于预设系统整体的存储开销B为止;步骤七:当数据文件的访问频度高于预设访问频度A时,将由简单再生码紧凑码编码转化为简单再生码快速码编码,该过程成为降码。本专利技术通过在分布式文件系统HDFS中同时使用简单再生码的两种编码形态,来达到存储开销和修复代价的折中,本专利技术将基于简单再生码的自适应编码方法引入到HDFS中,结合文件状态和系统状态,建立了自适应编码机制,提高分布式存储系统的整体存储效率,降低修复代价;本专利技术中的自适应编码机制可以扩展到任何编码方法,通用性和扩展性强,适用于任何使用编码作为容错策略的分布式文件系统HDFS。简单再生码的两种形态:一种形态为低修复开销,对应为简单再生码快速码,这种形态主要为了应付时常发生的退化读和文件重构;另一种形态为低存储开销,对应为简单再生码紧凑码,这种形态主要为了提高后端存储时的存储效率。简单再生码的两种形态分别适用于冷、热数据文件,当文件热度或系统状态发生改变时,文件对应的编码形态也随之改变,从而在系统运行时达到动态的平衡。简单再生码两种编码形态相互转化的方法:由快速码转化为紧凑码的过程称为升码,升码操作会将一个数据文件由快速码编码转化为紧凑码编码,这样可以减少校验数据的大小,降低文件的存储开销,升码操作并不需要读取原数据文件,只需要对校验数据进行转化即可;由紧凑码转化为快速码的过程称为降码,降码操作将一个文件由紧凑编码表示转化为快速编码表示,降码需读取原始文件和校验数据,但只会改变校验数据。进一步的,所述步骤三中简单再生码快速码是修复代价较小的简单再生码,从副本方式转化为(n,k,f)简单再生码快速码的具体步骤如下:步骤1:将原数据文件切分成f组,并分别对这f组内每个子文件进行(n,k)RS编码后获得若干个编码块;步骤2:将每组中的下标相同的编码块异或校验,产生一组校验块;步骤3:将步骤1中获得的编码块和步骤2中获得的校验块依次存放在n个存储节点中。进一步的,所述步骤五中升码的具体步骤为:将两组编码块聚合成一组,其中编码块中的数据块和RS校验码块不变,两个校验块行所对应下标会进行异或运算并合并成一行。进一步的,所述异或运算合并操作为从本地磁盘中读出两个校验块进行异或,再写入磁盘中。进一步的,所述步骤七中降码的具体步骤为本文档来自技高网
...

【技术保护点】
一种基于简单再生码的自适应编码存储容错方法,其特征在于,包括如下步骤:步骤一:在分布式文件系统HDFS中设定数据文件的访问频度为A,系统整体的存储开销为B,第一个时间周期为T1,第二个时间周期为T2;步骤二:先将数据文件存入分布式文件系统HDFS,然后将数据文件以64MB为单位分为若干个数据块,对每一个数据块备份三份并存入不同的存储节点中;步骤三:第一个时间周期T1后,HDFS中的自适应编码模块将数据文件由步骤二中的副本方式存储转化为编码方式存储,所述编码方式为简单再生码快速码方式存储;步骤四:第二个时间周期T2后,自适应编码模块检测在该周期内该数据文件的访问频度和系统整体的存储开销;步骤五:第二个时间周期T2内访问频度超过预设访问频度A的数据文件标记为热数据,低于预设访问频度A的文件标记为冷数据,当数据文件为冷数据时,将该数据文件由简单再生码快速码编码转化为简单再生码紧凑码编码,该过程成为升码;步骤六:当第二个时间周期T2内系统整体存储开销高于预设系统整体的存储开销B时,将HDFS中所有被简单再生码快速码编码的数据文件的访问频度进行排序,根据数据文件的访问频度从低到高依次将数据文件由简单再生码快速编码转化为简单再生码紧凑编码,直到系统整体存储开销低于预设系统整体的存储开销B为止;步骤七:当数据文件的访问频度高于预设访问频度A时,将由简单再生码紧凑码编码转化为简单再生码快速码编码,该过程成为降码。...

【技术特征摘要】
1.一种基于简单再生码的自适应编码存储容错方法,其特征在于,包括如下步骤:步骤一:在分布式文件系统HDFS中设定数据文件的访问频度为A,系统整体的存储开销为B,第一个时间周期为T1,第二个时间周期为T2;步骤二:先将数据文件存入分布式文件系统HDFS,然后将数据文件以64MB为单位分为若干个数据块,对每一个数据块备份三份并存入不同的存储节点中;步骤三:第一个时间周期T1后,HDFS中的自适应编码模块将数据文件由步骤二中的副本方式存储转化为编码方式存储,所述编码方式为简单再生码快速码方式存储;步骤四:第二个时间周期T2后,自适应编码模块检测在该周期内该数据文件的访问频度和系统整体的存储开销;步骤五:第二个时间周期T2内访问频度超过预设访问频度A的数据文件标记为热数据,低于预设访问频度A的文件标记为冷数据,当数据文件为冷数据时,将该数据文件由简单再生码快速码编码转化为简单再生码紧凑码编码,该过程成为升码;步骤六:当第二个时间周期T2内系统整体存储开销高于预设系统整体的存储开销B时,将HDFS中所有被简单再生码快速码编码的数据文件的访问频度进行排序,根据数据文件的访问频度从低到高依次将数据文件由简单再生码快速编码转化为简单再生码紧凑编码,直到系统整体存储开销低于预设系统整体的存储开销B为止;步骤七:当数据文件的访问频度高于预设访问频度A时,将由简单再生码紧凑码编码转化为简单再生码快速码编码,该过程成为降码。2.根据权利要求1所述的一种基于简单再生码的自适应编码存储容错方法,其特征在于:所述步骤三中简单再生码快速码是...

【专利技术属性】
技术研发人员:朱定亚叶保留陆桑璐
申请(专利权)人:南京大学
类型:发明
国别省市:江苏;32

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

1