【技术实现步骤摘要】
一种高效编码存储方法及装置
[0001]本专利技术涉及计算机
,更具体地说,涉及一种高效编码存储方法及装置。
技术介绍
[0002]在分布式存储系统中,服务器集群中的所有磁盘被统一管理以4+2/6+3/8+4/等模式进行分组,以4+2模式为例,每个分组共计6个磁盘中的4个磁盘用来保存文件的原始数据、2个磁盘用来存储编码数据。每个分组中的每一磁盘被分为N个数据块,从每一磁盘中分别获得一个数据块构成一个条带,每个分组也就对应N个条带。
[0003]当一个条带中用于存储原始数据的数据块被写入原始数据时,需要对写入的原始数据进行编码,并将编码得到的编码数据存储到用于存储编码数据的数据块中。但是,现阶段一个条带独占服务器中的一个CPU核进行编码存储,即使服务器中有其他空闲的CPU核也无法参与,导致编码存储工作的效率极低,使用户等待的时间过长,影响用户体验。
技术实现思路
[0004]有鉴于此,为解决上述问题,本专利技术提供一种高效编码存储方法及装置。
[0005]技术方案如下:
[0006]一种高效编码存储方法,所述方法包括:
[0007]获取待编码条带;其中,所述待编码条带包括存储原始数据的第一数据块和用于存储编码数据的第二数据块,且所述第一数据块和所述第二数据块的存储空间大小相同;
[0008]对所述第一数据块和所述第二数据块进行横向分组得到多个子条带;其中,每个所述子条带包括存储原始数据的第一子数据块和用于存储编码数据的第二子数据块,且每个所述子条带的第一子数 ...
【技术保护点】
【技术特征摘要】
1.一种高效编码存储方法,其特征在于,所述方法包括:获取待编码条带;其中,所述待编码条带包括存储原始数据的第一数据块和用于存储编码数据的第二数据块,且所述第一数据块和所述第二数据块的存储空间大小相同;对所述第一数据块和所述第二数据块进行横向分组得到多个子条带;其中,每个所述子条带包括存储原始数据的第一子数据块和用于存储编码数据的第二子数据块,且每个所述子条带的第一子数据块和第二子数据块的存储空间大小相同;从所述多个子条带中确定本次存储数据的至少一个目标子条带;将所述至少一个目标子条带的信息发送给编码管理器,以使所述编码管理器从多个CPU核中为每个所述目标子条带分配一个空闲的目标CPU核,由所述目标CPU核对相应所述目标子条带的第一子数据块内的数据进行编码、并将编码结果存储于相应所述目标子条带的第二子数据块内。2.根据权利要求1所述的方法,其特征在于,所述从所述多个子条带中确定本次存储数据的至少一个目标子条带,包括:判断本次存储数据所占的空间大小是否小于所述第一数据块的存储空间大小;如果所述本次存储数据所占的空间大小小于所述第一数据块的存储空间大小,确定上次存储数据最后占用的第一子数据块和偏移位置,并根据所述本次存储数据所占的空间大小确定本次存储数据最后占用的第一子数据块和偏移位置;判断所述上次存储数据最后占用的第一子数据块对应的第一数据块与所述本次存储数据最后占用的第一子数据块对应的第一数据块是否相同;如果所述上次存储数据最后占用的第一子数据块对应的第一数据块与所述本次存储数据最后占用的第一子数据块对应的第一数据块相同,将所述多个子条带中位于所述上次存储数据最后占用的偏移位置与所述本次存储数据最后占用的偏移位置之间的子条带作为本次存储数据的至少一个目标子条带;如果所述上次存储数据最后占用的第一子数据块对应的第一数据块与所述本次存储数据最后占用的第一子数据块对应的第一数据块不相同,将所述多个子条带中除位于所述本次存储数据最后占用的偏移位置与所述上次存储数据最后占用的偏移位置之间的子条带所剩余的子条带作为本次存储数据的至少一个目标子条带。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:如果所述本次存储数据所占的空间大小不小于所述第一数据块的存储空间大小,将所述多个子条带中的每个子条带作为一个目标子条带。4.根据权利要求2所述的方法,其特征在于,如果所述上次存储数据最后占用的第一子数据块与所述本次存储数据最后占用的第一子数据块不相同,所述方法还包括:在所述本次存储数据最后占用的偏移位置与所述上次存储数据最后占用的偏移位置对应于相同的子条带的情况下,将对应的所述子条带划分为两个新的子条带;其中,一个新的子条带位于所述本次存储数据最后占用的偏移位置与对应的所述子条带的最小偏移位置之间,另一个新的子条带位于所述上次存储数据最后占用的偏移位置与对应的所述子条带的最大偏移位置之间。5.根据权利要求1所述的方法,其特征在于,所述将所述至少一个目标子条带的信息发送给编码管理器,包括:
将每个所述...
【专利技术属性】
技术研发人员:徐佳宏,李银,李威青,刘彬,
申请(专利权)人:深圳市茁壮网络股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。