实现数据一致性的方法和装置、服务器和终端制造方法及图纸

技术编号:24707936 阅读:67 留言:0更新日期:2020-06-30 23:57
一种实现数据一致性的方法和装置、终端、服务器和计算机程序产品。具体地,Raft协议定义的客户端生成对数据的操作,并将该操作记录为日志条目。该客户端向Raft协议定义的领导节点和Raft协议定义的多个跟随节点发送该日志条目。该客户端在预设时间段内接收多条响应消息,该响应消息描述该操作被执行成功;该多条响应消息中的不同的响应消息来自不同的节点,例如该多条消息响应消息全部来自该多个跟随节点,例如该多条响应消息中的一条响应消息来自该领导节点、其他响应消息来自该多个跟随节点。当该客户端在该预设时间段内接收到的多条响应消息的总数大于节点数的一半时,确定该操作执行成功,该节点数为该领导节点的个数和该多个跟随节点的个数之和。

【技术实现步骤摘要】
实现数据一致性的方法和装置、服务器和终端
本申请涉及计算机领域,尤其涉及实现数据一致性的方法和装置、终端、服务器和计算机程序产品。
技术介绍
分布式存储系统中,通常使用多个副本来提升分布式存储系统的可用性。当1个副本所在的存储节点掉线的时候,其它副本所在的节点替代提供副本数据,但前提是:保证这多个副本数据是一致的。分布式存储系统中,常用的分布式一致性协议有Raft协议、Paxos协议、两阶段提交协议(two-phasecommitprotocol,2PC)和三阶段提交协议(three-phasecommitprotocol,3PC)。其中,Raft协议被公认为最容易理解的协议,从而被分布式存储系统(例如分布式数据库)广泛使用。Raft协议采用日志(log)的方式来记录客户端(client)对数据的操作(例如读操作或者写操作)。Raft协议的日志复制(logreplication)如下:第一步,领导节点(leader)从客户端接收日志条目(logentry),该日志条目携带有客户端的操作(包括该操作所针对的数据);第二步,领导节点本文档来自技高网...

【技术保护点】
1.一种实现数据一致性的方法,其特征在于,所述方法包括:/nRaft协议定义的客户端生成对数据的操作,并将所述操作记录为日志条目;/n所述客户端向所述Raft协议定义的领导节点和所述Raft协议定义的多个跟随节点发送所述日志条目;/n所述客户端在预设时间段内接收多条响应消息,所述响应消息描述所述操作被执行成功,不同的响应消息来自不同的节点,其中:所述多条消息响应消息全部来自所述多个跟随节点,或者,所述多条响应消息中的一条响应消息来自所述领导节点、其他响应消息来自所述多个跟随节点;/n当所述客户端在所述预设时间段内接收到的多条响应消息的总数大于节点数的一半时,确定所述操作执行成功,所述节点数为所...

【技术特征摘要】
1.一种实现数据一致性的方法,其特征在于,所述方法包括:
Raft协议定义的客户端生成对数据的操作,并将所述操作记录为日志条目;
所述客户端向所述Raft协议定义的领导节点和所述Raft协议定义的多个跟随节点发送所述日志条目;
所述客户端在预设时间段内接收多条响应消息,所述响应消息描述所述操作被执行成功,不同的响应消息来自不同的节点,其中:所述多条消息响应消息全部来自所述多个跟随节点,或者,所述多条响应消息中的一条响应消息来自所述领导节点、其他响应消息来自所述多个跟随节点;
当所述客户端在所述预设时间段内接收到的多条响应消息的总数大于节点数的一半时,确定所述操作执行成功,所述节点数为所述领导节点的个数和所述多个跟随节点的个数之和。


2.根据权利要求1所述的方法,其特征在于,所述方法包括:
在所述客户端向所述领导节点和所述多个跟随节点发送所述日志条目之前,所述客户端将所述领导节点的任期号添加入所述日志条目。


3.根据权利要求2所述的方法,其特征在于,所述方法包括:
所述客户端接收所述领导节点发送的任期号。


4.根据权利要求2或3所述的方法,其特征在于,所述方法包括:
当所述客户端接收到新领导节点发送的新任期号,并且所述新任期号大于所述领导节点的所述任期号,则所述客户端获取未执行完的携带所述任期号的日志条目,所述新领导节点来自所述多个跟随节点中的一个节点;
所述客户端更新获取的日志条目中的所述任期号为所述新任期号;
所述客户端向所述领导节点、所述新领导节点和所述多个跟随节点中除了所述新领导节点以外的跟从节点发送携带该新任期号的日志条目。


5.一种实现数据一致性的方法,其特征在于,所述方法包括:
节点接收Raft协议定义的客户端发送的日志条目,所述日志条目记录所述客户端对数据的操作,所述节点为所述Raft协议定义的领导节点或者所述Raft协议定义的跟随节点;
所述节点执行所述日志条目记录的所述操作,并在成功执行所述操作之后向所述客户端发送已成功执行所述操作的响应消息。


6.根据权利要求5所述的方法,其特征在于,所述方法包括:
所述领导节点向所述客户端发送所述领导节点的任期号。


7.根据权利要求4至6任一项所述的方法,其特征在于,所述方法还包括:
所述跟随节点定期检测所述跟随节点与所述领导节点的通信连接;
所述跟随节点在所述跟随节点与所述领导节点的通信连接断开时,所述跟随节点暂停执行携带所述领导节点的任期号的日志条目中所记录的操作。


8.根据权利要求4-7任一项所述的方法,其特征在于,所述方法还包括:
所述跟随节点定期检测所述跟随节点与所述领导节点的通信连接;
所述跟随节点在所述跟随节点与所述领导节点的通信连接断开时,所述跟随节点成为候选节点;
所述候选节点向其他跟随节点和所述领导节点发起选举;
在所述候选节点被选举为新领导节点时,所述新领导节点向所述客户端发送所述新领导节点的新任期号。


9.一种实现数据一致性的装置,其特征在于,所述装置部署在Raft协议定义的客户端中,所述装置包括:
处理单元,用于生成对数据的操作,并将所述操作记录为日志条目;
发送单元,用于向所述Raft协议定义的领导节点和所述Raft协议定义的多个跟随节点发送所述日志条目;
接收单元,用于在预设时间段内接收多条响应消息,所述响应消息描述所述操作被执行成功,不同的响应消息来自不同的节点,其中:所述多条消息响应消息全部来自所述多个跟随节点,或者,所述多条...

【专利技术属性】
技术研发人员:黄威徐鹏
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1