一种面向内存键值纠删码的混合数据更新方法及存储系统技术方案

技术编号:32533303 阅读:44 留言:0更新日期:2022-03-05 11:28
本发明专利技术提供了一种面向内存键值纠删码的混合数据更新方法及存储系统,属于计算机的可靠数据存储领域,方法包括:构建混合更新的存储系统;根据对象索引元数据获取对象的条带ID、序列号、偏移量和长度;读取对象对应数据块的历史值和条带的异或值,并获取各校验块的编码系数;将数据块的历史值与更新值作差获取数据块的差值;使用数据块的差值与校验块的编码系数计算各校验块的差值;将异或块和异或块的差值进行异或合并,更新异或块;对象对应的数据块和更新后的异或块采用就地更新方式写入内存节点;具有偏移量和长度的校验块差值采用校验日志更新方式写入日志节点。本发明专利技术能够平衡存储成本、数据更新性能及单个故障修复性能之间的关系。之间的关系。之间的关系。

【技术实现步骤摘要】
一种面向内存键值纠删码的混合数据更新方法及存储系统


[0001]本专利技术属于计算机的可靠数据存储领域,更具体地,涉及一种面向内存键值纠删码的混合数据更新方法及存储系统。

技术介绍

[0002]现代HPC集群上的并行文件系统通常使用内存键值存储以进行高效地数据分析。为了保证存储的可靠性,许多分布式键值存储将数据的副本分散保存在不同的节点上。而这种方式在实现容错的同时也大大增加了系统中数据的冗余度。最新的研究中则借助纠删码技术以保证内存键值存储的可靠性,它与副本技术相比显著降低了存储成本。纠删码是将原始数据块编码为校验块,原始数据块和校验块共同组成一个条带;当出现数据损坏或者丢失时,可以使用条带上剩余的数据块对损失的数据进行一个恢复。
[0003]对于大数据分析工作负载而言,数据更新是繁重且不可避免的。在纠删码存储中,更新的开销是非常高的,任何数据块的更新都会导致所有校验块的更新。在大条带的情况下,每个条带的数据块更多,它们可能分散在几十甚至上百个节点当中,更新开销又进一步地变得更大。
[0004]纠删码的数据更新目标有三种主流方式:1)就地更新(in

place update),原始的数据块和校验块被更新后数据块和校验块原地替换;2)全条带更新(full

stripe update),更新后的数据块被组织到一起直接编码生成新的条带;3)校验日志更新(parity logging),校验块的更新以追加更新的方式放入日志节点的磁盘中。在上述的三种更新方法中,就地更新方式会占用较高的网络传输资源,全条带更新方式会有很高的存储开销,而校验日志更新消除了过程中读取原有校验块的开销同时存储开销是目前最低的。
[0005]然而,现今部署了纠删码的内存键值存储系统还是只使用了就地更新或全条带更新的方式。虽然校验日志更新能够有效地降低纠删码更新时的网络传输开销和系统存储开销,但是存储校验日志节点的磁盘性能与内存键值存储系统性能之间的差距巨大难以处理。这使得目前还没有哪个系统考虑过使用校验日志更新。具体地说就是,即使网络传输开销降低了,日志节点还是会降低更新性能,另外当出现单个故障时,由于校验日志存储在磁盘中,读取恢复得到最新校验块的过程还会拖累降级读的性能。

技术实现思路

[0006]针对现有技术的缺陷,本专利技术提供一种面向内存键值纠删码的混合数据更新方法及装置,目的在于通过对数据块与校验块使用混合更新的存储架构,基于混合更新的存储架构,在内存键值系统上使用校验日志更新技术降低内存中的存储开销、提升数据变化时的更新性能。
[0007]为实现上述目的,第一方面,本专利技术提供了一种面向混合内存键值纠删码系统的混合更新存储系统,包括:若干客户端,代理服务器,k+1个内存节点和r

1个日志节点;k为所述数据块的数目;r为所述校验块的数目;
[0008]代理服务器与客户端、内存节点与日志节点均双向通信连接;
[0009]内存节点用于存储并采用就地更新的方式更新数据块和校验块中的异或块;日志节点用于存储并采用校验日志更新的方式更新剩余校验块;
[0010]代理服务器作为客户端的前端接口,用于保存条带元数据,实现客户端传输的访求请求,并用于对节点故障进行修复;
[0011]客户端用于对外提供访存请求。
[0012]更为具体地,代理服务器中的队列作为编码缓冲区,用于读入客户端的写入请求;代理服务器为对象提供固定大小的k个数据块,并将k个数据块编码成r个相同大小的校验块;代理服务器保存条带元数据,以完成客户端的请求、降级读和修复等操作。
[0013]优选地,元数据包括条带ID、对象索引和条带索引;
[0014]条带ID用于区分每个条带;对象索引用于存储对象与条带ID之间的映射关系,以及对象与具体数据块元数据之间的映射关系;条带索引用于存储每个条带对应的k个数据块r个校验块。
[0015]优选地,日志节点包括缓冲区和磁盘;缓冲区位于代理服务器与磁盘之间;
[0016]缓冲区用于将多次校验块差值存储;
[0017]磁盘用于若缓冲区填满后,将所有校验块差值按照在缓冲区存储的时间顺序先写入磁盘,然后定期对相同条带的校验块差值进行合并,合并后的差值存储至各校验块对应的预留空间。
[0018]优选地,若存在内存节点失效时,从日志节点读出一个校验块、从内存节点中读取k

1个数据块对失效的内存节点进行修复。
[0019]第二方面,本专利技术提供了一种面向内存键值纠删码的混合数据更新方法,包括以下步骤:
[0020]构建混合更新的存储系统;其中,存储系统包括多个客户端,一个代理服务器、k+1个内存节点和r

1个日志节点;数据块和校验块中的异或块存放至内存节点上;剩余校验块存储在日志节点中;k为数据块的数目;r为校验块的数目;
[0021]根据对象索引元数据获取对象的条带ID、序列号、偏移量和长度;
[0022]基于对象的条带ID,代理服务器读取对象对应数据块的历史值和条带的异或块;且基于对象的序列号获取各校验块的编码系数;
[0023]将数据块的历史值与更新值作差获取数据块的差值;
[0024]使用数据块的差值与校验块对应的编码矩阵系数计算各校验块的差值;
[0025]将异或块和异或块的差值进行异或合并,更新异或块;
[0026]采用就地更新的方式将对象对应的数据块和更新后的异或块写入内存节点;
[0027]采用校验日志更新方式将具有偏移量和长度的校验块差值写入日志节点。
[0028]优选地,日志节点包括缓冲区和磁盘;缓冲区位于代理服务器与磁盘之间;
[0029]校验日志更新方式为:将多次校验块差值存储至缓冲区;
[0030]若缓冲区的填满后,将所有校验块差值按照其在缓冲区存储的时间顺序先写入连续磁盘空间中;
[0031]定期对相同条带的校验块差值进行合并,合并后的差值存储至各校验块对应的预留空间。
[0032]优选地,若存在内存节点失效时,从日志节点读出一个校验块、从内存节点中读取k

1个数据块对失效的内存节点进行修复。
[0033]总体而言,通过本专利技术所构思的以上技术方案与现有技术相比,具有以下有益效果:
[0034]本专利技术所提供的混合数据更新方法,通过构建混合更新的存储系统,其中,数据块和校验块的异或块存放至内存节点上,剩余校验块存储在日志节点上;其中,内存节点上的数据块和异或块采用就地更新的方式更新数据,而日志节点上的剩余校验块采用校验日志更新方式进行,就地更新方式和校验日志更新方式的结合能很多地平衡存储成本和数据更新性能及单个故障修复性能之间的关系。
[0035]现有技术中存在磁盘性能与内存性能有着巨大差距。如果所有校验块都在日志节点上,有单个数据损坏需要进行降级读的时候,必须从磁盘上读取校验块差值与校验块,合并得到最本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向内存键值纠删码的混合数据更新存储系统,其特征在于,包括:若干客户端、代理服务器、内存节点和日志节点;所述代理服务器与所述客户端、所述内存节点、所述日志节点均双向通信连接;所述内存节点的数量为k+1个,用于存储并采用就地更新的方式更新数据块和校验块的异或块,k为所述数据块的数目;所述日志节点的数量为r

1个,用于存储并采用校验日志更新的方式更新剩余校验块,r为所述校验块的数目;所述代理服务器作为客户端的前端接口,用于保存条带元数据,实现客户端传输的访存请求,并用于对节点故障进行修复;所述客户端用于对外提供访存请求。2.根据权利要求1所述的混合更新存储系统,其特征在于,所述元数据包括条带ID、对象索引和条带索引;条带ID用于区分每个条带;对象索引用于存储对象与条带ID之间的映射关系,以及对象与具体数据块元数据之间的映射关系;条带索引用于存储每个条带对应的k个数据块r个校验块。3.根据权利要求1或2所述的混合更新存储系统,其特征在于,所述日志节点包括缓冲区和磁盘;所述缓冲区位于所述代理服务器与所述磁盘之间;所述缓冲区用于将多次校验块差值存储;所述磁盘用于若缓冲区填满后,将所有校验块差值按照在缓冲区存储的时间顺序写入,对相同条带的校验块差值进行合并,合并后的差值存储至各校验块对应的预留空间。4.根据权利要求1或2所述的混合更新存储系统,其特征在于,若存在内存节点失效时,从日志节点读出一个校验块、从内存节点中读取k

1个数据块对失效的内存节点进行修复。5.一种面向内...

【专利技术属性】
技术研发人员:胡燏翀程良锋徐佳冯丹
申请(专利权)人:华中科技大学
类型:发明
国别省市:

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

1