本发明涉及计算机领域,并且更具体地涉及一种提高桶生命周期性能的方法、装置、设备及可读介质。
背景技术:
1、随着互联网的发展,互联网数据量(非结构化数据)越来越大,分布式对象存储应运而生。这种新兴的存储方式,适用于图片、视频等非结构化数据的存储。它同时又具有块存储高速直接访问磁盘的特点以及文件存储分布式共享的特点,因此一经推出就得到广泛的发展与应用。
2、对象存储向存储桶内上传对象时,实际的数据存储在数据池中,在桶索引分片上则存储对象的基本信息,通过“对象名-基本信息”的k-v结构存储在某一个桶分片上。当用户查询或列举桶内对象时,通过查找或遍历桶分片上存储的对象,即可返回用户所需的结果,因此桶分片的主要作用为查询或列举对象,当用户删除桶内对象时,则与上传对象流程大致相反,删除数据池内的实际数据,以及删除桶索引分片上的对象k-v记录,完成删除过程。
3、桶生命周期功能是一种桶内对象通过设定过期时长实现的定期清理数据的策略,其主要基于三个功能部分组成:获取需要执行的生命周期的桶、遍历该桶内的对象、比对上传时间距离当前时间是否过期并删除过期对象。但是当前生命周期执行时存在一个问题,当一个或多个存储桶内对象数量达到上亿级别时,生命周期执行删除过期对象的性能非常不理想,原因在于对单桶执行生命周期时,仅有一个线程在对桶进行对象遍历操作,因此桶内对象数量庞大对于遍历性能是有比较大的影响的,同时由于一个服务器节点上单个线程遍历单个桶时,其他的线程就会处于闲置状态或者说叫获取锁失败状态,这就会导致服务器的性能无法充分发挥,因此整体生命周期的性能差,对外表现就是有多个上亿对象数量的桶时,删除速度慢。
技术实现思路
1、有鉴于此,本发明实施例的目的在于提出一种提高桶生命周期性能的方法、装置、设备及可读介质,通过使用本发明的技术方案,能够充分利用服务器多个生命周期线程的性能,保证所有生命周期线程没有闲置,极大的提高了桶生命周期的性能,发挥了服务器上所有生命周期线程的能力,能够有效的提高用户生命周期功能的使用体验,提高产品竞争力。
2、基于上述目的,本发明的实施例的一个方面提供了一种提高桶生命周期性能的方法,包括以下步骤:
3、开启存储桶的生命周期功能,并在生命周期分片上记录桶的信息;
4、响应于生命周期开始执行,遍历一个桶中所有生命周期分片以获取桶的信息;
5、基于桶的桶索引分片个数和生命周期线程个数为每个生命周期线程分配桶索引分片的检查范围;
6、每个生命周期线程基于分配的检查范围对桶中的对象进行检查。
7、根据本发明的一个实施例,基于桶的桶索引分片个数和生命周期线程个数为每个生命周期线程分配桶索引分片的检查范围包括:
8、获取桶索引分片个数n;
9、获取生命周期线程个数n;
10、使用n/n计算每个生命周期线程检查桶索引分片的个数,其中n/n的值小于1时结果取值为1,n/n的值为大于1的小数时结果取值为大于小数的最小整数;
11、依次为每个生命周期线程分配计算得到的个数相应的桶索引分片。
12、根据本发明的一个实施例,每个生命周期线程基于分配的检查范围对桶中的对象进行检查包括:
13、每个生命周期线程检查相应的桶索引分片上的对象是否过期;
14、响应于桶索引分片上的对象过期,删除对象;
15、响应于桶索引分片上的对象未过期,不做处理。
16、根据本发明的一个实施例,还包括:
17、响应于当前桶中的所有桶索引分片中的对象全部处理完成,遍历另一个桶中所有生命周期分片以获取另一个桶的信息;
18、基于另一个桶的桶索引分片个数和生命周期线程个数为每个生命周期线程分配桶索引分片的检查范围;
19、每个生命周期线程基于分配的检查范围对另一个桶中的对象进行检查。
20、本发明的实施例的另一个方面,还提供了一种提高桶生命周期性能的装置,装置包括:
21、记录模块,记录模块配置为开启存储桶的生命周期功能,并在生命周期分片上记录桶的信息;
22、获取模块,获取模块配置为响应于生命周期开始执行,遍历一个桶中所有生命周期分片以获取桶的信息;
23、分配模块,分配模块配置为基于桶的桶索引分片个数和生命周期线程个数为每个生命周期线程分配桶索引分片的检查范围;
24、执行模块,执行模块配置为每个生命周期线程基于分配的检查范围对桶中的对象进行检查。
25、根据本发明的一个实施例,分配模块还配置为:
26、获取桶索引分片个数n;
27、获取生命周期线程个数n;
28、使用n/n计算每个生命周期线程检查桶索引分片的个数,其中n/n的值小于1时结果取值为1,n/n的值为大于1的小数时结果取值为大于小数的最小整数;
29、依次为每个生命周期线程分配计算得到的个数相应的桶索引分片。
30、根据本发明的一个实施例,执行模块还配置为:
31、每个生命周期线程检查相应的桶索引分片上的对象是否过期;
32、响应于桶索引分片上的对象过期,删除对象;
33、响应于桶索引分片上的对象未过期,不做处理。
34、根据本发明的一个实施例,执行模块还配置为:
35、响应于当前桶中的所有桶索引分片中的对象全部处理完成,遍历另一个桶中所有生命周期分片以获取另一个桶的信息;
36、基于另一个桶的桶索引分片个数和生命周期线程个数为每个生命周期线程分配桶索引分片的检查范围;
37、每个生命周期线程基于分配的检查范围对另一个桶中的对象进行检查。
38、本发明的实施例的另一个方面,还提供了一种计算机设备,该计算机设备包括:
39、至少一个处理器;以及
40、存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行时实现上述任意一项方法的步骤。
41、本发明的实施例的另一个方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述任意一项方法的步骤。
42、本发明具有以下有益技术效果:本发明实施例提供的提高桶生命周期性能的方法,通过开启存储桶的生命周期功能,并在生命周期分片上记录桶的信息;响应于生命周期开始执行,遍历一个桶中所有生命周期分片以获取桶的信息;基于桶的桶索引分片个数和生命周期线程个数为每个生命周期线程分配桶索引分片的检查范围;每个生命周期线程基于分配的检查范围对桶中的对象进行检查的技术方案,能够充分利用服务器多个生命周期线程的性能,保证所有生命周期线程没有闲置,极大的提高了桶生命周期的性能,发挥了服务器上所有生命周期线程的能力,能够有效的提高用户生命周期功能的使用体验,提高产品竞争力。
1.一种提高桶生命周期性能的方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,基于桶的桶索引分片个数和生命周期线程个数为每个生命周期线程分配桶索引分片的检查范围包括:
3.根据权利要求1所述的方法,其特征在于,每个生命周期线程基于分配的检查范围对桶中的对象进行检查包括:
4.根据权利要求1所述的方法,其特征在于,还包括:
5.一种提高桶生命周期性能的装置,其特征在于,所述装置包括:
6.根据权利要求5所述的装置,其特征在于,所述分配模块还配置为:
7.根据权利要求5所述的装置,其特征在于,所述执行模块还配置为:
8.根据权利要求5所述的装置,其特征在于,所述执行模块还配置为:
9.一种计算机设备,其特征在于,包括:
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-4任意一项所述方法的步骤。