桶分片处理方法、装置、设备及介质制造方法及图纸

技术编号:34808913 阅读:12 留言:0更新日期:2022-09-03 20:17
本申请公开了一种桶分片处理方法、装置、设备及介质,涉及计算机技术领域,该方法包括:判断当前任务队列中是否存在待处理桶分片,若存在则从当前任务队列中提取出当前待处理桶分片,获取下一任务队列;对下一任务队列进行第一预设加锁处理,对当前待处理桶分片进行重分片得到若干个目标桶分片;基于目标桶分片的分片数量对所有第一对象进行分区得到若干组第二对象,将每一组第二对象转移至对应的目标桶分片中;对下一任务队列进行第一预设解锁处理,将下一任务队列更新为当前任务队列,重新跳转至判断当前任务队列中是否存在待处理桶分片的步骤。能够降低重分片对前端业务的负面影响。影响。影响。

【技术实现步骤摘要】
桶分片处理方法、装置、设备及介质


[0001]本专利技术涉及计算机
,特别涉及桶分片处理方法、装置、设备及介质。

技术介绍

[0002]目前分布式对象存储系统中已支持桶索引动态重新分片功能,即当桶内对象数量到达阈值时,会自动触发对该桶的桶索引重新分片,将原始分片上所有对象的索引经过重新计算,映射到新的桶索引分片上,再把原始桶索引分片全部删除,最后更新桶信息。但是此方案存在极大的弊端,当前桶分片数默认为1024个,每个桶分片可以承载10万对象索引,检测到桶内对象个数大于1024*10万时,则开始对该桶进行重新分片。在重新分片期间,要对该桶进行加锁,然后会按照分片的顺序,将每个分片上的所有对象索引列举出来,经过一定的计算,得到新的目的索引分片,再把该对象索引写到目的索引分片上,直到所有对象转移完,才会对该桶解锁。加锁期间,对该桶的所有读和写请求都会被阻塞而失败。通过实测,对承载1亿对象的桶的1024个分片执行重新分片为2048个分片,持续时间达到56分钟,在进行重新分片期间前段业务全部阻塞。而且随着对象数量的增多,转移时间越长,那么重新分片持续时间越长,对前端业务造成的影响就越大,用户体验感极差。
[0003]综上可见,如何降低重分片对前端业务的负面影响是本领域有待解决的问题。

技术实现思路

[0004]有鉴于此,本专利技术的目的在于提供一种桶分片处理方法、装置、设备及介质,能够降低重分片对前端业务的负面影响。其具体方案如下:
[0005]第一方面,本申请公开了一种桶分片处理方法,包括:
[0006]判断当前任务队列中是否存在待处理桶分片,若存在则从所述当前任务队列中提取出当前所述待处理桶分片,并获取下一任务队列;
[0007]对所述下一任务队列进行第一预设加锁处理,并基于与当前所述待处理桶分片对应的目标对象数量要求对当前所述待处理桶分片进行重分片,以得到若干个目标桶分片;
[0008]确定所述目标桶分片的分片数量,并将当前所述待处理桶分片中的所有第一对象进行分区,以得到与所述分片数量对应的若干组所述第二对象,然后将每一组所述第二对象转移至对应的所述目标桶分片中;
[0009]对所述下一任务队列进行第一预设解锁处理,并将所述下一任务队列更新为所述当前任务队列,然后重新跳转至所述判断当前任务队列中是否存在待处理桶分片的步骤。
[0010]可选的,所述判断当前任务队列中是否存在待处理桶分片之前,还包括:
[0011]通过预设任务检测模块基于当前桶中每个桶分片的当前对象数量和目标对象数量要求,筛选出待处理桶分片;
[0012]将所述待处理桶分片保存至当前任务队列中。
[0013]可选的,所述桶分片处理方法,还包括:
[0014]监测是否存在需要写入当前所述待处理桶分片的第三对象;
[0015]若存在,则判断当前所述待处理桶分片是否满足预设对象写入要求,若满足则将所述第三对象写入当前所述待处理桶分片。
[0016]可选的,所述判断当前所述待处理桶分片是否满足预设对象写入要求,若满足则将所述第三对象写入当前所述待处理桶分片,包括:
[0017]判断当前所述待处理桶分片上是否存在预设标识,若否则将所述第三对象写入当前所述待处理桶分片。
[0018]可选的,所述判断当前所述待处理桶分片上是否存在预设标识之后,还包括:
[0019]若存在则对当前所述待处理桶分片进行第二预设加锁处理,并获取所述第二预设加锁处理的加锁结果;
[0020]判断所述加锁结果是否满足预设要求,如果满足则将所述第三对象写入当前所述待处理桶分片。
[0021]可选的,所述判断所述加锁结果是否满足预设要求,如果满足则将所述第三对象写入当前所述待处理桶分片过程中,还包括:
[0022]清除当前所述待处理桶分片上的所述预设标识。
[0023]可选的,所述基于与当前所述待处理桶分片对应的目标对象数量要求对当前所述待处理桶分片进行重分片,以得到若干个目标桶分片的过程中,还包括:
[0024]将用于表征当前所述待处理桶分片正在进行分片的所述预设标识记录于当前所述待处理桶分片上。
[0025]第二方面,本申请公开了一种桶分片处理装置,包括:
[0026]判断模块,用于判断当前任务队列中是否存在待处理桶分片;
[0027]桶分片提取模块,用于若存在则从所述当前任务队列中提取出当前所述待处理桶分片,并获取下一任务队列;
[0028]重分片模块,用于对所述下一任务队列进行第一预设加锁处理,并基于与当前所述待处理桶分片对应的目标对象数量要求对当前所述待处理桶分片进行重分片,以得到若干个目标桶分片;
[0029]对象转移模块,用于确定所述目标桶分片的分片数量,并将当前所述待处理桶分片中的所有第一对象进行分区,以得到与所述分片数量对应的若干组所述第二对象,然后将每一组所述第二对象转移至对应的所述目标桶分片中;
[0030]更新模块,用于对所述下一任务队列进行第一预设解锁处理,并将所述下一任务队列更新为所述当前任务队列,然后重新跳转至所述判断当前任务队列中是否存在待处理桶分片的步骤。
[0031]第三方面,本申请公开了一种电子设备,包括:
[0032]存储器,用于保存计算机程序;
[0033]处理器,用于执行所述计算机程序,以实现前述公开的桶分片处理方法的步骤。
[0034]第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的桶分片处理方法的步骤。
[0035]可见,本申请判断当前任务队列中是否存在待处理桶分片,若存在则从所述当前任务队列中提取出当前所述待处理桶分片,并获取下一任务队列;对所述下一任务队列进行第一预设加锁处理,并基于与当前所述待处理桶分片对应的目标对象数量要求对当前所
述待处理桶分片进行重分片,以得到若干个目标桶分片;确定所述目标桶分片的分片数量,并将当前所述待处理桶分片中的所有第一对象进行分区,以得到与所述分片数量对应的若干组所述第二对象,然后将每一组所述第二对象转移至对应的所述目标桶分片中;对所述下一任务队列进行第一预设解锁处理,并将所述下一任务队列更新为所述当前任务队列,然后重新跳转至所述判断当前任务队列中是否存在待处理桶分片的步骤。由此可见,本申请判断当前任务队列中是否存在待处理桶分片,若存在则从当前任务队列中提取出当前待处理桶分片,并获取下一任务队列,然后对下一任务队列进行第一预设加锁处理能够保证当前时刻只对当前待处理桶分片进行后续的重分片,下一任务队列中的待处理桶分片可以继续进行前端业务的相关任务处理,因此大大降低对前端业务的阻塞时间,并减少重分片时间,改善了现有技术对桶重新分片的过程中严重阻塞前端读写业务的弊端,优化了桶分片动态增加的方案,给用户带来更好的使用体验,极大地提高了分布式对象存储系统的市场竞争力。
附图说明
[0036]为了更清楚地说本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种桶分片处理方法,其特征在于,包括:判断当前任务队列中是否存在待处理桶分片,若存在则从所述当前任务队列中提取出当前所述待处理桶分片,并获取下一任务队列;对所述下一任务队列进行第一预设加锁处理,并基于与当前所述待处理桶分片对应的目标对象数量要求对当前所述待处理桶分片进行重分片,以得到若干个目标桶分片;确定所述目标桶分片的分片数量,并将当前所述待处理桶分片中的所有第一对象进行分区,以得到与所述分片数量对应的若干组所述第二对象,然后将每一组所述第二对象转移至对应的所述目标桶分片中;对所述下一任务队列进行第一预设解锁处理,并将所述下一任务队列更新为所述当前任务队列,然后重新跳转至所述判断当前任务队列中是否存在待处理桶分片的步骤。2.根据权利要求1所述的桶分片处理方法,其特征在于,所述判断当前任务队列中是否存在待处理桶分片之前,还包括:通过预设任务检测模块基于当前桶中每个桶分片的当前对象数量和目标对象数量要求,筛选出待处理桶分片;将所述待处理桶分片保存至当前任务队列中。3.根据权利要求1所述的桶分片处理方法,其特征在于,还包括:监测是否存在需要写入当前所述待处理桶分片的第三对象;若存在,则判断当前所述待处理桶分片是否满足预设对象写入要求,若满足则将所述第三对象写入当前所述待处理桶分片。4.根据权利要求3所述的桶分片处理方法,其特征在于,所述判断当前所述待处理桶分片是否满足预设对象写入要求,若满足则将所述第三对象写入当前所述待处理桶分片,包括:判断当前所述待处理桶分片上是否存在预设标识,若否则将所述第三对象写入当前所述待处理桶分片。5.根据权利要求4所述的桶分片处理方法,其特征在于,所述判断当前所述待处理桶分片上是否存在预设标识之后,还包括:若存在则对当前所述待处理桶分片进行第二预设加锁处理,并获取所述第二预设加锁处理的加锁结果;判断所述加锁结果是否满足...

【专利技术属性】
技术研发人员:李欢欢赵煜何文龙陶桐桐
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

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

1