一种高效编码存储方法及装置制造方法及图纸

技术编号:28203107 阅读:26 留言:0更新日期:2021-04-24 14:26
本发明专利技术提供了一种高效编码存储方法及装置,通过对待编码条带进行横向分组获得多个子条带,并将多个子条带中本次存储数据的至少一个目标子条带的信息发送给编码管理器,编码管理器从多个CPU核中为每个目标子条带分配一个空闲的目标CPU核,由该目标CPU核对目标子条带进行编码存储。基于本发明专利技术,可以实现多个CPU核同时编码存储,最大化利用CPU的能力,大幅提高编码存储工作的效率,减少用户等待时间,提升用户体验。用户体验。用户体验。

【技术实现步骤摘要】
一种高效编码存储方法及装置


[0001]本专利技术涉及计算机
,更具体地说,涉及一种高效编码存储方法及装置。

技术介绍

[0002]在分布式存储系统中,服务器集群中的所有磁盘被统一管理以4+2/6+3/8+4/等模式进行分组,以4+2模式为例,每个分组共计6个磁盘中的4个磁盘用来保存文件的原始数据、2个磁盘用来存储编码数据。每个分组中的每一磁盘被分为N个数据块,从每一磁盘中分别获得一个数据块构成一个条带,每个分组也就对应N个条带。
[0003]当一个条带中用于存储原始数据的数据块被写入原始数据时,需要对写入的原始数据进行编码,并将编码得到的编码数据存储到用于存储编码数据的数据块中。但是,现阶段一个条带独占服务器中的一个CPU核进行编码存储,即使服务器中有其他空闲的CPU核也无法参与,导致编码存储工作的效率极低,使用户等待的时间过长,影响用户体验。

技术实现思路

[0004]有鉴于此,为解决上述问题,本专利技术提供一种高效编码存储方法及装置。
[0005]技术方案如下:
[0006]一种高效编码存储方法,所述方法包括:
[0007]获取待编码条带;其中,所述待编码条带包括存储原始数据的第一数据块和用于存储编码数据的第二数据块,且所述第一数据块和所述第二数据块的存储空间大小相同;
[0008]对所述第一数据块和所述第二数据块进行横向分组得到多个子条带;其中,每个所述子条带包括存储原始数据的第一子数据块和用于存储编码数据的第二子数据块,且每个所述子条带的第一子数据块和第二子数据块的存储空间大小相同;
[0009]从所述多个子条带中确定本次存储数据的至少一个目标子条带;
[0010]将所述至少一个目标子条带的信息发送给编码管理器,以使所述编码管理器从多个CPU核中为每个所述目标子条带分配一个空闲的目标CPU核,由所述目标CPU核对相应所述目标子条带的第一子数据块内的数据进行编码、并将编码结果存储于相应所述目标子条带的第二子数据块内。
[0011]优选的,所述从所述多个子条带中确定本次存储数据的至少一个目标子条带,包括:
[0012]判断本次存储数据所占的空间大小是否小于所述第一数据块的存储空间大小;
[0013]如果所述本次存储数据所占的空间大小小于所述第一数据块的存储空间大小,确定上次存储数据最后占用的第一子数据块和偏移位置,并根据所述本次存储数据所占的空间大小确定本次存储数据最后占用的第一子数据块和偏移位置;
[0014]判断所述上次存储数据最后占用的第一子数据块对应的第一数据块与所述本次存储数据最后占用的第一子数据块对应的第一数据块是否相同;
[0015]如果所述上次存储数据最后占用的第一子数据块对应的第一数据块与所述本次
存储数据最后占用的第一子数据块对应的第一数据块相同,将所述多个子条带中位于所述上次存储数据最后占用的偏移位置与所述本次存储数据最后占用的偏移位置之间的子条带作为本次存储数据的至少一个目标子条带;
[0016]如果所述上次存储数据最后占用的第一子数据块对应的第一数据块与所述本次存储数据最后占用的第一子数据块对应的第一数据块不相同,将所述多个子条带中除位于所述本次存储数据最后占用的偏移位置与所述上次存储数据最后占用的偏移位置之间的子条带所剩余的子条带作为本次存储数据的至少一个目标子条带。
[0017]优选的,所述方法还包括:
[0018]如果所述本次存储数据所占的空间大小不小于所述第一数据块的存储空间大小,将所述多个子条带中的每个子条带作为一个目标子条带。
[0019]优选的,如果所述上次存储数据最后占用的第一子数据块与所述本次存储数据最后占用的第一子数据块不相同,所述方法还包括:
[0020]在所述本次存储数据最后占用的偏移位置与所述上次存储数据最后占用的偏移位置对应于相同的子条带的情况下,将对应的所述子条带划分为两个新的子条带;其中,一个新的子条带位于所述本次存储数据最后占用的偏移位置与对应的所述子条带的最小偏移位置之间,另一个新的子条带位于所述上次存储数据最后占用的偏移位置与对应的所述子条带的最大偏移位置之间。
[0021]优选的,所述将所述至少一个目标子条带的信息发送给编码管理器,包括:
[0022]将每个所述子条带中本次存储数据的存储位置发送给编码管理器。
[0023]一种高效编码存储装置,所述装置包括:
[0024]获取模块,用于获取待编码条带;其中,所述待编码条带包括存储原始数据的第一数据块和用于存储编码数据的第二数据块,且所述第一数据块和所述第二数据块的存储空间大小相同;
[0025]分组模块,用于对所述第一数据块和所述第二数据块进行横向分组得到多个子条带;其中,每个所述子条带包括存储原始数据的第一子数据块和用于存储编码数据的第二子数据块,且每个所述子条带的第一子数据块和第二子数据块的存储空间大小相同;
[0026]确定模块,用于从所述多个子条带中确定本次存储数据的至少一个目标子条带;
[0027]发送模块,用于将所述至少一个目标子条带的信息发送给编码管理器,以使所述编码管理器从多个CPU核中为每个所述目标子条带分配一个空闲的目标CPU核,由所述目标CPU核对相应所述目标子条带的第一子数据块内的数据进行编码、并将编码结果存储于相应所述目标子条带的第二子数据块内。
[0028]优选的,所述确定模块,具体用于:
[0029]判断本次存储数据所占的空间大小是否小于所述第一数据块的存储空间大小;如果所述本次存储数据所占的空间大小小于所述第一数据块的存储空间大小,确定上次存储数据最后占用的第一子数据块和偏移位置,并根据所述本次存储数据所占的空间大小确定本次存储数据最后占用的第一子数据块和偏移位置;判断所述上次存储数据最后占用的第一子数据块对应的第一数据块与所述本次存储数据最后占用的第一子数据块对应的第一数据块是否相同;如果所述上次存储数据最后占用的第一子数据块对应的第一数据块与所述本次存储数据最后占用的第一子数据块对应的第一数据块相同,将所述多个子条带中位
于所述上次存储数据最后占用的偏移位置与所述本次存储数据最后占用的偏移位置之间的子条带作为本次存储数据的至少一个目标子条带;如果所述上次存储数据最后占用的第一子数据块对应的第一数据块与所述本次存储数据最后占用的第一子数据块对应的第一数据块不相同,将所述多个子条带中除位于所述本次存储数据最后占用的偏移位置与所述上次存储数据最后占用的偏移位置之间的子条带所剩余的子条带作为本次存储数据的至少一个目标子条带。
[0030]优选的,所述确定模块,还用于:
[0031]如果所述本次存储数据所占的空间大小不小于所述第一数据块的存储空间大小,将所述多个子条带中的每个子条带作为一个目标子条带。
[0032]优选的,所述确定模块,还用于:
[0033]在所述本次存储数据最后占用的偏移位置与所述上次存储数据最后占用的偏移位置对应于相同本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种高效编码存储方法,其特征在于,所述方法包括:获取待编码条带;其中,所述待编码条带包括存储原始数据的第一数据块和用于存储编码数据的第二数据块,且所述第一数据块和所述第二数据块的存储空间大小相同;对所述第一数据块和所述第二数据块进行横向分组得到多个子条带;其中,每个所述子条带包括存储原始数据的第一子数据块和用于存储编码数据的第二子数据块,且每个所述子条带的第一子数据块和第二子数据块的存储空间大小相同;从所述多个子条带中确定本次存储数据的至少一个目标子条带;将所述至少一个目标子条带的信息发送给编码管理器,以使所述编码管理器从多个CPU核中为每个所述目标子条带分配一个空闲的目标CPU核,由所述目标CPU核对相应所述目标子条带的第一子数据块内的数据进行编码、并将编码结果存储于相应所述目标子条带的第二子数据块内。2.根据权利要求1所述的方法,其特征在于,所述从所述多个子条带中确定本次存储数据的至少一个目标子条带,包括:判断本次存储数据所占的空间大小是否小于所述第一数据块的存储空间大小;如果所述本次存储数据所占的空间大小小于所述第一数据块的存储空间大小,确定上次存储数据最后占用的第一子数据块和偏移位置,并根据所述本次存储数据所占的空间大小确定本次存储数据最后占用的第一子数据块和偏移位置;判断所述上次存储数据最后占用的第一子数据块对应的第一数据块与所述本次存储数据最后占用的第一子数据块对应的第一数据块是否相同;如果所述上次存储数据最后占用的第一子数据块对应的第一数据块与所述本次存储数据最后占用的第一子数据块对应的第一数据块相同,将所述多个子条带中位于所述上次存储数据最后占用的偏移位置与所述本次存储数据最后占用的偏移位置之间的子条带作为本次存储数据的至少一个目标子条带;如果所述上次存储数据最后占用的第一子数据块对应的第一数据块与所述本次存储数据最后占用的第一子数据块对应的第一数据块不相同,将所述多个子条带中除位于所述本次存储数据最后占用的偏移位置与所述上次存储数据最后占用的偏移位置之间的子条带所剩余的子条带作为本次存储数据的至少一个目标子条带。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:如果所述本次存储数据所占的空间大小不小于所述第一数据块的存储空间大小,将所述多个子条带中的每个子条带作为一个目标子条带。4.根据权利要求2所述的方法,其特征在于,如果所述上次存储数据最后占用的第一子数据块与所述本次存储数据最后占用的第一子数据块不相同,所述方法还包括:在所述本次存储数据最后占用的偏移位置与所述上次存储数据最后占用的偏移位置对应于相同的子条带的情况下,将对应的所述子条带划分为两个新的子条带;其中,一个新的子条带位于所述本次存储数据最后占用的偏移位置与对应的所述子条带的最小偏移位置之间,另一个新的子条带位于所述上次存储数据最后占用的偏移位置与对应的所述子条带的最大偏移位置之间。5.根据权利要求1所述的方法,其特征在于,所述将所述至少一个目标子条带的信息发送给编码管理器,包括:
将每个所述...

【专利技术属性】
技术研发人员:徐佳宏李银李威青刘彬
申请(专利权)人:深圳市茁壮网络股份有限公司
类型:发明
国别省市:

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

1