[发明专利]一种数据同步方法和装置在审
申请号: | 202010725821.7 | 申请日: | 2020-07-24 |
公开(公告)号: | CN111880956A | 公开(公告)日: | 2020-11-03 |
发明(设计)人: | 潘朋飞;邵帅 | 申请(专利权)人: | 北京达佳互联信息技术有限公司 |
主分类号: | G06F11/00 | 分类号: | G06F11/00;G06F11/14 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 林祥 |
地址: | 100085 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 同步 方法 装置 | ||
本公开提供了一种数据同步方法、装置、电子设备及存储介质,通过在修改前后对比主集群的内容版本号避免并发操作可能造成的修改冲突,通过每次修改后将主集群的数据状态覆盖写入到各个备份集群来保证各个集群的高可用性,即使主集群可能因某次业务行为的数据写入失败,数据回滚等原因与备份集群数据不同,当下次主集群数据修改后也能再次通过覆盖同步的方式将各个备份集群的数据进行修正,本公开方案可以在避免并发冲突的同时,保证缓存系统的高可用性。
技术领域
本公开涉计算机技术领域,尤其涉及一种数据同步方法、装置、电子设备及存储介质。
背景技术
在使用缓存系统存储业务数据时,当发生业务行为后,需要从缓存系统中获取对应的数据,将数据修改后,再写回原存储位置。
在高并发场景下,同一时间可能会存在多个业务行为修改同一数据的情况,此时可能出现并发冲突。举例说明,同一时间发生两次业务行为,业务行为A消费2元,业务行为B消费3元,两次业务行为同时从缓存系统中获取到当前余额为10元,业务行为A在10元的基础上,计算新的余额应为8元,并首先将余额8元写入原位置,业务行为B在10元的基础上,计算新的余额应为7元,后将余额7元写入原位置,此时缓存系统中存储的余额为7元,但实际上余额应为5元。即并发冲突会导致数据错误。
目前来说,缺少一种高并发场景下的应用方案,可以在避免并发冲突的同时,保证缓存系统的高可用性。
发明内容
针对上述技术问题,本公开实施例提供一种数据同步方法,技术方案如下:
根据本公开实施例的第一方面,提供一种数据同步方法,应用于由主集群与至少一个备份集群组成的缓存系统,包括:
接收对指定数据的修改请求后,依据所述修改请求确定待修改的目标字段,从主集群获取所述目标字段的当前内容;
在所述目标字段的当前内容的基础上,依据所述修改请求计算出所述目标字段的最新内容;
若所述主集群中的目标字段的内容在计算过程中未发生变化,则将所述目标字段的最新内容写入所述主集群;
依据所述主集群的目标字段的最新内容,更新备份集群的字段内容为主集群的字段内容,以使所述缓存系统中各个集群的当前数据保持同步。
可选的,所述若所述主集群中的目标字段的内容在计算过程中未发生变化,则将所述目标字段的最新内容写入所述主集群,包括:
确定预先获取的所述目标字段的第一版本号,所述第一版本号的获取时机为:从主集群获取目标字段时;
计算出所述目标字段的最新内容后,从主集群获取所述目标字段的第二版本号;
若所述目标字段的第一最新版本号与第二版本号相同,则确定所述目标字段的版本号未发生变化,将所述目标字段的最新内容写入所述主集群,并更新所述目标字段的版本号。
可选的,所述方法还包括:
若所述主集群中的目标字段的内容在计算过程中发生变化,判定所述目标字段的内容在计算过程中被其他修改请求所修改,则终止本次流程,不再将所述目标字段的最新内容写入所述主集群。
可选的,所述终止本次流程后,还包括:
从所述主集群重新获取目标字段的当前内容,并重新执行所述数据同步方法。
可选的,所述方法还包括:
若主集群未发生故障,从主集群进行数据读写;
若主集群发生故障,则进行集群切换,将其中一个备份集群设定为新主集群,从所述新主集群进行数据读写。
可选的,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京达佳互联信息技术有限公司,未经北京达佳互联信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010725821.7/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置