一种数据库分片复制过程中聚合分裂的处理方法及系统技术方案

技术编号:39896527 阅读:9 留言:0更新日期:2023-12-30 13:10
本发明专利技术公开了一种数据库分片复制过程中聚合分裂的处理方法及系统,属于数据复制处理技术领域,该方法的实现包括增加注册缓存

【技术实现步骤摘要】
一种数据库分片复制过程中聚合分裂的处理方法及系统


[0001]本专利技术涉及数据复制处理
,具体地说是一种数据库分片复制过程中聚合分裂的处理方法及系统


技术介绍

[0002]在数据库,数据分片复制,是分片数据库主备增量复制的一般方法

在数据库复制
,在分片的聚合和分裂过程中
,
存在复制断开和重新注册的情况,而在复制断开和重新注册成功这段时间存在数据丢失的问题


技术实现思路

[0003]本专利技术的技术任务是针对以上不足之处,提供一种数据库分片复制过程中聚合分裂的处理方法及系统,实现分布式数据库主备复制过程中分片的聚合

分裂情况下保持主备数据一致性,解决了主备数据丢失的问题

[0004]本专利技术解决其技术问题所采用的技术方案是:
[0005]一种数据库分片复制过程中聚合分裂的处理方法,该方法的实现包括增加注册缓存
preSpan

KV
缓存
rangeKVbuf
,副本复制状态机
splitMergeState
,在复制断开和重新注册这段时间缓存主库发送的
KV
,在复制注册成功后,补足发送缓存的
KV

[0006]所述注册缓存
preSpan
,在分片聚合时,将
Left

Right
副本的注册
Span/>合并后赋值给
Left
副本的注册缓存
preSpan
;在分片分裂时,将
Left
副本的注册
Span
按照
Left

Right
的范围分割,分别赋值给
Left

Right
副本的注册缓存
preSpan

[0007]所述
KV
缓存
rangeKVbuf
,在主库数据
KV
发送过程中,如果复制状态处于复制断开和重新注册成功之间,则将
KV
缓存到
rangeKVbuf
中,当复制重新注册成功后,将
KV
缓存的数据
rangeKVbuf
补足发给备库

[0008]进一步的,所述副本复制状态机
splitMergeState

[0009]复制断开时,主库发送的
KV
被缓存;
[0010]复制重新注册成功时,主库发送缓存的
KV

[0011]复制正常时,主库发送的
KV
被实时发送给备库

[0012]优选的,所述副本复制状态机
splitMergeState

[0013]复制断开时,复制状态机为1,即复制断开状态;
[0014]复制重新注册成功时,复制状态机为2,即复制重新注册状态;
[0015]复制正常时,即复制状态机为0,即复制正常状态

[0016]优选的,主数据库
KV
发送过程具体如下:
[0017]主库数据
KV
发送过程中,判断复制状态机为正常复制状态,则正常将
KV
向备库发送;
[0018]主库数据
KV
发送过程中,如果复制状态机为复制断开状态,或复制重新注册成功状态,则将
KV
缓存到
rangeKvBuffer
中;
[0019]主库数据
KV
发送过程中,独立线程携带超时机制检测状态机为复制重新注册成功状态,则将缓存
rangeKvBuffer

KV
向备库发送,并将副本状态机设置为复制正常状态

[0020]优选的,分片聚合或分裂过程具体如下:
[0021]分片聚合或分裂处理过程中,如果是分片聚合,对
Left
副本,获取
Left
副本和
Right
副本的注册
Span
,做区间合并,将总的注册
Span
赋值给
Left
的注册缓存
preSpan
;并设置
Left
副本状态机为复制断开状态;
[0022]分片聚合或分离处理过程中,如果是分片聚合,对
Right
副本,设置副本状态机为复制断开状态;
[0023]分片聚合或分裂处理过程中,如果是分片分裂,对
Left
副本,获取原注册
Span
,按照
Left
副本和
Right
副本的范围分割
Span
,将属于
Left
副本的
Span
的赋值给
Left
副本的注册缓存
preSpan
;并设置副本状态机为复制断开状态;
[0024]分片聚合或分裂处理过程中,如果是分片分裂,对
Right
副本,将属于
Right
副本的
Span
赋值给
Right
副本的注册缓存
preSpan
;并设置
Right
副本状态机为复制断开状态

[0025]进一步的,对于重新注册处理过程中,如果当前注册
Span
与副本的注册缓存
preSpan
相等,则设置副本状态机为重新注册完成状态,否则等待下次的复制的注册

[0026]本专利技术还要求保护一种数据库分片复制过程中聚合分裂的处理系统,包括注册缓存
preSpan
模块,
KV
缓存
rangeKVbuf
模块,副本复制状态机
splitMergeState
模块;通过在复制断开和重新注册这段时间缓存主库发送的
KV
,在复制注册成功后补足发送缓存的
KV
,实现在分片聚合和分裂情况下主备数据的一致性;
[0027]所述注册缓存
preSpan
模块,在分片聚合时,将
Left

Right
副本的注册
Span
合并后赋值给
Left
副本的注册缓存
preSpan
;在分片分裂时,将
Left
副本的注册
Span
按照
Left

Right
的范围分割,分别赋值给
Left

R本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.
一种数据库分片复制过程中聚合分裂的处理方法,其特征在于,该方法的实现包括增加注册缓存
preSpan

KV
缓存
rangeKVbuf
,副本复制状态机
splitMergeState
,在复制断开和重新注册这段时间缓存主库发送的
KV
,在复制注册成功后,补足发送缓存的
KV
;所述注册缓存
preSpan
,在分片聚合时,将
Left

Right
副本的注册
Span
合并后赋值给
Left
副本的注册缓存
preSpan
;在分片分裂时,将
Left
副本的注册
Span
按照
Left

Right
的范围分割,分别赋值给
Left

Right
副本的注册缓存
preSpan
;所述
KV
缓存
rangeKVbuf
,在主库数据
KV
发送过程中,如果复制状态处于复制断开和重新注册成功之间,则将
KV
缓存到
rangeKVbuf
中,当复制重新注册成功后,将
KV
缓存的数据
rangeKVbuf
补足发给备库
。2.
根据权利要求1所述的一种数据库分片复制过程中聚合分裂的处理方法,其特征在于,所述副本复制状态机
splitMergeState
,复制断开时,主库发送的
KV
被缓存;复制重新注册成功时,主库发送缓存的
KV
;复制正常时,主库发送的
KV
被实时发送给备库
。3.
根据权利要求2所述的一种数据库分片复制过程中聚合分裂的处理方法,其特征在于,所述副本复制状态机
splitMergeState
,复制断开时,复制状态机为1,即复制断开状态;复制重新注册成功时,复制状态机为2,即复制重新注册状态;复制正常时,即复制状态机为0,即复制正常状态
。4.
根据权利要求1或2或3所述的一种数据库分片复制过程中聚合分裂的处理方法,其特征在于,主数据库
KV
发送过程具体如下:主库数据
KV
发送过程中,判断复制状态机为正常复制状态,则正常将
KV
向备库发送;主库数据
KV
发送过程中,如果复制状态机为复制断开状态,或复制重新注册成功状态,则将
KV
缓存到
rangeKvBuffer
中;主库数据
KV
发送过程中,独立线程携带超时机制检测状态机为复制重新注册成功状态,则将缓存
rangeKvBuffer

KV
向备库发送,并将副本状态机设置为复制正常状态
。5.
根据权利要求1或2或3所述的一种数据库分片复制过程中聚合分裂的处理方法,其特征在于,分片聚合或分裂过程具体如下:分片聚合或分裂处理过程中,如果是分片聚合,对
Left
副本,获取
Left
副本和
Right
副本的注册
Span
,做区间合并,将总的注册
Span
赋值给
Left
的注册缓存
preSpan
;并设置
Left
副本状态机为复制断开状态;分片聚合或分离处理过程中,如果是分片聚合,对
Ri...

【专利技术属性】
技术研发人员:陈磊李伟冯友旭
申请(专利权)人:上海沄熹科技有限公司
类型:发明
国别省市:

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

1