一种基于分布式键值数据库的元数据存储方法及装置制造方法及图纸

技术编号:35897840 阅读:23 留言:0更新日期:2022-12-10 10:32
本发明专利技术公开了一种基于分布式键值数据库的元数据存储方法及装置,涉及数据处理领域,该方法包括:确定桶内存储的对象的元数据,并确定所述元数据的预设类型以及键

【技术实现步骤摘要】
一种基于分布式键值数据库的元数据存储方法及装置


[0001]本专利技术涉及数据处理领域,具体涉及一种基于分布式键值数据库的元数据存储方法及装置。

技术介绍

[0002]分布式对象存储系统中会为每个桶维护一份索引表,保存了桶和桶内全部对象元数据之间的映射关系,当用户访问桶内对象时,是通过桶索引获取对象的具体数据,而当桶内存储的对象数量过大时,超大的索引会造成性能和可靠性的问题。为了解决单桶对象规模的限制,现有技术中采用了动态分片机制,通过创建多份索引表,但是在进行桶分片时会对桶内的对象元数据进行再平衡,如果桶内存储了大量的对象,在分片时数据再平衡操作会非常耗时,阻塞了前端的写入,给用户带来非常不友好的体验。
[0003]因此,如何解决分布式对象存储系统中单桶对象存储规模受限和分片机制带来的业务阻塞问题,是目前业界亟待解决的重要课题。

技术实现思路

[0004]有鉴于此,本专利技术实施例提供了一种基于分布式键值数据库的元数据存储方法及装置,以解决分布式对象存储系统中单桶对象存储规模受限和分片机制带来的业务阻塞问题。
[0005]根据第一方面,本专利技术实施例提供了一种基于分布式键值数据库的元数据存储方法,所述方法应用于服务端,所述服务端安装有分布式对象存储系统,所述方法包括:
[0006]确定桶内存储的对象的元数据,并确定所述元数据的预设类型以及键

值对;
[0007]基于所述元数据已确定的预设类型以及键

值对,将所述元数据保存至对应的哈希表以及有序列表中;所述分布式存储系统中每个桶均通过至少一个哈希表和至少一个有序列表存储元数据,所述哈希表用于存储元数据,所述有序列表用于存储元数据的检索信息。
[0008]结合第一方面,在第一方面第一实施方式中,所述预设类型包括第一、第二、第三和第四类型,第一类型的元数据为基本元数据,第二类型的元数据为对象属性元数据,第三类型的元数据为索引元数据,第四类型的元数据为索引顺序元数据;
[0009]所述基于所述元数据已确定的预设类型以及键

值对,将所述元数据保存至对应的哈希表以及有序列表中,具体包括:
[0010]基于已确定的预设类型,将所述元数据存储至预设类型对应的容器组中;每一种预设类型的元数据均对应一个所述容器组,每一个所述容器组均对应至少一个哈希槽,且,所述容器组对应的哈希槽的数量彼此相等;
[0011]基于所述元数据的键

值对,确定所述元数据的CRC16值,基于哈希槽的总数以及已确定的CRC16值,确定元数据对应的哈希槽;
[0012]将所述元数据映射并存储至已确定的哈希槽对应的所述哈希表;每一个所述哈希
表对应至少一个哈希槽;
[0013]为所述元数据分配对应的分数值,基于已分配的所述分数值,确定所述元数据对应的所述有序列表,并将所述元数据存储至对应的所述有序列表中;所述有序列表中各项所述元数据按照所述分数值进行顺序排序。
[0014]结合第一方面第一实施方式,在第一方面第二实施方式中,所述哈希表的数量是基于预设数量和所述哈希槽的总数确定的,所述哈希表的数量超过所述预设数量且为所述总数的因数。
[0015]结合第一方面,在第一方面第三实施方式中,该方法还包括以下步骤:
[0016]确定客户端的元数据检索请求;所述元数据检索请求中包含检索信息,所述检索信息包括每个所述有序列表的索引顺序和索引元素数目;
[0017]基于所述检索信息,从每个所述有序列表中取出对应的所述元数据;
[0018]将所述元数据存放至预设map表中,基于所述预设map表,对所述预设map表中存储的所述元数据进行顺序排序,将完成所述元数据存放及排序的所述预设map表返回给客户端。
[0019]结合第一方面,在第一方面第四实施方式中,该方法还包括以下步骤:
[0020]确定客户端的元数据检索请求;所述元数据检索请求中包含检索信息,所述检索信息包括基准元数据和索引元素数目;
[0021]确定所述基准元数据在每个所述有序列表中的存储位置;
[0022]基于所述检索信息和所述存储位置,从每个所述有序列表中取出对应的所述元数据;
[0023]将所述元数据存放至预设map表中,基于所述预设map表,对所述预设map表中存储的所述元数据进行顺序排序,将完成所述元数据存放及排序的所述预设map表返回给客户端。
[0024]结合第一方面第三实施方式或者第四实施方式,在第一方面第五实施方式中,所述将所述元数据存放至预设map表中,基于所述预设map表,对所述预设map表中存储的所述元数据进行顺序排序,将完成所述元数据存放及排序的所述预设map表返回给客户端,还包括:
[0025]确定所述预设map表达到存储上限且存在未存入的所述元数据,基于所述预设map表,确定未存入的所述元数据与所述预设map表中最尾端的元数据的map表排序值;
[0026]确定所述最尾端的元数据对应的map表排序值超过未存入的所述元数据对应的map表排序值,删除所述所述最尾端的元数据,并将未存入的所述元数据存储至所述预设map表中。
[0027]根据第二方面,本专利技术实施例还提供了一种所述基于分布式键值数据库的元数据存储装置,所述装置应用于服务端,所述服务端安装有分布式对象存储系统,所述装置包括:
[0028]第一确定模块,用于确定桶内存储的对象的元数据,并确定所述元数据的预设类型以及键

值对;
[0029]数据存储模块,用于基于所述元数据已确定的预设类型以及键

值对,将所述元数据保存至对应的哈希表以及有序列表中;所述分布式存储系统中每个桶均通过至少一个哈
希表和至少一个有序列表存储元数据,所述哈希表用于存储元数据,所述有序列表用于存储元数据的检索信息。
[0030]根据第三方面,本专利技术实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于分布式键值数据库的元数据存储方法的步骤。
[0031]根据第四方面,本专利技术实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于分布式键值数据库的元数据存储方法的步骤。
[0032]根据第五方面,本专利技术实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于分布式键值数据库的元数据存储方法的步骤。
[0033]本专利技术提供的基于分布式键值数据库的元数据存储方法及装置,通过将对象的元数据以键值对的形式存储在分布式key

value集群中,并且采用分表的方式,用多个哈希表以及多个有序列表来承载一个桶内对象的元数据,通过哈希表进行元数据的存储减少了I/O操作的复杂度,在保证效率的同本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于分布式键值数据库的元数据存储方法,其特征在于,所述方法应用于服务端,所述服务端安装有分布式对象存储系统,所述方法包括:确定桶内存储的对象的元数据,并确定所述元数据的预设类型以及键

值对;基于所述元数据已确定的预设类型以及键

值对,将所述元数据保存至对应的哈希表以及有序列表中;所述分布式存储系统中每个桶均通过至少一个哈希表和至少一个有序列表存储元数据,所述哈希表用于存储元数据,所述有序列表用于存储元数据的检索信息。2.根据权利要求1所述的基于分布式键值数据库的元数据存储方法,其特征在于,所述预设类型包括第一、第二、第三和第四类型,第一类型的元数据为基本元数据,第二类型的元数据为对象属性元数据,第三类型的元数据为索引元数据,第四类型的元数据为索引顺序元数据;所述基于所述元数据已确定的预设类型以及键

值对,将所述元数据保存至对应的哈希表以及有序列表中,具体包括:基于已确定的预设类型,将所述元数据存储至预设类型对应的容器组中;每一种预设类型的元数据均对应一个所述容器组,每一个所述容器组均对应至少一个哈希槽,且,所述容器组对应的哈希槽的数量彼此相等;基于所述元数据的键

值对,确定所述元数据的CRC16值,基于哈希槽的总数以及已确定的CRC16值,确定元数据对应的哈希槽;将所述元数据映射并存储至已确定的哈希槽对应的所述哈希表;每一个所述哈希表对应至少一个哈希槽;为所述元数据分配对应的分数值,基于已分配的所述分数值,确定所述元数据对应的所述有序列表,并将所述元数据存储至对应的所述有序列表中;所述有序列表中各项所述元数据按照所述分数值进行顺序排序。3.根据权利要求2所述的基于分布式键值数据库的元数据存储方法,其特征在于,所述哈希表的数量是基于预设数量和所述哈希槽的总数确定的,所述哈希表的数量超过所述预设数量且为所述总数的因数。4.根据权利要求1所述的基于分布式键值数据库的元数据存储方法,其特征在于,该方法还包括以下步骤:确定客户端的元数据检索请求;所述元数据检索请求中包含检索信息,所述检索信息包括每个所述有序列表的索引顺序和索引元素数目;基于所述检索信息,从每个所述有序列表中取出对应的所述元数据;将所述元数据存放至预设map表中,基于所述预设map表,对所述预设map表中存储的所述元数据进行顺序排序,将完成所述元数据存放及排序的所述预设map表返回给客户端。5.根据权利要求1...

【专利技术属性】
技术研发人员:胡爱存侯飞梁成武陈玉鹏张翼
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1