一种分布式数据库系统及其成员变更的同步方法、装置制造方法及图纸

技术编号:36607591 阅读:15 留言:0更新日期:2023-02-04 18:32
本说明书提供了一种分布式数据库系统及其成员变更的同步方法、装置,包括第一副本组,所述第一副本组包括若干成员,该等成员的角色为主副本节点和从副本节点,所述主副本节点和从副本节点维护有用于记录所述第一副本组中成员的成员列表;所述主副本节点用于在接收到成员变更请求的情况下,生成对应的成员变更日志并更新自身维护的成员列表;以及,将所述成员变更日志同步至所述从副本节点,并基于所述从副本节点反馈的确认信息确定所述成员变更日志同步是否完成;所述从副本节点用于在接收到所述主副本节点发送的成员变更日志后,基于所述成员变更日志更新自身维护的成员列表。所述成员变更日志更新自身维护的成员列表。所述成员变更日志更新自身维护的成员列表。

【技术实现步骤摘要】
一种分布式数据库系统及其成员变更的同步方法、装置


[0001]本说明书涉及数据库
,尤其涉及一种分布式数据库系统及其成员变更的同步方法、装置。

技术介绍

[0002]在相关技术中,针对分布式数据库系统的成员变更,主副本节点需要将对应的成员变更信息写入数据日志中,并基于数据日志的同步机制,将数据日志同步至各个从副本节点,从副本节点在得到该数据日志后,需要从中解析出对应的成员变更信息,并更新自身维护的成员列表,最终确保主副本节点和从副本节点各自维护的成员列表保持一致。
[0003]然而,上述将成员变更信息写入数据日志的方式,一方面,从副本节点在进行成员列表更新时,需要从数据日志中解析出成员变更信息后才能实现成员列表的更新,影响从副本节点成员列表更新的效率;另一方面,当数据日志的写入间隔时长较长时,在间隔内产生的成员变更无法被及时同步至从副本节点,影响主副本节点和从副本节点之间关于成员列表的一致性。此外,当涉及到跨副本组(如第一副本组和第二副本组)的数据同步时,由于第一副本组和第二副本组各自维护独立的成员列表,所以第一副本组的成员变更信息对于第二副本组是无用的,故第二副本组需要从第一副本组发送的数据日志中解析并丢弃第一副本组的成员变更新信息后,才能完成数据同步,操作繁琐且影响数据同步的效率。

技术实现思路

[0004]为克服相关技术中存在的问题,本说明书提供了一种分布式数据库系统及其成员变更的同步方法、装置。
[0005]根据本说明书实施例的第一方面,提供一种分布式数据库系统,包括第一副本组,所述第一副本组包括若干成员,该等成员的角色为主副本节点和从副本节点,所述主副本节点和从副本节点维护有用于记录所述第一副本组中成员的成员列表;
[0006]所述主副本节点用于在接收到成员变更请求的情况下,生成对应的成员变更日志并更新自身维护的成员列表,所述成员变更日志与数据日志归属于不同的日志流;以及,将所述成员变更日志同步至所述从副本节点,并基于所述从副本节点反馈的确认信息确定所述成员变更日志同步是否完成;
[0007]所述从副本节点用于在接收到所述主副本节点发送的成员变更日志后,基于所述成员变更日志更新自身维护的成员列表;以及,在所述成员列表更新完成的情况下,向所述主副本节点发送对应的确认信息。
[0008]根据本说明书实施例的第二方面,提供一种分布式数据库系统成员变更的同步方法,所述分布式数据库系统包括第一副本组,所述第一副本组包括若干成员,该等成员的角色为主副本节点和从副本节点,所述主副本节点和从副本节点维护有用于记录所述第一副本组中成员的成员列表,应用于所述主副本节点,所述方法包括:
[0009]在接收到成员变更请求的情况下,生成对应的成员变更日志并更新自身维护的成
员列表,所述成员变更日志与数据日志归属于不同的日志流;
[0010]将所述成员变更日志同步至所述从副本节点,并基于所述从副本节点反馈的确认信息确定所述成员变更日志同步是否完成。
[0011]根据本说明书实施例的第三方面,提供一种分布式数据库系统成员变更的同步方法,所述分布式数据库系统包括第一副本组,所述第一副本组包括若干成员,该等成员的角色为主副本节点和从副本节点,所述主副本节点和所述从副本节点维护有用于记录所述第一副本组中成员的成员列表,应用于所述从副本节点,所述方法包括:
[0012]在接收到所述主副本节点发送的成员变更日志后,基于所述成员变更日志更新自身维护的成员列表,所述成员变更日志与数据日志归属于不同的日志流,所述成员变更日志由所述主副本节点在接收到成员变更请求后所生成;
[0013]在所述成员列表更新完成的情况下,向所述主副本节点发送对应的确认信息,以使所述主副本节点基于所述从副本节点反馈的确认信息确定所述成员变更日志同步是否完成。
[0014]根据本说明书实施例的第四方面,提供一种分布式数据库系统成员变更的同步装置,所述分布式数据库系统包括第一副本组,所述第一副本组包括若干成员,该等成员的角色为主副本节点和从副本节点,所述主副本节点和所述从副本节点维护有用于记录所述第一副本组中成员的成员列表,应用于所述主副本节点,所述装置包括:
[0015]生成单元,用于在接收到成员变更请求的情况下,生成对应的成员变更日志并更新自身维护的成员列表,所述成员变更日志与数据日志归属于不同的日志流;
[0016]确定单元,用于将所述成员变更日志同步至所述从副本节点,并基于所述从副本节点反馈的确认信息确定所述成员变更日志同步是否完成。
[0017]根据本说明书实施例的第五方面,提供一种分布式数据库系统成员变更的同步装置,所述分布式数据库系统包括第一副本组,所述第一副本组包括若干成员,该等成员的角色为主副本节点和从副本节点,所述主副本节点和所述从副本节点维护有用于记录所述第一副本组中成员的成员列表,应用于所述从副本节点,所述装置包括:
[0018]更新单元,用于在接收到所述主副本节点发送的成员变更日志后,基于所述成员变更日志更新自身维护的成员列表,所述成员变更日志与数据日志归属于不同的日志流,所述成员变更日志由所述主副本节点在接收到成员变更请求后所生成;
[0019]发送单元,用于在所述成员列表更新完成的情况下,向所述主副本节点发送对应的确认信息,以使所述主副本节点基于所述从副本节点反馈的确认信息确定所述成员变更日志同步是否完成。
[0020]根据本说明书实施例的第六方面,提供一种电子设备,包括:
[0021]处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为实现上述第二方面或第三方面所述方法的步骤。
[0022]根据本说明书实施例的第七方面,提供一种计算机可读存储介质,其上储存有可执行指令;其中,该指令被处理器执行时,实现上述第二方面或第三方面所述方法的步骤。
[0023]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
[0024]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
[0025]图1是本说明书一示例性实施例提供的一种分布式数据库系统的架构示意图;
[0026]图2是本说明书一示例性实施例提供的一种分布式数据库系统成员变更的同步方法的流程图;
[0027]图3是本说明书一示例性实施例提供的一种主副本节点广播成员变更日志的示意图;
[0028]图4是本说明书一示例性实施例提供的一种从副本节点判断数据日志处理进度的示意图;
[0029]图5是本说明书一示例性实施例提供的一种第二副本组的示意图;
[0030]图6是本说明书一示例性实施例提供的一种分布式数据库系统成员变更的同步方法的流程图;
[0031]图7是本说明书一示例性实施例提供的一种电子设备的示意结构图;
[0032]图8是本说明书一示例性实施例提本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式数据库系统,包括第一副本组,所述第一副本组包括若干成员,该等成员的角色为主副本节点和从副本节点,所述主副本节点和从副本节点维护有用于记录所述第一副本组中成员的成员列表;所述主副本节点用于在接收到成员变更请求的情况下,生成对应的成员变更日志并更新自身维护的成员列表,所述成员变更日志与数据日志归属于不同的日志流;以及,将所述成员变更日志同步至所述从副本节点,并基于所述从副本节点反馈的确认信息确定所述成员变更日志同步是否完成;所述从副本节点用于在接收到所述主副本节点发送的成员变更日志后,基于所述成员变更日志更新自身维护的成员列表;以及,在所述成员列表更新完成的情况下,向所述主副本节点发送对应的确认信息。2.根据权利要求1所述的系统,所述基于所述从副本节点反馈的确认信息确定所述成员变更日志同步是否完成,包括:在获得超过其维护的更新后的成员列表对应的成员数量的半数的确认信息的情况下,所述主副本节点确定所述成员变更日志同步完成。3.根据权利要求1所述的系统,所述主副本节点还用于:在接收到成员变更请求的情况下,所述主副本节点检查所述第一副本组中是否存在正在进行的成员变更;在检查结果表明所述第一副本组中不存在正在进行的成员变更的情况下,生成对应的成员变更日志;或,在检查结果表明所述第一副本组中存在正在进行的成员变更的情况下,所述主副本节点等待所述正在进行的成员变更执行完成后,生成对应的成员变更日志;或,所述主副本节点拒绝所述成员变更请求。4.根据权利要求1所述的系统,所述成员变更日志包括位点标识信息,所述位点标识信息用于表征所述主副本节点在生成所述成员变更日志时对应的数据日志处理进度,所述从副本节点还用于:在接收到所述成员变更日志的情况下,根据所述成员变更日志中的位点标识信息,检查所述从副本节点对应的数据日志处理进度是否与所述主副本节点保持一致;在检查结果表明所述从副本节点对应的数据日志处理进度与所述主副本节点保持一致的情况下,基于所述成员变更日志更新自身维护的成员列表;或,在检查结果表明所述从副本节点对应的数据日志处理进度未到达所述主副本节点对应的数据日志处理进度的情况下,所述从副本节点在自身对应的数据日志处理进度到达所述位点标识信息对应的数据日志处理进度后,基于所述成员变更日志更新自身维护的成员列表;或,所述从副本节点向所述主副本节点发送对应的拒绝信息,以表明所述从副本节点拒绝此次由所述主副本节点发起的成员变更日志同步。5.根据权利要求1所述的系统,所述系统还包括第二副本组,所述第二副本组为所述第一副本组的备副本组,所述主副本节点还用于:响应于数据变更请求,生成对应的数据日志;将所述数据日志同步至所述第二副本组,以使所述第二副本组根据所述数据日志完成数据的同步。
6.一种分布式数据库系统成员变更的同步方法,所述分布式数据库系统包括第一副本组,所述第一副本组包括若干成员,该等成员的角色为主副本节点和从副本节点,所述主副本节点和从副本节点维护有用于记录所述第一副本组中成员的成员列表,应用于所述主副本节点,所述方法包括:在接收到成员变更请求的情况下,生成对应的成员变更日志并更新自身维护的成员列表,所述成员变更日志与数据日志归属于不同的日志流;将所述成员变更日志同步至所述从副本节点,并基于所述从副本节点反馈的确认信息确定所述成员变更日志同步是否完成。7.根据权利要求6所述的方法,所述基于所述从副本节点反馈的确认信息确定所述成员变更日志同步是否完成,包括:在获得超过其维护的更新后的成员列表对应的成员数量的半数的确认信息的情况下,所述主副本节点确定所述成员变更日志同步完成。8.根据权利要求6所述的方法,所述方法还包括:在接收到成员变更请求的情况下,所述主副本节点检查所述第一副本组中是否存在正在进行的成员变更;在检查结果表明所述第一副本组中不存在正在进行的成员变更的情况下,生成对应的成员变更日志;或,在检查结果表明所述第一副本组中存在正在进行的成员变更的情况下,所述主副本节点等待所述正在进行成...

【专利技术属性】
技术研发人员:贾德宾刘浩韩富晟
申请(专利权)人:北京奥星贝斯科技有限公司
类型:发明
国别省市:

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

1