一种数据块更新方法及设备的制造方法

文档序号:10626986阅读:283来源:国知局
一种数据块更新方法及设备的制造方法
【专利摘要】本申请公开了一种数据块更新方法,当需要对数据块进行更新时,客户端对数据块的更新进行定序并分配版本,然后向存储系统中当前包含该数据块有效副本的所有副本服务器发送数据块更新请求,随后接收由正常副本服务器发送的响应消息,然后根据在预配置的超时时间内从正常副本服务器所接收到的响应消息的数量以及预设的配置阈值确认是否将数据块的版本修改为更新版本。从而在不增加副本服务器负载的前提下,保证了各个副本服务器中数据块的一致性。
【专利说明】
一种数据块更新方法及设备
技术领域
[0001]本申请涉及通信技术领域,特别涉及一种数据块更新方法。本申请同时还涉及一种数据块更新设备。
【背景技术】
[0002]在分布式存储系统中(如:分布式文件系统,分布式块存储系统)为了达到对磁盘,网络或服务器等故障的容错,提高系统可用性及性能等目的,会将数据块存储多个副本。如何管理系统中多数据副本的一致性,是系统实现容错性,高可用性及提高系统性能等目的的关键技术。
[0003]为了解决存储系统中多数据副本的一致性,现有的技术方案主要为:从多个副本服务器中选择一个作为主副本服务器。每次请求先由主副本服务器接收和处理,然后再转发至其他副本服务器处理,其他副本服务器处理完成后,然后由主副本服务器对请求进行响应。主副本服务器对该数据块的所有更新请求,统一定序并分配版本,各副本服务器对更新请求的版本进行校验,以此来保证数据更新的一致性。在主副本服务器发生宕机后,为了达到容错和高可用的目的,需要在多个副本服务器之间进行重新选举。在副本服务器总数为2N+1,且参与选举的副本服务器数大于N+1时,选择副本版本最高的服务器为主副本服务器。
[0004]在实现本申请的过程中,发明人发现现有技术至少存在以下技术问题:
[0005]I)每次请求先由主副本服务器接收和处理,然后再转发至其他副本服务器处理。在这个过程中,每次更新请求的处理流程增加了一次从主副本服务器向其他副本服务器转发请求的RPC (远程过程方法调用),会增加了一次网络传输延迟,也增加了主副本服务器的负载,导致主副本服务器会首先成为系统瓶颈。
[0006]2)为了实现主副本服务器宕机自动恢复的功能,需要从多个副本中选举一个副本重新作为主副本。选举过程只有在存在多数副本服务器的情况下才能进行,所以在副本服务器总数为2N+1时,能容忍同时宕机的副本服务器个数为N。

【发明内容】

[0007]本申请提供了一种数据块更新方法,用以保证存储系统中多数据副本的一致性,该方法包括:
[0008]当需要对数据块进行更新时,所述客户端向所述存储系统中当前包含所述数据块的有效副本的所有副本服务器发送数据块更新请求,所述数据块更新请求信息中携带所述数据块的当前版本以及更新版本;
[0009]所述客户端接收由所述副本服务器中的正常副本服务器发送的响应消息,所述响应消息是由所述副本服务器在根据所述当前版本对本地维护的数据块进行校验成功并更新后生成的;
[0010]所述客户端根据预设的配置阈值、所发送的数据块更新请求的数量以及在预配置的超时时间内从正常副本服务器所接收到的响应消息的数量,确认是否将所述数据块的版本修改为所述更新版本,所述配置阈值为保证更新操作正常进行所需的最少有效副本服务器的数值,所述正常副本服务器为在预设的时间阈值内正常回复所述客户端的副本服务器。
[0011]相应地,本申请还提出了一种数据块更新设备,所述设备作为客户端应用于包括所述客户端、管理服务器以及副本服务器的存储系统中,该设备包括:
[0012]发送模块,用于当需要对数据块进行更新时,所述客户端向所述存储系统中当前包含所述数据块的有效副本的所有副本服务器发送数据块更新请求,所述数据块更新请求信息中携带所述数据块的当前版本以及更新版本;
[0013]接收模块,用于接收由所述副本服务器中的正常副本服务器发送的响应消息,所述响应消息是由所述副本服务器在根据所述当前版本对本地维护的数据块进行校验成功并更新后生成的;
[0014]确认模块,用于根据预设的配置阈值、所发送的数据块更新请求的数量以及在预配置的超时时间内从正常副本服务器所接收到的响应消息的数量,确认是否将所述数据块的版本修改为所述更新版本,所述配置阈值为保证更新操作正常进行所需的最少有效副本服务器的数值,所述正常副本服务器为在预设的时间阈值内正常回复所述客户端的副本服务器。
[0015]由此可见,通过应用本申请的技术方案,当需要对数据块进行更新时,客户端对数据块的更新进行定序并分配版本,然后向存储系统中当前包含该数据块有效副本的所有副本服务器发送数据块更新请求,随后接收由正常副本服务器发送的响应消息,然后根据在预配置的超时时间内从正常副本服务器所接收到的响应消息的数量以及预设的配置阈值确认是否将数据块的版本修改为更新版本。从而在不增加副本服务器负载的前提下,保证了各个副本服务器中数据块的一致性。
【附图说明】
[0016]图1为本申请公开的一种数据块更新方法的流程示意图;
[0017]图2为本申请具体实施例所提出的一种用于内部管理的网络系统的架构示意图;
[0018]图3为本申请公开的一种数据块更新设备的结构示意图。
【具体实施方式】
[0019]有鉴于【背景技术】中所提出的技术问题,本申请针对现有的用于公司内部数据管理的存储系统提出了一种数据块更新方法,该方法应用于包括客户端、管理服务器以及副本服务器的存储系统中,通过将多个副本服务器作为对等的副本服务器,并由客户端对一个数据块的更新进行定序并分配新版本,保证数据更新的一致性。为了便于后续能够清楚进行阐述,以下首先结合图2将存储系统中所包含的主要设备及其介绍如下:
[0020]客户端:在公司内部进行数据库更新的过程中,工程师所使用的更新软件需要链接客户端的软件库,并调用相应的读写接口实现数据读取与更新操作。相应地,该客户端作为特殊的软件库需要提供如下功能:
[0021]1.提供读写接口 ;
[0022]2.对数据块更新请求定序,维护数据块的版本;
[0023]3.与管理服务器通信,获得数据块的每个副本所在副本服务器的地址,将数据块的版本持久化到管理服务器;
[0024]4.与副本服务器通信,进行数据块副本的读写。
[0025]管理服务器:管理数据块的副本信息,副本服务器信息及数据块副本与副本服务器的对应关系信息,这三部分信息均持久化。
[0026]副本服务器:管理数据块的本地副本,提供对所管理数据块副本的读写操作。
[0027]基于以上配置,本申请提出的方法如图1所示,包括以下流程:
[0028]S101,当需要对数据块进行更新时,所述客户端向所述存储系统中当前包含所述数据块的有效副本的所有副本服务器发送数据块更新请求,所述数据块更新请求信息中携带所述数据块的当前版本以及更新版本。
[0029]由于本申请中提供的技术方案中将多个副本服务器作为对等的副本服务器,因此本申请由客户端对一个数据块的更新进行定序并分配版本,副本服务器保存每个数据副本的版本并对请求进行版本校验,并只处理版本校验通过的请求。客户端不持久化副本的版本信息,在副本服务器出现系统故障或网络故障无法正常处理客户端请求时,或者在关闭对该数据块的操作时,则需将当前数据块的有效副本的版本持久化到管理服务器,只有副本服务器上数据副本的版本大于管理服务器相应数据副本的版本时,则副本服务器上的副本为有效副本。
[0030]基于上述说明,在本申请优选的实施例中,当需要对数据块进行更新时,所述客户端对所述数据块进行定序处理,并为所述数据块分配所述更新版本,所述更新版本相对于所述当前版本单调递增,所述客户端将所述更新版本以及所述当前版本携带在所述数据块更新请求中发送至所述存储系统中当前所有的副本服务器。
[0031]S102,所述客户端接收由所述副本服务器中的正常副本服务器发送的响应消息,所述响应消息是由所述副本服务器在根据所述当前版本对本地维护的数据块进行校验成功并更新后生成的。
[0032]S103,所述客户端根据预设的配置阈值、所发送的数据块更新请求的数量以及在预配置的超时时间内从正常副本服务器所接收到的响应消息的数量,确认是否将所述数据块的版本修改为所述更新版本,所述配置阈值为保证更新操作正常进行所需的最少有效副本服务器的数值,所述正常副本服务器为在预设的时间阈值内正常回复所述客户端的副本服务器。
[0033]在本申请优选的实施例中,该步骤针对以下不同情况将分别采取不同的处理措施:
[0034](I)若所述客户端在所述超时时间内所接收的响应消息的数量等于所述客户端所发送的数据块更新请求的数量,所述客户端确认所述数据块更新请求处理成功,并将所述数据块的版本修改为所述更新版本。
[0035]在响应消息数量等于请求消息数量时,可以不用更新版本持久化到所述管理服务器,因为满足数据副本的版本大于等于管理服务器持久化的副本版本时即为有效副本的条件。
[0036](2)若所述客户端在所述超时时间内所接收的响应消息的数量大于或等于所述配置阈值,且小于所述客户端所发送的数据块更新请求的数量,所述客户端确认所述数据块更新请求处理成功,将所述数据块的版本修改为所述更新版本,以及将所述正常副本服务器中进行副本更新后的版本持久化到所述管理服务器。
[0037]在预配置的超时时间内,收到正常副本服务器发送的响应消息数小于发送的消息数,大于等于预配置阀值则版本更新为更新版本,响应请求成功,但是该版本需要向管理服务器持久化。
[0038](3)若所述客户端在所述超时时间内所接收的响应消息的数量小于所述配置阈值,所述客户端确认所述数据块更新请求处理失败,通过所述管理服务器重新设置有效副本服务器,并在所述有效副本服务器的数量大于所述配置阈值后重新向所述存储系统中当前包含所述数据块的有效副本的所有副本服务器发送所述数据块更新请求。
[0039]在预配置的超时时间内,收到正常副本服务器发送的响应消息数小于预配置阀值,则不能更新版本,相应请求失败或着进行请求重试。
[0040](4)若所述客户端所接收的响应消息的数量为零,所述客户端重新向所述存储系统中当前包含所述数据块的有效副本的所有副本服务器发送数据块更新请求,并将重试失败次数加一。
[0041]在本申请优选的实施例中,对于情况(3)所采取的具体处理流程如下:
[0042]步骤a)根据所述数据块向所述管理服务器申请新的副本服务器;
[0043]步骤b)向所述管理服务器发送用于将所述正常副本服务器的数据副本复制至所述新的副本服务器的数据复制请求;
[0044]步骤c)将完成所述数据复制请求的新的副本服务器作为所述有效副本服务器。
[0045]以上流程实现了不需要主副本服务器就能向其它副本服务器转发请求,以及减少一次转发RPC带来的延迟。从而避免了主副本服务器负载高于其它副本服务器而首先达到系统瓶颈的问题。同时,为了在不失数据一致性的情况下设置有效副本来自动恢复,本申请在当所述客户端发生宕机后,还将采取以下操作:
[0046]步骤a)所述客户端向所述管理服务器查询已持久化至所述管理服务器的数据块的有效版本,以及所述数据块对应的各数据块副本所在的副本服务器的地址;
[0047]步骤b)所述客户端根据所述地址向查询各所述副本服务器所保存的数据块副本的版本;
[0048]步骤c)所述客户端将版本大于从所述管理服务器端查询到的数据块的数据块副本作为有效副本,并丢弃除所述有效副本以外的其他数据块副本;
[0049]步骤d)所述客户端向所述管理服务器端更新持久化所述有效副本的版本,所述有效副本的版本大于等于所述管理服务器中的数据块在更新前的版本。
[0050]通过以上流程,所述管理服务器能够根据所述各副本服务器上数据块的副本版本以及自身保留所述数据块的有效副本版本删除所述副本服务器中低版本的数据副本。
[0051]为了进一步阐述本申请的技术思想,现结合具体的应用场景,对本申请的技术方案进行说明。
[0052]—、数据块更新流程
[0053]I)由发起请求的客户端,对一个数据块的更新进行定序并分配新版本,版本单调递增,并同时向各副本服务器发起更新请求,请求包含数据块的当前版本及更新版本。
[0054]2)各副本服务器收到请求后,对版本进行校验,只有当副本服务器本地维护的数据块版本等于更新请求中当前版本时才接收请求和处理,并在完成处理后,更新本地维护的数据块版本为请求中的新版本,然后响应客户端。
[0055]3)客户端收到正常副本服务器响应的个数大于等于预配置阀值时,认为更新请求处理成功,修改数据块版本为请求中分配的版本。预配置阀值表示保证更新操作正常进行所需的最少有效副本数。
[0056]在以上步骤3)中,若副本服务器在一定时间内未正常回复客户端,则认为该副本服务器异常,对异常副本服务器的处理分为三种情况:
[0057]I)当客户端收到正常副本服务器响应的个数大于等于预配置阀值时,则客户端认为请求处理成功,并直接丢弃异常副本服务器上的副本,然后将正常副本服务器上副本更新后的版本持久化管理服务器;
[0058]2)当客户端收到正常副本服务器响应的个数小于预配置阀值但是大于O时,则客户端认为请求处理失败,直接丢弃异常副本服务器上的副本。然后,客户端向管理服务器对该数据块申请新的副本服务器,并发起从正常副本服务器上数据副本向新副本服务器的数据复制请求。新副本服务器在数据复制完成后重新恢复为可服务的有效副本服务器。直到有效副本服务器个数大于等于最少有效副本数得预配置阀值后,允许客户端继续处理对该数据块的更新请求。
[0059]3)当客户端收到正常副本服务器响应的个数为O时,则客户端进行重试,直到收到正常副本服务器响应,然后进行以上情况I)或情况2)。
[0060]需要说明的是,客户端不持久化数据副本的版本信息,有效副本的版本均持久化到管理服务器,客户端宕机后需要从管理服务器恢复数据块的版本信息。管理服务器实现为高可用的中心服务节点,管理服务器宕机后由备管理服务器恢复状态并接管服务。这些都属于本申请的保护范围。
[0061 ] 二、客户端宕机处理流程
[0062]I)客户端向管理服务器端查询持久化到管理服务器端的数据块的有效版本及各副本所在的副本服务器地址。
[0063]2)客户端向各副本服务器查询该副本服务器所保存的数据块副本的版本。
[0064]3)选择副本服务器查询到副本的版本大于等于从管理服务器端查询到的数据块的有效版本为有效副本,同时丢弃版本小于管理服务器查询到的数据块的有效版本的副本。
[0065]4)向管理服务器端更新持久化所选择的有效副本的版本,该版本会大于等于管理服务器更新前的版本。
[0066]5)管理服务器会周期性扫描各副本服务器上数据块的副本版本并与其保留的有效副本版本进行对比,如果副本服务器上数据副本的版本低于其有效版本,且副本数高于最少有效副本数的预配置阀值,则会向副本服务器发起删除操作,删掉低版本的数据副本。
[0067]为达到以上技术目的,本申请还提出了一种数据块更新设备,所述设备作为客户端应用于包括所述客户端、管理服务器以及副本服务器的存储系统中,如图3所示,该设备包括:
[0068]发送模块310,用于当需要对数据块进行更新时,所述客户端向所述存储系统中当前包含所述数据块的有效副本的所有副本服务器发送数据块更新请求,所述数据块更新请求信息中携带所述数据块的当前版本以及更新版本;
[0069]接收模块320,用于接收由所述副本服务器中的正常副本服务器发送的响应消息,所述响应消息是由所述副本服务器在根据所述当前版本对本地维护的数据块进行校验成功并更新后生成的;
[0070]确认模块330,用于根据预设的配置阈值、所发送的数据块更新请求的数量以及在预配置的超时时间内从正常副本服务器所接收到的响应消息的数量,确认是否将所述数据块的版本修改为所述更新版本,所述配置阈值为保证更新操作正常进行所需的最少有效副本服务器的数值,所述正常副本服务器为在预设的时间阈值内正常回复所述客户端的副本服务器。
[0071]在具体的应用场景中,所述发送模块具体用于:
[0072]当需要对数据块进行更新时,对所述数据块进行定序处理,并为所述数据块分配所述更新版本,所述更新版本相对于所述当前版本单调递增;将所述更新版本以及所述当前版本携带在所述数据块更新请求中发送至所述存储系统中当前所有的副本服务器。
[0073]在具体的应用场景中,所述确认模块具体用于:
[0074]若所述接收模块在所述超时时间内所接收的响应消息的数量等于所述客户端所发送的数据块更新请求的数量,确认所述数据块更新请求处理成功,并将所述数据块的版本修改为所述更新版本;
[0075]若所述接收模块在所述超时时间内所接收的响应消息的数量大于或等于所述配置阈值,且小于所述客户端所发送的数据块更新请求的数量,确认所述数据块更新请求处理成功,将所述数据块的版本修改为所述更新版本,以及将所述正常副本服务器中进行副本更新后的版本持久化到所述管理服务器;
[0076]若所述接收模块在所述超时时间内所接收的响应消息的数量小于所述配置阈值,确认所述数据块更新请求处理失败,通过所述管理服务器重新设置有效副本服务器,并在所述有效副本服务器的数量大于所述配置阈值后重新向所述存储系统中当前包含所述数据块的有效副本的所有副本服务器发送所述数据块更新请求;
[0077]若所述接收模块所接收的响应消息的数量为零,重新向所述存储系统中当前包含所述数据块的有效副本的所有副本服务器发送数据块更新请求,并将重试失败次数加一。
[0078]在具体的应用场景中,还包括:
[0079]重试模块,用于在所述重试失败次数超过预设的阈值时,向所述管理服务器查询当前包含所述数据块的所有副本服务器,对查询到到副本服务器进行校验,并将校验成功的副本服务器作为有效服务器;向所述有效副本服务器重新发送数据块更新请求。
[0080]在具体的应用场景中,所述确认模块具体用于:
[0081]根据所述数据块向所述管理服务器申请新的副本服务器;
[0082]向所述管理服务器发送用于将所述正常副本服务器的数据副本复制至所述新的副本服务器的数据复制请求;
[0083]将完成所述数据复制请求的新的副本服务器作为所述有效副本服务器。
[0084]在具体的应用场景中,还包括:
[0085]故障处理模块,用于当所述客户端发生宕机后,向所述管理服务器查询已持久化至所述管理服务器的数据块的有效版本,以及所述数据块对应的各数据块副本所在的副本服务器的地址;根据所述地址向查询各所述副本服务器所保存的数据块副本的版本;将版本大于从所述管理服务器端查询到的数据块的数据块副本作为有效副本,并丢弃除所述有效副本以外的其他数据块副本;向所述管理服务器端更新持久化所述有效副本的版本,所述有效副本的版本大于等于所述管理服务器中的数据块在更新前的版本
[0086]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
[0087]本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
[0088]本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0089]上述本申请序号仅仅为了描述,不代表实施场景的优劣。
[0090]以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
【主权项】
1.一种数据块更新方法,其特征在于,所述方法应用于包括客户端、管理服务器以及副本服务器的存储系统中,该方法包括: 当需要对数据块进行更新时,所述客户端向所述存储系统中当前包含所述数据块的有效副本的所有副本服务器发送数据块更新请求,所述数据块更新请求信息中携带所述数据块的当前版本以及更新版本; 所述客户端接收由所述副本服务器中的正常副本服务器发送的响应消息,所述响应消息是由所述副本服务器在根据所述当前版本对本地维护的数据块进行校验成功并更新后生成的; 所述客户端根据预设的配置阈值、所发送的数据块更新请求的数量以及在预配置的超时时间内从正常副本服务器所接收到的响应消息的数量,确认是否将所述数据块的版本修改为所述更新版本,所述配置阈值为保证更新操作正常进行所需的最少有效副本服务器的数值,所述正常副本服务器为在预设的时间阈值内正常回复所述客户端的副本服务器。2.如权利要求1所述的方法,其特征在于,当需要对数据块进行更新时,所述客户端向所述存储系统中当前包含所述数据块的有效副本的所有副本服务器发送数据块更新请求,具体为: 当需要对数据块进行更新时,所述客户端对所述数据块进行定序处理,并为所述数据块分配所述更新版本,所述更新版本相对于所述当前版本单调递增; 所述客户端将所述更新版本以及所述当前版本携带在所述数据块更新请求中发送至所述存储系统中当前所有的副本服务器。3.如权利要求1所述的方法,其特征在于,所述客户端根据预设的配置阈值、所发送的数据块更新请求的数量以及在预配置的超时时间内从正常副本服务器所接收到的响应消息的数量,确认是否将所述数据块的版本修改为所述更新版本,具体为: 若所述客户端在所述超时时间内所接收的响应消息的数量等于所述客户端所发送的数据块更新请求的数量,所述客户端确认所述数据块更新请求处理成功,并将所述数据块的版本修改为所述更新版本; 若所述客户端在所述超时时间内所接收的响应消息的数量大于或等于所述配置阈值,且小于所述客户端所发送的数据块更新请求的数量,所述客户端确认所述数据块更新请求处理成功,将所述数据块的版本修改为所述更新版本,以及将所述正常副本服务器中进行副本更新后的版本持久化到所述管理服务器; 若所述客户端在所述超时时间内所接收的响应消息的数量小于所述配置阈值,所述客户端确认所述数据块更新请求处理失败,通过所述管理服务器重新设置有效副本服务器,并在所述有效副本服务器的数量大于所述配置阈值后重新向所述存储系统中当前包含所述数据块的有效副本的所有副本服务器发送所述数据块更新请求; 若所述客户端所接收的响应消息的数量为零,所述客户端重新向所述存储系统中当前包含所述数据块的有效副本的所有副本服务器发送数据块更新请求,并将重试失败次数加 O4.如权利要求3所述的方法,其特征在于,还包括: 若所述重试失败次数超过预设的阈值,所述客户端向所述管理服务器查询当前包含所述数据块的所有副本服务器, 所述客户端对查询到到副本服务器进行校验,并将校验成功的副本服务器作为有效服务器; 所述客户端向所述有效副本服务器重新发送数据块更新请求。5.如权利要求3所述的方法,其特征在于,所述通过所述管理服务器重新设置有效副本服务器,具体为: 根据所述数据块向所述管理服务器申请新的副本服务器; 向所述管理服务器发送用于将所述正常副本服务器的数据副本复制至所述新的副本服务器的数据复制请求; 将完成所述数据复制请求的新的副本服务器作为所述有效副本服务器。6.如权利要求1所述的方法,其特征在于,在所述客户端根据预设的配置阈值、所发送的数据块更新请求的数量以及在预配置的超时时间内从正常副本服务器所接收到的响应消息的数量,确认是否将所述数据块的版本修改为所述更新版本之后,还包括: 当所述客户端发生宕机时,所述客户端向所述管理服务器查询已持久化至所述管理服务器的数据块的有效版本,以及所述数据块对应的各数据块副本所在的副本服务器的地址; 所述客户端根据所述地址向查询各所述副本服务器所保存的数据块副本的版本; 所述客户端将版本大于从所述管理服务器端查询到的数据块的数据块副本作为有效副本,并丢弃除所述有效副本以外的其他数据块副本; 所述客户端向所述管理服务器端更新持久化所述有效副本的版本,所述有效副本的版本大于等于所述管理服务器中的数据块在更新前的版本。7.一种数据块更新设备,其特征在于,所述设备作为客户端应用于包括所述客户端、管理服务器以及副本服务器的存储系统中,该设备包括: 发送模块,用于当需要对数据块进行更新时,所述客户端向所述存储系统中当前包含所述数据块的有效副本的所有副本服务器发送数据块更新请求,所述数据块更新请求信息中携带所述数据块的当前版本以及更新版本; 接收模块,用于接收由所述副本服务器中的正常副本服务器发送的响应消息,所述响应消息是由所述副本服务器在根据所述当前版本对本地维护的数据块进行校验成功并更新后生成的; 确认模块,用于根据预设的配置阈值、所发送的数据块更新请求的数量以及在预配置的超时时间内从正常副本服务器所接收到的响应消息的数量,确认是否将所述数据块的版本修改为所述更新版本,所述配置阈值为保证更新操作正常进行所需的最少有效副本服务器的数值,所述正常副本服务器为在预设的时间阈值内正常回复所述客户端的副本服务器。8.如权利要求7所述的设备,其特征在于,所述发送模块具体用于: 当需要对数据块进行更新时,对所述数据块进行定序处理,并为所述数据块分配所述更新版本,所述更新版本相对于所述当前版本单调递增;将所述更新版本以及所述当前版本携带在所述数据块更新请求中发送至所述存储系统中当前所有的副本服务器。9.如权利要求7所述的设备,其特征在于,所述确认模块具体用于: 若所述接收模块在所述超时时间内所接收的响应消息的数量等于所述客户端所发送的数据块更新请求的数量,确认所述数据块更新请求处理成功,并将所述数据块的版本修改为所述更新版本; 若所述接收模块在所述超时时间内所接收的响应消息的数量大于或等于所述配置阈值,且小于所述客户端所发送的数据块更新请求的数量,确认所述数据块更新请求处理成功,将所述数据块的版本修改为所述更新版本,以及将所述正常副本服务器中进行副本更新后的版本持久化到所述管理服务器; 若所述接收模块在所述超时时间内所接收的响应消息的数量小于所述配置阈值,确认所述数据块更新请求处理失败,通过所述管理服务器重新设置有效副本服务器,并在所述有效副本服务器的数量大于所述配置阈值后重新向所述存储系统中当前包含所述数据块的有效副本的所有副本服务器发送所述数据块更新请求; 若所述接收模块所接收的响应消息的数量为零,重新向所述存储系统中当前包含所述数据块的有效副本的所有副本服务器发送数据块更新请求,并将重试失败次数加一。10.如权利要求9所述的设备,其特征在于,还包括: 重试模块,用于在所述重试失败次数超过预设的阈值时,向所述管理服务器查询当前包含所述数据块的所有副本服务器,对查询到到副本服务器进行校验,并将校验成功的副本服务器作为有效服务器;向所述有效副本服务器重新发送数据块更新请求。11.如权利要求9所述的设备,其特征在于,所述确认模块具体用于: 根据所述数据块向所述管理服务器申请新的副本服务器; 向所述管理服务器发送用于将所述正常副本服务器的数据副本复制至所述新的副本服务器的数据复制请求; 将完成所述数据复制请求的新的副本服务器作为所述有效副本服务器。12.如权利要求7所述的设备,其特征在于,还包括: 故障处理模块,用于当所述客户端发生宕机后,向所述管理服务器查询已持久化至所述管理服务器的数据块的有效版本,以及所述数据块对应的各数据块副本所在的副本服务器的地址;根据所述地址向查询各所述副本服务器所保存的数据块副本的版本;将版本大于从所述管理服务器端查询到的数据块的数据块副本作为有效副本,并丢弃除所述有效副本以外的其他数据块副本;向所述管理服务器端更新持久化所述有效副本的版本,所述有效副本的版本大于等于所述管理服务器中的数据块在更新前的版本。
【文档编号】H04L29/08GK105991752SQ201510101466
【公开日】2016年10月5日
【申请日】2015年3月6日
【发明人】董元元, 吴锦波, 徐立, 闫卫斌, 田磊磊, 石超
【申请人】阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1