【技术实现步骤摘要】
基于无冲突复制数据类型的异地多主存储方法及装置
[0001]本专利技术涉及数据存储
,具体的涉及基于无冲突复制数据类型的异地多主存储方法及装置。
技术介绍
[0002]无论是为了异地容灾,还是为了就近提高服务的响应速度,很多企业都会做异地多活的数据中心。虽然是多个数据中心,其本质上主还是集中在一个地方,写入数据由专线实时同步到其他中心,这样的缺点是跨机房写入的延迟较大,并且当主所在的数据中心出现问题时,还需要把主切换到其他中心,故障消耗的时间也较长,这种方案其实是单向同步。如果是多主,就需要解决数据在同步中的冲突问题。
[0003]因此,本专利技术专利申请旨在解决异地多主数据中心的无冲突数据同步,多主数据中心的数据达到最终一致性的专利技术目的。
技术实现思路
[0004]为了解决上述技术问题,本专利技术提供基于无冲突复制数据类型的异地多主存储方法及装置,具体地,采用了如下技术方案:
[0005]基于无冲突复制数据类型的异地多主存储方法,包括:
[0006]在主数据中心A的每台机器 ...
【技术保护点】
【技术特征摘要】
1.基于无冲突复制数据类型的异地多主存储方法,其特征在于,包括:在主数据中心A的每台机器和主数据中心B的每台机器上分别部署同步服务;主数据中心A的同步服务中的数据通过负载均衡服务与主数据中心B的同步服务中的数据进行数据同步;同步的所述数据包括hash集合,针对所述hash集合进行有状态存储,hash集合的存储结构包括:meta信息,包括meta key和meta value,所述的meta key存储业务key,所述的meta value包括version存储集合、update_time存储集合和size,所述的version存储集合包含主数据中心A设置的值A和主数据中心B设置的值B,update_time存储集合包含主数据中心A和主数据中心B更新的时间戳;field信息,包括field key和field value,所述的field key存储业务key、field和主数据中心的self_version,所述field value包括update_time存储集合和实际的value,所述的update_time存储集合存储由主数据中心A和主数据中心B更新的时间戳集合。2.根据权利要求1所述的基于无冲突复制数据类型的异地多主存储方法,其特征在于,针对所述hash集合执行Hset命令操作包括:主数据中心A执行Hset命令操作,设置meta信息中的version存储集合和update_time存储集合,更新field信息中field key的self_version,field value中更新本地的update_time时间戳和value值,此时主数据中心A中meta信息存储的meta value为version{A,B},update_time为{A,B};主数据中心B侧接收到主数据中心A的同步数据后,更新meta信息,如果主数据中心B本地存储的meta信息中主数据中心A侧的version小于同步数据的meta信息中主数据中心A侧的version,则更新北京侧的version和update_time,更新field信息,判断同步数据中的update_time时间戳是否比主数据中心B本地存储的主数据中心A侧update_time和主数据中心B侧update_time都大,大则更新主数据中心A侧的update_time,比任何一个值小都不执行。3.根据权利要求1所述的基于无冲突复制数据类型的异地多主存储方法,其特征在于,针对所述hash集合执行Hdel命令操作包括:主数据中心A执行Hdel命令操作,删除对应field,更新meta信息中主数据中心A的update_time为当前时间戳;主数据中心B侧接收到主数据中心A的同步数据后,meta信息不变,更新field信息,判断同步数据中的update_time时间戳是否比主数据中心B本地存储的主数据中心A侧update_time和主数据中心B侧update_time都大,大则删除field,同时更新meta信息中主数据中心A侧的update_time为当前时间戳。4.根据权利要求1所述的基于无冲突复制数据类型的异地多主存储方法,其特征在于,针对所述hash集合执行Del命令操作包括:时刻T1:主数据中心A执行Del命令操作,删除key,meta信息中主数据中心A侧version加1,update_time为T1,field信息删除;时刻T2:主数据中心B...
【专利技术属性】
技术研发人员:洪定乾,徐锐波,幸福,卢文伟,刘方,
申请(专利权)人:北京云思智学科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。