元数据的更新方法、系统、对象节点及存储介质技术方案

技术编号:32430390 阅读:26 留言:0更新日期:2022-02-24 18:41
本申请提供了一种元数据的更新方法、系统、对象节点及存储介质,该元数据的更新方法包括:获取对象数据对应的待更新元数据;从待更新元数据中获取预设数量的元数据;将预设数量的元数据整合成一个元数据更新请求;将元数据更新请求发送至容器节点,以通过元数据更新请求对容器节点中的元数据进行更新。本申请在获取待更新元数据后,将其中预设数量的元数据整合成一个元数据请求以对容器节点里的元数据进行更新,将原本一条一条更新元数据的方式,变为了一批一批更新的方式,能够提高元数据的更新效率,降低元数据的更新系统的压力,提高请求成功率。提高请求成功率。提高请求成功率。

【技术实现步骤摘要】
元数据的更新方法、系统、对象节点及存储介质


[0001]本申请涉及元数据更新
,具体涉及一种元数据的更新方法、系统、对象节点及存储介质。

技术介绍

[0002]元数据(Metadata),又称中介数据、中继数据,为描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。
[0003]Openstack Swift最初是由Rackspace公司开发的高可用分布式对象存储服务,并于2010年贡献给OpenStack开源社区作为其最初的核心子项目之一,为其Nova子项目提供虚机镜像存储服务。Swift构筑在比较便宜的标准硬件存储基础设施之上,无需采用磁盘冗余阵列,通过在软件层面引入一致性散列技术和数据冗余性,牺牲一定程度的数据一致性来达到高可用性和可伸缩性,支持多租户模式、容器和对象读写操作,适合解决互联网的应用场景下非结构化数据存储问题。Swift采用层次数据模型,共设三层逻辑结构:Account/Container/Object(即账户/容器/对象),每层节点数均没有限制,可以任意扩展。这里的账户和个人账户不是一个概念,可理解为租户,用来做顶层的隔离机制,可以被多个个人账户所共同使用;容器代表封装一组对象,类似文件夹或目录;叶子节点代表对象,由元数据和内容两部分组成。
[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]第二获取单元,用于从所述待更新元数据中获取预设数量的元数据;
[0037]整合单元,用于将所述预设数量的元数据整合成一个元数据更新请求;
[0038]发送单元,用于将所述元数据更新请求发送至容器节点,以通过所述元数据更新请求对所述容器节点中的元数据进行更新。
[0039]其中,所述第二获取单元,还用于将所述待更新元数据写入内存数据库;
[0040]从所述内存数据库读取所述预设数量的元数据。
[0041]其中,所述第二获取单元,还用于从所述内存数据库查找预设数量的目标更新地址相同的元数据;
[0042]读取所述预设数量的目标更新地址相同的元数据。
[0043]其中,所述发送单元,还用于获取所述容器节点返回的基于所述元数据更新请求的元数据更新结果;
[0044]基于所述元数据更新结果从所述内存数据库中将更新完成的元数据删除。
[0045]其中,所述发送单元,还用于基于所述元数据更新结果从所述内存数据库中获取未更新完成的元数据;
[0046]将所述未更新完成的元数据从所述内存数据库中转移至文件系统。
[0047]一方面,本申请提供一种对象节点,包括存储器和处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行第一方面任一项所述的元数据的更新方法。
[0048]一方面,本申请提供一种元数据的更新系统,所述元数据的更新系统包括容器节点和第三方面所述的对象节点,所述容器节点包括:
[0049]第三获取单元,用于获取元数据更新请求;
[0050]判断单元,用于判断所述元数据更新请求是否为批量请求;
[0051]拆分单元,用于若所述元数据更新请求为批量请求,则将所述元数据更新请求拆分成多个子元数据更新请求;
[0052]第四获取单元,用于获取所述子元数据更新请求对应的目标更新地址;
[0053]写入单元,用于将所述子元数据更新请求对应的元数据写入所述目标更新地址对应的预设数据库。
[0054]一方面,本申请提供一种容器节点,包括存储本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种元数据的更新方法,其特征在于,所述更新方法包括:获取对象数据对应的待更新元数据;从所述待更新元数据中获取预设数量的元数据;将所述预设数量的元数据整合成一个元数据更新请求;将所述元数据更新请求发送至容器节点,以通过所述元数据更新请求对所述容器节点中的元数据进行更新。2.如权利要求1所述的元数据的更新方法,其特征在于,所述从所述待更新元数据中获取预设数量的元数据,包括:将所述待更新元数据写入内存数据库;从所述内存数据库读取所述预设数量的元数据。3.如权利要求2所述的元数据的更新方法,其特征在于,所述从所述内存数据库读取所述预设数量的元数据,包括:从所述内存数据库查找预设数量的目标更新地址相同的元数据;读取所述预设数量的目标更新地址相同的元数据。4.如权利要求2所述的元数据的更新方法,其特征在于,所述将所述元数据更新请求发送至容器节点,以通过所述元数据更新请求对所述容器节点中的元数据进行更新,之后,包括:获取所述容器节点返回的基于所述元数据更新请求的元数据更新结果;基于所述元数据更新结果从所述内存数据库中将更新完成的元数据删除。5.如权利要求4所述的元数据的更新方法,其特征在于,所述元数据的更新方法还包括:基于所述元数据更新结果从所述内存数据库中获取未更新完成的元数据;将所述未更新完成的元数据从所述内存数据库中转移至文件系统。6.一种元数据的更新方法,其特征在于,所述更新方法包括:获取元数据更新请求;判断所述元数据更新请求是否为批量请求;若所述元数据更新请求为批量请求,则将所述元数据更新请求拆分...

【专利技术属性】
技术研发人员:张永田詹孟华贺新民刘力周萍凌文波廖振球徐新陈义刘辉勇王朝帝董光辉何平练育旺杨淑辉
申请(专利权)人:顺丰科技有限公司
类型:发明
国别省市:

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

1