CN107809326B - 数据一致性的处理方法、装置和设备 - Google Patents

数据一致性的处理方法、装置和设备 Download PDF

Info

Publication number
CN107809326B
CN107809326B CN201610814281.3A CN201610814281A CN107809326B CN 107809326 B CN107809326 B CN 107809326B CN 201610814281 A CN201610814281 A CN 201610814281A CN 107809326 B CN107809326 B CN 107809326B
Authority
CN
China
Prior art keywords
version
server
replica
data
copy
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.)
Active
Application number
CN201610814281.3A
Other languages
English (en)
Other versions
CN107809326A (zh
Inventor
董元元
石超
吴均平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610814281.3A priority Critical patent/CN107809326B/zh
Publication of CN107809326A publication Critical patent/CN107809326A/zh
Application granted granted Critical
Publication of CN107809326B publication Critical patent/CN107809326B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Abstract

本申请提供一种数据一致性的处理方法、装置和设备。该方法包括:中心管理服务器根据所存储的数据的标记版本和当前每个从副本服务器上存储的数据副本的版本,从当前从副本服务器中确定第一副本服务器;其中,所述标记版本为所述主副本服务器上的数据副本的当前版本;所述中心管理服务器确定所述第一副本服务器为新的主副本服务器,以使所述新的主副本服务器执行数据一致性更新流程。本申请实施例的方法,大大提高了分布式存储系统的故障容忍能力。

Description

数据一致性的处理方法、装置和设备
技术领域
本申请涉及数据存储技术,尤其涉及一种数据一致性的处理方法、装置和设备。
背景技术
在分布式存储系统中,一般会将一个数据块存储多个副本,每个副本存储在不同的副本服务器上,并针对同一个数据块,在数据更新过程中,分布式存储系统需要确保每个副本服务器上的数据副本一致,从而达到对磁盘、网络或服务器等故障的容错,提高系统可用性及性能等目的。
现有技术中的数据更新过程主要基于Paxos协议或其演进,具体为:从多个副本服务器中选举一个作为主副本服务器,其余作为从副本服务器,每个数据块均对应一个Epoch信息,该Epoch信息主要表征该数据块存储在哪些副本服务器上(即该数据块的成员列表)以及这些副本服务器的主从关系。针对一个数据块来说,其数据更新请求先由主副本服务器接收和处理,主副本服务器对该数据块的所有更新请求,统一定序并为每个更新请求分配数据副本的版本,并携带该数据块的Epoch信息;然后主副本服务器再转发至从副本服务器处理。当大多数从副本服务器返回更新成功响应时(满足大多数原则),即使少数从副本服务器因为网络故障或者其他原因,无法处理更新请求,则主副本服务器仍然确定本次数据更新成功,而上述少数的从副本服务器上的数据副本的版本与其他更新成功的副本服务器上的数据副本的版本不一致。当这些少数的副本服务器恢复正常时,主副本服务器可以通过向其发送增量数据复制请求,来促使这些少数的副本服务器将其自身的数据副本的版本恢复成与主副本服务器的数据版本一致。
当主副本服务器发生宕机时,为了达到容错和高可用的目的,需要重新选举新的主副本服务器,从而基于新的主副本服务器进行数据恢复和更新。假设副本服务器总数为2N+1,现有技术在选举新的主副本服务器时,其最多只能允许宕机的副本服务器个数为N个,若宕机的副本服务器个数超过N个,则现有技术无法准确选择出新的主副本服务器,从而无法准确的实现数据副本的一致性,因此,现有技术的数据一致性恢复方案,其故障容忍能力低。
发明内容
本申请提供一种数据一致性的处理方法、装置和设备,用以解决现有技术中在主副本服务器发生宕机,并且分布式存储系统需要进行数据恢复一致性时,故障容忍能力低的技术问题。
一个方面,本申请实施例提供一种数据一致性的处理方法,包括:
中心管理服务器根据所存储的数据的标记版本和当前每个从副本服务器上存储的数据副本的版本,从当前从副本服务器中确定第一副本服务器;其中,所述标记版本为所述主副本服务器上的数据副本的当前版本;
所述中心管理服务器确定所述第一副本服务器为新的主副本服务器,以使所述新的主副本服务器执行数据一致性更新流程。
上述提供的数据一致性的处理方法,通过中心管理服务器根据所存储的数据的标记版本和当前每个从副本服务器上存储的数据副本的版本,从当前从副本服务器中确定第一副本服务器,从而确定该第一副本服务器为新的主副本服务器,以使所述新的主副本服务器基于该标记版本执行数据一致性更新流程。本申请实施例的方法,通过在中心管理服务器上存储标记版本,当主副本服务器宕机时,中心管理服务器可以基于当前存储的标记版本,准确的选择新的主副本服务器,当分布式存储系统的副本服务器的总数为2N+1 时,即使主副本服务器以及其他2N-1个从副本服务器全部宕机,中心管理服务器也可以基于标记版本准确的选择出新的主副本服务器,从而基于该新的主副本服务器进行数据恢复以及后续的数据更新,其大大提高了分布式存储系统的故障容忍能力。
作为一种可实现的方式,所述中心管理服务器确定所述第一副本服务器为新的主副本服务器,以使所述新的主副本服务器执行数据一致性更新流程,具体包括:
所述中心管理服务器控制所述第一副本服务器发起版本升级流程,以获取第一版本;
所述中心管理服务器确定所述第一副本服务器为新的主副本服务器,并确定所述第一版本为新的标记版本,以使所述新的主副本服务器执行数据一致性更新流程。
作为一种可实现的方式,所述中心管理服务器根据所存储的数据的标记版本和当前每个从副本服务器上存储的数据副本的版本,从当前从副本服务器中确定第一副本服务器,具体包括:
所述中心管理服务器根据所述标记版本和当前每个从副本服务器上存储的数据副本的版本,确定有效数据副本集合;
所述中心管理服务器从所述有效数据副本集合中确定版本最高的数据副本;
所述中心管理服务器确定所述版本最高的数据副本所在的从副本服务器为所述第一副本服务器。
作为一种可实现的方式,所述中心管理服务器根据所述标记版本和当前每个从副本服务器上存储的数据副本的版本,确定有效数据副本集合,具体包括:
所述中心管理服务器根据每个从副本服务器上所存储的数据副本的版本,将版本大于或者等于所述标记版本的数据副本确定为有效数据副本;
所述中心管理服务器根据所述有效数据副本生成所述有效数据副本集合。
上述实现方式提供的数据一致性的处理方法,中心管理服务器将有效数据副本集合中版本最高的数据副本所在的从副本服务器作为第一副本服务器,从而确保了该第一副本服务器在进行版本升级过程中,能够准确的实现数据一致性的恢复,提高了数据恢复的准确性。
作为一种可实现的方式,所述中心管理服务器控制所述第一副本服务器发起版本升级流程,以获取第一版本,具体包括:
所述中心管理服务器控制所述第一副本服务器执行所述版本升级流程,以将所述第一副本服务器上的数据副本的版本更新为所述第一版本;
所述中心管理服务器控制所述第一副本服务器向其他存储有效数据副本的从副本服务器发起版本升级流程,以将所述存储有效数据副本的从副本服务器的数据副本的版本更新为所述第一版本;所述第一版本为用于排除在确定有效数据副本集合时,未被识别的与所述第一副本服务器的版本相同的从副本服务器被确定为新的主副本服务器的版本。
作为一种可实现的方式,所述中心管理服务器控制所述第一副本服务器向其他存储有效数据副本的从副本服务器发起版本升级流程,以将所述存储有效数据副本的从副本服务器的数据副本的版本更新为所述第一版本,具体包括:
所述中心管理服务器控制所述第一副本服务器向所述存储有效数据副本的从副本服务器发送版本升级请求,以使所述存储有效数据副本的从副本服务器根据所述版本升级请求校验当前能否升级为所述第一版本;所述版本升级请求携带所述第一副本服务器上的数据副本的版本、所述第一版本;
所述中心管理服务器在所述第一副本服务器接收到校验失败的结果时,控制所述第一副本服务器向校验失败的从副本服务器发起增量数据复制流程,以将所述校验失败的从副本服务器的数据副本的版本更新为所述第一副本服务器上的数据副本的版本;
所述中心管理服务器控制所述第一副本服务器再次向所述存储有效数据副本的从副本服务器发送所述版本升级请求,以将所述存储有效数据副本的从副本服务器的数据副本的版本更新为所述第一版本。
上述实现方式提供的数据一致性的处理方法,中心管理服务器通过控制第一副本服务器发起版本升级流程,可以有效的排除在第一副本服务器变更为新的主副本服务器的过程中,存在与第一副本服务器的版本相同但是因临时故障没有被发现、但在第一副本服务器完成变更之后又重新出现的从副本服务器,从而大大提高了后期数据恢复的准确率。
作为一种可实现的方式,所述中心管理服务器确定所述第一副本服务器为新的主副本服务器,并确定所述第一版本为新的标记版本,以使所述新的主副本服务器执行数据一致性更新流程,具体包括:
所述中心管理服务器确定所述第一副本服务器为新的主副本服务器,并确定所述第一版本为新的标记版本;
所述中心管理服务器接收客户端的位置请求信息,所述位置请求信息用于请求所述新的主副本服务器的信息;
所述中心管理器向所述客户端发送位置响应消息,以使所述客户端向所述新的主副本服务器发送数据更新请求,并使得所述新的主副本服务器执行数据一致性更新流程;所述位置响应消息中携带所述主副本服务器的信息。
作为一种可实现的方式,所述中心管理器向所述客户端发送位置响应消息,具体包括:
所述中心管理服务器根据所述第一版本,确定第一有效数据副本的个数;所述第一有效数据副本为版本大于或者等于所述第一版本的数据副本;
若所述第一有效数据副本的个数大于预设的安全阈值,则所述中心管理服务器确定所述新的主副本服务器当前能够提供数据一致性更新服务,并向所述客户端发送位置响应消息。
上述实现方式所提供的数据一致性的处理方法,在中心管理服务器接收到客户端的位置请求消息后,中心管理服务器通过根据所存储的第一版本,确定第一有效数据副本的个数大于预设的安全阈值时,向客户端发送位置响应消息,从而确保第一副本服务器作为新的主副本服务器能够安全执行数据一致性更新服务,避免造成数据丢失,提高了数据存储的安全性。
另一方面,本申请实施例提供一种数据一致性的处理方法,包括:
主副本服务器接收客户端发送的数据更新请求;
所述主副本服务器根据所述数据更新请求确定数据更新成功;
所述主副本服务器将所述主副本服务上的数据副本的当前版本上报给中心管理服务器,以使所述中心管理服务器在需要确定新的主副本服务器时,根据所述当前版本确定新的主副本服务器。
作为一种可实现的方式,若在数据更新时存在异常的从副本服务器,则所述方法还包括:
在所述异常的从副本服务器恢复时,所述主副本服务器向恢复后的从副本服务器发送增量数据复制请求,以使所述恢复后的从副本服务器根据所述增量数据复制请求将所述恢复后的从副本服务器上的数据副本的版本更新为所述当前版本;
所述主副本服务器将所述当前版本上报给所述中心管理服务器。
作为一种可实现的方式,若在数据更新时存在异常的从副本服务器,则所述方法还包括:
所述主副本服务器向所述中心管理服务器申请新的从副本服务器;
所述主副本服务器向所述新的从副本服务器发送全量数据复制请求,以使所述新的从副本服务器根据所述全量数据复制请求存储当前版本的数据副本;
所述主副本服务器将所述当前版本上报给所述中心管理服务器。
另一方面,本申请实施例提供一种数据一致性的处理装置,包括:
第一确定模块,用于根据所存储的数据的标记版本和当前每个从副本服务器上存储的数据副本的版本,从当前从副本服务器中确定第一副本服务器;其中,所述标记版本为所述主副本服务器上的数据副本的当前版本;
第二确定模块,用于确定所述第一副本服务器为新的主副本服务器,以使所述新的主副本服务器执行数据一致性更新流程。
上述所提供的数据一致性的处理装置,其有益效果可以参照上述各可实现方式中的数据一致性的处理方法所带来的有益效果,在此不再赘述。
另一方面,本申请实施例提供一种数据一致性的处理装置,包括:
接收模块,用于接收客户端发送的数据更新请求;
确定模块,用于根据所述数据更新请求确定数据更新成功;
发送模块,用于将所述主副本服务上的数据副本的当前版本上报给中心管理服务器,以使所述中心管理服务器在需要确定新的主副本服务器时,根据所述当前版本确定新的主副本服务器。
上述所提供的数据一致性的处理装置,其有益效果可以参照上述各可实现方式中的数据一致性的处理方法所带来的有益效果,在此不再赘述。
另一方面,本申请实施例提供一种数据一致性的处理设备,包括:处理器、存储器,所述处理器耦合至所述存储器;
所述处理器,用于根据所存储的数据的标记版本和当前每个从副本服务器上存储的数据副本的版本,从当前从副本服务器中确定第一副本服务器,并控制所述第一副本服务器发起版本升级流程;其中,所述标记版本为所述主副本服务器上的数据副本的当前版本;
所述处理器,还用于确定所述第一副本服务器为新的主副本服务器,以使所述新的主副本服务器执行数据一致性更新流程。
另一方面,本申请实施例提供一种数据一致性的处理设备,包括:接收器、发送器、处理器和存储器,所述接收器、所述发送器、所述存储器分别耦合至所述处理器;
所述接收器,用于接收客户端发送的数据更新请求;
所述处理器,用于根据所述数据更新请求确定数据更新成功;
所述发送器,用于将所述主副本服务上的数据副本的当前版本上报给中心管理服务器,以使所述中心管理服务器在需要确定新的主副本服务器时,根据所述当前版本确定新的主副本服务器。
在本申请中,通过中心管理服务器根据所存储的数据的标记版本和当前每个从副本服务器上存储的数据副本的版本,从当前从副本服务器中确定第一副本服务器,从而确定该第一副本服务器为新的主副本服务器,以使所述新的主副本服务器基于该标记版本执行数据一致性更新流程。本申请实施例的方法,通过在中心管理服务器上存储标记版本,当主副本服务器宕机时,中心管理服务器可以基于当前存储的标记版本,准确的选择新的主副本服务器,当分布式存储系统的副本服务器的总数为2N+1时,即使主副本服务器以及其他2N-1个从副本服务器全部宕机,中心管理服务器也可以基于标记版本准确的选择出新的主副本服务器,从而基于该新的主副本服务器进行数据恢复以及后续的数据更新,其大大提高了分布式存储系统的故障容忍能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的分布式存储系统一种可选的结构示意图;
图2为本申请一实施例提供的数据一致性更新流程实施例的示意图;
图3为本申请一实施例提供的数据一致性的处理方法的流程示意图;
图4为本申请一实施例提供的数据一致性的处理方法的流程示意图;
图5为本申请一实施例提供的数据一致性的处理方法的流程示意图;
图6为本申请一实施例提供的数据一致性的处理方法的流程示意图;
图7为本申请一实施例提供的数据一致性的处理方法的流程示意图;
图8为本申请一实施例提供的数据一致性的处理方法的流程示意图;
图9为本申请一实施例提供的数据一致性的处理方法的流程示意图;
图10为本申请一实施例提供的数据一致性的处理方法的流程示意图;
图11为本申请一实施例提供的数据一致性的处理方法的流程示意图;
图12为本申请一实施例提供的数据一致性的处理装置的结构示意图;
图13为本申请一实施例提供的数据一致性的处理装置的结构示意图;
图14为本申请一实施例提供的数据一致性的处理装置的结构示意图;
图15为本申请一实施例提供的数据一致性的处理装置的结构示意图;
图16为本申请一实施例提供的数据一致性的处理设备硬件结构示意图;
图17为本申请一实施例提供的数据一致性的处理设备硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
本发明提供的数据一致性的处理方法、装置和设备,可以适用于如图 1所示的分布式存储系统。如图1所示,该分布式存储系统可以包括客户端、中心管理服务器和副本服务器,该副本服务器可以包括一个主副本服务器和至少两个从副本服务器。
其中,客户端用于向用户提供读写接口,用户可以通过该客户端发起数据更新请求(例如写请求、增删请求等),客户端将该数据更新请求发送给主副本服务器,以完成相应的数据一致性更新流程;上述副本服务器,主要用于管理数据的本地副本,提供对所管理的数据副本的读写操作。
上述中心管理服务器为具有相同功能及信息的一组服务器,这组服务器之间可以构成主从关系,由主服务器对外提供服务,该中心管理服务器的主要功能可以包括:为数据分配副本服务器并选择其中之一为主副本服务器、管理分布式存储系统的元数据;其中,该元数据主要包括:数据的多个副本的描述信息(该描述信息例如可以是数据的版本等)、副本服务器的描述信息(该描述信息例如可以是副本服务器的存储容量大小、副本服务器的工作状态是否正常,副本服务器的IP地址等)、数据的副本与副本服务器的对应关系、以及数据的主副本的标识(存储主副本的副本服务器为主副本服务器)。需要说明的是,本申请实施例中的中心管理服务器上可以保存主副本服务器上的数据副本的当前版本,该主副本服务器上的数据副本的当前版本在中心管理服务器上被称为标记版本(CheckinVersion),该标记版本的作用在于:确定有效副本服务器,即副本服务器上数据副本的版本大于或者等于该Checkin Version时,则副本服务器上的副本为有效副本,该副本服务器为有效副本服务器;并且,在主副本服务器宕机时,根据该Checkin Version即可识别数据的有效副本,并从有效副本服务器中选择一个副本的版本最高的副本服务器作为新的主副本服务器,然后基于该新的主副本服务器进行数据恢复。
为了更清楚的说明本申请实施例所解决的技术问题,下面先将数据一致性更新流程进行详细说明,具体参见图2所示的本申请一实施例的数据一致性更新流程实施例的示意图,如图2所示,该流程具体可以包括如下步骤:
S101:客户端向主副本服务器发送数据更新请求,主副本服务器对该数据更新请求进行定序并分配新版本。
具体的,假设分布式存储系统中包括5个副本服务器,分别是副本服务器1、副本服务器2、副本服务器3、副本服务器4、副本服务器5,其中,副本服务器1为主副本服务器,其他的为从副本服务器。在初次将数据(设该数据的标识为001)的数据副本存储在这些副本服务器上时,这些副本服务器上的数据副本的版本均相同(初始版本设为V0)。客户端向主副本服务器发送数据更新请求,该数据更新请求可以是一个,也可以是多个,假设这里主副本服务器接收到的3个数据更新请求,分别是请求 A、请求B和请求C,当主副本服务器收到这三个数据更新请求后,为这三个更新请求定序,即设定这个更新请求的执行顺序,假设这里的执行顺序是请求A在前、请求B在中间、最后是请求C。同时,主副本服务器也会为这三个数据更新请求分别分配数据更新的版本(所分配的版本只是用来表明该数据副本当前被更新了,与之前的版本不同,并没有实际的含义)。假设主副本服务器为请求A分配的版本是V0-V1,其中,V0是起始版本,V1是新分配版本(方便起见,这里称为终止版本),主副本服务器为请求B分配的版本是V1-V2,V1是起始版本,V2是终止版本,主副本服务器为请求C分配的版本是V2-V3,V2是起始版本,V3是终止版本。接着,主副本服务器就会根据上述所设定的三个更新请求的执行顺序,处理这三个更新请求。
S102:主副本服务器同时向各从副本服务器发起数据更新请求,该数据更新请求包含数据副本的当前版本及新分配版本,对每个从副本服务器的请求处理设置有一个超时时间,当从副本服务器处理数据更新请求时间超时时,则确定该从副本服务器异常。
S103:从副本服务器收到数据更新请求后,对版本进行校验,当从副本服务器本地维护的数据副本的版本等于数据更新请求中的当前版本,且新分配版本大于当前版本时,才接收该数据更新请求和处理,并在完成处理后,更新本地维护的数据副本的版本为该数据更新请求中的新版本,然后响应主副本服务器。
S104:主副本服务器收到成功响应的个数大于或者等于预设阈值 时,确定该数据更新请求处理成功,当收到的成功响应的个数小于该预设阈值 时,则确定该数据更新请求处理失败。
具体的,继续按照上述所举的例子,主副本服务器会先将请求A发送给各个从副本服务器,同时,主副本服务器会根据请求A将自身的数据副本升级为V1。当从副本服务器接收到该请求A时,会执行相应的校验流程(该校验流程可以参见现有技术,在此不再赘述),在校验通过时,从副本服务器执行该请求A,将自身的数据副本升级为V1,并向主副本服务器返回成功处理的响应,当主副本服务器接收到的成功处理的响应大于预设阈值时,则主副本服务器确定该请求A处理成功。以此类推,对于请求B和请求C,执行同样的过程,以将主副本服务器和从副本服务器上的数据副本的版本更新为V3。
假设在处理请求C时,从副本服务器4和5出现网络故障或者其他原因的故障,无法将数据副本的版本从V2更新为V3,但从副本服务器2和 3均向主副本服务器返回了成功响应,主副本服务器确定接收到的成功响应的个数依然大于预设阈值,则主副本服务器确定请求C也处理成功。当从副本服务器5恢复正常或者接通网络,则可以基于当前的主副本服务器进行数据恢复,将自身的数据副本的版本从V2更新为V3,从而确定当前分布式存储系统的数据一致性。
但是,数据一致性更新过程中,当主副本服务器发生了故障,为了达到容错和高可用的目的,需要重新选举新的主副本服务器,从而基于新的主副本服务器进行数据恢复和更新。假设分布式存储系统中的副本服务器总数为2N+1,现有技术在选举新的主副本服务器时,其最多只能允许宕机的副本服务器个数为N个(即选举新的主副本服务器时,要满足大多数原则);若宕机的副本服务器个数超过N个,则现有技术无法准确选择出新的主副本服务器(例如会选择出数据副本是低版本的副本服务器),从而无法准确的实现数据副本的一致性。例如,副本服务器的总数为5,现有技术允许宕机的副本服务器的个数为2,如果宕机的副本服务器的个数大于2,则无法进行准确的数据恢复,继续参照上述的例子,假设主副本服务器1、从副本服务器2和3上的数据副本的版本均是V3,从副本服务器4和5由于故障或者宕机,在故障刚恢复时,由于还未来得及进行数据恢复,当前数据副本的版本是V2。如果此时主副本服务器1、从副本服务器2宕机,剩余的从副本服务器3、4和5仍然满足大多数原则,因此可以选择从副本服务器3作为新的主副本服务器,进行正确的数据恢复或者数据更新;但是,如果此时主副本服务器1、从副本服务器2和3全宕机 (即宕机的副本服务器的个数已经大于2),并且此时允许服务(即分布式存储系统仍然允许进行后续的数据更新),即当前的从副本服务器4和 5也参与到新的主副本服务器的选举中,则当前只能在从副本服务器4和 5中选择一个作为新的主副本服务器,进行数据恢复,明显的,从副本服务器4或5当前的数据副本的版本为V2,如果基于从副本服务器4或5 进行数据更新或者数据恢复,会造成数据丢失,因此,其无法进行准确的数据恢复。
综上所述,数据一致性更新过程中,假设分布式存储系统中的副本服务器总数为2N+1,当主副本服务器发生了故障,现有技术在选举新的主副本服务器时,其最多只能允许宕机的副本服务器个数为N个,若宕机的副本服务器个数超过N个,则现有技术无法准确选择出新的主副本服务器,从而无法准确的实现数据副本的一致性,因此,现有技术的数据一致性恢复方案,其故障容忍能力低。
故,本申请实施例提供的数据一致性的处理方法、装置和设备,旨在解决现有技术中在分布式存储系统需要更换主副本服务器(例如主副本服务器发生宕机或者其他异常情况),并且分布式存储系统需要进行数据恢复一致性时,故障容忍能力低的技术问题。
下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图3为本申请一实施例提供的数据一致性的处理方法的流程示意图。本实施例涉及的是主副本服务器将自身的数据副本的当前版本上报给中心管理服务器,中心管理服务器将该当前版本作为标记版本(Checkin Version),当分布式存储系统需要更换主副本服务器(例如主副本服务器发生故障或者当前的主副本服务器的使用期限到期)时,中心管理服务器可以基于所存储的标记版本,重新准确选择新的主副本服务器,以进行数据恢复的具体过程。如图3所示,该方法具体可以包括如下步骤:
S201:主副本服务器接收客户端发送的数据更新请求。
S202:主副本服务器根据所述数据更新请求确定数据更新成功。
具体的,该S201和S202所涉及的数据更新的过程,可以参照上述 S101至S104的具体描述,在此不再赘述。
S203:主副本服务器将所述主副本服务上的数据副本的当前版本上报给中心管理服务器。
具体的,当主副本服务器确定当前的数据更新请求处理成功之后,主副本服务器将主副本服务器上的数据副本的当前版本上报给中心管理服务器,以使中心管理服务器将该当前版本作为标记版本,该标记版本实际上是标识一个数据副本是有效数据副本的最小版本号,也是下述中心管理服务器选择新的主副本服务器时所基于的最小版本号,所选择的新的主副本服务器的数据副本的版本不能低于该标记版本。
S204:中心管理服务器根据所存储的数据的标记版本和当前每个从副本服务器上存储的数据副本的版本,从当前从副本服务器中确定第一副本服务器。
其中,所述标记版本为所述主副本服务器上的数据副本的当前版本。
具体的,分布式存储系统在确定新的主副本服务器时,往往基于下述至少一种情况:当客户端在对数据的读写过程中,主副本服务器无法接收或处理数据更新请求,则客户端确定当前主副本服务器的异常,并上报给中心管理服务器,或者,中心管理服务器可以周期性扫描发现当前的主副本服务器异常;或者,中心管理服务器确定当前的主副本服务器的使用期限到期或者当前的主副本服务器失效。当然,本申请实施例对分布式存储系统需要确定新的主副本服务器的情况并不做限制,上述几种情况仅是示例说明。
基于以上情况(下述以当前的主副本服务器宕机,需要确定新的主副本服务器的情况为例来说明),中心管理服务器可以根据所存储的数据的标记版本和当前每个从副本服务器上存储的数据副本的版本,从当前从副本服务器中确定第一副本服务器。可选的,中心管理服务器可以通过比较标记版本与每个从副本服务器上存储的数据副本的版本的大小来确定第一副本服务器,还可以通过标记版本与每个从副本服务器上存储的数据副本的版本之间的差值的大小来确定第一副本服务器,该第一副本服务器上的数据副本的版本可以是所有从副本服务器中版本最大的一个。
S205:中心管理服务器确定所述第一副本服务器为新的主副本服务器,以使所述新的主副本服务器执行数据一致性更新流程。
具体的,当中心管理服务器基于标记版本确定了第一副本服务器之后,中心管理服务器确定该第一副本服务器为新的主副本服务器,从而使得中心管理服务器可以指示该新的主副本服务器执行数据一致性更新流程。
由上述描述可知,本申请实施例中,在中心管理服务器上存储了标记版本之后,当主副本服务器宕机时,由于该标记版本是之前主副本服务器上副本的版本,因此基于该标记版本选择出的第一副本服务器不会出现低版本的情况,也就是说,基于该标记版本参与新的主副本服务器选举的均可以为版本等于或者高于该标记版本的从副本服务器,这样就确保了所选择的新的主副本服务器恢复数据的准确性。当分布式存储系统的副本服务器的总数为2N+1时,即使主副本服务器以及其他2N-1个从副本服务器全部宕机,中心管理服务器也可以基于该标记版本准确的选择出新的主副本服务器,从而基于该新的主副本服务器进行数据恢复以及后续的数据更新,避免选择出低版本的副本服务器,其大大提高了分布式存储系统的故障容忍能力。
本申请实施例提供的数据一致性的处理方法,通过中心管理服务器根据所存储的数据的标记版本和当前每个从副本服务器上存储的数据副本的版本,从当前从副本服务器中确定第一副本服务器,从而确定该第一副本服务器为新的主副本服务器,以使所述新的主副本服务器基于该标记版本执行数据一致性更新流程。本申请实施例的方法,通过在中心管理服务器上存储标记版本,当主副本服务器宕机时,中心管理服务器可以基于当前存储的标记版本,准确的选择新的主副本服务器,当分布式存储系统的副本服务器的总数为2N+1时,即使主副本服务器以及其他2N-1个从副本服务器全部宕机,中心管理服务器也可以基于标记版本准确的选择出新的主副本服务器,从而基于该新的主副本服务器进行数据恢复以及后续的数据更新,其大大提高了分布式存储系统的故障容忍能力。
可选的,上述S205具体可以包括:中心管理服务器控制所述第一副本服务器发起版本升级流程,以获取第一版本,从而确定所述第一副本服务器为新的主副本服务器,并确定所述第一版本为新的标记版本,以使所述新的主副本服务器执行数据一致性更新流程,该第一版本为用于排除在确定有效数据副本集合时,未被识别的与所述第一副本服务器的版本相同的从副本服务器被确定为新的主副本服务器的版本。
具体的,当中心管理服务器确定了第一副本服务器之后,中心管理服务器可以指示该第一副本服务器发起版本升级流程,以将第一副本服务器上当前的数据副本的版本更新为第一版本,以及将其他从副本服务器上的数据副本的版本更新为第一版本,之后中心管理服务器确定该第一副本服务器为新的主副本服务器,并确定该第一版本为新的标记版本,从而使得中心管理服务器可以指示该新的主副本服务器执行数据一致性更新流程。
需要说明的是,上述版本升级流程虽然用于获取第一版本,但是实际上对每个副本服务器上的数据副本并没有做更改(即没有实质的数据更新),这样做的目的是为了排除在确定有效数据副本集合时,未被识别的与第一副本服务器的版本相同的从副本服务器被确定为新的主副本服务器的可能性,即排除在从副本服务器变更为新的主副本服务器的过程中,存在与第一副本服务器的版本相同但是因临时故障没有被发现、但在第一副本服务器完成变更之后又重新出现的从副本服务器。如果不排除这些从副本服务器,当第一副本服务器作为新的主副本服务器已经参与正常的数据更新时,假设第一副本服务器和其他正常更新的从副本服务器均宕机,而之前的这些从副本服务器却恢复正常,则中心管理服务器就会根据之前所记录的标记版本从这些从副本服务器中再次选择新的主副本服务器,从而导致数据恢复错误以及数据丢失的情况发生。为了更清楚的说明该版本升级流程的作用,下述举一个简单的例子来说明:
假设分布式存储系统中包括主副本服务器1、从副本服务器2-5,主副本服务器1和从副本夫服务器2-4上的数据副本的版本均是V5,从副本服务器5因为故障的原因数据副本的版本为V2,中心管理服务器上的标记版本为V5。假设主副本服务器因为某些处理需求需要新增一些从副本服务器6、7、8,并且将从副本服务器6-8上的数据副本复制为V5版本的数据版本,但是在复制未完成时,假设主副本服务器1宕机,此时由于2-4 上的数据副本的版本均为V5,中心管理服务器任选一个从副本服务器2 作为第一副本服务器,但是该第一副本服务器2当前是无法获知678正在复制,假设第一副本服务器2作为新的主副本服务器已经正式参与数据更新过程,假设其已经将数据副本从V5经V6、V7直至更新至V8,如果此时第一副本服务器2、从副本服务器3和4全部宕机,从副本服务器6-8 数据复制完成,其数据副本的版本恢复成V5,则中心管理服务器此时就会在从副本服务器6-8中选择一个作为新的主副本服务器,从而将数据恢复成V5(正确的做法应该是将数据恢复成V8的版本),造成数据丢失。
因此,为了避免出现该问题,就需要排除上述从副本服务器6-8,故,本申请实施例在确定从副本服务器2为第一副本服务器之后,控制该第一副本服务器发起版本升级流程,以将第一副本服务器以及第一副本服务器所能获知的其他从副本服务器3和4上的数据副本的版本从V5升级到第一版本(假设为V6),从而将该V6上报给中心管理服务器作为新的标记版本。这样当第一副本服务器2正式参与后续的数据更新时,即使第一副本服务器2、从副本服务器3、4均宕机,而从副本服务器6-8数据副本复制完成(即从副本服务器6-8上的数据副本的版本为V5),中心管理服务器基于该新的标记版本V6也排除了在从副本服务器6-8中选择主副本服务器的可能,从而确保了所选择的新的主副本服务器的准确性,进而确保后续的数据恢复以及数据更新的一致性处理。
图4为本申请一实施例提供的数据一致性的处理方法的流程示意图。本实施例涉及的是中心管理服务器确定第一副本服务器的具体过程。在上述实施例的基础上,进一步地,如图4所示,上述S204具体包括:
S301:中心管理服务器根据所述标记版本和当前每个从副本服务器上存储的数据副本的版本,确定有效数据副本集合。
具体的,当中心管理服务器接收到主副本服务器上报的标记版本之后,中心管理服务器根据该标记版本和分布式存储系统中的每个从副本服务器上存储的数据副本的版本,确定一有效数据副本集合,该有效数据副本集合可以包括至少一个有效副本。可选的,当标记版本和分布式存储系统中的每个从副本服务器上存储的数据副本的版本均为具有一定规律的整数值或者数字序列时,中心管理服务器可以通过将标记版本和分布式存储系统中的每个从副本服务器上存储的数据副本的版本的大小,来确定有效数据副本集合,或者,还可以通过将标记版本和分布式存储系统中的每个从副本服务器上存储的数据副本的版本进行差值计算,通过差值的大小来确定有效数据副本集合。
可选的,中心管理服务器还可以通过图5所示的方法步骤来确定有效数据副本集合,如图5所示,该方法具体包括:
S401:中心管理服务器根据每个从副本服务器上所存储的数据副本的版本,将版本大于或者等于所述标记版本的数据副本确定为有效数据副本。
S402:中心管理服务器根据所述有效数据副本生成所述有效数据副本集合。
综上,中心管理服务器就可以获取到有效数据副本集合。
S302:中心管理服务器从所述有效数据副本集合中确定版本最高的数据副本。
S303:中心管理服务器确定所述版本最高的数据副本所在的从副本服务器为所述第一副本服务器。
综上所述,本申请实施例提供的数据一致性的处理方法,中心管理服务器将有效数据副本集合中版本最高的数据副本所在的从副本服务器作为第一副本服务器,从而确保了该第一副本服务器在进行版本升级过程中,能够准确的实现数据一致性的恢复,提高了数据恢复的准确性。
图6为本申请一实施例提供的数据一致性的处理方法的流程示意图。本实施例涉及的是中心管理服务器控制第一副本服务器发起版本升级流程,获取第一版本的具体过程。在上述实施例的基础上,进一步地,如图 6所示,上述S205具体可以包括如下步骤:
S501:中心管理服务器控制所述第一副本服务器执行所述版本升级流程,以将所述第一副本服务器上的数据副本的版本更新为所述第一版本。
具体的,当中心管理服务器确定出有效数据副本集合中的版本最高的数据副本所在的从副本服务器为第一副本服务器之后,中心管理服务器控制该第一副本服务器执行版本升级流程。可选的,可以是中心管理服务器指示第一副本服务器当前需要发起版本升级流程,然后第一副本服务器在接收到中心管理服务器的指示后,第一副本服务器执行版本升级,将自身当前的数据副本的版本更新为第一版本,可选的,该第一版本可以是第一副本服务器自主决定的版本,可选的,该第一版本可以是与第一副本服务器上的当前数据副本的版本相邻的一个版本。
S502:中心管理服务器控制所述第一副本服务器向其他存储有效数据副本的从副本服务器发起版本升级流程,以将所述存储有效数据副本的从副本服务器的数据副本的版本更新为所述第一版本。
S503:第一副本服务器将第一版本上报给中心管理服务器,以使中心管理服务器获取到该第一版本。
具体的,中心管理服务器不仅控制第一副本服务器执行版本升级流程,还控制第一副本服务器向其他存储有效数据副本的从副本服务器发起版本升级流程,从而使得存储有效数据副本的从副本服务器的数据副本的版本也更新为第一版本,该有效数据副本为版本大于中心管理服务器上当前存储的标记版本的数据副本。可选的,中心管理服务器控制第一副本服务器向其他存储有效数据副本的从副本服务器发起版本升级流程的具体过程,可以参见下述图7所示的实施例。如图7所示,该方法包括:
S601:中心管理服务器指示第一副本服务器向存储有效数据副本的从副本服务器发送版本升级请求。
该版本升级请求携带第一副本服务器上的当前数据副本的版本、所述第一版本。
可选的,该版本升级请求中携带的第一副本服务器上的当前数据副本的版本可以理解为from Version(版本升级请求的起始版本),上述版本升级请求中携带的第一版本可以理解为to Version(版本升级请求的终止版本)。
S602:第一副本服务器向存储有效数据副本的从副本服务器发送版本升级请求。
S603:存储有效数据副本的从副本服务器判断该版本升级请求中携带的第一副本服务器上的当前数据副本的版本是否与自身本地的数据副本的版本一致;若是,则执行S604,若否,则执行S606。
S604:存储有效数据副本的从副本服务器确定当前能够根据版本升级请求升级为第一版本,并执行该版本升级请求,将本地的数据副本的版本升级为第一版本。之后,执行S605。
S605:存储有效数据副本的从副本服务器向第一副本服务器返回处理成功的响应。
具体的,当上述存储有效数据副本的从副本服务器接收到第一副本服务器发送的版本升级请求之后,会根据该版本升级请求中携带的from Version和自身本地的数据副本的版本进行一致性比较,当二者一致时,该存储有效数据副本的从副本服务器确定校验成功,即确定当前能够根据版本升级请求升级为第一版本,从而执行该版本升级请求,将自身本地的数据副本的版本升级为版本升级请求中的to Version(即第一版本),并向第一副本服务器发送处理成功的响应。
S606:存储有效数据副本的从副本服务器确定当前无法根据版本升级请求升级为第一版本。执行S607-S612。
S607:存储有效数据副本的从副本服务器向第一副本服务器返回校验失败的结果。
S608:中心管理服务器在第一副本服务器接收到校验失败的结果时,控制第一副本服务器向校验失败的从副本服务器发起增量数据复制流程。
S609:第一副本服务器向上述校验失败的从副本服务器发送增量数据复制请求。
该增量数据复制请求中携带能够将校验失败的从副本服务器上的数据副本的版本升级为第一副本服务器上的当前数据副本的版本的中间版本信息。
S610:上述校验失败的从副本服务器根据该增量数据复制请求,将自身本地的数据副本的版本恢复成第一副本服务器上的当前数据副本的版本。
S611:上述校验失败的从副本服务器向第一副本服务器发送数据复制成功响应。
具体的,当存储有效数据副本的从副本服务器确定版本升级请求中携带的fromVersion和自身本地的数据副本的版本不一致时,该存储有效数据副本的从副本服务器确定校验失败,该存储有效数据副本的从副本服务器(下述均称为校验失败的从副本服务器)向第一副本服务器发送校验失败的结果,从而使得中心管理服务器控制第一副本服务器向上述校验失败的从副本服务器发送增量数据复制请求,以将该校验失败的从副本服务器上的数据副本的版本更新为与第一副本服务器的当前数据副本的版本一致,即更新为版本升级请求中的from Version。
S612:中心管理服务器控制第一副本服务器再次向所有存储有效数据副本的从副本服务器发送上述版本升级请求,以将上述存储有效数据副本的从副本服务器的数据副本的版本更新为第一版本。
具体的,当第一副本服务器接收到上述校验失败的从副本服务器返回的数据复制成功响应之后,中心管理服务器指示第一副本服务器再次向所有存储有效数据副本的从副本服务器发送上述版本升级请求,以将上述存储有效数据副本的从副本服务器的数据副本的版本更新为第一版本。当存储有效数据副本的从副本服务器上的数据副本均为第一版本之后,第一副本服务器向中心管理服务器上报该第一版本,以使中心管理服务器将该第一版本作为新的标记版本,并将该第一副本服务器是新的主副本服务器的信息保存在中心管理服务器上,从而使得客户端再次请求更新数据时,客户端可以从中心管理服务器上获取新的主副本服务器的信息,向该新的主副本服务器发送数据更新请求,以使得该新的主副本服务器可以执行后续的数据更新流程;同时,采用该版本升级流程,可以有效的排除在第一副本服务器变更为新的主副本服务器的过程中,存在与第一副本服务器的版本相同但是因临时故障没有被发现、但在第一副本服务器完成变更之后又重新出现的从副本服务器,从而大大提高了后期数据恢复的准确率。
另外,上述中心管理服务器没有处于数据更新的关键路径中,其可以承担协议的复杂性,所以中心管理服务器可以简化用户数据更新关键路径的一致性协议,有利于提高系统性能,且满足在不失数据一致性的情况下,容忍只要存在一个有效的数据副本服务器即能自动恢复数据,保证分布式存储系统的数据一致性。
本申请实施例提供的数据一致性的处理方法,中心管理服务器通过控制第一副本服务器发起版本升级流程,可以有效的排除在第一副本服务器变更为新的主副本服务器的过程中,存在与第一副本服务器的版本相同但是因临时故障没有被发现、但在第一副本服务器完成变更之后又重新出现的从副本服务器,从而大大提高了后期数据恢复的准确率。
图8为本申请一实施例提供的数据一致性的处理方法的流程示意图。本实施例涉及的是中心管理服务器确保第一副本服务器作为新的主副本服务器能够安全执行数据一致性更新服务,避免造成数据丢失的具体过程。在上述实施例的基础上,进一步地,如图8所示,上述S206具体可以包括如下步骤:
S701:中心管理服务器确定所述第一副本服务器为新的主副本服务器,并确定所述第一版本为新的标记版本。
S702:中心管理服务器接收客户端的位置请求信息,所述位置请求信息用于请求所述新的主副本服务器的信息。
S703:中心管理服务器根据所述第一版本,确定第一有效副本的个数,所述第一有效数据副本为版本大于或者等于所述第一版本的数据副本。
S704:若所述第一有效副本的个数大于预设的安全阈值,则中心管理服务器确定所述新的主副本服务器当前能够提供数据一致性更新服务,并向所述客户端发送位置响应消息,以使所述客户端向所述新的主副本服务器发送数据更新请求;所述位置响应消息中携带所述主副本服务器的信息。
具体的,当中心管理服务器接收到客户端发送的位置请求信息后,中心管理服务器可以根据当前存储的第一版本,确定分布式存储系统中当前的第一有效数据副本的个数,该第一有效数据副本为版本大于或者等于第一版本的数据副本。当中心管理服务器确定第一有效数据副本的个数大于预设的安全阈值时,则中心管理服务器可以确定上述新的主副本服务器 (即第一副本服务器)当前能够对外提供数据一致性更新服务,从而向客户端发送位置响应消息,以告知客户端新的主副本服务器的位置,从而使得客户端向该新的主副本服务器发送数据更新请求。
上述这样做的目的是在于避免存储的时候因副本服务器宕机造成数据丢失的风险,例如:假设中心管理服务器确定的第一有效数据副本的个数为0,小于上述预设的安全阈值,虽然可以基于该新的主副本服务器进行数据恢复,但是如果此时允许该新的主副本服务器提供服务的话,如果这个新的主副本服务器宕机,则就会造成数据永久性丢失,基于这种情况,中心管理服务器会考虑此时不让该新的主副本服务器对外提供服务。
本申请实施例提供的数据一致性的处理方法,在中心管理服务器接收到客户端的位置请求消息后,中心管理服务器通过根据所存储的第一版本,确定第一有效数据副本的个数大于预设的安全阈值时,向客户端发送位置响应消息,从而确保第一副本服务器作为新的主副本服务器能够安全执行数据一致性更新服务,避免造成数据丢失,提高了数据存储的安全性。
图9为本申请一实施例提供的数据一致性的处理方法的流程示意图。本实施例涉及的是在主副本服务器执行数据更新过程中,虽然主副本服务器根据数据更新请求确定数据更新成功,但是仍然存在少数的异常的从副本服务器的数据副本未更新成功,例如上述例子中的部分从副本服务器宕机或者网络断开等,主副本服务器的具体处理过程。如图9所示,在上述 S203之后,该方法包括:
S801:在所述异常的从副本服务器恢复时,主副本服务器向恢复后的从副本服务器发送增量数据复制请求,以使所述恢复后的从副本服务器根据所述增量数据复制请求将所述恢复后的从副本服务器上的数据副本的版本更新为主副本服务器上的当前版本。
S802:主副本服务器将所述当前版本再次上报给所述中心管理服务器。
具体的,主副本服务器为了处理从副本服务器的短暂异常情况,向异常刚恢复的从副本服务器发送增量数据复制请求,该增量数据复制请求中可以携带能够将该从副本服务器上的数据副本的版本升级为主副本服务器上的数据副本的当前版本的中间版本信息;当该刚恢复的从副本服务器接收到该增量数据复制请求之后,将自身本地的数据副本更新为与主副本服务器的数据副本的当前版本,并向主副本服务器返回增量复制成功的响应。主副本服务器在接收到该增量复制成功的响应之后,再次向中心管理服务器发送主副本服务器的数据副本的当前版本,以使中心管理服务器将该当前版本存储为标记版本。需要说明的是,主副本服务器将数据复制过程中的从副本服务器标记为无效状态,当主副本服务器将当前数据副本的当前版本再次持久化到中心管理服务器之后,主副本服务器会清除上述从副本服务器的无效状态标记,将其重新恢复为可服务的有效副本服务器。
图10为本申请一实施例提供的数据一致性的处理方法的流程示意图。本实施例涉及的是在主副本服务器执行数据更新过程中,虽然主副本服务器根据数据更新请求确定数据更新成功,但是仍然存在少数的异常的从副本服务器的数据副本未更新成功,例如上述例子中的部分从副本服务器宕机或者网络断开等,主副本服务器的另一具体处理过程。如图10所示,在上述S203之后,该方法包括:
S901:主副本服务器向所述中心管理服务器申请新的从副本服务器。
S902:主副本服务器向所述新的从副本服务器发送全量数据复制请求,以使所述新的从副本服务器根据所述全量数据复制请求存储主副本服务器上的当前版本的数据副本。
具体的,上述S901和S902的具体过程可以参见现有技术的描述,在此不再赘述。
S903:主副本服务器将所述当前版本上报给所述中心管理服务器。
当上述新的从副本服务器完成全量数据复制时,主副本服务器再次将主副本服务器上的数据副本的当前版本上报给中心管理服务器。
图11为本申请一实施例提供的数据一致性的处理方法的流程示意图。本实施例涉及的是整个数据更新过程中,如何准确的选择新的主副本服务器,以进行数据恢复和数据一致性更新的具体过程。如图11所示,该方法包括:
S1001:客户端向主副本服务器发送数据更新请求,主副本服务器对该数据更新请求进行定序并分配新版本。
S1002:主副本服务器同时向各从副本服务器发起数据更新请求。
该数据更新请求包含数据副本的当前版本及新分配版本,对每个从副本服务器的请求处理设置有一个超时时间,当从副本服务器处于数据更新请求时间超时时,则确定该从副本服务器异常。
S1003:从副本服务器收到数据更新请求后,对版本进行校验,当从副本服务器本地维护的数据副本的版本等于请求中的当前版本,且新分配版本大于当前版本时,才接收数据更新请求和处理,并在完成处理后,更新本地维护的数据副本的版本为请求中的新版本,然后响应主副本服务器。
S1004:主副本服务器收到成功响应的个数大于等于预设阈值 时,确定该数据更新请求处理成功。
当收到的成功响应的个数小于该预设阈值 时,则确定该数据更新请求处理失败。
S1005:当主副本服务器确定该数据更新请求处理成功时,主副本服务器将所述主副本服务上的数据副本的当前版本上报给中心管理服务器。然后,执行S1006,或者执行S1007和S1008。
S1006:若在数据更新过程中,分布式存储系统存在异常的从副本服务器,则在所述异常的从副本服务器恢复时,主副本服务器向恢复后的从副本服务器发送增量数据复制请求,以使所述恢复后的从副本服务器根据所述增量数据复制请求将所述恢复后的从副本服务器上的数据副本的版本更新为主副本服务器上的当前版本。之后,执行S1009。
S1007:主副本服务器向中心管理服务器申请新的从副本服务器。
S1008:主副本服务器向所述新的从副本服务器发送全量数据复制请求,以使所述新的从副本服务器根据所述全量数据复制请求存储主副本服务器上的当前版本的数据副本。之后,执行S1009。
S1009:主副本服务器将上述主副本服务器的当前版本上报给所述中心管理服务器。
S1010:在主副本服务器异常时,中心管理服务器将版本大于或者等于所述标记版本的数据副本确定为有效数据副本,并根据所述有效数据副本生成所述有效数据副本集合。
S1011:中心管理服务器从所述有效数据副本集合中确定版本最高的数据副本,并确定所述版本最高的数据副本所在的从副本服务器为所述第一副本服务器。
S1012:中心管理服务器控制所述第一副本服务器执行所述版本升级流程,以将所述第一副本服务器上的数据副本的版本更新为所述第一版本。
S1013:中心管理服务器控制所述第一副本服务器向其他存储有效数据副本的从副本服务器发起版本升级流程,以将所述存储有效数据副本的从副本服务器的数据副本的版本更新为所述第一版本。
S1014:第一副本服务器将第一版本上报给中心管理服务器,以使中心管理服务器获取到该第一版本。
S1015:中心管理服务器确定所述第一副本服务器为新的主副本服务器,并确定所述第一版本为新的标记版本。
S1016:中心管理服务器接收客户端的位置请求信息。
所述位置请求信息用于请求所述新的主副本服务器的信息。
S1017:中心管理服务器根据所述第一版本,确定第一有效副本的个数。
S1018:若所述第一有效副本的个数大于预设的安全阈值,则中心管理服务器确定所述新的主副本服务器当前能够提供数据一致性更新服务,并向所述客户端发送位置响应消息,以使所述客户端向所述新的主副本服务器发送数据更新请求。
所述位置响应消息中携带所述主副本服务器的信息。
上述S1001至S1018的具体过程,可以参见上述图2至图10所示的方法实施例的具体描述,其执行过程和有效效果类似,在此不再赘述。
以下将详细描述根据本申请的一个或多个实施例的数据一致性的处理装置。该数据一致性的处理装置可以被实现在中心管理服务器上,或者集成了中心管理服务器的系统上、或者集成在主副本服务器上。本领域技术人员可以理解,该数据一致性的处理装置均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。例如,下述实施例中的涉及确定功能、处理功能的模块或单元可以使用单片机、微控制器、微处理器等组件实现。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图12为本申请一实施例提供的数据一致性的处理装置的结构示意图。该处理装置可以集成在上述实施例中的中心管理服务器上,还可以为独立的中心管理服务器,可选的,该处理装置可以通过软件、或者软硬集合的方式实现。如图12所示,该数据一致性的处理装置可以包括:第一确定模块11和第二确定模块12。
具体的,第一确定模块11,用于根据所存储的数据的标记版本和当前每个从副本服务器上存储的数据副本的版本,从当前从副本服务器中确定第一副本服务器;其中,所述标记版本为所述主副本服务器上的数据副本的当前版本;
第二确定模块12,用于确定所述第一副本服务器为新的主副本服务器,以使所述新的主副本服务器执行数据一致性更新流程。
本申请实施例提供的数据一致性的处理装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
图13为本申请一实施例提供的数据一致性的处理装置的结构示意图。在上述图12所示实施例的基础上,进一步地,上述第二确定模块12,具体包括版本升级单元121和处理单元122;
具体的,版本升级单元121,用于控制所述第一副本服务器发起版本升级流程,以获取第一版本;
处理单元122,用于确定所述第一副本服务器为新的主副本服务器,并确定所述第一版本为新的标记版本,以使所述新的主副本服务器执行数据一致性更新流程。
继续参见图13所示,上述第一确定模块11,具体包括:第一确定单元 111、第二确定单元112和第三确定单元113;其中,第一确定单元111,用于根据所述标记版本和当前每个从副本服务器上存储的数据副本的版本,确定有效数据副本集合;第二确定单元112,用于从所述有效数据副本集合中确定版本最高的数据副本;第三确定单元113,用于确定所述版本最高的数据副本所在的从副本服务器为所述第一副本服务器。进一步地,该第一确定单元111,具体用于根据每个从副本服务器上所存储的数据副本的版本,将版本大于或者等于所述标记版本的数据副本确定为有效数据副本,并根据所述有效数据副本生成所述有效数据副本集合。
更进一步地,上述版本升级单元121,具体用于控制所述第一副本服务器执行所述版本升级流程,以将所述第一副本服务器上的数据副本的版本更新为所述第一版本;以及,控制所述第一副本服务器向其他存储有效数据副本的从副本服务器发起版本升级流程,以将所述存储有效数据副本的从副本服务器的数据副本的版本更新为所述第一版本;所述第一版本为用于排除在确定有效数据副本集合时,未被识别的与所述第一副本服务器的版本相同的从副本服务器被确定为新的主副本服务器的版本。
可选的,继续参见上述图13所示,该版本升级单元121可以包括第一控制子单元131、第二控制子单元132和第三控制子单元133;
第一控制子单元131,用于控制所述第一副本服务器向所述存储有效数据副本的从副本服务器发送版本升级请求,以使所述存储有效数据副本的从副本服务器根据所述版本升级请求校验当前能否升级为所述第一版本;所述版本升级请求携带所述第一副本服务器上的数据副本的版本、所述第一版本;
第二控制子单元132,用于在所述第一副本服务器接收到校验失败的结果时,控制所述第一副本服务器向校验失败的从副本服务器发起增量数据复制流程,以将所述校验失败的从副本服务器的数据副本的版本更新为所述第一副本服务器上的数据副本的版本;
第三控制子单元133,用于控制所述第一副本服务器再次向所述存储有效数据副本的从副本服务器发送所述版本升级请求,以将所述存储有效数据副本的从副本服务器的数据副本的版本更新为所述第一版本。
本申请实施例提供的数据一致性的处理装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
图14为本申请一实施例提供的数据一致性的处理装置的结构示意图。在上述图13所示实施例的基础上,上述所述处理单元122,具体包括:
确定子单元141,用于确定所述第一副本服务器为新的主副本服务器,并确定所述第一版本为新的标记版本;
接收子单元142,用于接收客户端的位置请求信息,所述位置请求信息用于请求所述新的主副本服务器的信息;
发送子单元143,用于向所述客户端发送位置响应消息,以使所述客户端向所述新的主副本服务器发送数据更新请求,并使得所述新的主副本服务器执行数据一致性更新流程;所述位置响应消息中携带所述主副本服务器的信息。
进一步地,该处理单元122具体用于根据所述第一版本,确定第一有效数据副本的个数,并在所述第一有效数据副本的个数大于预设的安全阈值时,确定所述新的主副本服务器当前能够提供数据一致性更新服务,并指示所述发送子单元143向所述客户端发送位置响应消息,其中,所述第一有效数据副本为版本大于或者等于所述第一版本的数据副本。
本申请实施例提供的数据一致性的处理装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
图15为本申请一实施例提供的数据一致性的处理装置的结构示意图。该处理装置可以集成在上述实施例中的主副本服务器上,还可以为独立的主副本服务器,可选的,该处理装置可以通过软件、或者软硬集合的方式实现。如图15所示,该数据一致性的处理装置可以包括接收模块20、确定模块21和发送模块22。
具体的,接收模块20,用于接收客户端发送的数据更新请求;
确定模块21,用于根据所述数据更新请求确定数据更新成功;
发送模块22,用于将所述主副本服务上的数据副本的当前版本上报给中心管理服务器,以使所述中心管理服务器在需要确定新的主副本服务器时,根据所述当前版本确定新的主副本服务器。
可选的,若在数据更新时存在异常的从副本服务器,所述发送模块22,还用于在在所述异常的从副本服务器恢复时,向恢复后的从副本服务器发送增量数据复制请求,以使所述恢复后的从副本服务器根据所述增量数据复制请求将所述恢复后的从副本服务器上的数据副本的版本更新为所述当前版本;以及,将所述当前版本上报给所述中心管理服务器。
可选的,若在数据更新时存在异常的从副本服务器;所述发送模块22,还用于向所述中心管理服务器申请新的从副本服务器,并向所述新的从副本服务器发送全量数据复制请求,以使所述新的从副本服务器根据所述全量数据复制请求存储所述当前版本的数据副本;以及,将所述当前版本上报给所述中心管理服务器。
本申请实施例提供的数据一致性的处理装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
图16为本申请一实施例提供的数据一致性的处理设备硬件结构示意图。如图16所示,该数据一致性的处理设备可以包括处理器30、存储器31和至少一个通信总线32。通信总线32用于实现元件之间的通信连接。存储器31 可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,存储器31中可以存储各种程序,用于完成各种处理功能以及实现本实施例的方法步骤。
可选的,上述处理器30例如可以为中央处理器(Central Processing Unit,简称CPU)、应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现。
可选的,上述数据一致性的处理设备还可以包括接收器33和发送器34,该接收器33和发送器34可以共同集成在上述数据一致性的处理设备中,可选的,其可以为一收发信机,还可以是面向设备的设备输入输出接口中的至少一个。
在本申请实施例中,所述处理器30,用于根据所存储的数据的标记版本和当前每个从副本服务器上存储的数据副本的版本,从当前从副本服务器中确定第一副本服务器,并控制所述第一副本服务器发起版本升级流程;其中,所述标记版本为所述主副本服务器上的数据副本的当前版本;
所述处理器30,还用于确定所述第一副本服务器为新的主副本服务器,以使所述新的主副本服务器执行数据一致性更新流程。
可选的,所述处理器30,具体用于控制所述第一副本服务器发起版本升级流程,以获取第一版本,并确定所述第一副本服务器为新的主副本服务器和确定所述第一版本为新的标记版本,以使所述新的主副本服务器执行数据一致性更新流程。
可选的,在确定第一副本服务器时,所述处理器30,具体用于根据所述标记版本和当前每个从副本服务器上存储的数据副本的版本,确定有效数据副本集合,并从所述有效数据副本集合中确定版本最高的数据副本,然后确定所述版本最高的数据副本所在的从副本服务器为所述第一副本服务器。
可选的,在确定有效数据副本集合时,所述处理器30,具体用于根据每个从副本服务器上所存储的数据副本的版本,将版本大于或者等于所述标记版本的数据副本确定为有效数据副本,进而根据所述有效数据副本生成所述有效数据副本集合。
可选的,在获取第一版本时,所述处理器30,具体用于控制所述第一副本服务器执行所述版本升级流程,以将所述第一副本服务器上的数据副本的版本更新为所述第一版本;并控制所述第一副本服务器向其他存储有效数据副本的从副本服务器发起版本升级流程,以将所述存储有效数据副本的从副本服务器的数据副本的版本更新为所述第一版本;其中,所述第一版本为用于排除在确定有效数据副本集合时,未被识别的与所述第一副本服务器的版本相同的从副本服务器被确定为新的主副本服务器的版本。
进一步地,所述处理器30,具体用于控制所述第一副本服务器向所述存储有效数据副本的从副本服务器发送版本升级请求,以使所述存储有效数据副本的从副本服务器根据所述版本升级请求校验当前能否升级为所述第一版本;所述版本升级请求携带所述第一副本服务器上的数据副本的版本、所述第一版本;以及,在所述第一副本服务器接收到校验失败的结果时,控制所述第一副本服务器向校验失败的从副本服务器发起增量数据复制流程,以将所述校验失败的从副本服务器的数据副本的版本更新为所述第一副本服务器上的数据副本的版本;以及,控制所述第一副本服务器再次向所述存储有效数据副本的从副本服务器发送所述版本升级请求,以将所述存储有效数据副本的从副本服务器的数据副本的版本更新为所述第一版本。
可选的,所述处理器30,具体用于确定所述第一副本服务器为新的主副本服务器,并确定所述第一版本为新的标记版本,并通过接收器33接收客户端的位置请求信息,然后通过发送器34向所述客户端发送位置响应消息,以使所述客户端向所述新的主副本服务器发送数据更新请求,并使得所述新的主副本服务器执行数据一致性更新流程;所述位置响应消息中携带所述主副本服务器的信息;所述位置请求信息用于请求所述新的主副本服务器的信息。
可选的,上述处理器30,还可以用于根据所述第一版本,确定第一有效数据副本的个数;所述第一有效数据副本为版本大于或者等于所述第一版本的数据副本,并在所述第一有效数据副本的个数大于预设的安全阈值时,确定所述新的主副本服务器当前能够提供数据一致性更新服务,并指示所述发送器34向所述客户端发送位置响应消息。
本申请实施例提供的数据一致性的处理设备,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
图17为本申请一实施例提供的数据一致性的处理设备硬件结构示意图。如图17所示,该数据一致性的处理设备可以包括接收器40、处理器41、存储器42和至少一个通信总线43、发送器44。通信总线43用于实现元件之间的通信连接。存储器42可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,存储器42中可以存储各种程序,用于完成各种处理功能以及实现本实施例的方法步骤。
可选的,上述处理器41例如可以为中央处理器(Central Processing Unit,简称CPU)、应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现。
可选的,上述接收器40和发送器44可以为独立的硬件设备,还可以共同集成在上述数据一致性的处理设备中,可选的,其可以为一收发信机,还可以是面向设备的设备输入输出接口中的至少一个。
在本申请实施例中,所述接收器40,用于接收客户端发送的数据更新请求;
所述处理器41,用于根据所述数据更新请求确定数据更新成功;
所述发送器44,用于将所述主副本服务上的数据副本的当前版本上报给中心管理服务器,以使所述中心管理服务器在需要确定新的主副本服务器时,根据所述当前版本确定新的主副本服务器。
本申请实施例提供的数据一致性的处理设备,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。
一种计算机/处理器可读存储介质,所述存储介质中存储有程序指令,所述程序指令用于使所述计算机/处理器执行:
根据所存储的数据的标记版本和当前每个从副本服务器上存储的数据副本的版本,从当前从副本服务器中确定第一副本服务器;其中,所述标记版本为所述主副本服务器上的数据副本的当前版本;
确定所述第一副本服务器为新的主副本服务器,以使所述新的主副本服务器执行数据一致性更新流程。
上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器 (PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (21)

1.一种数据一致性的处理方法,其特征在于,包括:
中心管理服务器根据所存储的数据的标记版本和当前每个从副本服务器上存储的数据副本的版本,从当前从副本服务器中确定第一副本服务器;其中,所述标记版本为主副本服务器上的数据副本的当前版本;
所述中心管理服务器控制所述第一副本服务器执行版本升级流程,以将所述第一副本服务器上的数据副本的版本更新为第一版本;
所述中心管理服务器控制所述第一副本服务器向其他存储有效数据副本的从副本服务器发起版本升级流程,以将所述存储有效数据副本的从副本服务器的数据副本的版本更新为所述第一版本;所述第一版本为用于排除在确定有效数据副本集合时,未被识别的与所述第一副本服务器的版本相同的从副本服务器被确定为新的主副本服务器的版本;
所述中心管理服务器确定所述第一副本服务器为新的主副本服务器,并确定所述第一版本为新的标记版本,以使所述新的主副本服务器执行数据一致性更新流程。
2.根据权利要求1所述的方法,其特征在于,所述中心管理服务器根据所存储的数据的标记版本和当前每个从副本服务器上存储的数据副本的版本,从当前从副本服务器中确定第一副本服务器,具体包括:
所述中心管理服务器根据所述标记版本和当前每个从副本服务器上存储的数据副本的版本,确定有效数据副本集合;
所述中心管理服务器从所述有效数据副本集合中确定版本最高的数据副本;
所述中心管理服务器确定所述版本最高的数据副本所在的从副本服务器为所述第一副本服务器。
3.根据权利要求2所述的方法,其特征在于,所述中心管理服务器根据所述标记版本和当前每个从副本服务器上存储的数据副本的版本,确定有效数据副本集合,具体包括:
所述中心管理服务器根据每个从副本服务器上所存储的数据副本的版本,将版本大于或者等于所述标记版本的数据副本确定为有效数据副本;
所述中心管理服务器根据所述有效数据副本生成所述有效数据副本集合。
4.根据权利要求3所述的方法,其特征在于,所述中心管理服务器控制所述第一副本服务器向其他存储有效数据副本的从副本服务器发起版本升级流程,以将所述存储有效数据副本的从副本服务器的数据副本的版本更新为所述第一版本,具体包括:
所述中心管理服务器控制所述第一副本服务器向所述存储有效数据副本的从副本服务器发送版本升级请求,以使所述存储有效数据副本的从副本服务器根据所述版本升级请求校验当前能否升级为所述第一版本;所述版本升级请求携带所述第一副本服务器上的数据副本的版本、所述第一版本;
所述中心管理服务器在所述第一副本服务器接收到校验失败的结果时,控制所述第一副本服务器向校验失败的从副本服务器发起增量数据复制流程,以将所述校验失败的从副本服务器的数据副本的版本更新为所述第一副本服务器上的数据副本的版本;
所述中心管理服务器控制所述第一副本服务器再次向所述存储有效数据副本的从副本服务器发送所述版本升级请求,以将所述存储有效数据副本的从副本服务器的数据副本的版本更新为所述第一版本。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述中心管理服务器确定所述第一副本服务器为新的主副本服务器,并确定所述第一版本为新的标记版本,以使所述新的主副本服务器执行数据一致性更新流程,具体包括:
所述中心管理服务器确定所述第一副本服务器为新的主副本服务器,并确定所述第一版本为新的标记版本;
所述中心管理服务器接收客户端的位置请求信息,所述位置请求信息用于请求所述新的主副本服务器的信息;
所述中心管理器向所述客户端发送位置响应消息,以使所述客户端向所述新的主副本服务器发送数据更新请求,并使得所述新的主副本服务器执行数据一致性更新流程;所述位置响应消息中携带所述主副本服务器的信息。
6.根据权利要求5所述的方法,其特征在于,所述中心管理器向所述客户端发送位置响应消息,具体包括:
所述中心管理服务器根据所述第一版本,确定第一有效数据副本的个数;所述第一有效数据副本为版本大于或者等于所述第一版本的数据副本;
若所述第一有效数据副本的个数大于预设的安全阈值,则所述中心管理服务器确定所述新的主副本服务器当前能够提供数据一致性更新服务,并向所述客户端发送位置响应消息。
7.一种数据一致性的处理方法,其特征在于,包括:
主副本服务器接收客户端发送的数据更新请求;
所述主副本服务器根据所述数据更新请求确定数据更新成功;
所述主副本服务器将所述主副本服务器上的数据副本的当前版本上报给中心管理服务器,以使所述中心管理服务器将所述当前版本作为标记版本;
所述中心管理服务器用于:根据所述标记版本和当前每个从副本服务器上存储的数据副本的版本,从当前从副本服务器中确定第一副本服务器,控制所述第一副本服务器执行版本升级流程,以将所述第一副本服务器上的数据副本的版本更新为第一版本;控制所述第一副本服务器向其他存储有效数据副本的从副本服务器发起版本升级流程,以将所述存储有效数据副本的从副本服务器的数据副本的版本更新为所述第一版本;所述第一版本为用于排除在确定有效数据副本集合时,未被识别的与所述第一副本服务器的版本相同的从副本服务器被确定为新的主副本服务器的版本;确定所述第一副本服务器为新的主副本服务器,并确定所述第一版本为新的标记版本,以使所述新的主副本服务器执行数据一致性更新流程。
8.根据权利要求7所述的方法,其特征在于,若在数据更新时存在异常的从副本服务器,则所述方法还包括:
在所述异常的从副本服务器恢复时,所述主副本服务器向恢复后的从副本服务器发送增量数据复制请求,以使所述恢复后的从副本服务器根据所述增量数据复制请求将所述恢复后的从副本服务器上的数据副本的版本更新为所述当前版本;
所述主副本服务器将所述当前版本上报给所述中心管理服务器。
9.根据权利要求7所述的方法,其特征在于,若在数据更新时存在异常的从副本服务器,则所述方法还包括:
所述主副本服务器向所述中心管理服务器申请新的从副本服务器;
所述主副本服务器向所述新的从副本服务器发送全量数据复制请求,以使所述新的从副本服务器根据所述全量数据复制请求存储当前版本的数据副本;
所述主副本服务器将所述当前版本上报给所述中心管理服务器。
10.一种数据一致性的处理装置,其特征在于,包括:
第一确定模块,用于根据所存储的数据的标记版本和当前每个从副本服务器上存储的数据副本的版本,从当前从副本服务器中确定第一副本服务器;其中,所述标记版本为主副本服务器上的数据副本的当前版本;
第二确定模块,包括:版本升级单元,用于控制所述第一副本服务器执行版本升级流程,以将所述第一副本服务器上的数据副本的版本更新为第一版本;以及,控制所述第一副本服务器向其他存储有效数据副本的从副本服务器发起版本升级流程,以将所述存储有效数据副本的从副本服务器的数据副本的版本更新为所述第一版本;所述第一版本为用于排除在确定有效数据副本集合时,未被识别的与所述第一副本服务器的版本相同的从副本服务器被确定为新的主副本服务器的版本;
处理单元,用于确定所述第一副本服务器为新的主副本服务器,并确定所述第一版本为新的标记版本,以使所述新的主副本服务器执行数据一致性更新流程。
11.根据权利要求10所述的装置,其特征在于,所述第一确定模块,具体包括:
第一确定单元,用于根据所述标记版本和当前每个从副本服务器上存储的数据副本的版本,确定有效数据副本集合;
第二确定单元,用于从所述有效数据副本集合中确定版本最高的数据副本;
第三确定单元,用于确定所述版本最高的数据副本所在的从副本服务器为所述第一副本服务器。
12.根据权利要求11所述的装置,其特征在于,所述第一确定单元,具体用于根据每个从副本服务器上所存储的数据副本的版本,将版本大于或者等于所述标记版本的数据副本确定为有效数据副本,并根据所述有效数据副本生成所述有效数据副本集合。
13.根据权利要求12所述的装置,其特征在于,所述版本升级单元,具体包括:
第一控制子单元,用于控制所述第一副本服务器向所述存储有效数据副本的从副本服务器发送版本升级请求,以使所述存储有效数据副本的从副本服务器根据所述版本升级请求校验当前能否升级为所述第一版本;所述版本升级请求携带所述第一副本服务器上的数据副本的版本、所述第一版本;
第二控制子单元,用于在所述第一副本服务器接收到校验失败的结果时,控制所述第一副本服务器向校验失败的从副本服务器发起增量数据复制流程,以将所述校验失败的从副本服务器的数据副本的版本更新为所述第一副本服务器上的数据副本的版本;
第三控制子单元,用于控制所述第一副本服务器再次向所述存储有效数据副本的从副本服务器发送所述版本升级请求,以将所述存储有效数据副本的从副本服务器的数据副本的版本更新为所述第一版本。
14.根据权利要求10-13任一项所述的装置,其特征在于,所述处理单元,具体包括:
确定子单元,用于确定所述第一副本服务器为新的主副本服务器,并确定所述第一版本为新的标记版本;
接收子单元,用于接收客户端的位置请求信息,所述位置请求信息用于请求所述新的主副本服务器的信息;
发送子单元,用于向所述客户端发送位置响应消息,以使所述客户端向所述新的主副本服务器发送数据更新请求,并使得所述新的主副本服务器执行数据一致性更新流程;所述位置响应消息中携带所述主副本服务器的信息。
15.根据权利要求14所述的装置,其特征在于,所述处理单元,具体用于根据所述第一版本,确定第一有效数据副本的个数,并在所述第一有效数据副本的个数大于预设的安全阈值时,确定所述新的主副本服务器当前能够提供数据一致性更新服务,并指示所述发送子单元向所述客户端发送位置响应消息,其中,所述第一有效数据副本为版本大于或者等于所述第一版本的数据副本。
16.一种数据一致性的处理装置,其特征在于,包括:
接收模块,用于接收客户端发送的数据更新请求;
确定模块,用于根据所述数据更新请求确定数据更新成功;
发送模块,用于将主副本服务器上的数据副本的当前版本上报给中心管理服务器,以使所述中心管理服务器将所述当前版本作为标记版本;
所述中心管理服务器用于:根据所述标记版本和当前每个从副本服务器上存储的数据副本的版本,从当前从副本服务器中确定第一副本服务器,控制所述第一副本服务器执行版本升级流程,以将所述第一副本服务器上的数据副本的版本更新为第一版本;控制所述第一副本服务器向其他存储有效数据副本的从副本服务器发起版本升级流程,以将所述存储有效数据副本的从副本服务器的数据副本的版本更新为所述第一版本;所述第一版本为用于排除在确定有效数据副本集合时,未被识别的与所述第一副本服务器的版本相同的从副本服务器被确定为新的主副本服务器的版本;确定所述第一副本服务器为新的主副本服务器,并确定所述第一版本为新的标记版本,以使所述新的主副本服务器执行数据一致性更新流程。
17.根据权利要求16所述的装置,其特征在于,若在数据更新时存在异常的从副本服务器,所述发送模块,还用于在所述异常的从副本服务器恢复时,向恢复后的从副本服务器发送增量数据复制请求,以使所述恢复后的从副本服务器根据所述增量数据复制请求将所述恢复后的从副本服务器上的数据副本的版本更新为所述当前版本;以及,将所述当前版本上报给所述中心管理服务器。
18.根据权利要求16所述的装置,其特征在于,若在数据更新时存在异常的从副本服务器;
所述发送模块,还用于向所述中心管理服务器申请新的从副本服务器,并向所述新的从副本服务器发送全量数据复制请求,以使所述新的从副本服务器根据所述全量数据复制请求存储所述当前版本的数据副本;以及,将所述当前版本上报给所述中心管理服务器。
19.一种数据一致性的处理设备,其特征在于,包括:处理器、存储器,所述处理器耦合至所述存储器;
所述处理器,用于根据所存储的数据的标记版本和当前每个从副本服务器上存储的数据副本的版本,从当前从副本服务器中确定第一副本服务器,并控制所述第一副本服务器发起版本升级流程;其中,所述标记版本为主副本服务器上的数据副本的当前版本;
控制所述第一副本服务器执行版本升级流程,以将所述第一副本服务器上的数据副本的版本更新为第一版本;
中心管理服务器控制所述第一副本服务器向其他存储有效数据副本的从副本服务器发起版本升级流程,以将所述存储有效数据副本的从副本服务器的数据副本的版本更新为所述第一版本;所述第一版本为用于排除在确定有效数据副本集合时,未被识别的与所述第一副本服务器的版本相同的从副本服务器被确定为新的主副本服务器的版本;
所述处理器,还用于确定所述第一副本服务器为新的主副本服务器,并确定所述第一版本为新的标记版本,以使所述新的主副本服务器执行数据一致性更新流程。
20.根据权利要求19所述的设备,其特征在于,所述处理器,还用于执行上述权利要求2至权利要求6任一项所述的方法。
21.一种数据一致性的处理设备,其特征在于,包括:接收器、发送器、处理器和存储器,所述接收器、所述发送器、所述存储器分别耦合至所述处理器;
所述接收器,用于接收客户端发送的数据更新请求;
所述处理器,用于根据所述数据更新请求确定数据更新成功;
所述发送器,用于将主副本服务器上的数据副本的当前版本上报给中心管理服务器,以使所述中心管理服务器将所述当前版本作为标记版本;
所述中心管理服务器用于:根据所述标记版本和当前每个从副本服务器上存储的数据副本的版本,从当前从副本服务器中确定第一副本服务器,控制所述第一副本服务器执行版本升级流程,以将所述第一副本服务器上的数据副本的版本更新为第一版本;控制所述第一副本服务器向其他存储有效数据副本的从副本服务器发起版本升级流程,以将所述存储有效数据副本的从副本服务器的数据副本的版本更新为所述第一版本;所述第一版本为用于排除在确定有效数据副本集合时,未被识别的与所述第一副本服务器的版本相同的从副本服务器被确定为新的主副本服务器的版本;确定所述第一副本服务器为新的主副本服务器,并确定所述第一版本为新的标记版本,以使所述新的主副本服务器执行数据一致性更新流程。
CN201610814281.3A 2016-09-09 2016-09-09 数据一致性的处理方法、装置和设备 Active CN107809326B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610814281.3A CN107809326B (zh) 2016-09-09 2016-09-09 数据一致性的处理方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610814281.3A CN107809326B (zh) 2016-09-09 2016-09-09 数据一致性的处理方法、装置和设备

Publications (2)

Publication Number Publication Date
CN107809326A CN107809326A (zh) 2018-03-16
CN107809326B true CN107809326B (zh) 2021-07-06

Family

ID=61569631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610814281.3A Active CN107809326B (zh) 2016-09-09 2016-09-09 数据一致性的处理方法、装置和设备

Country Status (1)

Country Link
CN (1) CN107809326B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109347655B (zh) * 2018-09-11 2022-03-01 上海天旦网络科技发展有限公司 基于网络数据的故障恢复系统和方法及存储介质
CN109302399B (zh) * 2018-10-15 2021-09-21 视联动力信息技术股份有限公司 一种远程比对核心服务器版本的方法和系统
CN110109932B (zh) * 2019-03-25 2021-07-09 民生科技有限责任公司 一种确保分布式环境下主副本数据一致性的方法和系统
CN110765144B (zh) * 2019-10-11 2022-02-18 口碑(上海)信息技术有限公司 分布式异构数据库数据处理方法及装置
CN111258823A (zh) * 2020-01-17 2020-06-09 青梧桐有限责任公司 一种主从服务器的切换方法及系统
CN111309794A (zh) * 2020-01-17 2020-06-19 青梧桐有限责任公司 一种数据存储引擎
CN111708780B (zh) * 2020-06-17 2023-05-02 北京金山云网络技术有限公司 分布式表格系统与分片选主方法、装置、服务器及介质
CN112860708A (zh) * 2021-03-16 2021-05-28 深圳前海微众银行股份有限公司 数据一致性修复方法、系统、装置及设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7953778B2 (en) * 2008-05-20 2011-05-31 International Business Machines Corporation Efficient support of consistent cyclic search with read-copy update and parallel updates
CN101661408A (zh) * 2009-09-14 2010-03-03 四川川大智胜软件股份有限公司 一种分布式实时数据复制同步方法
US8868500B2 (en) * 2011-01-14 2014-10-21 Apple Inc. Data synchronization
EP2555129B1 (en) * 2011-08-03 2019-02-06 Amadeus S.A.S. Method and system to maintain strong consistency of distributed replicated contents in a client/server system
CN103530200B (zh) * 2012-07-04 2018-01-26 腾讯科技(深圳)有限公司 一种服务器热备份系统和方法
CN105516230B (zh) * 2014-10-15 2019-06-25 深圳市腾讯计算机系统有限公司 一种数据处理方法及装置

Also Published As

Publication number Publication date
CN107809326A (zh) 2018-03-16

Similar Documents

Publication Publication Date Title
CN107809326B (zh) 数据一致性的处理方法、装置和设备
ES2703901T3 (es) Sistema de archivo distribuido mediante nodos de consenso
CN107111457B (zh) 跨集群冗余配置中的非间断的控制器替换
JP6341543B2 (ja) 分散型記憶システム管理装置および方法
CN111258822B (zh) 数据处理方法、服务器和计算机可读存储介质
US9112887B2 (en) Mirroring solution in cloud storage environment
US8359493B2 (en) Mechanism to provide assured recovery for distributed application
US20070299955A1 (en) Data replication in a distributed system
EP3210367B1 (en) System and method for disaster recovery of cloud applications
US9734025B2 (en) Automatic client side seamless failover
US20130198739A1 (en) Validation of Business Continuity Preparedness of a Virtual Machine
EP2695083A2 (en) Cluster unique identifier
CN112955874A (zh) 在使用区块链的机器学习的去中心化模型构建中进行自修复的系统及方法
US11934670B2 (en) Performing various operations at the granularity of a consistency group within a cross-site storage solution
US10452502B2 (en) Handling node failure in multi-node data storage systems
CN110995481A (zh) 配置方法、服务器及计算机可读存储介质
CN111352943A (zh) 实现数据一致性的方法和装置、服务器和终端
CN106951443B (zh) 基于分布式系统的副本同步的方法、设备和系统
JP5900094B2 (ja) データ整合システム、データ整合方法およびデータ整合プログラム
WO2015196692A1 (zh) 一种云计算系统以及云计算系统的处理方法和装置
CN109165117B (zh) 数据处理的方法和系统
EP4195033A1 (en) Method and apparatus for upgrading blockchain system, and terminal device
CN108268210B (zh) 一种信息处理方法、计算节点及存储节点
CN106776142B (zh) 一种数据存储方法以及数据存储装置
CN112486932A (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