日志处理方法、相关设备及系统技术方案

技术编号:22101744 阅读:24 留言:0更新日期:2019-09-14 03:17
本发明专利技术实施例提供一种日志处理方法、相关设备及系统,该方法包括:第一节点在初始化时获取存储节点集群的状态消息,该状态消息标记了该存储节点集群的存储主节点;该第一节点为计算节点集群中具有写操作能力和读操作能力的计算主节点;该第一节点根据该状态消息向该存储主节点发送第一写操作请求,以使该存储主节点与该存储节点集群中的存储从节点对已接收的日志达成一致后对第一写操作达成一致;该第一节点接收该存储主节点与该存储节点集群中的存储从节点对该第一写操作达成一致后发送的反馈消息,该反馈消息包括标识信息和针对该第一写操作请求的响应,该标识信息用于指示已达成一致的日志。采用本发明专利技术实施例,能够避免日志出现混乱。

Log Processing Method, Related Equipment and System

【技术实现步骤摘要】
日志处理方法、相关设备及系统
本专利技术涉及计算机
,尤其涉及一种日志处理方法、相关设备及系统。
技术介绍
数据库中通常会通过日志log来保存数据的修改记录,日志包括生成和存储两个过程,日志的生成通常由计算节点来实现,日志的存储通常由存储节点来实现。为了保障日志的安全性和稳定性,该计算节点和该存储节点均采用分布式的方式进行部署。如图1所示,图1中多个计算节点构成了一个计算节点集群,该计算节点集群中包括一个计算主节点(primary)和至少一个计算从节点(slave),该计算主节点能够接收客户端发送的针对数据的读操作和写操作,该写操作会产生日志,该计算从节点能够接收客户端发送的针对数据的读操作。图1中多个存储节点构成一个存储节点集群,该存储节点集群包括一个存储主节点(leader)和至少一个存储从节点(follower),该存储主节点、存储从节点和计算主节点对同一日志的记录保持一致性,然而某些场景下该一致性是无法保证的,例如:假设该计算主节点向该存储主节点发送日志序列号(logsequencenumber,LSN)分别为1、2和3的日志;当该存储主节点与该存储节点集群中的大多数存储从节点对LSN为1和2的日志达成一致,但是还未与该存储节点集群中的大多数存储从节点对LSN为3的日志达成一致时,若该计算主节点出现了故障并且该计算节点集群中重新选择了一个计算主节点,那么,该存储主节点会向该新的计算主节点发送日志序列号2,以表明1表示的日志和2表示的日志已经达成一致。后续,计算主节点再有日志发送给存储主节点时,该存储主节点会以LSN等于3开始编号,这样一来,该存储主节点就会再一次接收到LSN等于3的日志,而实际上两次接收到的LSN等于3的日志并不是同一个日志,如果存储主节点对这两个LSN等于3的日志都完成了一致性处理,就会使存储节点集群中存储的日志出现混乱。如何避免日志的存储出现混乱是本领域的技术人员正在研究的技术问题。
技术实现思路
本专利技术实施例公开了一种日志处理方法、相关设备及系统,能够避免日志出现混乱。本专利技术实施例第一方面公开了一种日志处理方法,该方法包括:首先,第一节点在初始化时获取存储节点集群的状态消息,该状态消息标记了该存储节点集群的存储主节点;该第一节点为计算节点集群中具有写操作能力和读操作能力的计算主节点;然后,该第一节点根据该状态消息向该存储主节点发送第一写操作请求,以使该存储主节点与该存储节点集群中的存储从节点对已接收的日志达成一致后对第一写操作达成一致;接着,该第一节点接收该存储主节点与该存储节点集群中的存储从节点对该第一写操作达成一致后发送的反馈消息,该反馈消息包括标识信息和针对该第一写操作请求的响应,该标识信息用于指示已达成一致的日志。通过执行上述步骤,第一节点在初始化时向存储主节点发送第一写操作请求,然后该存储主节点与存储从节点对已接收的日志达成一致后对第一写操作达成一致,这样该存储主节点后续向该第一节点反馈已提交的日志时,就不会漏掉部分已接收的日志,从而使得该第一节点与该存储主节点记录的LSN保持一致,避免了因LSN不一致而导致的日志混乱的问题。结合第一方面,在第一方面的第一种可能的实现方式中,该第一节点接收该存储主节点与该存储节点集群中的存储从节点对该第一写操作达成一致后发送的反馈消息之后,该方法还包括:该第一节点向该存储主节点发送目标消息,该目标消息包括当前迭代标识,该当前迭代标识被该存储主节点用于判断该目标消息是否来自最新产生的计算主节点;该当前迭代标识比上一次产生的计算主节点发送的上一迭代标识大。也即是说,通过不同的迭代标识对不同时期产生的计算主节点进行标记,并将该迭代标识携带在发送的目标消息中,这样存储主节点就可以通过该目标消息中的迭代标识确定该目标消息是否为最新产生的计算主节点发送的目标消息,从而可以决定是否丢弃该目标消息。结合第一方面,或者第一方面的上述任意一种可能的实现方式,在第一方面的第二种可能的实现方式中,该第一节点向该存储主节点发送目标消息之前,还包括:首先,该第一节点向预设的配置管理器发送第一请求以请求该当前迭代标识,所述配置管理器为预先配置的用于维护所述计算主节点所需信息以及所述存储主节点所需信息的节点;然后,该第一节点接收该配置管理器发送的该当前迭代标识。也即是说,迭代标识由配置管理器进行独立保存,可供计算节点集群中的任意一个可能成为计算主节点的节点查询,而不是存储该计算节点集群中的每个节点上,能够避免计算节点集群中各个节点之间维护的迭代标识出现不一致而导致迭代标识混乱的情况。结合第一方面,或者第一方面的上述任意一种可能的实现方式,在第一方面的第三种可能的实现方式中,该第一节点向该存储主节点发送目标消息之前,还包括:首先,该第一节点向预设的配置管理器发送第一请求以请求该上一迭代标识,所述配置管理器为预先配置的用于维护所述计算主节点所需信息以及所述存储主节点所需信息的节点;然后,该第一节点接收该配置管理器发送的该上一迭代标识;接着,该第一节点根据该上一迭代标识生成该当前迭代标识。也即是说,迭代标识由配置管理器进行独立保存,可供计算节点集群中的任意一个可能成为计算主节点的节点查询,而不是存储该计算节点集群中的每个节点上,能够避免计算节点集群中各个节点之间维护的迭代标识出现不一致而导致迭代标识混乱的情况。结合第一方面,或者第一方面的上述任意一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述目标消息包括至少一条日志,该第一节点向该存储主节点发送目标消息,包括:该第一节点使用N个槽异步向该存储主节点发送M条目标消息,该N个槽中每个槽每次以一条目标消息为单位进行发送,包含的日志的生成时间越早的目标消息越早被发送;任意两个发送时间相邻的目标消息中,后一个被发送的目标消息是在前一个被发送的目标消息被该存储主节点接收到之后才开始被发送的,且该后一个被发送的目标消息中的任意一个日志的生成时间比该前一个被发送的目标消息中的任意一个日志的生成时间晚,M和N均为大于或等于2的整数。可以理解的是,采用多个槽异步发送目标消息时,当一个槽发送完目标消息但还在等存储主节点反馈该目标消息的处理结果时,另一个槽就可以开始发送其他的目标消息,而不是像现有技术那样等存储主节点反馈完结果再继续发送其他的目标消息;因此,本专利技术实施例充分地利用了等待存储主节点反馈结果的时间,缩短了发送目标消息的时间跨度,从而提高了发送效率。结合第一方面,或者第一方面的上述任意一种可能的实现方式,在第一方面的第五种可能的实现方式中,该第一节点在初始化时获取存储节点集群的状态消息,包括:第一节点在初始化时向配置管理器获取存储节点集群的状态消息,该配置管理器为预先配置的用于维护该计算主节点所需信息以及该存储主节点所需信息的节点。也即是说,该状态消息由配置管理器进行独立保存,可供计算节点集群中的任意一个可能成为计算主节点的节点查询,而不是存储该计算节点集群中的每个节点上,能够避免计算节点集群中各个节点之间维护的状态消息出现不一致而导致状态消息混乱的情况。第二方面,本专利技术实施例提供一种日志处理方法,该方法包括:首先,存储主节点接收第一节点发送的第一写操作请求,该第一节点为计算节点集群中具有写操作能力和读操本文档来自技高网
...

【技术保护点】
1.一种日志处理方法,其特征在于,包括:第一节点在初始化时获取存储节点集群的状态消息,所述状态消息标记了所述存储节点集群的存储主节点;所述第一节点为计算节点集群中具有写操作能力和读操作能力的计算主节点;所述第一节点根据所述状态消息向所述存储主节点发送第一写操作请求,以使所述存储主节点与所述存储节点集群中的存储从节点对已接收的日志达成一致后对所述第一写操作达成一致;所述第一节点接收所述存储主节点与所述存储节点集群中的存储从节点对所述第一写操作达成一致后发送的反馈消息,所述反馈消息包括标识信息和针对所述第一写操作请求的响应,所述标识信息用于指示已达成一致的日志。

【技术特征摘要】
1.一种日志处理方法,其特征在于,包括:第一节点在初始化时获取存储节点集群的状态消息,所述状态消息标记了所述存储节点集群的存储主节点;所述第一节点为计算节点集群中具有写操作能力和读操作能力的计算主节点;所述第一节点根据所述状态消息向所述存储主节点发送第一写操作请求,以使所述存储主节点与所述存储节点集群中的存储从节点对已接收的日志达成一致后对所述第一写操作达成一致;所述第一节点接收所述存储主节点与所述存储节点集群中的存储从节点对所述第一写操作达成一致后发送的反馈消息,所述反馈消息包括标识信息和针对所述第一写操作请求的响应,所述标识信息用于指示已达成一致的日志。2.根据权利要求1所述的方法,其特征在于,所述第一节点接收所述存储主节点与所述存储节点集群中的存储从节点对所述第一写操作达成一致后发送的反馈消息之后,还包括:所述第一节点向所述存储主节点发送目标消息,所述目标消息包括当前迭代标识,所述当前迭代标识被所述存储主节点用来判断所述目标消息是否来自最新产生的计算主节点;所述当前迭代标识比上一次产生的计算主节点发送的上一迭代标识大。3.根据权利要求2所述的方法,其特征在于,所述第一节点向所述存储主节点发送目标消息之前,还包括:所述第一节点向预设的配置管理器发送第一请求以请求所述当前迭代标识,所述配置管理器为预先配置的用于维护所述计算主节点所需信息以及所述存储主节点所需信息的节点;所述第一节点接收所述配置管理器发送的所述当前迭代标识。4.根据权利要求2所述的方法,其特征在于,所述第一节点向所述存储主节点发送目标消息之前,还包括:所述第一节点向预设的配置管理器发送第一请求以请求所述上一迭代标识,所述配置管理器为预先配置的用于维护所述计算主节点所需信息以及所述存储主节点所需信息的节点;所述第一节点接收所述配置管理器发送的所述上一迭代标识;所述第一节点根据所述上一迭代标识生成所述当前迭代标识。5.根据权利要求2-4任一项所述的方法,其特征在于,所述目标消息包括至少一条日志;所述第一节点向所述存储主节点发送目标消息,包括:所述第一节点使用N个槽异步向所述存储主节点发送M条目标消息,所述N个槽中每个槽每次以一条目标消息为单位进行发送,包含的日志的生成时间越早的目标消息越早被发送;任意两个发送时间相邻的目标消息中,后一个被发送的目标消息是在前一个被发送的目标消息被所述存储主节点接收到之后才开始被发送的,且所述后一个被发送的目标消息中的任意一个日志的生成时间比所述前一个被发送的目标消息中的任意一个日志的生成时间晚,M和N均为大于或等于2的整数。6.根据权利要求1-5任一项所述的方法,其特征在于,所述第一节点在初始化时获取存储节点集群的状态消息,包括:第一节点在初始化时向配置管理器获取存储节点集群的状态消息,所述配置管理器为预先配置的用于维护所述计算主节点所需信息以及所述存储主节点所需信息的节点。7.根据权利要求1-6任一项所述的方法,其特征在于,所述第一节点为计算节点集群中新产生的具有写操作和读操作能力的计算主节点。8.根据权利要求1-7任一项所述的方法,其特征在于,所述第一写操作包括一个空操作noop。9.一种日志处理方法,其特征在于,包括:存储主节点接收第一节点发送的第一写操作请求,所述第一节点为计算节点集群中具有写操作能力和读操作能力的计算主节点;所述存储主节点根据所述第一写操作请求与所述存储主节点所在的存储节点集群中的存储从节点,对已接收的日志达成一致后对第一写操作达成一致;所述存储主节点与所述存储从节点对所述第一写操作达成一致之后,向所述第一节点发送标识信息和针对所述第一写操作请求的响应,所述标识信息用于指示已达成一致的日志。10.根据权利要求9所述的方法,其特征在于,所述向所述第一节点发送已达成一致的日志的LSN和针对所述第一写操作请求的响应之后,还包括:所述存储主节点接收目标消息,所述目标消息包括当前迭代标识和至少一条日志;若所述当前迭代标识小于所述存储主节点存储的迭代标识,所述存储主节点丢弃当前接收的所述目标消息中的日志;所述存储主节点自身存储的迭代标识为所述存储主节点接收的上一迭代标识。11.根据权利要求10所述的方法,其特征在于,还包括:若所述当前迭代标识不小于所述存储主节点存储的迭代标识,所述存储主节点向所述存储主节点所在的存储节点集群同步当前接收的所述目标消息中的日志;并将自身存储的迭代标识更新为所述当前迭代标识。12.根据权利要求10或11所述的方法,其特征在于,所述存储主节点接收目标消息,包括:所述存储主节点接收所述第一节点通过N个槽异步发送的N条目标消息,所述N个槽中每个槽每次以一条目标消息为单位进行发送,包含的日志的生成时间越早的目标消息越早被发送;任意两个发送时间相邻的目标消息中,后一个被发送的目标消息是在前一个被发送的目标消息被所述存储主节点接收到之后才开始被发送的,且所述后一个被发送的目标消息中的任意一个日志的生成时间比所述前一个被发送的目标消息中的任意一个日志的生成时间晚,M和N均为大于或等于2的整数。13.根据权利要求9-12任一项所述的方法,其特征在于,所述第一节点为计算节点集群中新产生的具有写操作和读操作能力的计算主节点。14.根据权利要求9-13任一项所述的方法,其特征在于,所述第一写操作包括一个空操作noop。15.一种节点,其特征在于,所述节点包括处理器、存储器和通信接口,所述存储器用于存储程序指令,所述处理器用于调用所述程序指令来执行如下操作:在初始化时获取存储节点集群的状态消息,所述状态消息标记了所述存储节点集群的存储主节点;所述节点为计算节点集群中具有写操作能力和读操作能力的计算主节点;根据所述状态消息通过所述通信接口向所述存储主节点发送第一写操作请求,以使所述存储主节点与所述存储节点集群中的存储从节点对已接收的日志达成一致后对第一写操作达成一致;通过所述通信接口接收所述存储主节点与所述存储节点集群中的存储从节点对所述第一写操作达成一致后发送的反馈消息,所述反馈消息包括标识信息和针对所述第一写操作请求的响应,所述标识信息用于指示已达成一致的日志。16.根据权利要求15所述的节点,其特...

【专利技术属性】
技术研发人员:陆元飞梁锋刘存伟
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1