[发明专利]用于对象存储集群的数据同步方法与系统有效
申请号: | 201910458490.2 | 申请日: | 2019-05-29 |
公开(公告)号: | CN110175159B | 公开(公告)日: | 2020-07-31 |
发明(设计)人: | 张婷;胡升波;何军 | 申请(专利权)人: | 京东数字科技控股有限公司 |
主分类号: | G06F16/182 | 分类号: | G06F16/182;G06F11/14 |
代理公司: | 北京律智知识产权代理有限公司 11438 | 代理人: | 孙宝海;袁礼君 |
地址: | 100176 北京市大兴区经济*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 对象 存储 集群 数据 同步 方法 系统 | ||
1.一种用于对象存储集群的数据同步方法,其特征在于,在集群切换前后均由当前主集群执行,包括:
接收用户请求并转发所述用户请求至对象存储服务;
在所述用户请求是数据变更请求时,响应所述对象存储服务的请求处理成功消息识别所述数据变更请求对应的数据对象以及数据属性;
在同步列表中将所述数据对象对应的所述数据属性的值设置为集群名称;
定时拉取所述同步列表以生成多个同步任务,一个同步任务对应一个数据对象;
按照所述数据对象、所述数据属性以及每个所述数据属性对应的集群名称,通过多个线程执行所述多个同步任务,一个同步任务仅由一个线程执行。
2.如权利要求1所述的数据同步方法,其特征在于,还包括:
在所述转发所述用户请求至对象存储服务之前,如果所述用户请求是数据变更请求,识别所述数据变更请求的数据对象;
获取所述数据对象的操作锁,如果成功,转发所述用户请求至所述对象存储服务;
响应所述对象存储服务的请求处理结果返回消息释放所述操作锁。
3.如权利要求2所述的数据同步方法,其特征在于,所述获取所述数据对象的操作锁包括:
获取该数据对象的操作锁值;
如果所述操作锁值在预设范围内,更新所述操作锁值以及所述操作锁值对应的超时时间;
否则,对用户端返回请求失败消息。
4.如权利要求3所述的数据同步方法,其特征在于,所述释放所述数据对象的操作锁包括:
反向更新所述操作锁值并取消所述超时时间。
5.如权利要求2所述的数据同步方法,其特征在于,所述通过多个线程执行所述多个同步任务包括:
设置所述线程在执行所述同步任务之前获取所述同步任务对应的数据对象的操作锁;
如果获取操作锁成功,执行所述同步任务后释放所述同步任务对应的数据对象的操作锁;
如果获取操作锁失败,执行下一个同步任务。
6.如权利要求1~5任一项所述的数据同步方法,其特征在于,所述执行所述同步任务包括:
根据所述集群名称和所述数据对象从每个数据属性对应的集群获取所述数据对象的所述数据属性对应的最新数据;
根据所述最新数据更新其他集群中所述数据对象的所述数据属性对应的数据;
在完成所述同步任务之后删除所述同步列表中所述同步任务对应的数据对象。
7.如权利要求1所述的数据同步方法,其特征在于,还包括:
在开始接收用户请求之前,设置结构相同的主集群和从集群;
在接收用户请求之后,如果所述用户请求是数据变更请求,响应所述对象存储服务的请求处理成功消息初始化所述同步列表;
在所述同步列表中不存在所述数据变更请求对应的数据对象和/或该数据对象对应的数据属性时,添加所述数据对象和/或所述数据属性,并将所述数据属性的值设置为集群名称。
8.一种用于对象存储集群的数据同步装置,其特征在于,包括:
用户接口模块,设置为接收用户请求并转发所述用户请求至对象存储服务;
属性识别模块,设置为在所述用户请求是数据变更请求时,响应所述对象存储服务的请求处理成功消息识别所述数据变更请求对应的数据对象以及数据属性;
列表更新模块,设置为在同步列表中将所述数据对象对应的所述数据属性的值设置为集群名称;
任务下发模块,设置为定时拉取所述同步列表以生成多个同步任务,一个同步任务对应一个数据对象;
同步任务执行模块,设置为按照所述数据对象、所述数据属性以及每个所述数据属性对应的集群名称,通过多个线程执行所述多个同步任务,一个同步任务仅由一个线程执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于京东数字科技控股有限公司,未经京东数字科技控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910458490.2/1.html,转载请声明来源钻瓜专利网。