CN109614403A - 集群服务节点的数据一致性校验方法及装置 - Google Patents
集群服务节点的数据一致性校验方法及装置 Download PDFInfo
- Publication number
- CN109614403A CN109614403A CN201811246841.5A CN201811246841A CN109614403A CN 109614403 A CN109614403 A CN 109614403A CN 201811246841 A CN201811246841 A CN 201811246841A CN 109614403 A CN109614403 A CN 109614403A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- examiner
- desired result
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本公开的实施例提供了一种集群服务节点的数据一致性校验方法及装置,所述方法包括:在所述集群服务节点中确定出检查者节点;所述检查者节点发起一致性校验,获得所述集群服务节点中其他节点的数据指纹树;所述检查者节点将所述其他节点的数据指纹树进行对比,得到一致性校验结果。能够简单有效的进行集群服务节点的数据一致性校验。
Description
技术领域
本公开的实施例涉及数据库技术领域,尤其涉及一种集群服务节点的数据一致性校验方法及装置。
背景技术
在数据库技术领域,为应对大规模、高并发的业务数据请求,分担数据库、分布式缓存的访问压力,使用常驻内存服务集群支撑上游系统的大批量业务数据查询。常驻内存服务集群以对等节点形式存在,各节点上存储全量数据且接收处理数据库实时变更广播消息。所以,常驻内存服务集群需要确保高可用的同时,还要实现集群各节点上数据的最终一致性。
现有技术中,集群服务节点的数据一致性校验方法包括利用哈希分别计算两数据库中对应数据库表的哈希值,并比对进行一致性校验。或者利用分布式一致性协议,如Zookeeper的Zab协议、Redis的Raft协议,通过集群选主,主节点负责处理客户端读写请求,并同步最新数据给从节点,实现分布式集群服务节点上数据的一致性。
然而,现有技术提供的方案无法高效应对大数据量且实时变更的场景,在集群数据量较大的情况下效率低下。
发明内容
本公开的实施例提供一种集群服务节点的数据一致性校验方法及装置,用以简单有效进行集群服务节点的数据一致性校验。
在所述集群服务节点中确定出检查者节点;
所述检查者节点发起一致性校验,获得所述集群服务节点中其他节点的数据指纹树;
所述检查者节点将所述其他节点的数据指纹树进行对比,得到一致性校验结果。
根据本公开的实施例的第二方面,提供了一种集群服务节点的数据一致性校验装置,所述装置包括:
检查者节点确定模块,用于在所述集群服务节点中确定出检查者节点;
一致性校验发起模块,用于所述检查者节点发起一致性校验,获得所述集群服务节点中其他节点的数据指纹树;
一致性校验结果获取模块,用于所述检查者节点将所述其他节点的数据指纹树进行对比,得到一致性校验结果。
根据本公开的实施例的第三方面,提供了一种电子设备,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现前述集群服务节点的数据一致性校验方法。
根据本公开的实施例的第四方面,提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述集群服务节点的数据一致性校验方法。
本公开的实施例提供了一种集群服务节点的数据一致性校验方法及装置,所述方法包括:在所述集群服务节点中确定出检查者节点;所述检查者节点发起一致性校验,获得所述集群服务节点中其他节点的数据指纹树;所述检查者节点将所述其他节点的数据指纹树进行对比,得到一致性校验结果。能够简单有效的进行集群服务节点的数据一致性校验。
附图说明
为了更清楚地说明本公开的实施例的技术方案,下面将对本公开的实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了在本公开的一个实施例中的集群服务节点的数据一致性校验方法的步骤流程图;
图2示出了在本公开的另一个实施例中的集群服务节点的数据一致性校验方法的步骤流程图;
图2A示出了在本公开的实施例中的检查者选举流程图;
图2B示出了在本公开的实施例中的数据指纹树示意图;
图3示出了在本公开的一个实施例中的集群服务节点的数据一致性校验装置的结构图;
图4示出了在本公开的另一个实施例中的集群服务节点的数据一致性校验装置的结构图;
图5示出了本公开的一个实施例提供的电子设备的结构图。
具体实施方式
下面将结合本公开的实施例中的附图,对本公开的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开的实施例一部分实施例,而不是全部的实施例。基于本公开的实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开的实施例保护的范围。
实施例一
参照图1,其示出了在本公开的一个实施例中的集群服务节点的数据一致性校验方法的步骤流程图,包括:
步骤101,在所述集群服务节点中确定出检查者节点。
本公开的实施例在业务流程的集群服务节点的数据一致性校验领域中,常驻内存服务集群服务节点上存储全量数据(百万级)且实时变更,为了判定各服务集群服务节点上存储全量数据之间是否存在差异,而进行集群服务节点的数据一致性校验。
其中,由于在分布式环境下确定各集群服务节点上数据一致性,需要由集群自主选择一个数据集最新的节点,主导数据一致性的比对过程,并保证总能选出这样一个主导节点来主持大局。所以通过预设规则在所有集群服务节点中选举出一个检查者节点来发起数据一致性校验进程。
步骤102,所述检查者节点发起一致性校验,获得所述集群服务节点中其他节点的数据指纹树。
本公开的实施例中,确定检查者节点后,由检查者节点发起一致性校验进程,在集群服务节点中的其他节点接收到检查者节点发送的一致性校验请求后,根据预设数据转换机制,将原数据表转换为指纹树,并反馈给检查者。
步骤103,所述检查者节点将所述其他节点的数据指纹树进行对比,得到一致性校验结果。
本公开的实施例,检查者接收到各其他节点反馈的数据指纹树,并逐一进行比对,得到比对结果,作为一致性校验结果。
可以理解地,根据一致性校验结果,检查者会通知存在差异数据的节点进行原数据表的更新,以保证所有节点的原数据最终保持一致。
综上所述,本公开的实施例提供了一种集群服务节点的数据一致性校验方法,所述方法包括:在所述集群服务节点中确定出检查者节点;所述检查者节点发起一致性校验,获得所述集群服务节点中其他节点的数据指纹树;所述检查者节点将所述其他节点的数据指纹树进行对比,得到一致性校验结果。能够简单有效的进行集群服务节点的数据一致性校验。
实施例二
参照图2,其示出了在本公开的另一个实施例中的集群服务节点的数据一致性校验方法的步骤流程图,具体如下。
步骤201,获取所述集群服务节点中的节点信息;所述节点信息至少包括数据变更消息数和可通信节点数。
本公开的实施例中,在进行集群服务节点的检查者确认之前,针对预设的检查者选举流程,首先需要获取每个集群服务节点的节点信息。
其中,节点的数据变更消息数和可通信接节点数是最重要的两个参数。
可以理解地,各节点维护自身收到的数据变更消息条数计数,谁的计数大,谁的内存数据集就最新。并且,各节点维护与自身可通信的节点集合,视为自己的影响范围,谁的可通信节点数多,谁的影响范围大。
步骤202,所述集群服务节点接收一致性校验请求。
本公开的实施例中,集群节点启动时,所有节点均为报告者,并随机设置等待检查者心跳的超时时间,如200ms-300ms,等待超时的节点角色转为候选者。所以,在节点启动时,在检查者心跳时间内,等待检查者发起的一致性校验请求,以判断是否存在检查者。
步骤203,当所述集群服务节点在第一预设时间段内未接收到所述一致性校验请求时,向第一目标节点进行投票,所述第一目标节点包括数据变更消息数最大的节点,或,可通信节点数最大的节点。
具体地,在等待第一预设时间段后,如200ms-300ms,没有接收到检查者发起的一致性校验请求,则确认当前不存在检查者,随后发起检查者选举过程。
其中,如图2A所示,随机设置选举等待超时时间之后广播投票请求给其他集群节点,并收集投票。收集投票超时或未收到过半数赞成票时,保持候选者状态,发起新一轮投票。收到过半数赞成票后,当前节点转为检查者,并将检查者信息广播给其他节点。
可以理解地,等待过程中,收到检查者信息,或者收到携带更高轮次(epoch)的投票请求时,候选者转为报告者reporter。检查者checker状态的节点在收到其他拥有更高轮次的检查者checker信息时,需降级为报告者reporter。
其中,相同投票轮次epoch,只能给一个候选者candidate投票,可以投赞同票,也可以投反对票。
可以理解地,对于某个投票轮次epoch,得到大多数赞成票的候选者candidate节点成为检查者checker,这样就保证了同一个任期内最多只有一个节点成为检查者checker(也有可能没有,比如出现平票时)。
其中,可以为更高的轮次epoch投票,不能为更低或相同的epoch投票。其中,投票轮次epoch的高低根据投票发起的时间确定。
以上描述针对本公开实施例以下的投票策略进行设置,具体内容和投票策略可以由相关技术人员进行调整和更改,本公开实施例对此不加以限制。
具体地,投票策略描述如下:
A.各节点维护自身收到的数据变更消息条数计数,谁的计数大,谁的内存数据集就最新,就应该投赞成票给谁,否则按B进行。
B.各节点维护与自身可通信的节点集合,视为自己的影响范围,谁的影响范围大,就应该投赞成票给谁,否则按C进行。
C.上述A和B都相等,可以投赞成票,否则投反对票。
可以理解地,在投票之前,向各节点广播其他节点的节点信息,以使每个节点都获知其他节点的节点信息,在投票时进行决策使用。
步骤204,统计第一目标节点在第二预设时间段内接收到的投票数目;
具体地,默认只统计在第二预设时间段内的收到的投票数,根据每个节点接收到投票数,确认检查者选举过程描述如下:
A.节点启动,节点默认为是报告者reporter状态:
1)集群已存在检查者checker,限时等待,在预设时间内收到检查者checker心跳信息后,记录检查者checker的投票轮次epoch和主机host信息;
2)等待超时,则该节点转变为候选者candidate,进入环节B开始发起选举投票;
B.候选者candidate节点每发起一轮选举投票,需携带递增后的投票轮次epoch标识选举轮次;
1)随机重置收集投票的超时等待时间(即第二预设时间段);
2)超时时间内(第二预设时间段内),收集到赞成票数大于一半集群节点数,则将本节点确认为检查者节点,并通过心跳广播检查者信息;
3)超时时间内(第二预设时间段内),未收集到过半数的赞成票,保持候选者candidate状态并在超时时间后,发起下一轮新的投票;如果在此期间若发现有了检查者checker,即收到了检查者发起投票的请求,则该候选者节点转为报告者reporter。
可以理解地,检查者选举触发条件为,检查者checker定期广播心跳信息给所有报告者reporter,即其他节点,而报告者reporter设置心跳等待超时时间,如果等待超时后,即超过第一预设时间段后,没有接收到检查者的心跳信息,则发起新一轮检查者checker选举。
步骤205,若所述投票数目大于所述集群服务节点总数量的一半,则将所述第一目标节点确定为检查者节点。
具体地,根据上述描述,节点各自统计自身得到的投票数据,如果大于一半的集群节点数,则转换为检查者checker。
可以理解地,当存在两个节点各得到同样为一半的投票数时,重新发起投票。
步骤206,若未确定出检查者节点,则返回步骤202。
具体地,当在第二预设时间段内统计获得超过一半票数目的第一目标节点失败,即没有获得超过一半投票数目的第一目标节点,或者有两个同时获得一半投票数据的第一目标节点,则此轮投票未能确定出检查者,重新进入步骤202,在第一预设时间内等待超时后,重新进入选举检查者的流程。
步骤207,所述检查者节点每隔第三预设时间段,向所述其他节点发送一致性校验请求;
本公开实施例中,当确定出检查者节点后,checker根据配置(定时或定期)发起数据一致性比对进程。其中,第三预设时间段由相关技术人员根据节点配置和通信需求设置,本公开实施例对此不加以限制。
步骤208,所述其他节点接收到所述一致性校验请求,提取预置历史变更消息列表中的历史数据变更消息。
具体地,checker通知reporter启动数据比对流程,reporter激活预置历史变更消息列表表后,提取其中的原数据,即原历史数据变更消息。
可以理解地,历史数据变更消息是该节点,在一致性校验请求的时间T之前存储的数据变更消息。时间T是检查者发送一致性校验请求的时间,在所有节点统一。
步骤209,所述其他节点根据所述历史数据变更消息生成数据指纹树,并返回至所述检查者节点。
具体地,根据原数据生成指纹树,如图2B所示,表示21个样本数据的指纹树,样本最大值为25,指纹树生成聚合值为4。以区间维度聚合(比如聚合值为4,则指纹生成样本少于4个则用空值补充至4个),防止单个数据的缺席导致后续指纹全部不一致。目前指纹生成采用更新时间戳拼接然后用md5转换的方式生成,可扩展。
其中,每个节点在获取自身数据指纹树以后,发送至检查者节点,由检查者节点进行比对。
可以理解地,数据指纹树的生成方法由相关技术人员根据需求设置,本公开实施例不加以限制。
步骤210,所述检查者节点,将在第四预设时间段内获取的各其他节点的数据指纹树,放置在预设待对比队列中。
具体地,当检查者节点将接收到的数据指纹树逐一放置在预设待对比队列中,直到第四预设时间段后,开始逐一比对。
例如,checker轮训等待reporter生成指纹树,最大等待时间为120s,等待超时后将reporter放入待比对队列,下次重试。reporter完成指纹树后,反馈结果给checker。
其中,生成指纹树时,当计算控件不足采集区间时,会填充空数据来进行迭代计算。
步骤211,所述检查者节点提取所述预设待对比队列中的所述其他节点的数据指纹树的层级结构。
具体地,根据图2B所示,当检查者节点获取的数据树是最终指纹树,当进行比对时,需要提取指纹树中的层级结构,逐层逐个的进行数据样本的比对。
步骤212,所述检查者根据所述层级结构,逐层遍历对比,得到一致性校验结果。
具体地,根据指纹树中的层级结构对应的各原数据进行对比,得到一致性校验结果。
可以理解的,一致性校验结果是逐一对比结果的列表。
步骤213,若所述检查者节点未在第五预设时间段获得所述一致性校验结果,则返回步骤211。
具体地,检查者逐一对比各数据指纹树中消息变更数据,生成对比结果列表,但是如果在第五预设时间段内没有完成数据的对比,则返回步骤211,重新获取数据指纹树,重新对比得到对比结果。
其中,第五预设时间段由相关技术人员根据数据规模大小设置,本公开实施例对此不加以限制。
可以理解地,当在第五预设时间段之后收到其他节点反馈的数据指纹树,则将该指纹树缓存,以待下一次一致性校验时进行对比。
步骤214,若所述其他节点接收到实时数据变更消息,则将所述实时数据变更消息存储至预设回放列表。
具体地,若在检查者进行一致性校验时,集群服务节点接收到了实时的数据变更信息,则将该变更消息存储至预设回放列表,等待一致性校验结束后,再存储至预置历史变更消息列表。
可以理解地,预设回放列表存储的是该节点,在一致性校验请求的时间T之后存储的数据变更消息。时间T是检查者发送一致性校验请求的时间,在所有节点统一。
优选地,若所述集群服务节点接收到实时数据访问请求,则根据所述实时数据访问请求,从所述预设回放列表中调用所述实时数据变更消息;
具体地,在检查者节点发起一致性验证请求的时间T后,历史数据变更消息属于静态存储状态,不能接受更新数据,所以当接收到新的数据变更时,则将实时数据变更消息存储至预设回放列表。
同样地,在接收到实时数据访问请求时,返回预设回放列表中的实时数据变更消息。
可以理解的,预设回放列表中存储的数据类型和数据结构,与预置历史变更消息列表中存储的数据类型和数据结构一致。
步骤215,若各所述一致性校验结果中存在差异数据,则根据所述差异数据确定对应的第二目标节点;
具体地,若接收到的一致性校验数据,即数据对比列表中,存在差异数据,则根据差异数据寻找对应的第二目标节点。
可以理解地,各数据指纹树在反馈给检查者节点时,携带有对应节点身份的标记,根据该标记,检查者节点可以根据数据指纹树查找到对应的目标节点。
步骤216,所述检查者节点将所述差异数据发送至对应的第二目标节点;
具体地,找到第二目标节点后,将差异数据反馈给该节点。
步骤217,所述第二目标节点根据所述差异数据,将所述历史数据变更消息进行更新。
具体地,第二目标节点根据对比结果中的差异数据,将对应最新的数据更新信息写入自身的预置历史变更消息列表中,以保证自身数据与最新数据统一。
步骤218,将所述第二目标节点根据更新后的历史数据变更消息,生成更新的数据指纹树,并发送至所述检查者节点;
具体地,第二目标节点在更新完自身历史数据变更消息后,根据该数据生成新的数据指纹树,并反馈给检查者。
例如,checker将差异数据集反馈给reporter,reporter开始自主修复数据,完成后重新生成指纹树,并将最终指纹数据反馈给checker确认。
步骤219,所述检查者节点将所述更新的数据指纹树放置在所述预设待对比队列中,并返回步骤211,由检查者进行进一步的一致性验证。
具体地,在检查者将该数据指纹树放置在预设待对比队列中,
步骤220,若所述一致性校验结果中不存在差异数据,则所述检查者节点向所述其他节点发送数据变更回放请求;
具体地,若接收到的一致性校验数据,即数据对比列表中,不存在差异数据,则检查者要求其他节点进行数据变更回放,即发送数据变更回放消息至其他节点。
步骤221,所述其他节点接收到所述数据变更回放请求,提取所述预设回放列表中存储的所述实时数据变更消息;
具体地,当节点接收到数据变更回放请求后,即确认当前一致性校验结束,便将预设回放列表中的数据按照更新时间进行提取。
步骤222,所述其他节点将所述实时数据变更消息按照变更时间顺序,写入所述预置历史变更消息列表中,并清空所述预设回放列表。
具体地,将提取的实时数据变更信息按照更新的时间顺序逐一写入到各节点的预置历史消息变更列表中。
综上所述,本公开的实施例提供了一种集群服务节点的数据一致性校验方法,所述方法包括:在所述集群服务节点中确定出检查者节点;所述检查者节点发起一致性校验,获得所述集群服务节点中其他节点的数据指纹树;所述检查者节点将所述其他节点的数据指纹树进行对比,得到一致性校验结果。若各所述一致性校验结果中存在差异数据,则更新所述差异数据;若所述一致性校验结果中不存在差异数据,则通知所述其他节点进行数据变更回放。实现了有效的在集群节点中确定出主持节点,进行简单有效的集群服务节点的数据一致性校验的行为,并得到一致性校验结果后进行及时更新,具备了集群节点数据一致性比对机制的高可用,确保数据一致性校验过程顺利进行的有益效果。
实施例三
参照图3,其示出了在本公开的一个实施例中的集群服务节点的数据一致性校验装置的结构图,具体如下。
检查者节点确定模块301,用于在所述集群服务节点中确定出检查者节点;
一致性校验发起模块302,用于所述检查者节点发起一致性校验,获得所述集群服务节点中其他节点的数据指纹树;
一致性校验结果获取模块303,用于所述检查者节点将所述其他节点的数据指纹树进行对比,得到一致性校验结果。
综上所述,本公开的实施例提供了一种集群服务节点的数据一致性校验装置,所述装置包括:检查者节点确定模块,用于在所述集群服务节点中确定出检查者节点;一致性校验发起模块,用于所述检查者节点发起一致性校验,获得所述集群服务节点中其他节点的数据指纹树;一致性校验结果获取模块,用于所述检查者节点将所述其他节点的数据指纹树进行对比,得到一致性校验结果。能够简单有效的进行集群服务节点的数据一致性校验。
装置实施例三对应方法实施例一,详细说明可以参照实施例一,在此不再赘述。
实施例四
参照图4,其示出了本公开的另一个实施例中的集群服务节点的数据一致性校验装置的结构图,具体如下。
检查者节点确定模块401,用于在所述集群服务节点中确定出检查者节点;
优选地,所述检查者节点确定模块401,包括:
节点信息获取子模块,用于获取所述集群服务节点中的节点信息;所述节点信息至少包括数据变更消息数和可通信节点数;
一致性校验请求接收子模块,用于所述集群服务节点接收一致性校验请求;
投票子模块,用于当所述集群服务节点在第一预设时间段内未接收到所述一致性校验请求时,向第一目标节点进行投票,所述第一目标节点包括数据变更消息数最大的节点,或,可通信节点数最大的节点;
统计子模块,用于统计第一目标节点在第二预设时间段内接收到的投票数目;
检查者节点确定子模块,用于若所述投票数目大于所述集群服务节点总数量的一半,则将所述第一目标节点确定为检查者节点。
优选地,所述检查者节点确定模块401,还包括:
未确定处理子模块,用于若未确定出检查者节点,则返回所述在所述集群服务节点中确定出检查者节点的步骤。
一致性校验发起模块402,用于所述检查者节点发起一致性校验,获得所述集群服务节点中其他节点的数据指纹树;
优选地,所述一致性校验发起模块402,包括:
一致性校验请求发送子模块,用于所述检查者节点每隔第三预设时间段,向所述其他节点发送一致性校验请求;
历史数据变更消息提取子模块,用于所述其他节点接收到所述一致性校验请求,提取预置历史变更消息列表中的历史数据变更消息;
数据指纹树生成子模块,用于所述其他节点根据所述历史数据变更消息生成数据指纹树,并返回至所述检查者节点;
数据指纹树获取子模块,用于所述检查者节点,将在第四预设时间段内获取的各其他节点的数据指纹树,放置在预设待对比队列中。
优选地,所述一致性校验发起模块402,还包括:
实时数据变更消息处理子模块,用于若所述其他节点接收到实时数据变更消息,则将所述实时数据变更消息存储至预设回放列表。
一致性校验结果获取模块403,用于所述检查者节点将所述其他节点的数据指纹树进行对比,得到一致性校验结果。
优选地,所述一致性校验结果获取模块403,包括:
层级结构提取子模块,用于所述检查者节点提取所述预设待对比队列中的所述其他节点的数据指纹树的层级结构;
一致性校验结果获取子模块,用于所述检查者根据所述层级结构,逐层遍历对比,得到一致性校验结果。
优选地,所述一致性校验结果获取模块403,还包括:
重新获取结果子模块,用于若所述检查者节点未在第五预设时间段获得所述一致性校验结果,则返回所述检查者节点将所述其他节点的数据指纹树进行对比,得到一致性校验结果的步骤。
优选地,还包括:
更新模块404,用于若各所述一致性校验结果中存在差异数据,则更新所述差异数据;
优选地,所述更新模块404,包括:
第二目标节点确定子模块,用于若各所述一致性校验结果中存在差异数据,则根据所述差异数据确定对应的第二目标节点;
差异数据发送子模块,用于所述检查者节点将所述差异数据发送至对应的第二目标节点;
更新子模块,用于所述第二目标节点根据所述差异数据,将所述历史数据变更消息进行更新。
优选地,所述更新模块404,还包括:
更新的数据指纹树子模块,用于将所述第二目标节点根据更新后的历史数据变更消息,生成更新的数据指纹树,并发送至所述检查者节点;
再验证子模块,用于所述检查者节点将所述更新的数据指纹树放置在所述预设待对比队列中,并返回所述检查者节点将所述其他节点的数据指纹树进行对比,得到一致性校验结果的步骤。
数据变更回放模块405,用于若所述一致性校验结果中不存在差异数据,则通知所述其他节点进行数据变更回放。
优选地,所述数据变更回放模块405,包括:
数据变更回放请求发送子模块,用于若所述一致性校验结果中不存在差异数据,则所述检查者节点向所述其他节点发送数据变更回放请求;
实时数据变更消息提取子模块,用于所述其他节点接收到所述数据变更回放请求,提取所述预设回放列表中存储的所述实时数据变更消息;
数据变更回放子模块,用于所述其他节点将所述实时数据变更消息按照变更时间顺序,写入所述预置历史变更消息列表中,并清空所述预设回放列表。
综上所述,本公开的实施例提供了一种集群服务节点的数据一致性校验装置,所述装置包括:检查者节点确定模块,用于在所述集群服务节点中确定出检查者节点;一致性校验发起模块,用于所述检查者节点发起一致性校验,获得所述集群服务节点中其他节点的数据指纹树;一致性校验结果获取模块,用于所述检查者节点将所述其他节点的数据指纹树进行对比,得到一致性校验结果。。实现了有效的在集群节点中确定出主持节点,进行简单有效的集群服务节点的数据一致性校验的行为,并得到一致性校验结果后进行及时更新,具备了集群节点数据一致性比对机制的高可用,确保数据一致性校验过程顺利进行的有益效果。更新模块,用于若各所述一致性校验结果中存在差异数据,则更新所述差异数据;数据变更回放模块,用于若所述一致性校验结果中不存在差异数据,则通知所述其他节点进行数据变更回放。
装置实施例四对应方法实施例二,详细说明可以参照实施例二,在此不再赘述。
本公开的实施例还提供了一种电子设备,参见图5,包括:处理器501、存储器502以及存储在所述存储器上并可在所述处理器上运行的计算机程序5021,所述处理器执行所述程序时实现前述实施例的集群服务节点的数据一致性校验方法。
本公开的实施例还提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述实施例的集群服务节点的数据一致性校验方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本公开的实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本公开的实施例的内容,并且上面对特定语言所做的描述是为了披露本公开的实施例的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本公开的实施例的示例性实施例的描述中,本公开的实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开的实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本公开的实施例的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
本公开的实施例的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本公开的实施例的集群服务节点的数据一致性校验设备中的一些或者全部部件的一些或者全部功能。本公开的实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序。这样的实现本公开的实施例的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本公开的实施例进行说明而不是对本公开的实施例进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开的实施例可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述仅为本公开的实施例的较佳实施例而已,并不用以限制本公开的实施例,凡在本公开的实施例的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本公开的实施例的保护范围之内。
以上所述,仅为本公开的实施例的具体实施方式,但本公开的实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开的实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的实施例的保护范围之内。因此,本公开的实施例的保护范围应以权利要求的保护范围为准。
Claims (14)
1.一种集群服务节点的数据一致性校验方法,其特征在于,所述方法包括:
在所述集群服务节点中确定出检查者节点;
所述检查者节点发起一致性校验,获得所述集群服务节点中其他节点的数据指纹树;
所述检查者节点将所述其他节点的数据指纹树进行对比,得到一致性校验结果。
2.根据权利要求1所述的方法,其特征在于,还包括:
若各所述一致性校验结果中存在差异数据,则更新所述差异数据;
若所述一致性校验结果中不存在差异数据,则通知所述其他节点进行数据变更回放。
3.根据权利要求1所述的方法,其特征在于,所述在所述集群服务节点中确定出检查者节点的步骤,包括:
获取所述集群服务节点中的节点信息;所述节点信息至少包括数据变更消息数和可通信节点数;
所述集群服务节点接收一致性校验请求;
当所述集群服务节点在第一预设时间段内未接收到所述一致性校验请求时,向第一目标节点进行投票,所述第一目标节点包括数据变更消息数最大的节点,或,可通信节点数最大的节点;
统计第一目标节点在第二预设时间段内接收到的投票数目;
若所述投票数目大于所述集群服务节点总数量的一半,则将所述第一目标节点确定为检查者节点。
4.根据权利要求3所述的方法,其特征在于,还包括:
若未确定出检查者节点,则返回所述在所述集群服务节点中确定出检查者节点的步骤。
5.根据权利要求1所述的方法,其特征在于,所述检查者节点发起一致性校验进程,获得所述集群服务节点中其他节点的数据指纹树的步骤,包括:
所述检查者节点每隔第三预设时间段,向所述其他节点发送一致性校验请求;
所述其他节点接收到所述一致性校验请求,提取预置历史变更消息列表中的历史数据变更消息;
所述其他节点根据所述历史数据变更消息生成数据指纹树,并返回至所述检查者节点;
所述检查者节点,将在第四预设时间段内获取的各其他节点的数据指纹树,放置在预设待对比队列中。
6.根据权利要求5所述的方法,其特征在于,在所述其他节点接收到所述一致性校验请求的步骤之后,还包括:
若所述其他节点接收到实时数据变更消息,则将所述实时数据变更消息存储至预设回放列表。
7.根据权利要求5所述的方法,其特征在于,所述检查者节点将所述其他节点的数据指纹树进行对比,得到一致性校验结果的步骤,包括:
所述检查者节点提取所述预设待对比队列中的所述其他节点的数据指纹树的层级结构;
所述检查者根据所述层级结构,逐层遍历对比,得到一致性校验结果。
8.根据权利要求7所述的方法,其特征在于,还包括:
若所述检查者节点未在第五预设时间段获得所述一致性校验结果,则返回所述检查者节点将所述其他节点的数据指纹树进行对比,得到一致性校验结果的步骤。
9.根据权利要求1所述的方法,其特征在于,所述若各所述一致性校验结果中存在差异数据,则更新所述差异数据的步骤,包括:
若各所述一致性校验结果中存在差异数据,则根据所述差异数据确定对应的第二目标节点;
所述检查者节点将所述差异数据发送至对应的第二目标节点;
所述第二目标节点根据所述差异数据,将所述历史数据变更消息进行更新。
10.根据权利要求9所述的方法,其特征在于,还包括:
将所述第二目标节点根据更新后的历史数据变更消息,生成更新的数据指纹树,并发送至所述检查者节点;
所述检查者节点将所述更新的数据指纹树放置在所述预设待对比队列中,并返回所述检查者节点将所述其他节点的数据指纹树进行对比,得到一致性校验结果的步骤。
11.根据权利要求6所述的方法,其特征在于,所述若所述一致性校验结果中不存在差异数据,则通知所述其他节点进行数据变更回放的步骤,包括:
若所述一致性校验结果中不存在差异数据,则所述检查者节点向所述其他节点发送数据变更回放请求;
所述其他节点接收到所述数据变更回放请求,提取所述预设回放列表中存储的所述实时数据变更消息;
所述其他节点将所述实时数据变更消息按照变更时间顺序,写入所述预置历史变更消息列表中,并清空所述预设回放列表。
12.一种集群服务节点的数据一致性校验装置,其特征在于,所述装置包括:
检查者节点确定模块,用于在所述集群服务节点中确定出检查者节点;
一致性校验发起模块,用于所述检查者节点发起一致性校验,获得所述集群服务节点中其他节点的数据指纹树;
一致性校验结果获取模块,用于所述检查者节点将所述其他节点的数据指纹树进行对比,得到一致性校验结果。
13.一种电子设备,其特征在于,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-11中一个或多个所述的集群服务节点的数据一致性校验方法。
14.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如方法权利要求1-11中一个或多个所述的集群服务节点的数据一致性校验方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811246841.5A CN109614403B (zh) | 2018-10-24 | 2018-10-24 | 集群服务节点的数据一致性校验方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811246841.5A CN109614403B (zh) | 2018-10-24 | 2018-10-24 | 集群服务节点的数据一致性校验方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109614403A true CN109614403A (zh) | 2019-04-12 |
CN109614403B CN109614403B (zh) | 2020-03-06 |
Family
ID=66002851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811246841.5A Active CN109614403B (zh) | 2018-10-24 | 2018-10-24 | 集群服务节点的数据一致性校验方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109614403B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245129A (zh) * | 2019-04-23 | 2019-09-17 | 平安科技(深圳)有限公司 | 一种分布式全局数据去重方法和装置 |
CN110471934A (zh) * | 2019-08-19 | 2019-11-19 | 泰康保险集团股份有限公司 | 业务数据的校验方法、装置、介质及电子设备 |
CN110795290A (zh) * | 2019-10-30 | 2020-02-14 | 杭州迪普科技股份有限公司 | 一种双机配置策略一致性检测方法及装置 |
CN112084535A (zh) * | 2020-08-25 | 2020-12-15 | 北京明略昭辉科技有限公司 | 文件完整性的校验方法及系统 |
CN114039978A (zh) * | 2022-01-06 | 2022-02-11 | 天津大学四川创新研究院 | 一种去中心化的PoW算力集群部署方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468302A (zh) * | 2014-10-16 | 2015-03-25 | 深圳市金证科技股份有限公司 | 一种令牌的处理方法、装置及消息处理集群 |
CN106202387A (zh) * | 2016-07-08 | 2016-12-07 | 陈光宇 | 一种数据一致性并行维护方法 |
CN107209714A (zh) * | 2015-03-16 | 2017-09-26 | 株式会社日立制作所 | 分布式存储系统及分布式存储系统的控制方法 |
CN107733724A (zh) * | 2017-11-24 | 2018-02-23 | 瑞斯康达科技发展股份有限公司 | 一种环形网络的配置方法、装置及环形网络 |
CN108462885A (zh) * | 2018-05-09 | 2018-08-28 | 广东工业大学 | 一种基于区块链的视频存储方法、装置及介质 |
-
2018
- 2018-10-24 CN CN201811246841.5A patent/CN109614403B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104468302A (zh) * | 2014-10-16 | 2015-03-25 | 深圳市金证科技股份有限公司 | 一种令牌的处理方法、装置及消息处理集群 |
CN107209714A (zh) * | 2015-03-16 | 2017-09-26 | 株式会社日立制作所 | 分布式存储系统及分布式存储系统的控制方法 |
CN106202387A (zh) * | 2016-07-08 | 2016-12-07 | 陈光宇 | 一种数据一致性并行维护方法 |
CN107733724A (zh) * | 2017-11-24 | 2018-02-23 | 瑞斯康达科技发展股份有限公司 | 一种环形网络的配置方法、装置及环形网络 |
CN108462885A (zh) * | 2018-05-09 | 2018-08-28 | 广东工业大学 | 一种基于区块链的视频存储方法、装置及介质 |
Non-Patent Citations (1)
Title |
---|
张津源: "基于数据一致性分析的仿真模型验证方法及工具研究", 《中国优秀硕士学位论文全文数据库 基础科学辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245129A (zh) * | 2019-04-23 | 2019-09-17 | 平安科技(深圳)有限公司 | 一种分布式全局数据去重方法和装置 |
CN110245129B (zh) * | 2019-04-23 | 2022-05-13 | 平安科技(深圳)有限公司 | 一种分布式全局数据去重方法和装置 |
CN110471934A (zh) * | 2019-08-19 | 2019-11-19 | 泰康保险集团股份有限公司 | 业务数据的校验方法、装置、介质及电子设备 |
CN110795290A (zh) * | 2019-10-30 | 2020-02-14 | 杭州迪普科技股份有限公司 | 一种双机配置策略一致性检测方法及装置 |
CN112084535A (zh) * | 2020-08-25 | 2020-12-15 | 北京明略昭辉科技有限公司 | 文件完整性的校验方法及系统 |
CN112084535B (zh) * | 2020-08-25 | 2023-12-12 | 北京明略昭辉科技有限公司 | 文件完整性的校验方法及系统 |
CN114039978A (zh) * | 2022-01-06 | 2022-02-11 | 天津大学四川创新研究院 | 一种去中心化的PoW算力集群部署方法 |
CN114039978B (zh) * | 2022-01-06 | 2022-03-25 | 天津大学四川创新研究院 | 一种去中心化的PoW算力集群部署方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109614403B (zh) | 2020-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614403A (zh) | 集群服务节点的数据一致性校验方法及装置 | |
CN106502769B (zh) | 分布式事务处理方法、装置及系统 | |
CN109246229A (zh) | 一种分发资源获取请求的方法和装置 | |
CN110830608B (zh) | 一种全局唯一标识符生成方法、装置、设备及存储介质 | |
CN106789362A (zh) | 一种设备管理方法及网管系统 | |
CN106888106A (zh) | 智能电网中的it资产大规模侦测系统 | |
CN112367345B (zh) | 数据处理方法、服务端设备及计算机可读存储介质 | |
CN109308227A (zh) | 故障检测控制方法及相关设备 | |
CN109792393A (zh) | 虚拟化离线计费系统中的软件升级 | |
CN112737800A (zh) | 服务节点故障定位方法、调用链生成方法及服务器 | |
CN106991070B (zh) | 实时计算方法及装置 | |
CN110110520A (zh) | 一种入侵容忍的云工作流实现方法及系统 | |
CN108540582A (zh) | 一种终端标识的处理方法、服务器及终端 | |
CN107067354A (zh) | 基于共治网格的监管任务处理方法和装置 | |
CN108123987A (zh) | 从云计算系统中确定主调度器的方法及装置 | |
CN111311310B (zh) | 广告订单推送方法及装置、存储介质及电子装置 | |
CN105243078A (zh) | 一种文件资源的分发方法、系统和装置 | |
CN115794478B (zh) | 系统配置方法、装置、电子设备及存储介质 | |
CN116319492A (zh) | 交换机的测试方法、装置、存储介质及电子设备 | |
CN112134734B (zh) | 一种网络设备的配置方法及装置 | |
US10873514B2 (en) | Neighbor monitoring in a hyperscaled environment | |
CN113032188B (zh) | 确定主服务器的方法、装置、服务器及存储介质 | |
CN108304504A (zh) | 一种用户在线状态快速查询方法及系统 | |
CN106294721A (zh) | 一种集群数据统计及导出方法及装置 | |
CN114020420A (zh) | 一种分布式待执行任务执行方法及系统、存储介质、终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |