一种数据同步方法、装置以及电子设备制造方法及图纸

技术编号:18575935 阅读:23 留言:0更新日期:2018-08-01 10:56
本申请公开了一种数据同步方法,包括:获取待同步数据对应日志的序列标识信息;判断所述序列标识信息是否满足其对应的变更条件,若是,根据所述日志所记录数据变更操作涉及的所述待同步数据的数据变更,将所述待同步数据的数据变更应用到数据存储空间中。所述数据同步方法,在进行数据同步时,将满足约束条件的待同步数据的数据变更应用到数据存储空间中,从而避免了由于不可靠数据传输导致数据存储空间的数据一致性被破坏的情形,确保数据同步过程中的数据一致性。

Data synchronization method, device and electronic equipment

The present application discloses a data synchronization method, including: obtaining the sequence identification information of the corresponding log for the synchronized data, determining whether the sequence identification information is satisfied with its corresponding change condition, if, according to the data change involved in the data to wait for the same step according to the data change operation recorded by the log, it will be the same. The data change of step data is applied to data storage space. The data synchronization method applies the data change that satisfies the constraint conditions to the data storage space when the data synchronization is synchronized, thus avoiding the case that the data consistency of the data storage space is destroyed by the unreliable data transmission, and the data consistency in the data synchronization process is ensured.

【技术实现步骤摘要】
一种数据同步方法、装置以及电子设备
本申请涉及数据同步
,具体涉及一种数据同步方法。本申请同时涉及一种数据同步装置,以及一种电子设备。
技术介绍
随着云计算的发展,越来越多的业务需求要求一种更强大的用于数据存储的数据中心,并且要求数据中心具有较强的高可用性,能够最大程度的减少甚至消除系统故障对正常业务的影响,因此,建立多个数据中心实现业务容灾成为必然选择,这些数据中心之间的数据同步成为实现业务高可用性至关重要的一环。目前有许多方案着眼于实现分布式场景下的数据一致性,通过在不同的服务器上部署用户进程的多个运行副本,同时保证同一时间有且仅有一个进程作为主节点(Master)提供服务,其余进程为处于备用状态的从节点(Slave),一旦Master进程发生故障,会有一个Slave被选举为新Master来提供服务。然而,当前选举的新Master代替发生故障的Master进行工作之后,发生故障的Master在发生故障前未完成的数据变更操作,可能会由于数据包丢失、重发或者网络延时等影响因素,导致数据变更操作经过一定的延时之后到达,但是,延时的数据变更操作到达时,这一数据变更操作对应的数据已经被新Master更新,在此基础上执行延时到达的数据变更操作,势必会对数据一致性造成破坏。
技术实现思路
本申请提供一种数据同步方法,以解决现有技术存在的数据一致性被破坏的缺陷。本申请另外提供一种数据同步装置,以及一种电子设备。本申请提供一种数据同步方法,包括:获取待同步数据对应日志的序列标识信息;判断所述序列标识信息是否满足其对应的变更条件,若是,执行下一步;根据所述日志所记录数据变更操作涉及的所述待同步数据的数据变更,将所述待同步数据的数据变更应用到数据存储空间中。可选的,所述日志通过集群当中的主节点从日志队列中读取,且所述主节点从所述日志队列中读取日志时,根据日志加入所述日志队列的时间,按照从先到后的顺序依次从所述日志队列中读取日志。可选的,所述序列标识信息包括下述至少一项:所述日志在所述日志队列当中的序列号,用于从所述日志队列获取所述日志的主节点的节点标识,用于传输所述日志的数据连接的连接标识;其中,所述数据连接包括:所述主节点与所述数据存储空间之间建立的TCP连接。可选的,若所述序列标识信息为所述日志在所述日志队列当中的序列号,所述日志的序列号对应的变更条件包括:序列号大于最后一次发生数据变更时对应日志的末位变更序列号,或者,序列号大于或者等于所述末位变更序列号。可选的,所述判断所述序列标识信息是否满足其对应的变更条件,采用如下方式实现:判断所述日志当中携带的序列号是否大于所述待同步数据对应的末位序列号,若是,执行下一步;或者,判断所述日志当中携带的序列号是否大于或者等于所述待同步数据对应的末位序列号,若是,执行下一步。可选的,所述数据存储空间采用Key/Value数据存储模型进行数据存储;其中,Key为所述待同步数据,Value为所述待同步数据的值。可选的,所述待同步数据对应的末位变更序列号通过所述Key/Value数据存储模型进行存储,并且按照与所述待同步数据一一对应的方式通过所述Key/Value数据存储模型进行存储。可选的,若所述序列标识信息为所述日志在所述日志队列当中的序列号,所述日志的序列号对应的变更条件包括:序列号大于所述数据存储空间中发生的最后一次数据变更时对应日志的末位日志序列号,或者,序列号大于或者等于所述末位日志序列号。可选的,所述判断所述序列标识信息是否满足其对应的变更条件,采用如下方式实现:判断所述日志当中携带的序列号是否大于所述数据存储空间中当前的末位日志序列号,若是,执行下一步;或者,判断所述日志当中携带的序列号是否大于或者等于所述数据存储空间中当前的末位日志序列号,若是,执行下一步。可选的,所述数据存储空间的末位日志序列号存储在所述数据存储空间中,并且,每次有数据变更应用到所述数据存储空间中,根据当前数据变更对应日志的序列号更新所述数据存储空间的末位日志序列号。可选的,若所述序列标识信息为用于从所述日志队列获取所述日志的主节点的节点标识,所述主节点的节点标识对应的变更条件包括:节点标识大于或者等于所述集群当中当前主节点的节点标识。可选的,所述判断所述序列标识信息是否满足其对应的变更条件,采用如下方式实现:判断所述日志对应主节点的节点标识是否大于或者等于所述集群当中当前主节点的节点标识,若是,执行下一步。可选的,所述节点标识存储在预设数据库中,且所述数据库采用Key/Value数据存储模型存储所述节点标识;其中,Key为所述节点标识,Value为所述节点标识的值。可选的,所述节点标识采用递增方式进行数据变更,所述集群当中每次选举一个新的主节点,所述节点标识的值加1。可选的,若所述序列标识信息为用于传输所述日志的数据连接的连接标识,所述数据连接的连接标识对应的变更条件包括:连接标识大于或者等于所述集群当中当前主节点与所述数据存储空间的数据连接的连接标识。可选的,所述判断所述序列标识信息是否满足其对应的变更条件,采用如下方式实现:判断传输所述日志的数据连接的连接标识是否大于或者等于所述集群当中当前主节点与所述数据存储空间的数据连接的连接标识,若是,执行下一步。可选的,所述连接标识存在预设数据库中,且所述数据库采用Key/Value数据存储模型存储所述连接标识;其中,Key为所述连接标识,Value为所述连接标识的值。可选的,所述连接标识采用递增方式进行数据变更,所述集群当中的主节点每新建一条与所述数据存储空间的数据连接,所述连接标识的值加1。可选的,所述数据变更操作包括:数据创建操作、数据删除操作和数据修改操作。可选的,所述集群当中包含一个主节点和至少一个从节点,所述主节点通过调用预先提供的分布式锁服务从所述集群的节点当中选举获得,或者,所述主节点基于内嵌的分布式选举协议从所述集群的节点当中选举获得;其中,所述分布式选举协议包括:Paxos。可选的,若所述判断所述序列标识信息是否满足其对应的变更条件步骤的判断结果为不满足所述序列标识信息对应的变更条件,不允许将所述待同步数据的数据变更应用到所述数据存储空间中。可选的,所述数据存储空间由存储系统提供并进行维护,所述获取待同步数据对应日志的序列标识信息步骤,所述判断所述序列标识信息是否满足其对应的变更条件步骤,以及所述根据所述日志所记录数据变更操作涉及的所述待同步数据的数据变更,将所述待同步数据的数据变更应用到数据存储空间中步骤,通过所述存储系统执行。本申请还提供一种数据同步装置,包括:序列标识信息获取单元,用于获取待同步数据对应日志的序列标识信息;序列标识信息判断单元,用于判断所述序列标识信息是否满足其对应的变更条件,若是,运行待同步数据应用单元;所述待同步数据应用单元,用于根据所述日志所记录数据变更操作涉及的所述待同步数据的数据变更,将所述待同步数据的数据变更应用到数据存储空间中。本申请另外提供一种电子设备,包括:存储器,以及处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:获取待同步数据对应日志的序列标识信息;判断所述序列标识信息是否满足其对应的变更条件,若是,根据所述日志所记录数据变更操作涉及本文档来自技高网...

【技术保护点】
1.一种数据同步方法,其特征在于,包括:获取待同步数据对应日志的序列标识信息;判断所述序列标识信息是否满足其对应的变更条件,若是,执行下一步;根据所述日志所记录数据变更操作涉及的所述待同步数据的数据变更,将所述待同步数据的数据变更应用到数据存储空间中。

【技术特征摘要】
1.一种数据同步方法,其特征在于,包括:获取待同步数据对应日志的序列标识信息;判断所述序列标识信息是否满足其对应的变更条件,若是,执行下一步;根据所述日志所记录数据变更操作涉及的所述待同步数据的数据变更,将所述待同步数据的数据变更应用到数据存储空间中。2.根据权利要求1所述的数据同步方法,其特征在于,所述日志通过集群当中的主节点从日志队列中读取,且所述主节点从所述日志队列中读取日志时,根据日志加入所述日志队列的时间,按照从先到后的顺序依次从所述日志队列中读取日志。3.根据权利要求2所述的数据同步方法,其特征在于,所述序列标识信息包括下述至少一项:所述日志在所述日志队列当中的序列号,用于从所述日志队列获取所述日志的主节点的节点标识,用于传输所述日志的数据连接的连接标识;其中,所述数据连接包括:所述主节点与所述数据存储空间之间建立的TCP连接。4.根据权利要求3所述的数据同步方法,其特征在于,若所述序列标识信息为所述日志在所述日志队列当中的序列号,所述日志的序列号对应的变更条件包括:序列号大于最后一次发生数据变更时对应日志的末位变更序列号,或者,序列号大于或者等于所述末位变更序列号。5.根据权利要求4所述的数据同步方法,其特征在于,所述判断所述序列标识信息是否满足其对应的变更条件,采用如下方式实现:判断所述日志当中携带的序列号是否大于所述待同步数据对应的末位序列号,若是,执行下一步;或者,判断所述日志当中携带的序列号是否大于或者等于所述待同步数据对应的末位序列号,若是,执行下一步。6.根据权利要求5所述的数据同步方法,其特征在于,所述数据存储空间采用Key/Value数据存储模型进行数据存储;其中,Key为所述待同步数据,Value为所述待同步数据的值。7.根据权利要求6所述的数据同步方法,其特征在于,所述待同步数据对应的末位变更序列号通过所述Key/Value数据存储模型进行存储,并且按照与所述待同步数据一一对应的方式通过所述Key/Value数据存储模型进行存储。8.根据权利要求3所述的数据同步方法,其特征在于,若所述序列标识信息为所述日志在所述日志队列当中的序列号,所述日志的序列号对应的变更条件包括:序列号大于所述数据存储空间中发生的最后一次数据变更时对应日志的末位日志序列号,或者,序列号大于或者等于所述末位日志序列号。9.根据权利要求8所述的数据同步方法,其特征在于,所述判断所述序列标识信息是否满足其对应的变更条件,采用如下方式实现:判断所述日志当中携带的序列号是否大于所述数据存储空间中当前的末位日志序列号,若是,执行下一步;或者,判断所述日志当中携带的序列号是否大于或者等于所述数据存储空间中当前的末位日志序列号,若是,执行下一步。10.根据权利要求9所述的数据同步方法,其特征在于,所述数据存储空间的末位日志序列号存储在所述数据存储空间中,并且,每次有数据变更应用到所述数据存储空间中,根据当前数据变更对应日志的序列号更新所述数据存储空间的末位日志序列号。11.根据权利要求3所述的数据同步方法,其特征在于,若所述序列标识信息为用于从所述日志队列获取所述日志的主节点的节点标识,所述主节点的节点标识对应的变更条件包括:节点标识大于或者等于所述集群当中当前主节点的节点标识。12.根据权利要求11所述的数据同步方法,其特征在于,所述判断所述序列标识信息是否满足其对应的变更条件,采用如下方式实现:判断所述日志对应主节点的节点标识是否大于或者等于所述集群当中当前主节点的节...

【专利技术属性】
技术研发人员:唐治洋付鑫卢毅军陶云峰安凯歌
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1