[发明专利]一种分布式对象存储系统中桶索引动态重分的方法和系统在审
申请号: | 202110374787.8 | 申请日: | 2021-04-07 |
公开(公告)号: | CN113111033A | 公开(公告)日: | 2021-07-13 |
发明(设计)人: | 冯灿坤;胡永刚 | 申请(专利权)人: | 山东英信计算机技术有限公司 |
主分类号: | G06F16/13 | 分类号: | G06F16/13;G06F16/16;G06F16/182 |
代理公司: | 济南诚智商标专利事务所有限公司 37105 | 代理人: | 王申雨 |
地址: | 250001 山东省济南市高新区*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 对象 存储系统 索引 动态 方法 系统 | ||
本发明提出了一种分布式对象存储系统中桶索引动态重分的方法和系统,该方法包括:确定原始桶索引对象重新分片的最大分片数,并计算不大于最大分片数的最大质数,最大质数作为当前索引对象的数量;检测索引数是否达到桶索引对象阈值,若达到阈值,则将桶加入分片任务队列;按照预先设置的当前索引对象的数量,执行桶重分操作;遍历原始桶索引对象中保存的所有索引条目,并将所有索引条目保存至当前索引对象的存储位置;所有索引全部重新散列存储完成后删除原始桶索引对象,将桶重分片任务从任务队列中删除。基于该方法,还提出了重分的系统,本发明通过桶索引自动分片,实现了桶索引分片数量的自动扩展,以满足实际业务的动态需求。
技术领域
本发明分布式对象存储技术领域,特别涉及一种分布式对象存储系统中桶索引动态重分的方法和系统。
背景技术
现有分布式对象存储系统中,会为每个桶维护一份索引表,保存了桶和桶内全部对象元数据之间的映射关系,用户访问桶内对象时,是通过桶索引获取对象的具体数据。而当桶内存储的对象数量过大时,超大的索引会造成性能和可靠性的问题;因此当前业界提出了通过索引分片的机制来解决桶内存储大量对象的问题。通过创建多份索引表,解决单个索引对象可能过大,从而不能满足数据增长等业务需要的问题。
然而,桶索引分片需要在使用前对桶存储对象的整体情况有非常良好的规划和设计,难以满足业务伸缩性的需要,而且业务过程使用中需要运维人员时时关注单个索引对象的大小,且实际应用中由于业务的复杂性,往往出现了性能下降等问题才会发现桶索引对象过大的问题。
发明内容
为了解决上述技术问题,本发明提出了一种分布式对象存储系统中桶索引动态重分的方法和系统,通过桶索引自动分片,实现了桶索引分片数量的自动扩展,以满足实际业务的动态需求,降低了系统由于桶索引分片过大导致可能导致的性能问题和业务故障出现的可能性,增加了系统的可靠性和可伸缩性。
为实现上述目的,本发明采用以下技术方案:
一种分布式对象存储系统中桶索引动态重分的方法,包括以下步骤:
检测索引数是否达到所述桶索引对象阈值,若达到阈值,则将所述桶加入分片任务队列;
按照预先设置的当前索引对象的数量,执行桶重分操作;
遍历原始桶索引对象中保存的所有索引条目,并将所有索引条目保存至当前索引对象的存储位置。
进一步的,所述在检测索引数是否达到所述桶索引对象阈值之前还包括确定原始桶索引对象重新分片的最大分片数,并计算不大于最大分片数的最大质数,所述最大质数作为当前索引对象的数量。
进一步的,所述按照预先设置的当前索引对象的数量,执行桶重分操作的过程为:
向数据存储层下发创建当前索引对象数量的命令和记录删除索引任务的数据存储层对象的指令;
将桶重分状态设置为processing。
进一步的,所述方法还包括定时循环,当分片任务队列中有待执行任务时,遍历所有任务并执行,在执行完毕后休眠固定时间间隔,然后进入下一轮扫描。
进一步的,所述在执行桶重分操作时,如果业务端执行读索引操作时,首先从当前索引对象上读取,如果读取不到,再从原始桶索引对象上读取。
进一步的,所述在执行桶重分操作时,如果业务端执行写索引操作时,写索引直接哈希写入当前索引对象。
进一步的,所述在执行桶重分操作时,如果业务端执行删除索引操作时,将索引删除任务写入记录删除索引任务的数据存储层对象omap中。
进一步的,所述将所有索引条目保存至当前索引对象的存储位置之后还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东英信计算机技术有限公司,未经山东英信计算机技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110374787.8/2.html,转载请声明来源钻瓜专利网。