分布式对象存储系统清空桶的方法、系统及装置制造方法及图纸

技术编号:37231619 阅读:18 留言:0更新日期:2023-04-20 23:14
本申请公开了一种分布式对象存储系统清空桶的方法、系统及装置,应用于分布式存储技术领域。该方法包括:接收清空桶请求后,根据预设的线程启动规则,启动多个清空桶工作线程;其中,清空桶工作线程数小于等于桶分片数;根据清空桶请求为每个清空桶工作线程分配清空任务;每个清空桶工作线程根据分配的清空任务中记载的桶分片,并行读取清空任务中记载的桶分片中的全部对象并清空。本申请将一个清空桶任务分配给多个清空桶工作线程并行完成,提高清空速度,同时,清空桶工作线程以桶分片为基准读取桶分片中的全部对象,而不是以对象为基准进行查找,从而确保了能够一次性读取到桶分片中的全部对象进行清空,提高了清空效率。提高了清空效率。提高了清空效率。

【技术实现步骤摘要】
分布式对象存储系统清空桶的方法、系统及装置


[0001]本申请涉及分布式存储
,特别涉及一种分布式对象存储系统清空桶的方法、系统、装置及计算机可读存储介质。

技术介绍

[0002]随着信息技术的发展,全球数据不断增长,人们对于海量数据的管理也越来越重视。桶是一种对象存储逻辑空间,桶分片是当某个对象上传到桶里面时,都会在桶的某个桶分片上生成一个索引信息,一个桶有若干桶分片,例如默认一个桶可以包括1024个桶分片。
[0003]一个桶内的对象数量上亿是很常见的,而在存储过程中,不可避免地产生大量过期或废弃的数据,当前清空桶内的对象是个耗时的过程。目前的对象存储提供清空桶操作为客户端先列举到对象,之后对列举到的对象进行删除,直至删除完成,耗时巨大,且没有调速手段。
[0004]现有技术中,当前的对象存储客户端(s3cmd客户端)提供了清空桶内普通对象的命令,该命令可以实现桶内普通对象的清空,然而存在以下几个缺陷:1.以对象为目标从桶中读取并获取,因此,在对象分为多种类型的情况下,每种类型的对象需要利用不同的接口进行获取,所以现有技术中只能够清空桶内普通对象,不能删除多版本对象以及对象未上传完成的桶分片中的对象;2.删除速度不可控,并且删除速度慢,大量对象的桶清空耗时长。
[0005]因此,我们需要提供一种便捷的清空桶方式,可以快速清空桶内对象。

技术实现思路

[0006]有鉴于此,本申请的目的在于提供一种分布式对象存储系统清空桶的方法、系统、装置及计算机可读存储介质,提高清空桶的效率。其具体方案如下:一种分布式对象存储系统清空桶的方法,包括:接收清空桶请求后,根据预设的线程启动规则,启动多个清空桶工作线程;其中,清空桶工作线程数小于等于桶分片数;根据所述清空桶请求为每个清空桶工作线程分配清空任务;每个清空桶工作线程根据分配的所述清空任务中记载的桶分片,并行读取所述清空任务中记载的桶分片中的全部对象并清空。
[0007]可选的,所述接收清空桶请求后,根据预设的线程启动规则,启动多个清空桶工作线程的过程,包括:接收所述清空桶请求后,根据所述线程启动规则中记载的线程启动数量,启动相同数量的多个清空桶工作线程。
[0008]可选的,所述接收清空桶请求后,根据预设的线程启动规则,启动多个清空桶工作线程的过程,包括:接收所述清空桶请求后,根据所述线程启动规则中记载的桶分片数量、线程数以
及对象存储性能三者之间的对应关系,启动相应数量的多个清空桶工作线程。
[0009]可选的,所述对象存储性能包括内存剩余量和/或CPU负载。
[0010]可选的,还包括:基于用户输入的调整指令对桶分片数量、线程数以及对象存储性能三者之间的对应关系中的线程数进行调整。
[0011]可选的,所述根据所述清空桶请求为每个清空桶工作线程分配清空任务,包括:根据所述清空桶请求中记载的所需清空的桶分片数量以及所述对象存储性能,为每个清空桶工作线程分配相应的所述清空任务。
[0012]可选的,所述根据所述清空桶请求中记载的所需清空的桶分片数量以及所述对象存储性能,为每个清空桶工作线程分配相应的所述清空任务的过程,包括:根据所述清空桶请求中记载的所需清空的桶分片数量以及所述对象存储性能,采用均分的方式为每个清空桶工作线程分配相应的所述清空任务。
[0013]可选的,所述根据所述清空桶请求中记载的所需清空的桶分片数量以及所述对象存储性能,为每个清空桶工作线程分配相应的所述清空任务的过程,包括:所述根据所述清空桶请求中记载的所需清空的桶分片数量以及所述对象存储性能,基于每个清空任务中所需清空的桶分片数控的大小及每个所述清空桶工作线程的负载高低,为每个清空桶工作线程分配相应的所述清空任务。
[0014]可选的,所述基于每个清空任务中所需清空的桶分片数控的大小及每个所述清空桶工作线程的负载高低,为每个清空桶工作线程分配相应的所述清空任务的过程,包括:将各所述清空任务中包括的所需清空的桶分片数量按照大小进行排序;将每个所述清空桶工作线程的负载情况按照负载高低进行排序;将所需情况的桶分片数量大的情况任务分配给负载低的清空桶工作线程,将所需情况的桶分片数量小的情况任务分配给负载高的清空桶工作线程。
[0015]可选的,每个清空桶工作线程根据分配的所述清空任务中记载的桶分片,并行读取所述清空任务中记载的桶分片中的全部对象并清空的过程,包括:每个清空桶工作线程根据分配的所述清空任务中记载的桶分片,列举所述清空任务中记载的桶分片中的对象;每个清空桶工作线程删除通过列举获取到桶分片中的对象;每个清空桶工作线程删除一个桶分片中的全部对象后,继续列举下一个桶分片中的对象并删除,直至所述清空任务中记载的全部桶分片中列举过的对象全部被删除。
[0016]可选的,所述每个清空桶工作线程根据分配的所述清空任务中记载的桶分片,列举所述清空任务中记载的桶分片中的对象,每个清空桶工作线程删除通过列举获取到桶分片中的对象的过程,包括:每个清空桶工作线程根据分配的所述清空任务中记载的桶分片,列举一个桶分片中的对象数达到预设的列举阈值后,利用清空桶工作线程将已通过列举获取到的对象进行删除,删除后再次列举桶分片中剩余的对象直至桶分片中的全部对象被删除。
[0017]可选的,还包括:基于接收到的阈值修改指令对所述列举阈值进行修改。
[0018]可选的,所述每个清空桶工作线程删除通过列举获取到桶分片中的对象的过程,
包括:每个清空桶工作线程删除通过列举获取到桶分片中的全部类型的对象。
[0019]可选的,所述全部类型的对象包括普通对象、多版本对象或未上传完成的分片对象。
[0020]可选的,在每个清空桶工作线程根据分配的所述清空任务中记载的桶分片,并行读取所述清空任务中记载的桶分片中的全部对象并清空时,还包括:锁定所述清空任务中记载的桶分片,暂停所述清空任务中记载的桶分片的对象上传任务。
[0021]可选的,还包括:在所述清空任务中的记载的桶分片中的全部对象被清空后,对所述桶分片解除锁定。
[0022]可选的,所述接收清空桶请求,包括:接收客户端发送的清空桶请求。
[0023]本申请还公开了一种分布式对象存储系统清空桶的系统,包括:线程启动模块,用于接收清空桶请求后,根据预设的线程启动规则,启动多个清空桶工作线程;其中,清空桶工作线程数小于等于桶分片数;任务分配模块,用于根据所述清空桶请求为每个清空桶工作线程分配清空任务;对象清空模块,用于每个清空桶工作线程根据分配的所述清空任务中记载的桶分片,并行读取所述清空任务中记载的桶分片中的全部对象并清空。
[0024]可选的,所述线程启动模块,具体用于接收所述清空桶请求后,根据所述线程启动规则中记载的线程启动数量,启动相同数量的多个清空桶工作线程。
[0025]可选的,所述线程启动模块,具体用于:接收所述清空桶请求后,根据所述线程启动规则中记载的桶分片数量、线程数以及对象存储性能三者之间的对应关系,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式对象存储系统清空桶的方法,其特征在于,包括:接收清空桶请求后,根据预设的线程启动规则,启动多个清空桶工作线程;其中,清空桶工作线程数小于等于桶分片数;根据所述清空桶请求为每个清空桶工作线程分配清空任务;每个清空桶工作线程根据分配的所述清空任务中记载的桶分片,并行读取所述清空任务中记载的桶分片中的全部对象并清空。2.根据权利要求1所述的分布式对象存储系统清空桶的方法,其特征在于,所述接收清空桶请求后,根据预设的线程启动规则,启动多个清空桶工作线程的过程,包括:接收所述清空桶请求后,根据所述线程启动规则中记载的线程启动数量,启动相同数量的多个清空桶工作线程。3.根据权利要求1所述的分布式对象存储系统清空桶的方法,其特征在于,所述接收清空桶请求后,根据预设的线程启动规则,启动多个清空桶工作线程的过程,包括:接收所述清空桶请求后,根据所述线程启动规则中记载的桶分片数量、线程数以及对象存储性能三者之间的对应关系,启动相应数量的多个清空桶工作线程。4.根据权利要求3所述的分布式对象存储系统清空桶的方法,其特征在于,所述对象存储性能包括内存剩余量和/或CPU负载。5.根据权利要求3所述的分布式对象存储系统清空桶的方法,其特征在于,还包括:基于用户输入的调整指令对桶分片数量、线程数以及对象存储性能三者之间的对应关系中的线程数进行调整。6.根据权利要求3所述的分布式对象存储系统清空桶的方法,其特征在于,所述根据所述清空桶请求为每个清空桶工作线程分配清空任务,包括:根据所述清空桶请求中记载的所需清空的桶分片数量以及所述对象存储性能,为每个清空桶工作线程分配相应的所述清空任务。7.根据权利要求6所述的分布式对象存储系统清空桶的方法,其特征在于,所述根据所述清空桶请求中记载的所需清空的桶分片数量以及所述对象存储性能,为每个清空桶工作线程分配相应的所述清空任务的过程,包括:根据所述清空桶请求中记载的所需清空的桶分片数量以及所述对象存储性能,采用均分的方式为每个清空桶工作线程分配相应的所述清空任务。8.根据权利要求6所述的分布式对象存储系统清空桶的方法,其特征在于,所述根据所述清空桶请求中记载的所需清空的桶分片数量以及所述对象存储性能,为每个清空桶工作线程分配相应的所述清空任务的过程,包括:所述根据所述清空桶请求中记载的所需清空的桶分片数量以及所述对象存储性能,基于每个清空任务中所需清空的桶分片数控的大小及每个所述清空桶工作线程的负载高低,为每个清空桶工作线程分配相应的所述清空任务。9.根据权利要求8所述的分布式对象存储系统清空桶的方法,其特征在于,所述基于每个清空任务中所需清空的桶分片数控的大小及每个所述清空桶工作线程的负载高低,为每个清空桶工作线程分配相应的所述清空任务的过程,包括:将各所述清空任务中包括的所需清空的桶分片数量按照大小进行排序;将每个所述清空桶工作线程的负载情况按照负载高低进行排序;
将所需情况的桶分片数量大的情况任务分配给负载低的清空桶工作线程,将所需情况的桶分片数量小的情况任务分配给负载高的清空桶工作线程。10.根据权利要求6所述的分布式对象存储系统清空桶的方法,其特征在于,每个清空桶工...

【专利技术属性】
技术研发人员:任磊王铂
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1