采用跨机房链式转发的数据一致性优化方法及系统技术方案

技术编号:33478131 阅读:36 留言:0更新日期:2022-05-19 00:53
本发明专利技术公开了一种采用跨机房链式转发的数据一致性优化方法及系统,属一种数据库技术的改进,系统包括位于主节点组中的第一主节点与第一副节点,位于副节点组中的第二主节点与第二副节点。通过采用集群部署分组的方式,可节省机房间通信带来的网络资源的冗余占用。具体而言,数据节点分组管理和原副节点写入功能相结合,可以节省机房间的网络带宽,从原有的多份相同数据到只需要发一份数据副本,提升了网络资源的利用效率,降低Leader节点负载。数据节点分组管理和副节点写入功能相结合,将第一主节点进行数据复制的部分工作分摊给第二主节点执行,避免了由于集群规模增大而导致第一主节点负载过重的问题,避免了集群中“热点”的产生。的产生。的产生。

【技术实现步骤摘要】
采用跨机房链式转发的数据一致性优化方法及系统


[0001]本专利技术涉及一种数据库技术的改进,更具体的说,本专利技术主要涉及一种采用跨机房链式转发的数据一致性优化方法及系统。

技术介绍

[0002]分布式数据库的数据一致性可以理解为事务的一致性和数据副本的一致性,这里我们关注在数据副本的一致性,即“数据在多份副本中存储时,如何保障数据的一致性”场景。针对数据一致性,需要用到一致性协议,常见的分布式协议有两阶段提交协议、三阶段提交协议、Paxos和Raft等,在工程实践时大多采用Raft协议来保障数据一致性。简单来讲,Raft协议主要包括两个过程:Leader选举和日志复制,Raft通过选举一个Leader并赋予其管理复制日志的功能来维护节点间复制日志的一致性。Leader从客户端接收日志,再把日志条目复制到其他Follower节点上,并且在保证安全性的前提下,告诉其他Follower将日志条目应用到它们的状态机中。在这个过程中,数据都是单向的从Leader流向Follower,同时只有超出半数节点复制完成才算成功复制,这样即使丢掉少数副本,也能保证系统中还有最新的数据。以5节点为例,如图1所示,客户端向主节点发送请求,主节点将请求作为一条日志加入其日志文件中,同时并行的向副节点发送日志。副节点成功复制日志数据后通知主节点复制成功,收到大多数的副节点响应后,主节点会提交日志并发送响应给客户端 (此处副节点1与副节点2均向主节点做出了回应,整个raft组中一共有3个节点完成了日志复制,可以提交;副节点3与副节点4因为故障无法响应主节点或者响应延迟不会影响日志的提交)。在部署方案的设计上,可选方案有单机房部署和多机房部署。由于单一机房部署的架构特点决定了数据库集群的可用性受制于机房的可用性,所以在实际工程实践中多采用多机房部署,根据机房的地理位置又可以分为同城双活、异地多活、两地三中心等多种部署方案。
[0003]在这类分布式数据库的设计上,数据只能从主节点单向的发送到副节点,副节点间不存在数据复制过程。当集群规模增大,需要同步数据的副本数增多时,主节点需要通信的副节点数随之增加,占用的带宽资源也随之增加,容易形成性能瓶颈。同时,由于分布式数据库集群的部署多为跨地域的多机房部署,这样带来的问题一是机房间通信有网络延迟的问题,二是机房间传输的数据量和副节点数成正相关关系,造成了带宽资源的极大浪费。因而有必要针对这类分布式系统的部署优化设计作进一步的研究和改进。

技术实现思路

[0004]本专利技术的目的之一在于针对上述不足,提供一种采用跨机房链式转发的数据一致性优化方法及系统,以期望解决现有技术中主节点通信的点数增加,导致带宽资源占用增加,造成带宽资源浪费等技术问题。
[0005]为解决上述的技术问题,本专利技术采用以下技术方案:本专利技术一方面提供了一种采用跨机房链式转发的数据一致性优化方法,所述方法
包括如下步骤。
[0006]步骤A、分布式数据库中的第一主节点接收数据请求,并将其发送至第一副节点以及至少一个副节点组中的第二主节点。
[0007]步骤B、由第二主节点将所述数据请求发送至第二主节点所在副节点组中的第二副节点。
[0008]步骤C、所述第一副节点、第二主节点与第二副节点收到数据请求后,均分别向所述第一主节点反馈同步状态,从而完成分布式数据库的节点数据同步。
[0009]作为优选,进一步的技术方案是:在步骤A与步骤B中,所述第二主节点的产生方式为,由其所在副节点组中的全部节点向第一主节点发出请求,由第一主节点向当前副节点组其中的一个节点输出节点组锁,获取到节点组锁的节点成为当前副节点组的第二主节点。
[0010]更进一步的技术方案是:所述的方法还包括步骤D、所述第二主节点与第二副节点均与第一主节点保持联系,当单位周期内第一主节点未能联系到第二主节点时,则由当前第二主节点所在的副节点组中的第二副节点向第一主节点发出请求,由第一主节点重新输出节点组锁,由另一个第二副节点获取节点组锁,成为当前副节点组中的第二主节点。
[0011]本专利技术另一方面提供了一种采用跨机房链式转发的数据一致性优化系统,所述的系统包括位于主节点组中的第一主节点与第一副节点,位于副节点组中的第二主节点与第二副节点,其中:第一主节点用于在分布式数据库中接收数据请求,并将其发送至第一副节点以及至少一个副节点组中的第二主节点;第一副节点用于从第一主节点中接受数据请求并完成数据同步;第二主节点用于从第一主节点中接受数据请求并完成数据同步,并将数据请求发送至第二主节点所在副节点组中的第二副节点;第二副节点用于从第二主节点中接受数据请求并完成数据同步;所述第一副节点、第二主节点与第二副节点还用于在收到数据请求后,均分别向所述第一主节点反馈同步状态,从而完成分布式数据库的节点数据同步。
[0012]作为优选,进一步的技术方案是:所述副节点组为多个,且每个副节点组中均包含一个第二主节点与至少两个第二副节点;每个所述副节点组均位于各自的机房中,并通过网络接入所述第一主节点。
[0013]更进一步的技术方案是:第二主节点的产生方式为,由其所在副节点组中的全部节点向第一主节点发出请求,由第一主节点向当前副节点组其中的一个节点输出节点组锁,获取到节点组锁的节点成为当前副节点组的第二主节点。
[0014]更进一步的技术方案是:所述第二主节点与第二副节点均与第一主节点保持联系,当单位周期内第一主节点未能联系到第二主节点时,则由当前第二主节点所在的副节点组中的第二副节点向第一主节点发出请求,由第一主节点重新输出节点组锁,由另一个第二副节点获取节点组锁,成为当前副节点组中的第二主节点。
[0015]更进一步的技术方案是:至少一个副节点组所在的机房,与第一主节点所在的机房,集群部署于不同的城市地域。
[0016]与现有技术相比,本专利技术的有益效果至少是如下之一:通过采用集群部署分组的方式,可节省机房间通信带来的网络资源的冗余占用。具体而言,数据节点分组管理和原副节点写入功能相结合,可以节省机房间的网络带宽,从
原有的多份相同数据到只需要发一份数据副本,提升了网络资源的利用效率。
[0017]降低Leader节点负载。数据节点分组管理和副节点写入功能相结合,将第一主节点进行数据复制的部分工作分摊给第二主节点执行,避免了由于集群规模增大而导致第一主节点负载过重的问题,避免了集群中“热点”的产生。
[0018]降低数据复制延迟。副节点组内的各个节点可以自动识别出故障节点,并根据节点可用性动态切换第二主节点,无需人工参与,避免因节点故障导致的数据复制的延迟。
附图说明
[0019]图1为现有技术中Raft日志复制的流程图。
[0020]图2为用于说明本专利技术一个实施例的Raft节点分布示意图。
[0021]图3为用于说明本专利技术一个实施例中Raft日志复制的流程图。
[0022]图4为用于说明本专利技术一个实施例中Raft节点反馈数据同步流程图。
[0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种采用跨机房链式转发的数据一致性优化方法,其特征在于所述方法包括如下步骤:分布式数据库中的第一主节点接收数据请求,并将其发送至第一副节点以及至少一个副节点组中的第二主节点;由第二主节点将所述数据请求发送至第二主节点所在副节点组中的第二副节点;所述第一副节点、第二主节点与第二副节点收到数据请求后,均分别向所述第一主节点反馈同步状态,从而完成分布式数据库的节点数据同步。2.根据权利要求1所述的采用跨机房链式转发的数据一致性优化方法,其特征在于:所述第二主节点的产生方式为,由其所在副节点组中的全部节点向第一主节点发出请求,由第一主节点向当前副节点组其中的一个节点输出节点组锁,获取到节点组锁的节点成为当前副节点组的第二主节点。3.根据权利要求1或2所述的采用跨机房链式转发的数据一致性优化方法,其特征在于:所述第二主节点与第二副节点均与第一主节点保持联系,当单位周期内第一主节点未能联系到第二主节点时,则由当前第二主节点所在的副节点组中的第二副节点向第一主节点发出请求,由第一主节点重新输出节点组锁,由另一个第二副节点获取节点组锁,成为当前副节点组中的第二主节点。4.一种采用跨机房链式转发的数据一致性优化系统,其特征在于所述的系统包括:第一主节点,用于在分布式数据库中接收数据请求,并将其发送至第一副节点以及至少一个副节点组中的第二主节点;第一副节点,用于从第一主节点中接受数据请求并完成数据同步;第二主节点,用于从第一主节点中接受数据请求并完...

【专利技术属性】
技术研发人员:王建忠范振勇马静伟何振兴武新
申请(专利权)人:北京易鲸捷信息技术有限公司
类型:发明
国别省市:

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

1