版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(12)发明专利务所(普通合伙)11413一种数据并发写入方法及分布式数据并发本发明实施例提供了一种数据并发写入方果信息,对目标数据对应的元数据信息进行更对客户端发送的针对目标数据的第一写入请求进行校验,并生成第一写入请求对应的版本号,得到第一版本号当对第一写入请求校验成功时,为待写入数据选取预设数量个存储节点,得到预设数量个存储节点对应的地址信息21.一种数据并发写入方法,其特征在于,应用于分布式文件存储系统中的控制节点,所述分布式文件存储系统包括:控制节点和存储节点,所述方法包括:对多个客户端发送的针对目标数据的第一写入请求进行校验,并为每一第一写入请求生成对应的版本号,得到第一版本号,所述第一版本号随所述目标数据数据写入次数的增加而增加,所述第一写入请求对应相应的待写入数据;针对每一所述第一写入请求,当对所述第一写入请求校验成功时,为所述第一写入请求对应的待写入数据选取预设数量个存储节点,得到预设数量个存储节点对应的地址信息;其中,为不同客户端的第一写入请求所选取的预设数量个存储节点对应的地址信息相将所述预设数量个存储节点对应的地址信息以及所述第一版本号,发送给所述第一写入请求对应的客户端,以使该客户端将第二写入请求发送给所述预设数量个存储节点,所述预设数量个存储节点分别根据所述第二写入请求执行对应的写操作,并将写入结果信息返回给对应的客户端;其中,所述第二写入请求中包含所述待写入数据以及所述第一版本基于各所述客户端返回的所述写入结果信息,对所述目标数据对应的元数据信息进行更新;其中,所述目标数据对应的元数据信息包括所述目标数据的大小,所述目标数据所写入的存储节点的信息。2.根据权利要求1所述的方法,其特征在于,所述为每一第一写入请求生成对应的版本生成高于历史最近一次针对所述目标数据的第一写入请求对应版本号的第一版本号。3.根据权利要求1或2任一所述的方法,其特征在于,所述为所述第一写入请求对应的待写入数据选取预设数量个存储节点的步骤,包括:根据所述第一写入请求对应相应的待写入数据的大小,以及各存储节点的剩余空间大小,为所述待写入数据选取预设数量个存储节点。4.根据权利要求1所述的方法,其特征在于,所述方法还包接收存储节点发送的自身状态信息,所述存储节点的自身状态信息包括:所述存储节点的节点状态,以及所述存储节点的剩余空间大小。5.一种数据并发写入方法,其特征在于,应用于分布式文件存储系统中的存储节点,所述分布式文件存储系统包括:控制节点和存储节点,所述方法包括:接收多个客户端发送的第二写入请求,所述第二写入请求中包含针对目标数据的第一写入请求对应的第一版本号,其中,所述第一版本号随目标数据数据写入次数的增加而增加;所述第二写入请求为:所述控制节点对多个客户端发送的针对目标数据的第一写入请求进行校验,并为每一第一写入请求生成对应的版本号得到第一版本号,以及,针对每一所述第一写入请求,当对所述第一写入请求校验成功时,为所述第一写入请求对应的待写入数据选取预设数量个存储节点,将预设数量个存储节点对应的地址信息以及所述第一版本号发送给对应的客户端的情况下,客户端发送的;所述控制节点为不同客户端的第一写入请求所选取的预设数量个存储节点对应的地址信息相同;针对每一所述第二写入请求,判断所述第一版本号是否高于所述目标数据的本地版本号,所述目标数据的本地版本号为所述目标数据在本地最后一次数据写入时对应第二写入3请求中携带的版本号;如果所述第一版本号高于所述目标数据的本地版本号,则执行所述第二写入请求对应的写操作,并将表示写成功的写入结果信息返回给所述客户端,以使所述客户端将所述写入结果信息发送给控制节点,所述控制节点对所述目标数据对应的元数据信息进行更新。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:如果所述第一版本号不高于所述目标数据的本地版本号,则拒绝所述第二写入请求对应的写操作,并将表示写失败的写入结果信息返回给所述客户端,以使所述客户端将所述写入结果信息发送给控制节点。7.根据权利要求5或6任一所述的方法,其特征在于,所述第二写入请求中还包含针对目标数据的第一写入请求对应的待写入数据;所述执行所述第二写入请求对应的写操作的使用所述待写入数据,更新所述目标数据的本地数据;使用所述第一版本号,更新所述目标数据的本地版本号。8.根据权利要求5所述的方法,其特征在于,所述方法还包括:向所述控制节点发送自身的状态信息,所述自身的状态信息包括:所述节点状态以及剩余空间大小。9.一种分布式数据并发写入系统,其特征在于,所述分布式数据并发写入系统包括:控制节点和存储节点;所述控制节点,用于对多个客户端发送的针对目标数据的第一写入请求进行校验,并为每一第一写入请求生成对应的第一版本号,所述第一写入请求对应相应的待写入数据;针对每一所述第一写入请求,当对所述第一写入请求校验成功时,为所述第一写入请求对应的待写入数据选取预设数量个存储节点,得到预设数量个存储节点对应的地址信息,将所述预设数量个存储节点对应的地址信息以及所述第一版本号,发送给所述第一写入请求对应的客户端,并基于各所述客户端返回的写入结果信息,对所述目标数据对应的元数据信息进行更新;其中,所述第一版本号随目标数据数据写入次数的增加而增加;为不同客户端的第一写入请求所选取的预设数量个存储节点对应的地址信息相同;所述目标数据对应的元数据信息包括所述目标数据的大小,所述目标数据所写入的存储节点的信息;所述存储节点,用于接收多个客户端发送的第二写入请求,针对每一所述第二写入请求,判断所述第二写入请求中包含的第一版本号是否高于所述目标数据的本地版本号,在判断出所述第一版本号高于所述目标数据的本地版本号时,执行所述第二写入请求对应的写操作,并将表示写成功的写入结果信息返回给所述客户端;其中,所述第二写入请求中包含针对目标数据的第一写入请求对应的第一版本号以及待写入数据,所述目标数据的本地版本号为所述目标数据在本地最后一次数据写入时对应第二写入请求中携带的版本号。生成高于历史最近一次针对所述目标数据的第一写入请求对应版本号的第一版本号。在判断出所述第一版本号不高于所述目标数据的本地版本号时,拒绝所述第二写入请求对应的写操作,并将表示写失败的写入结果信息返回给所述客户端。4使用所述待写入数据,更新所述目标数据的本地数据;使用所述第一版本号,更新所述目标数据的本地版本号。向所述控制节点发送自身的状态信息,所述自身的状态信息包括:所述节点状态以及剩余空间大小。14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述的方法步骤。15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求5-8任一所述的方法步骤。5一种数据并发写入方法及分布式数据并发写入系统技术领域[0001]本发明涉及数据处理技术领域,特别是涉及一种数据并发写入方法及分布式数据并发写入系统。背景技术[0002]分布式文件存储系统是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点(可简单的理解为一台计算机)相连;或是若干不同的逻辑磁盘分区或卷标组合在一起而形成的完整的有层次的文件系统。分布式文件存储系统把大量数据分散到不同的节点上存储,大大减小了数据丢失的风险。[0003]现有客户端执行一次数据写入的方法为:客户端向控制节点发送针对目标数据的写入请求;控制节点接收并校验写入请求,当校验成功时,向客户端返回待写入数据对应的存储节点的地址信息;客户端接收地址信息,向待写入数据对应的存储节点发送包含待写入数据的数据写入请求;存储节点接收并执行数据写入请求对应的写操作,之后向客户端返回包含写入成功或写入失败的写入结果信息;客户端接收存储节点返回的写入结果信息,并将写入结果信息发送给控制节点;控制节点判断写入结果为写入成功时,更新目标数据对应的元数据信息。[0004]实际应用中,为保证数据的可靠性,一般文件数据会保存多个副本。然而,使用上述数据写入方法对数据进行写入,当存在多个客户端对同一目标数据执行写操作时,由于网络延时及各副本所在的存储节点实际业务情况的不同,可能会导致目标数据对应的多个副本中的数据不一致的情况,例如,客户端A和客户端B同时对同一目标数据执行写操作,针对目标数据的副本1客户端A先执行写操作,客户端B后执行写操作,针对目标数据的副本2客户端B先执行写操作,客户端A后执行写操作,导致同一目标数据的副本1和副本2中的数据不一致,进而影响数据的可靠性,使得分布式文件存储系统中,针对同一文件只容许串行发明内容[0005]本发明实施例的目的在于提供一种数据并发写入方法及分布式数据并发写入系统,用以解决多个客户端对同一文件执行写入操作时导致的数据不一致,影响数据可靠性[0006]第一方面,本发明实施例提供了一种数据并发写入方法,应用于分布式文件存储系统中的控制节点,所述分布式文件存储系统包括:控制节点和存储节点,所述方法包括:[0007]对客户端发送的针对目标数据的第一写入请求进行校验,并生成所述第一写入请求对应的版本号,得到第一版本号,所述第一版本号随所述目标数据数据写入次数的增加而增加,所述第一写入请求对应相应的待写入数据;[0008]当对所述第一写入请求校验成功时,为所述待写入数据选取预设数量个存储节点,得到预设数量个存储节点对应的地址信息;6[0009]将所述预设数量个存储节点对应的地址信息以及所述第一版本号,发送给所述客户端,以使所述客户端将第二写入请求发送给所述预设数量个存储节点,所述预设数量个存储节点分别根据所述第二写入请求执行对应的写操作,并将写入结果信息返回给所述客户端;其中,所述第二写入请求中包含所述待写入数据以及所述第一版本号;[0010]基于所述客户端返回的所述写入结果信息,对所述目标数据对应的元数据信息进行更新;其中,所述目标数据对应的元数据信息包括所述目标数据的大小,所述目标数据所写入的存储节点的信息。[0011]可选的,所述生成所述第一写入请求对应的版本号,得到第一版本号的步骤,包[0012]生成高于历史最近一次针对所述目标数据的第一写入请求对应版本号的第一版本号。[0013]可选的,所述为所述待写入数据选取预设数量个存储节点的步骤,包括:[0014]根据所述第一写入请求对应相应的待写入数据的大小,以及各存储节点的剩余空间大小,为所述待写入数据选取预设数量个存储节点。[0015]可选的,所述方法还包括:[0016]接收存储节点发送的自身状态信息,所述存储节点的自身状态信息包括:所述存储节点的节点状态,以及所述存储节点的剩余空间大小。[0017]第二方面,本发明实施例提供了一种数据并发写入方法,应用于分布式文件存储系统中的存储节点,所述分布式文件存储系统包括:控制节点和存储节点,所述方法包括:[0018]接收客户端发送的第二写入请求,所述第二写入请求中包含针对目标数据的第一写入请求对应的第一版本号,其中,所述第一版本号随目标数据数据写入次数的增加而增[0019]判断所述第一版本号是否高于所述目标数据的本地版本号,所述目标数据的本地版本号为所述目标数据在本地最后一次数据写入时对应第二写入请求中携带的版本号;[0020]如果所述第一版本号高于所述目标数据的本地版本号,则执行所述第二写入请求对应的写操作,并将表示写成功的写入结果信息返回给所述客户端,以使所述客户端将所述写入结果信息发送给控制节点,所述控制节点对所述目标数据对应的元数据信息进行更[0021]可选的,所述方法还包括:[0022]如果所述第一版本号不高于所述目标数据的本地版本号,则拒绝所述第二写入请求对应的写操作,并将表示写失败的写入结果信息返回给所述客户端,以使所述客户端将所述写入结果信息发送给控制节点。[0023]可选的,所述第二写入请求中还包含针对目标数据的第一写入请求对应的待写入数据;所述执行所述第二写入请求对应的写操作的步骤,包括:[0024]使用所述待写入数据,更新所述目标数据的本地数据;[0025]使用所述第一版本号,更新所述目标数据的本地版本号。[0026]可选的,所述方法还包括:[0027]向所述控制节点发送自身的状态信息,所述自身的状态信息包括:所述节点状态以及剩余空间大小。7[0028]第三方面,本发明实施例提供了一种分布式数据并发写入系统,所述分布式数据并发写入系统包括:控制节点和存储节点;[0029]所述控制节点,用于对客户端发送的针对目标数据的第一写入请求进行校验,并生成所述第一写入请求对应的第一版本号,所述第一写入请求对应相应的待写入数据,当对所述第一写入请求校验成功时,为所述待写入数据选取预设数量个存储节点,得到预设数量个存储节点对应的地址信息,将所述预设数量个存储节点对应的地址信息以及所述第一版本号,发送给所述客户端,并基于所述客户端返回的写入结果信息,对所述目标数据对应的元数据信息进行更新;其中,所述第一版本号随目标数据数据写入次数的增加而增加,所述目标数据对应的元数据信息包括所述目标数据的大小,所述目标数据所写入的存储节[0030]所述存储节点,用于接收客户端发送的第二写入请求,判断所述第二写入请求中包含的第一版本号是否高于所述目标数据的本地版本号,在判断出所述第一版本号高于所述目标数据的本地版本号时,执行所述第二写入请求对应的写操作,并将表示写成功的写入结果信息返回给所述客户端;其中,所述第二写入请求中包含针对目标数据的第一写入请求对应的第一版本号以及待写入数据,所述目标数据的本地版本号为所述目标数据在本地最后一次数据写入时对应第二写入请求中携带的版本号。[0032]所述客户端,用于向所述控制节点发送针对目标数据的第一写入请求,并接收所述控制节点返回的预设数量个存储节点对应的地址信息,和所述第一版本号;以及将第二写入请求发送给预设数量个存储节点,接收所述预设数量个存储节点返回的写入结果信息,并将所述写入结果信息发送给所述控制节点。[0034]生成高于历史最近一次针对所述目标数据的第一写入请求对应版本号的第一版本号。[0036]在判断出所述第一版本号不高于所述目标数据的本地版本号时,拒绝所述第二写入请求对应的写操作,并将表示写失败的写入结果信息返回给所述客户端。[0038]使用所述待写入数据,更新所述目标数据的本地数据;[0039]使用所述第一版本号,更新所述目标数据的本地版本号。[0041]向所述控制节点发送自身的状态信息,所述自身的状态信息包括:所述节点状态以及剩余空间大小。[0042]第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的一种数据并发写入方法的方法步骤。[0043]第五方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第二方面所述的一种数据并发写入方法的方法步骤。8[0044]本发明实施例有益效果:[0045]本发明实施例提供的一种数据并发写入方法及分布式数据并发写入系统,由于控制节点能够为客户端发送的针对目标数据的第一写入请求生成对应的第一版本号,该第一版本号随目标数据数据写入次数的增加而增加,即针对同一目标数据版本号是唯一且递增的,使得存储节点在接收到第二写入请求时,可以根据第一版本号确定是否执行本次数据写入操作,保证了多个客户端对同一目标数据并发写时,多个副本文件数据的一致性,解决了多个客户端对同一目标数据并发写时,导致的多个副本文件数据不一致问题,提高了数据的可靠性。进一步,实现了在分布式文件存储系统中,能够容许多个客户端对同一目标数据并发写。[0046]当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优附图说明[0047]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。[0048]图1为本发明实施例提供的一种数据并发写入方法的流程示意图;[0049]图2为本发明实施例提供的另一种数据并发写入方法的流程示意图;[0050]图3为本发明实施例提供的再一种数据并发写入方法的流程示意图;[0051]图4为本发明实施例提供的一种数据写入实施方式流程示意图;[0052]图5为本发明实施例提供的一种数据并发写入方法的交互示意图;[0053]图6为本发明实施例提供的一种数据并发写入系统的结构示意图。具体实施方式[0054]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他[0055]分布式文件存储系统具有冗余性,部分节点的故障并不影响整体的正常运行,而且即使出现故障的计算机存储的数据已经损坏,也可以由其它节点将损坏的数据恢复出来。典型的分布式文件存储系统,一般由控制节点(或称元数据服务器)与存储节点(或称数据服务器)组成。控制节点的作用主要有:管理目录树,管理客户端(或称用户)上传的文件存储节点上等),管理分布式文件存储系统中所有的存储节点。存储节点的作用主要有:存储客户端上传的文件数据。[0056]为了解决现有当存在多个客户端对同一目标数据执行写操作时,可能会导致目标数据对应的多个副本中的数据不一致的问题,本发明实施例提供了一种数据并发写入方法,应用于分布式文件存储系统中的控制节点,该分布式文件存储系统包括:控制节点和存9[0057]对客户端发送的针对目标数据的第一写入请求进行校验,并生成所述第一写入请求对应的版本号,得到第一版本号,所述第一版本号随所述目标数据数据写入次数的增加而增加,所述第一写入请求对应相应的待写入数据;[0058]当对所述第一写入请求校验成功时,为所述待写入数据选取预设数量个存储节点,得到预设数量个存储节点对应的地址信息;[0059]将所述预设数量个存储节点对应的地址信息以及所述第一版本号,发送给所述客户端,以使所述客户端将第二写入请求发送给所述预设数量个存储节点,所述预设数量个存储节点分别根据所述第二写入请求执行对应的写操作,并将写入结果信息返回给所述客户端;其中,所述第二写入请求中包含所述待写入数据以及所述第一版本号;[0060]基于所述客户端返回的所述写入结果信息,对所述目标数据对应的元数据信息进行更新;其中,所述目标数据对应的元数据信息包括所述目标数据的大小,所述目标数据所写入的存储节点的信息。[0061]本发明实施例提供的一种数据并发写入方法,由于控制节点能够为客户端发送的针对目标数据的第一写入请求生成对应的第一版本号,该第一版本号随目标数据数据写入次数的增加而增加,即针对同一目标数据版本号是唯一且递增的,使得存储节点在接收到第二写入请求时,可以根据第一版本号确定是否执行本次数据写入操作,保证了多个客户端对同一目标数据并发写时,多个副本文件数据的一致性,解决了多个客户端对同一目标数据并发写时,导致的多个副本文件数据不一致问题,提高了数据的可靠性。进一步,实现了在分布式文件存储系统中,能够容许多个客户端对同一目标数据并发写。[0062]下面对本发明实施例提供的一种数据并发写入方法进行详细介绍:[0063]本发明实施例中,数据并发写入方法应用于分布式文件存储系统,在该分布式文件存储系统中可以包含控制节点和多个存储节点。示例性的,控制节点和多个存储节点可以是分别布置于不同服务器上的数据存储模块等。[0064]如图1所示,本发明实施例提供了一种数据并发写入方法,应用于分布式文件存储系统中的控制节点,该方法可以包括以下步骤:[0065]S101,对客户端发送的针对目标数据的第一写入请求进行校验,并生成第一写入请求对应的版本号,得到第一版本号。[0066]第一写入请求可以为任一客户端发送的针对目标数据的写入请求,本发明实施例中,可以存在多个客户端同时针对目标数据进行并发写入操作;控制节点可以对接收到的一个或多个客户端发送的针对同一目标数据的写入请求进行校验,同时为写入请求生成对应的版本号,得到第一写入请求对应的第一版本号。[0067]其中,第一版本号随目标数据数据写入次数的增加而增加,第一写入请求对应有相应的待写入数据。示例性的,当控制节点接收到对目标数据的第三次写入请求时,生成对应的版本号可以表示为V3,当控制节点接收到对目标数据的第五次写入请求时,生成对应的版本号可以表示为V5等等。[0068]本发明实施例中,对于同一目标数据,数据写入对应的版本号是唯一的,并严格递增,使得每次针对同一目标数据进行写操作时,该目标数据对应的版本号随着增加,避免了多个客户端对同一目标数据并发写时,目标数据发生数据错乱的问题。[0069]作为本发明实施例一种可选的实施方式,客户端发送的针对目标数据的第一写入请求中可以包含:客户端的标识,针对目标数据的第一写入请求对应相应的待写入数据数据量的大小等信息,进而,控制节点对客户端发送的针对目标数据的第一写入请求进行校验,可以是对客户端的权限进行校验。例如,当接收到客户端发送的针对目标数据的第一写入请求时,可以判断该客户端是否有权限执行针对目标数据的写操作等。控制节点对客户端发送的针对目标数据的第一写入请求进行校验,还可以是对第一写入请求对应相应的待写入数据的数据量进行校验等。[0070]作为本发明实施例一种可选的实施方式,生成第一写入请求对应的版本号,得到[0071]生成高于历史最近一次针对目标数据的第一写入请求对应版本号的第一版本号。[0072]本发明实施例中,控制节点接收客户端发送的针对目标数据的第一写入请求,可以为该第一写入请求生成高于历史最近一次针对目标数据的第一写入请求对应版本号的第一版本号,使得对于同一目标数据,数据写入对应的版本号是唯一的,并严[0073]S102,当对第一写入请求校验成功时,为待写入数据选取预设数量个存储节点,得到预设数量个存储节点对应的地址信息。[0074]本发明实施例,控制节点中可以存储有不同文件的管理目录树,文件的元数据信的大小、文件数据分布在哪些存储节点上等,存储节点信息可以包含存储节点的剩余空间大小,或存储节点的剩余空间可利用率等。[0075]在控制节点对第一写入请求校验成功时,可以为针对目标数据的待写入数据选取预设数量个存储节点,得到预设数量个存储节点对应的地址信息。该预设数量本领域技术人员可以根据实际需求进行设置,示例性的,为保证数据的可靠性,可以设置预设数量为3个,那么,在客户端需要对目标数据进行写操作时,可以为待写入数据选取3个存储节点。[0076]作为本发明实施例一种可选的实施方式,为待写入数据选取预设数量个存储节点[0077]根据第一写入请求对应相应的待写入数据的大小,以及各存储节点的剩余空间大小,为待写入数据选取预设数量个存储节点。[0078]本发明实施例,控制节点可以根据第一写入请求对应相应的待写入数据数据量的大小,以及各存储节点的剩余空间大小,对能够存储待写入数据的存储节点进行排序,得到存储节点序列,进而从该存储节点序列中选择预设数量个存储节点。[0079]S103,将预设数量个存储节点对应的地址信息以及第一版本号,发送给客户端,以使客户端将第二写入请求发送给预设数量个存储节点,预设数量个存储节点分别根据第二写入请求执行对应的写操作,并将写入结果信息返回给客户端。[0080]控制节点将预设数量个存储节点对应的地址信息以及第一版本号,发送给客户端,以使客户端将包含待写入数据以及第一版本号的第二写入请求发送给预设数量个存储节点,进而预设数量个存储节点分别根据第二写入请求执行对应的写操作,并将写入结果信息返回给客户端,客户端再将该写入结果信息转发给控制节点。[0081]S104,基于客户端返回的写入结果信息,对目标数据对应的元数据信息进行更新。[0082]控制节点接收到客户端返回的写入结果信息,判断该写入结果信息表示写入成功11还是写入失败,如果该写入结果信息表示写入成功,则对目标数据对应的元数据信息进行更新,其中,目标数据对应的元数据信息包括目标数据的大小,以及目标数据所写入的存储节点的信息。如果该写入结果信息表示写入失败,则不对目标数据对应的元数据信息进行[0083]本发明实施例提供的一种数据并发写入方法,由于控制节点能够为客户端发送的针对目标数据的第一写入请求生成对应的第一版本号,该第一版本号随目标数据数据写入次数的增加而增加,即针对同一目标数据版本号是唯一且递增的,使得存储节点在接收到第二写入请求时,可以根据第一版本号确定是否执行本次数据写入操作,保证了多个客户端对同一目标数据并发写时,多个副本文件数据的一致性,解决了多个客户端对同一目标数据并发写时,导致的多个副本文件数据不一致问题,提高了数据的可靠性。进一步,实现了在分布式文件存储系统中,能够容许多个客户端对同一目标数据并发写。[0084]作为本发明实施例一种可选的实施方式,控制节点还可以接收存储节点发送的自身状态信息,其中,存储节点的自身状态信息可以包括:存储节点的节点状态,以及存储节点的剩余空间大小。示例性的,存储节点的状态可以包含存储节点是否正常工作,数据写入的正常速度等信息,存储节点的剩余空间大小为存储节点当前还能够利用的空间的大小。[0085]本发明实施例中,控制节点可以接收存储节点发送的自身状态信息,进而更新控制节点中所存储的存储节点的状态信息,以便于更准确的为待写入数据选取所要写入的存储节点。[0086]如图2所示,本发明实施例提供了另一种数据并发写入方法,应用于分布式文件存储系统中的存储节点,该存储节点可以为控制节点为待写入数据选择的预设数量个存储节点中的一个,该方法可以包括以下步骤:[0087]S201,接收客户端发送的第二写入请求。[0088]其中,第二写入请求中可以包含针对目标数据的第一写入请求对应的第一版本号,该第一版本号随目标数据数据写入次数的增加而增加。[0089]S202,判断第一版本号是否高于目标数据的本地版本号。[0090]存储节点接收客户端发送的包含针对目标数据的第一写入请求对应的第一版本号的第二写入请求,进而判断第一版本号与目标数据的本地版本号之间的关系,目标数据的本地版本号可以为:目标数据在本地最后一次数据写入时对应第二写入请求中携带的版本号。如果判断出第一版本号高于目标数据的本地版本号,说明针对目标数据的第二写入请求为目标数据对应的最新一次数据写入请求,故而执行S203的步骤。[0091]S203,如果第一版本号高于目标数据的本地版本号,则执行第二写入请求对应的写操作,并将表示写成功的写入结果信息返回给客户端,以使客户端将写入结果信息发送给控制节点,控制节点对目标数据对应的元数据信息进行更新。[0092]如果判断出第一版本号高于目标数据的本地版本号,则执行第二写入请求对应的写操作,对本地目标数据进行更新,并将表示写成功的写入结果信息返回给客户端,以使客户端将写入结果信息发送给控制节点,控制节点对目标数据对应的元数据信息进行更新。[0093]本发明实施例提供的一种数据并发写入方法,由于控制节点能够为客户端发送的针对目标数据的第一写入请求生成对应的第一版本号,该第一版本号随目标数据数据写入次数的增加而增加,即针对同一目标数据版本号是唯一且递增的,使得存储节点在接收到第二写入请求时,可以根据第一版本号确定是否执行本次数据写入操作,保证了多个客户端对同一目标数据并发写时,多个副本文件数据的一致性,解决了多个客户端对同一目标数据并发写时,导致的多个副本文件数据不一致问题,提高了数据的可靠性。进一步,实现了在分布式文件存储系统中,能够容许多个客户端对同一目标数据并发写。[0094]在图2所示实施例的基础上,如图3所示,本发明实施例提供了再一种数据并发写入方法,应用于分布式文件存储系统中的存储节点,该方法可以包括以下步骤:[0095]S301,接收客户端发送的第二写入请求。[0096]其中,第二写入请求中可以包含针对目标数据的第一写入请求对应的第一版本号,该第一版本号随目标数据数据写入次数的增加而增加。[0097]S302,判断第一版本号是否高于目标数据的本地版本号。[0098]其中,目标数据的本地版本号可以为:目标数据在本地最后一次数据写入时对应第二写入请求中携带的版本号。[0099]S303,如果第一版本号高于目标数据的本地版本号,则执行第二写入请求对应的写操作,并将表示写成功的写入结果信息返回给客户端,以使客户端将写入结果信息发送给控制节点,控制节点对目标数据对应的元数据信息进行更新。[0100]其中,步骤S301-S303的实现过程可与步骤S201-S203相同,本发明实施例在此不再赘述。[0101]S304,如果第一版本号不高于目标数据的本地版本号,则拒绝第二写入请求对应的写操作,并将表示写失败的写入结果信息返回给客户端,以使客户端将写入结果信息发送给控制节点。[0102]如果判断出第一版本号不高于目标数据的本地版本号,说明本地存储的目标数据已是最新文件,则拒绝对该目标数据进行更新,进而拒绝第二写入请求对应的写操作,并将表示写失败的写入结果信息返回给客户端,以使客户端将写入结果信息发送给控制节点。[0103]本发明实施例中,在判断出第一版本号不高于目标数据的本地版本号时,拒绝第二写入请求对应的写操作,保证了多个客户端对同一目标数据并发写时,多个副本文件数据的一致性,解决了多个客户端对同一目标数据并发写时,导致的多个副本文件数据不一[0104]作为本发明实施例一种可选的实施方式,如图4所示,存储节点接收的第二写入请求中还可以包含针对目标数据的第一写入请求对应的待写入数据,相应的,在判断出第一版本号高于目标数据的本地版本号时,执行第二写入请求对应的写操作的步骤,可以包括:[0105]S3031,使用待写入数据,更新目标数据的本地数据。[0106]S3032,使用第一版本号,更新目标数据的本地版本号。[0107]存储节点在判断出第一版本号高于目标数据的本地版本号时,使用接收到的第二写入请求中包含的待写入数据,更新目标数据的本地数据,以及使用接收到的第二写入请求中包含的第一版本号,更新目标数据的本地版本号。即使用客户端针对目标数据的第一写入请求对应相应的待写入数据,以及控制节点为第一写入请求生成的第一版本号,覆盖本地存储的目标数据对应的本地数据以及本地版本号,对目标数据进行更新,完成第二写入请求对应的写操作。[0108]作为本发明实施例一种可选的实施方式,存储节点还可以向控制节点发送自身的状态信息,其中,存储节点的自身状态信息可以包括:节点状态以及剩余空间大小。示例性的,节点的状态可以包含存储节点是否正常工作,数据写入的正常速度等信息,剩余空间大小为存储节点当前还能够利用的空间的大小。[0109]本发明实施例中,存储节点可以定时或周期性的向控制节点发送自身的状态信息,以便于控制节点更新所存储的存储节点的状态信息,更准确的为待写入数据选取所要写入的存储节点。[0110]示例性的,当存在两个客户端A和B同时针对目标数据进行并发写入操作时,控制节点接收到客户端A和客户端B发送的针对同一目标数据的第一写入请求,可以分别对客户端A和客户端B发送的写入请求进行校验,同时为客户端A的写入请求生成对应的版本号表示为V1,为客户端B的写入请求生成对应的版本号表示为V2,V2高于V1。当控制节点对客户端A和客户端B发送的写入请求均校验成功时,分别为客户端A和客户端B的写入请求对应的待写入数据选取3个存储节点C、D和E,并将存储节点C、D和E对应的地址信息以及版本号V1发送给客户端A,将存储节点C、D和E对应的地址信息以及版本号V2发送给客户端B。[0111]客户端A接收控制节点返回的存储节点C、D和E对应的地址信息以及版本号V1,并分别向存储节点C、D和E发送第二写入请求,该第二写入请求中携带版本号V1以及对应的待写入数据。[0112]客户端B接收控制节点返回的存储节点C、D和E对应的地址信息以及版本号V2,并分别向存储节点C、D和E发送第二写入请求,该第二写入请求中携带版本号V2以及对应的待写入数据。[0113]以存储节点为C,目标数据的本地版本号为VO进行说明,存储节点C先接收到客户端A发送的第二写入请求,此时,判断第二写入请求携带的版本号V1高于本地版本号VO,将本地数据更新为客户端A发送的第二写入请求对应的待写入数据,将本地版本号VO更新为V1。存储节点C再接收到客户端B发送的第二写入请求,此时,判断第二写入请求携带的版本号V2高于本地版本号V1,将本地数据更新为客户端B发送的第二写入请求对应的待写入数[0114]或者,存储节点C先接收到客户端B发送的第二写入请求,此时,判断第二写入请求携带的版本号V2高于本地版本号VO,将本地数据更新为客户端B发送的第二写入请求对应的待写入数据,将本地版本号VO更新为V2。存储节点C再接收到客户端A发送的第二写入请求,此时,判断第二写入请求携带的版本号V1不高于本地版本号V2,则不对本地数据进行更新,同时保持本地数据的本地版本号为V2。[0115]存储节点D和E执行同样的操作,使得无论存储节点C、D和E是先接收到客户端A发送的第二写入请求,还是先接收到客户端B发送的第二写入请求,存储节点C、D和E中最终保存的数据对应的版本号都是V2,保证了多个客户端对同一目标数据并发写时,多个副本文件数据的一致性,解决了多个客户端对同一目标数据并发写时,导致的多个副本文件数据[0116]如图5所示,图5为本发明实施例提供的一种数据并发写入方法的交互示意图。[0117]客户端向控制节点发送针对目标数据的第一写入请求。[0118]控制节点对客户端发送的针对目标数据的第一写入请求进行校验,并生成第一写入请求对应的第一版本号,第一写入请求对应相应的待写入数据,当对第一写入请求校验成功时,为待写入数据选取预设数量个存储节点,得到预设数量个存储节点对应的地址信息,并将预设数量个存储节点对应的地址信息以及第一版本号,发送给客户端。[0119]客户端接收控制节点发送的预设数量个存储节点对应的地址信息和第一版本号,以及将第二写入请求发送给预设数量个存储节点。[0120]存储节点接收客户端发送的第二写入请求,判断第二写入请求中包含的第一版本号是否高于目标数据的本地版本号,并响应第二写入请求对应的写操作,向客户端返回写入结果信息。[0121]客户端接收存储节点返回的写入结果信息,并将写入结果信息返回给控制节点。[0122]控制节点基于客户端返回的写入结果信息,对目标数据对应的元数据信息进行更新。[0123]相应于上述方法实施例,本发明实施例还提供了相应的系统实施例。[0124]如图6所示,本发明实施例提供了一种分布式数据并发写入系统,分布式数据并发写入系统包括:控制节点和存储节点;[0125]控制节点401,用于对客户端402发送的针对目标数据的第一写入请求进行校验,并生成第一写入请求对应的第一版本号,第一写入请求对应相应的待写入数据,当对第一写入请求校验成功时,为待写入数据选取预设数量个存储节点403,得到预设数量个存储节点对应的地址信息,将预设数量个存储节点对应的地址信息以及第一版本号,发送给客户端402,并基于客户端402返回的写入结果信息,对目标数据对应的元数据信息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《城市绿色交通发展与空气质量改善的耦合关系及政策响应机制》教学研究课题报告
- 2025年企业品牌建设与管理策略行业报告
- 教师数字能力提升在线学习社区教学设计与实践研究教学研究课题报告
- 2024年湖南都市职业学院马克思主义基本原理概论期末考试模拟试卷
- 2025年恩施职业技术学院马克思主义基本原理概论期末考试真题汇编
- 2024年遵义医科大学医学与科技学院马克思主义基本原理概论期末考试模拟试卷
- 2024年安徽财贸职业学院马克思主义基本原理概论期末考试真题汇编
- 2024年江苏科技大学苏州理工学院马克思主义基本原理概论期末考试笔试真题汇编
- 2024年宁波工程学院马克思主义基本原理概论期末考试笔试真题汇编
- 2025年广东环境保护工程职业学院马克思主义基本原理概论期末考试笔试真题汇编
- 漂流滑道施工方案
- 安全管理不足之处及整改方案解析
- 安全生产培训包括哪些内容
- 2025年国有企业三项制度改革自查报告
- 赊销业务与企业财务风险控制-洞察及研究
- 钢笔修理课件
- (2024版)人教版 小学体育与健康 一年级全一册 教学设计
- 教研组长专业能力提升培训
- 高中教学经验交流课件
- 直播间设计装修合同范本
- 十五五特殊教育发展提升行动计划
评论
0/150
提交评论