分布式集群系统及数据写入方法、电子设备、存储装置与流程

文档序号:23628921发布日期:2021-01-12 10:42阅读:84来源:国知局
分布式集群系统及数据写入方法、电子设备、存储装置与流程

本发明涉及数据处理技术领域,特别是涉及一种分布式集群系统及数据写入方法、电子设备、存储装置。



背景技术:

在分布式集群的实际应用中,常常需要同时写入多个文件的数据,以确保一致,而要写入的可能是多个备份文件,也可能是多个配置文件等。即便使用现有的分布式文件系统或数据库保存此类数据,那至少也需要在各节点的本地文件中配置分布式文件系统或数据库其他节点的网络地址,这个地址在变化时也需要统一修改。

而在写入多个文件时,为了确保一致性往往采用完整严格的验证,即所有节点写入成功才执行成功,但当个别节点出现网络问题时,会导致写入一直无法执行成功。或者直接使用人工写入各个文件,配置完成后再启动各个节点的方式,这种方式在写入时工作量过大。

因此,如何解决分布式集群的数据写入过程对网络情况的过度依赖,是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本发明主要解决的技术问题提供一种分布式集群系统及数据写入方法、电子设备、存储装置,以解决分布式集群系统的数据写入过程对网络情况的过度依赖的问题,确保分布式集群系统的高可用性。

为解决上述技术问题,本发明采用的一个技术方案是提供一种分布式集群系统,所述分布式集群系统包括互相连接的管理节点和多个数据节点;所述管理节点用于:将包含待写入数据的第一写入指令发送给所有所述数据节点,并将所述多个数据节点确定为已写入所述待写入数据的正常数据节点和未写入所述待写入数据的故障数据节点;以及将所述故障数据节点的节点信息发送给所述正常数据节点;所述正常数据节点用于:接收由所述管理节点发送的所述第一写入指令,响应所述第一写入指令以写入所述待写入数据;以及接收所述管理节点发送的所述故障数据节点的节点信息,并基于所述节点信息确定所述故障数据节点并将包含待写入数据的第二写入指令发送至所述故障数据节点,以指示接收到所述第二写入指令的所述故障数据节点写入所述待写入数据。

为解决上述技术问题,本发明采用的另一个技术方案是提供一种数据写入方法,所述方法应用于由管理节点和多个数据节点组成的分布式集群系统,所述方法包括:所述管理节点将包含待写入数据的第一写入指令发送给所有所述数据节点;基于所述第一写入指令的执行结果,将所述多个数据节点确定为已写入所述待写入数据的正常数据节点和未写入所述待写入数据的故障数据节点;将所述故障数据节点的节点信息发送给所述正常数据节点,以使所述正常数据节点指示所述故障数据节点重新写入所述待写入数据。

为解决上述技术问题,本发明采用的另一个技术方案是提供一种电子设备,所述电子设备包括相互耦接的通信电路、存储器和处理器;所述通信电路用于与各数据节点进行通信;所述存储器用于存储程序数据;所述处理器执行所述程序数据,用于实现如上所述的方法;或所述电子设备为上述的分布式集群系统中的管理节点。

为解决上述技术问题,本发明采用的另一个技术方案是提供一种存储装置,所述存储装置存储有程序数据,所述程序数据能够被执行以实现如上所述的方法。

本发明的有益效果是:区别于现有技术的情况,本申请的分布式集群系统,通过管理节点将包含待写入数据的第一写入指令发送给所有数据节点,并将多个数据节点确定为已写入待写入数据的正常数据节点和未写入待写入数据的故障数据节点,由于数据节点中的正常数据节点可以接收由管理节点发送的第一写入指令,响应第一写入指令以写入待写入数据,而故障数据节点则不能写入待写入数据,于是管理节点将故障数据节点的节点信息发送给正常数据节点,正常数据节点接收管理节点发送的故障数据节点的节点信息,并基于节点信息确定故障数据节点并将包含待写入数据的第二写入指令发送至故障数据节点,以指示接收到第二写入指令的故障数据节点写入待写入数据,使得在通过管理节点对故障数据节点写入数据失败时,可以通过其他正常数据节点再次对故障数据节点进行数据的写入,可以避免由于网闸或网络故障等原因而使部分故障数据节点无法进行数据的写入、进而导致分布式集群系统的数据写入过程无法完成,解决了分布式集群系统的数据写入过程对网络情况的过度依赖的问题,确保了分布式集群系统的高可用性。

附图说明

图1是本发明提供的一种分布式集群系统的一实施例的结构示意图;

图2是本发明提供的分布式集群系统的第一应用场景的工作原理示意图;

图3是本发明提供的分布式集群系统的第二应用场景的工作原理示意图;

图4是本发明提供的分布式集群系统的第三应用场景的工作原理示意图;

图5是本发明提供的一种数据写入方法的第一实施例的流程示意图;

图6是本发明提供的一种数据写入方法的第二实施例的流程示意图;

图7是本发明提供的一种数据写入方法的第三实施例的流程示意图;

图8是本发明提供的电子设备一实施例的结构示意图;

图9是本发明提供的存储装置一实施例的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,均属于本发明保护的范围。

请参阅图1,图1是本发明提供的一种分布式集群系统的一实施例的结构示意图。本申请中的分布式集群系统包括管理节点10和多个数据节点12,其中,管理节点10与每个数据节点12之间互相连接,且每个数据节点12之间也相互连接,数据节点12的数量为多个,例如4个、5个等等,可以根据实际需要进行设置,在此不做限定。本申请中,管理节点10用于:将包含待写入数据的第一写入指令发送给所有数据节点12,并将多个数据节点12确定为已写入待写入数据的正常数据节点和未写入待写入数据的故障数据节点;以及将故障数据节点的节点信息发送给正常数据节点。正常数据节点用于:接收由管理节点10发送的第一写入指令,响应第一写入指令以写入待写入数据;以及接收管理节点10发送的故障数据节点的节点信息,并基于节点信息确定故障数据节点并将包含待写入数据的第二写入指令发送至故障数据节点,以指示接收到第二写入指令的故障数据节点写入待写入数据。

在分布式集群系统的数据写入过程中,通过管理节点10将包含待写入数据的第一写入指令发送给所有的数据节点12,由数据节点12接收该第一写入指令,并响应该第一写入指令以写入该待写入数据;但由于数据节点12自身故障原因或者与管理节点10之间的网络原因,部分数据节点12可能并不能接收到该第一写入指令,或者接收到该第一写入指令却不能响应该第一写入指令,因此这部分数据节点12无法写入待写入数据,这些未写入待写入数据的数据节点12被确定为故障数据节点,而其他可以接收到该第一写入指令、并且可以响应该第一写入指令以写入待写入数据的数据节点12被确定为正常数据节点。若故障数据节点是由于其与管理节点10之间的网络原因而导致不能接收到该第一写入指令时,此时管理节点10可以将故障数据节点的节点信息发送给正常数据节点,而正常数据节点在接收到管理节点10发送的故障数据节点的节点信息后,可以基于该节点信息确定故障数据节点并将包含待写入数据的第二写入指令发送至故障数据节点,若故障数据节点与正常数据节点之间的网络链路正常,则故障数据节点可以接收到该第二写入指令,并响应该第二写入指令以写入待写入数据。

本实施例中,在通过管理节点10对所有数据节点12写入数据时,部分故障数据节点其与管理节点10之间可能由于网闸或网络故障原因导致不能接收到该第一写入指令而未写入待写入数据,可以通过其他已写入待写入数据的正常数据节点再次尝试对故障数据节点进行数据的写入,从而可以避免因为与管理节点10之间存在网闸或网络故障等原因而使部分故障数据节点无法进行数据的写入、进而导致分布式集群系统的数据写入过程无法完成,解决了分布式集群系统的数据写入过程对网络情况的过度依赖的问题,确保了分布式集群系统的高可用性。

请参阅图2,图2是本发明提供的分布式集群系统的第一应用场景的工作原理示意图。在本应用场景中,分布式集群系统包括管理节点20和数据节点220、数据节点222、数据节点224、数据节点226、数据节点228;当需要进行数据写入时,通过管理节点20将包含待写入数据的第一写入指令发送给数据节点220、数据节点222、数据节点224、数据节点226和数据节点228;由于数据节点220、数据节点224和数据节点226分别于管理节点20之间的链路正常,数据节点220、数据节点224和数据节点226均能接收到第一写入指令,在接收到第一写入指令后,数据节点220、数据节点224和数据节点226均响应该第一写入指令并写入待写入数据,此时数据节点220、数据节点224和数据节点226确认为正常数据节点;而由于数据节点222与管理节点20之间存在网闸,数据节点228与管理节点20之间存在网络故障,故数据节点222和数据节点228均不能接收到第一写入指令,于是无法写入待写入数据,此时数据节点222和数据节点228确认为故障数据节点;此时管理节点20可以将确认为故障数据节点的数据节点222和数据节点228的节点信息发送给确认为正常数据节点的数据节点220、数据节点224和数据节点226,数据节点220、数据节点224和数据节点226在接收到管理节点20发送的数据节点222和数据节点228的节点信息后,可以基于该节点信息确定数据节点222和数据节点228为故障数据节点,于是数据节点220、数据节点224和数据节点226分别将包含待写入数据的第二写入指令发送至数据节点222和数据节点228;由于数据节点220、数据节点224和数据节点226分别与数据节点222之间的链路均为正常,因此数据节点222可以接收到分别由数据节点220、数据节点224和数据节点226发送的第二写入指令,进而数据节点222可以响应该第二写入指令并写入待写入数据;由于数据节点220和数据节点226分别与数据节点228之间的链路均为正常,数据节点224与数据节点228之间的链路故障,因此数据节点228可以接收到分别由数据节点220和数据节点226发送的第二写入指令,进而数据节点228也可以响应该第二写入指令并写入待写入数据;至此,数据节点220、数据节点222、数据节点224、数据节点226和数据节点228均可以成功写入待写入数据。可以理解的是,数据节点222和数据节点228均接收到了两个或两个以上的正常数据节点发送的第二写入指令,此时数据节点222和数据节点228既可以响应每个第二写入指令并多次写入待写入数据,当然第二次及以后写入该待写入数据并不会对数据本身产生影响,当然也可以在数据节点222和数据节点228响应了第一个第二写入指令并写入了待写入数据之后,在后续接收到其他的第二写入指令时会先将该其他的第二写入指令包含的待写入数据与自身已有的数据进行比对,若相同,则不响应该其他的第二写入指令,若不同,则响应该其他的第二写入指令并写入该待写入数据;也就是说,数据节点220、数据节点224和数据节点226中只要有一个能够成功对数据节点222或数据节点228成功写入该待写入数据,则数据节点222或数据节点228的数据写入即为成功。

请继续参阅图1,在一实施例中,管理节点10在执行上述将故障数据节点的节点信息发送给正常数据节点之后,管理节点10还用于:更新数据节点12中的正常数据节点和故障数据节点,并判断更新后的正常数据节点是否满足预设条件;若满足,则确定分布式集群系统的数据写入成功。

可以理解的是,在管理节点10将故障数据节点的节点信息发送给正常数据节点之后,正常数据节点接收该故障数据节点的节点信息,并基于节点信息确定故障数据节点并将包含待写入数据的第二写入指令发送至故障数据节点,以指示接收到第二写入指令的故障数据节点写入待写入数据;此时可能存在部分故障数据节点能够接收到第二写入指令并写入待写入数据,这些故障数据节点实际上应该被看作正常数据节点,而其他的故障数据节点不能接收到第二写入指令,故仍然为故障数据节点,因此,管理节点10可以进一步更新并确认数据节点12中的正常数据节点和故障数据节点,然后判断更新后的正常数据节点是否满足预设条件;当更新后的正常数据节点满足预设条件时,则确定分布式集群系统的数据写入成功,而当更新后的正常数据节点不满足预设条件时,则确定分布式集群系统的数据写入失败。可以理解的是,若确定了分布式集群系统的数据写入成功,则即使仍然存在部分数据节点12为故障数据节点,本申请的分布式集群系统的数据写入过程也是成功的,确保了分布式集群系统的高可用性。

作为一种可实施方式,本申请的预设条件可以为多个数据节点12中的预设重要数据节点均为正常数据节点。可以理解的是,分布式集群系统的所有数据节点12中,可能存在重要性高的数据节点12,可以将这些重要性高的数据节点12预设为重要数据节点,即这些重要性高的数据节点12为预设重要数据节点;可以理解的是,在分布式集群系统的数据写入时,重要性高的数据节点12的数据必须写入成功后,才能表示该分布式集群系统的数据写入成功,而此时其他重要性不高的数据节点12的数据是否写入成功则不直接影响分布式集群系统的数据写入是否成功。因此,当更新后的正常数据节点满足的预设条件为预设重要数据节点均为正常数据节点时,由于正常数据节点已写入待写入数据,则说明所有的预设重要数据节点均写入了待写入数据,而此时无论是否存在其他不是预设重要数据节点的数据节点12为故障数据节点,都可以确定分布式集群系统的数据写入成功。

进一步地,故障数据节点用于:在自身的故障被排除后,获取预设重要数据节点中的当前数据,并将当前数据更新至自身节点中。可以理解的是,当更新后的正常数据节点满足的预设条件为预设重要数据节点均为正常数据节点时,则确定分布式集群系统的数据写入成功,此时,在其他不是预设重要数据节点的所有的数据节点12中可能存在有故障数据节点的情况,而此时的故障数据节点可能是由于自身故障原因或者由于与分布式集群系统中的管理节点10以及其他数据节点12之间的链路均存在故障而导致的。可以理解的是,无论是自身故障原因或者由于故障数据节点与管理节点10以及其他数据节点12之间的链路均存在故障的情况,在故障数据节点的故障被排除后,这些故障被排除后故障数据节点仍然需要写入待写入数据,此时故障被排除后的故障数据节点可以获取预设重要数据节点中的当前数据,并将该当前数据更新至自身节点中,由于预设重要数据节点已经写入待写入数据,因此将预设重要数据节点中的当前数据更新至自身节点中,可以保证故障被排除后的故障数据节点也完成待写入数据的写入过程。

请参阅图3,图3是本发明提供的分布式集群系统的第二应用场景的工作原理示意图。在本应用场景中,分布式集群系统包括管理节点30和数据节点320、数据节点322、数据节点324、数据节点326、数据节点328,其中数据节点320和数据节点324为预设重要数据节点,而数据节点322、数据节点326和数据节点328为非重要数据节点;当需要进行数据写入时,通过管理节点30将包含待写入数据的第一写入指令发送给数据节点320、数据节点322、数据节点324、数据节点326和数据节点328;由于数据节点320、数据节点322、数据节点324和数据节点326分别于管理节点30之间的链路正常且没有自身故障,数据节点320、数据节点322、数据节点324和数据节点326均能接收并响应第一写入指令并写入待写入数据,此时数据节点320、数据节点322、数据节点324和数据节点326确认为正常数据节点;而由于数据节点328与管理节点30之间存在网络故障,且数据节点328自身宕机,故数据节点328不能接收到第一写入指令,于是无法写入待写入数据,此时数据节点328确认为故障数据节点;于是管理节点30可以将确认为故障数据节点的数据节点328的节点信息发送给确认为正常数据节点的数据节点320、数据节点322、数据节点324和数据节点326,通过数据节点320、数据节点322、数据节点324和数据节点326分别向数据节点328发送包含待写入数据的第二写入指令;由于数据节点328自身宕机,故其仍然无法接收到分别由数据节点320、数据节点322、数据节点324和数据节点326发送的第二写入指令,故仍然无法写入待写入数据。虽然此时数据节点328无法写入待写入数据,即分布式集群系统存在故障数据节点,但由于作为预设重要数据节点的数据节点320和数据节点324均为正常数据节点,已写入待写入数据,则此时可以确定分布式集群系统的数据写入成功。之后,当数据节点328的宕机故障被排除后,数据节点328可以向作为预设重要数据节点的数据节点320和/或数据节点324获取数据节点320和/或数据节点324中的当前数据,并将数据节点320和/或数据节点324中的当前数据更新至自身节点中,由于数据节点320和数据节点324已经写入待写入数据,因此数据节点328将数据节点320和/或数据节点324中的当前数据更新至自身节点中,可以保证其写入了待写入数据。

请继续参阅图1,作为另一种可实施方式,本申请的每个数据节点12预设有对应权重值,预设条件可以为所有正常数据节点的权重值之和大于预设阈值。可以理解的是,分布式集群系统的所有数据节点12中,各个数据节点12之间的重要性可能不同,因此,可以将每个数据节点12根据其重要性程度预设有对应权重值;在分布式集群系统的数据写入时,只有当数据写入成功的所有数据节点12,即所有的正常数据节点的权重值之和大于预设阈值时,才能表示该分布式集群系统的数据写入成功,而此时其他数据未写入的数据节点12,即故障数据节点不影响分布式集群系统的数据写入成功。

进一步地,故障数据节点用于:在自身的故障被排除后,获取每个数据节点12中的当前数据,选择具有相同当前数据、且权重值之和大于预设阈值的数据节点12的当前数据,并将选择的当前数据更新至自身节点中。可以理解的是,当更新后的正常数据节点满足的预设条件为所有正常数据节点的权重值之和大于预设阈值时,则确定分布式集群系统的数据写入成功,此时仍然可能存在故障数据节点,而故障数据节点可能是由于自身故障原因或者由于与分布式集群系统中的管理节点10以及其他数据节点12之间的链路均存在故障而导致的。可以理解的是,无论是自身故障原因或者由于故障数据节点与管理节点10以及其他数据节点12之间的链路均存在故障的情况,在故障数据节点的故障被排除后,这些故障被排除后故障数据节点仍然需要写入待写入数据,此时故障被排除后的故障数据节点可以获取每个数据节点12中的当前数据,选择具有相同当前数据、且权重值之和大于预设阈值的数据节点12的当前数据,并将选择的当前数据更新至自身节点中,因为当若干个数据节点12具有相同的当前数据、并且这些数据节点12所对应的权重值之和大于预设阈值,则说明这些数据节点12已经写入待写入数据,因此选择这些数据节点12的当前数据,并将所选择的当前数据更新至自身节点中,可以保证故障被排除后的故障数据节点也完成待写入数据的写入过程。

请参阅图4,图4是本发明提供的分布式集群系统的第三应用场景的工作原理示意图。在本应用场景中,分布式集群系统包括管理节点40和数据节点420、数据节点422、数据节点424、数据节点426、数据节点428,并且各数据节点根据其重要性程度预设有对应权重值,其中数据节点420其对应权重值为4.2,数据节点422其对应权重值为3.5,数据节点424其对应权重值为4.5,数据节点426其对应权重值为3.7,数据节点428其对应权重值为4.1,而预设阈值可以设置为所有数据节点对应权重值之和的一半,即预设阈值为(4.2+3.5+4.5+3.7+4.1)/2=10;当需要进行数据写入时,通过管理节点40将包含待写入数据的第一写入指令发送给数据节点420、数据节点422、数据节点424、数据节点426和数据节点428;由于数据节点422、数据节点424和数据节点426分别于管理节点40之间的链路正常且没有自身故障,数据节点422、数据节点424和数据节点426均能接收并响应第一写入指令并写入待写入数据,此时数据节点422、数据节点424和数据节点426确认为正常数据节点;而由于数据节点420、数据节点428分别与管理节点40之间存在网络故障,且数据节点420、数据节点428自身均宕机,故数据节点420、数据节点428均不能接收到第一写入指令,于是无法写入待写入数据,此时数据节点420、数据节点428确认为故障数据节点;于是管理节点40可以将确认为故障数据节点的数据节点420、数据节点428的节点信息发送给确认为正常数据节点的数据节点422、数据节点424和数据节点426,通过数据节点422、数据节点424和数据节点426分别向数据节点428发送包含待写入数据的第二写入指令,以尝试对数据节点420、数据节点428进行数据写入;但由于数据节点420、数据节点428自身宕机,故仍然无法写入待写入数据。虽然此时数据节点420、数据节点428无法写入待写入数据,即分布式集群系统存在故障数据节点,但由于数据节点422、数据节点424和数据节点426均为正常数据节点,故此时所有正常数据节点的权重值之和为3.5+4.5+3.7=11.7,大于预设阈值10,因此可以确定分布式集群系统的数据写入成功。之后,当数据节点420的宕机故障被排除后,数据节点420可以分别获取数据节点422、数据节点424、数据节点426和数据节点428中的当前数据,由于数据节点428仍然处于宕机状态,故数据节点420实际获取到了数据节点422、数据节点424和数据节点426中的当前数据,由于数据节点422、数据节点424和数据节点426均为正常数据节点,均写入了待写入数据,因此数据节点422、数据节点424和数据节点426均有相同的当前数据,且数据节点422、数据节点424和数据节点426的权重值之和11.7大于预设阈值10,因此数据节点420可以将数据节点422、数据节点424和数据节点426均有的相同的当前数据更新至自身节点中,可以保证数据节点420写入了待写入数据。

请继续参阅图1,在另一实施例中,故障数据节点的节点信息包括故障数据节点的地址信息。可以理解的是,故障数据节点的节点信息包括故障数据节点的地址信息,使得正常数据节点在接收到管理节点10发送的故障数据节点的节点信息后,可以实现基于该节点信息确定故障数据节点并将包含待写入数据的第二写入指令发送至故障数据节点。

作为一种可实施方式,管理节点10在执行上述将多个数据节点12确定为已写入待写入数据的正常数据节点和未写入待写入数据的故障数据节点时,具体包括:管理节点10接收数据节点12反馈的对待写入数据的第一写入成功消息,将发送第一写入成功消息的数据节点12确定为正常数据节点,其余数据节点12确定为故障数据节点。并且,管理节点10在执行上述更新数据节点12中的正常数据节点和故障数据节点时,具体包括:管理节点10接收故障数据节点反馈的待写入数据的第二写入成功消息,将发送第二写入成功消息的故障数据节点更新为正常数据节点。

可以理解的是,在管理节点10将包含待写入数据的第一写入指令发送给所有的数据节点12后,部分数据节点12可以接收到该第一写入指令、并且可以响应该第一写入指令以写入待写入数据,于是这些成功写入待写入数据的数据节点12可以发送第一写入成功消息到管理节点10,以反馈其成功写入待写入数据,于是管理节点10可以将发送了第一写入成功消息的数据节点12确定为正常数据节点,而其余数据节点12确定为故障数据节点。而在管理节点10将故障数据节点的节点信息发送给正常数据节点之后,正常数据节点接收该故障数据节点的节点信息,并基于节点信息确定故障数据节点并将包含待写入数据的第二写入指令发送至故障数据节点,以指示接收到第二写入指令的故障数据节点写入待写入数据;此时可能部分原先被确定为故障数据节点的数据节点12能够接收到第二写入指令并写入待写入数据,此时这部分原先被确定为故障数据节点的数据节点12可以发送第二写入成功消息到正常数据节点,并由正常数据节点发送到管理节点10,以反馈其成功写入待写入数据,于是管理节点10可以将发送了第二写入成功消息的原先被确定为故障数据节点的数据节点12更新为正常数据节点。

请参阅图5,图5是本发明提供的一种数据写入方法的第一实施例的流程示意图。本申请提供的数据写入方法应用于由管理节点和多个数据节点组成的分布式集群系统,本实施例中的数据写入方法包括以下步骤:

s501:管理节点将包含待写入数据的第一写入指令发送给所有数据节点。

s502:基于第一写入指令的执行结果,将多个数据节点确定为已写入待写入数据的正常数据节点和未写入待写入数据的故障数据节点。

s503:将故障数据节点的节点信息发送给正常数据节点,以使正常数据节点指示故障数据节点重新写入待写入数据。

本实施例中,通过管理节点将包含待写入数据的第一写入指令发送给所有数据节点,以对所有数据节点写入数据,其中部分数据节点可以接收到该第一写入指令、并且可以响应该第一写入指令以写入待写入数据,但其他数据节点由于自身故障原因或者与管理节点之间的网络故障原因而不能接收或者响应该第一写入指令,基于这种能否响应第一写入指令并执行的结果,管理节点可以将所有的数据节点确定为已写入待写入数据的正常数据节点和未写入待写入数据的故障数据节点;此时管理节点可以将故障数据节点的节点信息发送给正常数据节点,然后通过已写入待写入数据的正常数据节点再次尝试对故障数据节点进行数据的写入,从而可以避免因为与管理节点之间存在网闸或网络故障等原因而使部分故障数据节点无法进行数据的写入、进而导致分布式集群系统的数据写入过程无法完成,解决了分布式集群系统的数据写入过程对网络情况的过度依赖的问题,确保了分布式集群系统的高可用性。

请参阅图6,图6是本发明提供的一种数据写入方法的第二实施例的流程示意图。本实施例中的数据写入方法包括以下步骤:

s601:管理节点将包含待写入数据的第一写入指令发送给所有数据节点。

s602:基于第一写入指令的执行结果,将多个数据节点确定为已写入待写入数据的正常数据节点和未写入待写入数据的故障数据节点。

s603:将故障数据节点的节点信息发送给正常数据节点,以使正常数据节点指示故障数据节点重新写入待写入数据。

与本申请的数据写入方法的第一实施例的区别在于,本实施例中的数据写入方法还包括步骤:

s604:更新数据节点中的正常数据节点和故障数据节点,并判断更新后的正常数据节点是否满足预设条件。若不满足,则说明分布式集群系统的数据写入还未成功。

s605:若满足,则确定分布式集群系统的数据写入成功。

可以理解的是,在正常数据节点接收到管理节点发送的故障数据节点的节点信息,进而基于该节点信息确定故障数据节点并将包含待写入数据的第二写入指令发送至故障数据节点后,可能存在部分故障数据节点能够接收到第二写入指令并写入待写入数据,这些故障数据节点实际上应该被看作正常数据节点;因此,本实施例中,通过管理节点进一步更新并确认数据节点中的正常数据节点和故障数据节点,然后判断更新后的正常数据节点是否满足预设条件;当更新后的正常数据节点满足预设条件时,则确定分布式集群系统的数据写入成功,而当更新后的正常数据节点不满足预设条件时,则确定分布式集群系统的数据写入失败。从而在判断出更新后的正常数据节点满足预设条件时,即使仍然存在部分数据节点为故障数据节点,也能确定分布式集群系统的数据写入过程是成功的,确保了分布式集群系统的高可用性。

作为一种可实施方式,上述预设条件可以为多个数据节点中的预设重要数据节点均为正常数据节点。可以理解的是,当更新后的正常数据节点满足的预设条件为预设重要数据节点均为正常数据节点时,由于正常数据节点已写入待写入数据,则说明所有的预设重要数据节点均写入了待写入数据,而此时无论是否存在其他不是预设重要数据节点的数据节点为故障数据节点,都可以确定分布式集群系统的数据写入成功。

作为另一种可实施方式,每个数据节点均预设有对应权重值,上述预设条件可以为所有正常数据节点的权重值之和大于预设阈值。可以理解的是,分布式集群系统的所有数据节点中,各个数据节点之间的重要性可能不同,因此,可以将每个数据节点根据其重要性程度预设有对应权重值;在分布式集群系统的数据写入时,只有当数据写入成功的所有数据节点,即所有的正常数据节点的权重值之和大于预设阈值时,才能表示该分布式集群系统的数据写入成功,而此时其他数据未写入的数据节点,即故障数据节点不影响分布式集群系统的数据写入成功。

在一实施例中,故障数据节点的节点信息包括故障数据节点的地址信息。可以理解的是,故障数据节点的节点信息包括故障数据节点的地址信息,使得正常数据节点在接收到管理节点发送的故障数据节点的节点信息后,可以实现基于该节点信息确定故障数据节点并将包含待写入数据的第二写入指令发送至故障数据节点。

请参阅图7,图7是本发明提供的一种数据写入方法的第三实施例的流程示意图。本实施例中的数据写入方法包括以下步骤:

s701:管理节点将包含待写入数据的第一写入指令发送给所有数据节点。

s702:接收数据节点反馈的对待写入数据的第一写入成功消息,将发送第一写入成功消息的数据节点确定为正常数据节点,其余数据节点确定为故障数据节点。

s703:将故障数据节点的节点信息发送给正常数据节点,以使正常数据节点指示故障数据节点重新写入待写入数据。

s704:接收故障数据节点反馈的待写入数据的第二写入成功消息,将发送第二写入成功消息的故障数据节点更新为正常数据节点,并判断更新后的正常数据节点是否满足预设条件。

s705:若满足,则确定分布式集群系统的数据写入成功。

在本实施例中,通过管理节点将发送了第一写入成功消息的数据节点确定为正常数据节点,而其余数据节点确定为故障数据节点,并且将发送了第二写入成功消息的原先被确定为故障数据节点的数据节点更新为正常数据节点,可以准确的确认所有数据节点中的正常数据节点和故障数据节点,从而可以实现在判断出更新后的正常数据节点满足预设条件时,即使仍然存在部分数据节点为故障数据节点,也能确定分布式集群系统的数据写入过程是成功的,确保了分布式集群系统的高可用性。

本申请提供的数据写入方法所应用的由管理节点和多个数据节点组成的分布式集群系统可以为本申请提供的上述的分布式集群系统,本申请的数据写入方法实施例的具体相关内容请参见上述分布式集群系统实施例中的详细说明。

请参阅图8,图8是本发明提供的电子设备一实施例的结构示意图。本申请中的电子设备80包括相互耦接的通信电路800、存储器802和处理器804;通信电路800用于与各数据节点进行通信;存储器802用于存储程序数据;处理器804执行该程序数据,用于实现上述的任意一种数据写入方法。

在另一实施例中,本申请的电子设备80为上述分布式集群系统中的管理节点10。

本申请电子设备80实施例的具体相关内容请参见上述分布式集群系统和数据写入方法实施例中的详细说明。

请参阅图9,图9是本发明提供的存储装置一实施例的结构示意图。本申请中的存储装置90中存储有程序数据900,程序数据900能够被执行以实现如上所述的数据写入方法。该存储装置90可以是服务器中的存储芯片、sd卡等可读写存储的工具,也可以是服务器等等。

在本申请所提供的几个实施例中,应该理解到,所揭露的分布式集群系统及数据写入方法、电子设备、存储装置,可以通过其它的方式实现。例如,以上所描述的设备结构实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1