掌桥专利:专业的专利平台
掌桥专利
首页

多AZ环境下纠删码数据的写入方法以及装置

文献发布时间:2023-06-19 12:19:35


多AZ环境下纠删码数据的写入方法以及装置

技术领域

本说明书实施例涉及计算机技术领域,特别涉及多AZ环境下纠删码数据的写入方法。本说明书一个或者多个实施例同时涉及多AZ环境下纠删码数据的写入装置,计算设备,以及计算机可读存储介质。

背景技术

随着分布式系统的存储规模越来越大,数据存储成本与可靠性在分布式系统设计时成为需要考虑的重要因素。多AZ(Availability Zones,可用区)方案,是将数据分散到多个单独的数据中心中,并保证当单个AZ遇到机房或网络设备故障时数据仍旧可用。由于多AZ可以为数据提供更高的安全性、保证系统的稳定性,纠删码可以在保证数据可靠性的前提下,减少系统的存储开销,因此,为了应对越来越复杂的业务场景与系统环境,目前采用多AZ环境下纠删码数据的写入来保证数据可用性。

但是,多AZ环境下写入纠删码数据可能导致大量的数据传输,对系统的稳定性以及运行效率带来了不利影响。

发明内容

有鉴于此,本说明书实施例提供了多AZ环境下纠删码数据的写入方法。本说明书一个或者多个实施例同时涉及多AZ环境下纠删码数据的写入装置,计算设备,以及计算机可读存储介质,以解决现有技术中存在的技术缺陷。

根据本说明书实施例的第一方面,提供了一种多AZ环境下纠删码数据的写入方法,应用于AZ内的中继节点,所述方法包括:从多AZ的分布式系统的客户端接收数据块;利用接收到的数据块,通过LRC纠删码算法生成局部校验块;将所述局部校验块写入所述中继节点所属AZ的数据节点中。

可选地,所述方法还包括:将接收到的数据块写入所属AZ的数据节点中。

可选地,所述方法还包括:将接收到的数据块和所述局部校验块,按块的数量平均分配给所属AZ的数据节点;

可选地,所述将局部校验块写入所述中继节点所属AZ的数据节点中包括:将局部校验块写入被分配到的数据节点中。所述将接收到的数据块写入所属AZ的数据节点中包括:将接收到的数据块写入被分配到的数据节点中。

可选地,所述利用接收到的数据块,通过LRC纠删码算法生成局部校验块包括:从所述客户端接收用户对LRC纠删码算法的配置信息;利用所述配置信息,设置所述LRC纠删码算法;利用接收到的数据块,通过经设置的LRC纠删码算法生成局部校验块。

根据本说明书实施例的第二方面,提供了一种多AZ环境下纠删码数据的写入装置,配置于AZ内的中继节点,所述装置包括:数据接收模块,被配置为从多AZ的分布式系统的客户端接收数据块。局部校验计算模块,被配置为利用接收到的数据块,通过LRC纠删码算法生成局部校验块。局部校验写入模块,被配置为将所述局部校验块写入所述中继节点所属AZ的数据节点中。

根据本说明书实施例的第三方面,提供了一种多AZ环境下纠删码数据的写入方法,应用于多AZ的分布式系统的客户端,所述方法包括:利用若干个数据块,通过LRC纠删码算法生成全局校验块;将所述全局校验块写入AZ的数据节点中;向多个AZ的中继节点分别发送对应AZ的数据块,以使所述中继节点利用接收到的数据块,通过LRC纠删码算法生成局部校验块,将所述局部校验块写入所属AZ的数据节点中。

可选地,所述将所述全局校验块写入AZ的数据节点中包括:直接向所述多个AZ的数据节点分别发送对应AZ的全局校验块。

可选地,所述将所述全局校验块写入AZ的数据节点中包括:在所述全局校验块为多个的情况下,将所述全局校验块按照块的数量平均分配给各个AZ;将所述全局校验块写入被分配到的AZ的数据节点中。所述向多个AZ的中继节点分别发送对应AZ的数据块包括:将所述若干个数据块按照块的数量平均分配给各个AZ;向所述多个AZ的中继节点分别发送对应AZ的数据块。

可选地,所述方法还包括:接收用户对LRC纠删码算法的配置信息;将所述配置信息发送给所述多个AZ的中继节点,以使所述中继节点利用所述配置信息,设置LRC纠删码算法。

根据本说明书实施例的第四方面,提供了一种多AZ环境下纠删码数据的写入装置,配置于多AZ的分布式系统的客户端,所述装置包括:全局校验计算模块,被配置为利用若干个数据块,通过LRC纠删码算法生成全局校验块。全局校验写入模块,被配置为将所述全局校验块写入AZ的数据节点中。数据发送模块,被配置为向多个AZ的中继节点分别发送对应AZ的数据块,以使所述中继节点利用接收到的数据块,通过LRC纠删码算法生成局部校验块,将所述局部校验块写入所属AZ的数据节点中。

根据本说明书实施例的第五方面,提供了一种多AZ的分布式系统,包括:客户端以及多个AZ,所述AZ内设置有中继节点以及与所述中继节点通信的若干个数据节点,其中:所述客户端,被配置为利用若干个数据块,通过LRC纠删码算法生成全局校验块,将所述全局校验块写入被分配到的AZ的数据节点中,向所述多个AZ内各自的中继节点分别发送对应AZ的数据块。所述中继节点,被配置为从所述客户端接收数据块,利用接收到的数据块,通过LRC纠删码算法生成局部校验块,将所述局部校验块写入所属AZ的数据节点中。

根据本说明书实施例的第六方面,提供了一种计算设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:从多AZ的分布式系统的客户端接收数据块;利用接收到的数据块,通过LRC纠删码算法生成局部校验块;将所述局部校验块写入所述中继节点所属AZ的数据节点中。

根据本说明书实施例的第七方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现本说明书任意实施例所述应用于中继节点的多AZ环境下纠删码数据的写入方法的步骤。

根据本说明书实施例的第八方面,提供了一种计算设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:利用若干个数据块,通过LRC纠删码算法生成全局校验块;将所述全局校验块写入AZ的数据节点中;向多个AZ的中继节点分别发送对应AZ的数据块,以使所述中继节点利用接收到的数据块,通过LRC纠删码算法生成局部校验块,将所述局部校验块写入所属AZ的数据节点中。

根据本说明书实施例的第九方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现本说明书任意实施例所述应用于客户端的多AZ环境下纠删码数据的写入方法的步骤。

本说明书一个实施例提供了多AZ环境下纠删码数据的写入方法,由于该方法在分布式系统的AZ内部署中继节点,中继节点根据接收到的数据块在本地计算生成局部校验块,将局部校验块写入本AZ的数据节点中,从而在纠删码数据写入的过程中,AZ中的局部校验块在本地计算生成,避免了局部校验块从客户端发往数据节点的数据传输,有效减少了多AZ环境下纠删码数据的写入过程中的数据传输量,提高了系统的稳定性以及运行效率。

附图说明

图1是本说明书一个实施例提供的一种的分布式系统架构示意图;

图2是本说明书一个实施例提供的一种多AZ环境下纠删码数据的写入方法的流程图;

图3是本说明书一个实施例提供的一种多AZ环境下纠删码数据的写入方法的处理过程示意图;

图4是本说明书一个实施例提供的数据分布示意图;

图5是本说明书另一个实施例提供的一种多AZ环境下纠删码数据的写入方法的流程图;

图6是本说明书一个实施例提供的一种多AZ的分布式系统的结构框图;

图7是本说明书一个实施例提供的一种多AZ环境下纠删码数据的写入装置的结构示意图;

图8是本说明书另一个实施例提供的多AZ环境下纠删码数据的写入装置的结构示意图;

图9是本说明书一个实施例提供的多AZ环境下纠删码数据的写入装置的结构示意图;

图10是本说明书另一个实施例提供的多AZ环境下纠删码数据的写入装置的结构示意图;

图11是本说明书一个实施例提供的一种计算设备的结构框图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。

在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

首先,对本说明书一个或多个实施例涉及的名词术语进行解释。

AZ(Availability Zone,可用区),是指在同一地域内,电力和网络互相独立的物理区域。同一可用区内实例之间的网络延时更小。

纠删码(Erasure Code),是一种编码容错技术,它的基本原理是把存储的数据分片,并将k份原始数据通过一定的校验计算方式生成k+m份数据,并能通过k+m份中的任意k份数据,还原为原始数据。这样即使部分数据丢失,系统仍然能将原始数据恢复出来。

LRC(Locally Repairable Codes,局部校验编码)纠删码算法,是一种局部校验编码方法,其核心思想为:将校验块(parity block)分为全局校验块(global parity)、局部校验块(local reconstruction parity),故障恢复时可以分组计算。LRC编码,一般表示为LRC(k,z,g)。k表示数据块的总数,z表示分区数量,g表示全局校验块的数量。

数据块(Block),是数据对象根据系统的数据分布规则在磁盘中分散存储后产生的块,是数据的基本单位。

局部校验块(Local Parity Block),是在数据块被分组后,组内数据利用纠删码算法计算得到的冗余数据。

全局校验块(global parity),是一个条带上全部数据块利用纠删码算法计算得到的冗余数据。

在本说明书中,提供了多AZ环境下纠删码数据的写入方法,本说明书同时涉及多AZ环境下纠删码数据的装置,计算设备,以及计算机可读存储介质,在下面的实施例中逐一进行详细说明。

为了使本说明书实施例提供的方法更加易于理解,首先对本说明书实施例提供的多AZ的分布式系统的系统架构进行示意性说明。例如,如图1所示的分布式系统架构示意图中,所述分布式系统包括:客户端,多个AZ,每个AZ内部署了中继节点proxy,与中继节点通信的若干个数据节点。

图2示出了根据本说明书一个实施例提供的一种多AZ环境下纠删码数据的写入方法的流程图。图2所示方法可以应用于AZ内的中继节点。所述方法包括步骤202至步骤206。

步骤202:从多AZ的分布式系统的客户端接收数据块。

客户端可以利用若干个数据块,通过LRC纠删码算法生成全局校验块。在生成全局校验块之后,将全局校验块写入数据节点。一个或多个实例中,中继节点可以从客户端接收全局校验块,将全局校验块写入对应AZ的数据节点中。另一个或多个实施例中,可以由客户端直接向多个AZ的数据节点分别发送对应AZ的全局校验块。可以理解的是,由客户端直接发送全局校验块到数据节点,能够有效减少数据的转发,减少数据传输量。

步骤204:利用接收到的数据块,通过LRC纠删码算法生成局部校验块。

需要说明的是,本说明书实施例中对LRC纠删码算法的函数并不进行限制,可以根据实施场景需要进行设置。LRC纠删码算法的编码函数以及相关参数等配置信息可以根据实施场景需要设置为固定的,也可以根据用户提供的信息灵活配置。

例如,可以从所述客户端接收用户对LRC纠删码算法的配置信息;利用所述配置信息,设置所述LRC纠删码算法;利用接收到的数据块,通过经设置的LRC纠删码算法生成局部校验块。其中,所述配置信息例如可以是包括编码函数、数据块数量、局部校验块数量、全局校验块数量等信息的纠删码编码方式。例如:配置信息LRC(6,3,3),6表示数据块数量、3表示局部校验块数量、3表示全局校验块数量。中继节点通过接收配置信息,能够按照用户配置,生成一个或多个局部校验块,满足用户灵活配置的需求。

一个或多个实施例中,中继节点还可以将接收到的数据块写入本AZ的数据节点中。另一个或多个实施例中,还可以由客户端直接向多个AZ的数据节点直接发送对应AZ的数据块。可以理解的是,由中继节点发送数据块给数据节点,可以减少客户端重复发送数据块所带来的数据传输量,提高系统的稳定性以及运行效率。

步骤206:将所述局部校验块写入所述AZ上的各个数据节点中。

为了保证数据的安全性,系统的稳定性,本说明书一个或多个实施例中,按块的数量平均分配数据节点。具体地,所述方法还可以将接收到的数据块和所述局部校验块,按块的数量平均分配给所属AZ的数据节点。在将局部校验块写入数据节点时,将局部校验块写入被分配到的数据节点中,在将接收到的数据块写入数据节点时,将接收到的数据块写入被分配到的数据节点中。需要说明的是,本说明书实施例中的平均分配可以是近似的平均分配,例如,在数据块为五个,AZ为三个的情况下,可以向其中的两个AZ分别发送两个数据块,向另一个AZ发送一个数据块。一个块写入一个数据节点。

由于该方法在分布式系统的AZ内部署中继节点,中继节点根据接收到的数据块在本地计算生成局部校验块,将局部校验块写入本AZ的数据节点中,从而在纠删码数据写入的过程中,AZ中的局部校验块在本地计算生成,避免了局部校验块从客户端发往数据节点的数据传输,有效减少了多AZ环境下纠删码数据的写入过程中的数据传输量,提高了系统的稳定性以及运行效率。

下面,对结合了上述多个实施例的多AZ环境下纠删码数据的写入方法进行详细说明。图3示出了根据本说明书另一个实施例提供的一种多AZ环境下纠删码数据的写入方法的处理过程示意图。如图3所示,所述方法包括步骤302至步骤316。

步骤302:客户端利用全部数据块,按照用户设置的纠删码算法的配置信息,通过LRC纠删码算法生成全局校验块。

步骤304:客户端将全局校验块按照全局校验块的数量平均分配给各个AZ。

步骤306:客户端按照步骤304的分配,直接向各个AZ的数据节点分别发送对应AZ的全局校验块。

步骤308:客户端将全部数据块按照块的数量平均分配给各个AZ。

步骤310:客户端向各个AZ内各自的中继节点分别发送对应AZ的数据块。

步骤312:AZ的中继节点利用接收到的数据块,通过LRC纠删码算法生成局部校验块。

步骤314:中继节点将接收到的数据块和所述局部校验块,按块的数量平均分配给所属AZ的数据节点。

步骤316:中继节点将接收到的数据块以及局部校验块,按照步骤314的分配写入对应数据节点中。

例如,在本说明书实施例的一个实施场景中,假设用户需要向如图1所示的存在3个可用区AZ0、AZ1、AZ2的存储系统中写入数据A1至A6,并使用LRC(6,3,3)纠删码编码方式生成全局校验块。则根据图3所示处理过程以及图1所示的系统架构,本实施场景中A1至A6的纠删码数据的写入过程可以包括:

1、图1所示的客户端在本地利用数据块A1-A6,通过LRC纠删码算法生成全局校验块P1、P2、P3。

2、根据图3所示处理中的平均分配块的步骤,客户端直接向可用区AZ0的一个数据节点发送全局校验块P1、向可用区AZ1的一个数据节点发送P2、向可用区AZ2的一个数据节点发送P3,全局校验块直接存储无需处理。

3、客户端向三个AZ各自的中继节点proxy分别发送两个数据块(A1至A6共6个数据块平均分配给三个AZ,每个AZ对应两个数据块)以及纠删码算法的配置信息。

4、三个AZ各自的Proxy利用接收到的数据块,使用LRC纠删码算法计算生成本地局部校验块。例如,如图1所示,AZ0的proxy使用A1-A2生成局部校验块L1,AZ1的proxy使用A3-A4生成局部校验块L2,AZ2的proxy使用A5-A6生成局部校验块L2。

5、Proxy将生成的局部校验块写入本AZ的数据节点中。例如,AZ0的Proxy将数据块A1、A2及本地局部校验块L1,分别写入本AZ上的三个数据节点中,一个块写入一个数据节点,其他proxy处理逻辑类似,在此不再赘述。

通过上述写入过程可见,用户向存在3个可用区的存储系统中写入数据A1至A6,并使用LRC(6,3,3)纠删码编码方式,最终写入的数据分布如图4的数据分布示意图所示,每个AZ中存储两个数据块,一个局部校验块,一个全局校验块。局部校验块是AZ中的proxy在本地利用数据块生成的,全局校验块是客户端使用所有数据块生成之后直接发送给数据节点的。因此,在纠删码数据写入的过程中,客户端仅需要将包含用户数据块及全局校验块发往每个AZ,每个AZ中的局部校验块在本地数据写入时主动计算生成,减少了局部校验块从客户端发往数据节点的网络流量。

图5示出了根据本说明书另一个实施例提供的一种多AZ环境下纠删码数据的写入方法的流程图。图5所示方法可以应用于多AZ的分布式系统的客户端。所述方法包括步骤502至步骤506。

步骤502:利用若干个数据块,通过LRC纠删码算法生成全局校验块。

其中,LRC纠删码算法的编码函数以及相关参数等配置信息可以根据用户提供的信息灵活配置。例如,客户端可以接收用户对LRC纠删码算法的配置信息;利用所述配置信息,设置LRC纠删码算法,通过经设置的LRC纠删码算法生成全局校验块。或者,客户端还可以将所述配置信息发送给所述多个AZ的中继节点,以使所述中继节点利用所述配置信息,设置LRC纠删码算法。

步骤504:将所述全局校验块写入AZ的数据节点中。

一个或多个实例中,客户端可以向中继节点发送全局校验块,由中继节点将全局校验块写入对应AZ的数据节点中。另一个或多个实施例中,可以由客户端直接向多个AZ的数据节点分别发送对应AZ的全局校验块。可以理解的是,由客户端直接发送全局校验块到数据节点,能够有效减少数据的转发,减少数据传输量。

步骤506:向多个AZ的中继节点分别发送对应AZ的数据块,以使所述中继节点利用接收到的数据块,通过LRC纠删码算法生成局部校验块,将所述局部校验块写入所属AZ的数据节点中。

为了保证数据的安全性,系统的稳定性,本说明书一个或多个实施例中,可以按块的数量平均分配数据节点。具体地,例如,所述将所述全局校验块写入AZ的数据节点中可以包括:在所述全局校验块为多个的情况下,将所述全局校验块按照块的数量平均分配给各个AZ;将所述全局校验块写入被分配到的AZ的数据节点中。再例如,所述向多个AZ的中继节点分别发送对应AZ的数据块可以包括:将所述若干个数据块按照块的数量平均分配给各个AZ;向所述多个AZ的中继节点分别发送对应AZ的数据块。

由于该方法中客户端将数据块发送给AZ内部署中继节点,中继节点根据接收到的数据块在本地计算生成局部校验块,将局部校验块写入本AZ的数据节点中,从而在纠删码数据写入的过程中,AZ中的局部校验块在本地计算生成,避免了局部校验块从客户端发往数据节点的数据传输,有效减少了多AZ环境下纠删码数据的写入过程中的数据传输量,提高了系统的稳定性以及运行效率。

图6示出了根据本说明书一个实施例提供的一种多AZ的分布式系统的结构框图。如图6所示,所述分布式系统可以包括:客户端602以及多个AZ 604,其中,所述AZ 604内设置有中继节点606以及与所述中继节点606通信的若干个数据节点。其中:

所述客户端602,被配置为利用若干个数据块,通过LRC纠删码算法生成全局校验块,将所述全局校验块写入被分配到的AZ的数据节点中,向所述多个AZ内各自的中继节点分别发送对应AZ的数据块。

所述中继节点606,被配置为从所述客户端接收数据块,利用接收到的数据块,通过LRC纠删码算法生成局部校验块,将所述局部校验块写入所属AZ的数据节点中。

由于该系统中客户端将数据块发送给AZ内部署中继节点,中继节点根据接收到的数据块在本地计算生成局部校验块,将局部校验块写入本AZ的数据节点中,从而在纠删码数据写入的过程中,AZ中的局部校验块在本地计算生成,避免了局部校验块从客户端发往数据节点的数据传输,有效减少了多AZ环境下纠删码数据的写入过程中的数据传输量,提高了系统的稳定性以及运行效率。

与上述方法实施例相对应,本说明书还提供了配置于AZ内的中继节点的多AZ环境下纠删码数据的写入装置实施例,图7示出了本说明书一个实施例提供的一种多AZ环境下纠删码数据的写入装置的结构示意图。如图7所示,该装置包括:数据接收模块702、局部校验计算模块704及局部校验写入模块706。

该数据接收模块702,可以被配置为从多AZ的分布式系统的客户端接收数据块。

该局部校验计算模块704,可以被配置为利用接收到的数据块,通过LRC纠删码算法生成局部校验块。

该局部校验写入模块706,可以被配置为将所述局部校验块写入所述中继节点所属AZ的数据节点中。

由于该装置在分布式系统的AZ内部署中继节点,中继节点根据接收到的数据块在本地计算生成局部校验块,将局部校验块写入本AZ的数据节点中,从而在纠删码数据写入的过程中,AZ中的局部校验块在本地计算生成,避免了局部校验块从客户端发往数据节点的数据传输,有效减少了多AZ环境下纠删码数据的写入过程中的数据传输量,提高了系统的稳定性以及运行效率。

图8示出了本说明书另一个实施例提供的一种多AZ环境下纠删码数据的写入装置的结构示意图。如图8所示,该装置还可以包括:数据写入模块708,可以被配置为将接收到的数据块写入所属AZ的数据节点中。

为了保证数据的安全性,系统的稳定性,本说明书一个或多个实施例中,如图8所示,该装置还可以包括:平均分配模块710,可以被配置为将接收到的数据块和所述局部校验块,按块的数量平均分配给所属AZ的数据节点。相应地,所述局部校验写入模块706,可以被配置为将局部校验块写入被分配到的数据节点中。所述数据写入模块708,可以被配置为将接收到的数据块写入被分配到的数据节点中。

需要说明的是,LRC纠删码算法的编码函数以及相关参数等配置信息可以根据实施场景需要设置为固定的,也可以根据用户提供的信息灵活配置。例如,本说明书一个或多个实施例中,如图8所示,所述局部校验计算模块704可以包括:配置信息接收子模块7042、配置信息设置子模块7044及局部校验计算子模块7046。

该配置信息接收子模块7042,可以被配置为从所述客户端接收用户对LRC纠删码算法的配置信息。

该配置信息设置子模块7044,可以被配置为利用所述配置信息,设置所述LRC纠删码算法。

该局部校验计算子模块7046,可以被配置为利用接收到的数据块,通过经设置的LRC纠删码算法生成局部校验块。

上述为本实施例的配置于中继节点的多AZ环境下纠删码数据的写入装置的示意性方案。需要说明的是,该多AZ环境下纠删码数据的写入装置的技术方案与上述的应用于中继节点的多AZ环境下纠删码数据的写入方法的技术方案属于同一构思,配置于中继节点的多AZ环境下纠删码数据的写入装置的技术方案未详细描述的细节内容,均可以参见上述应用于中继节点的多AZ环境下纠删码数据的写入方法的技术方案的描述。

与上述方法实施例相对应,本说明书还提供了配置于客户端的多AZ环境下纠删码数据的写入装置实施例,图9示出了本说明书一个实施例提供的一种多AZ环境下纠删码数据的写入装置的结构示意图。如图9所示,该装置包括:全局校验计算模块902、全局校验写入模块904及数据发送模块906。

该全局校验计算模块902,可以被配置为利用若干个数据块,通过LRC纠删码算法生成全局校验块。

该全局校验写入模块904,可以被配置为将所述全局校验块写入AZ的数据节点中;

该数据发送模块906,可以被配置为向多个AZ的中继节点分别发送对应AZ的数据块,以使所述中继节点利用接收到的数据块,通过LRC纠删码算法生成局部校验块,将所述局部校验块写入所属AZ的数据节点中。

本说明书一个或多个实施例中,所述全局校验写入模块904,可以被配置为直接向所述多个AZ的数据节点分别发送对应AZ的全局校验块。可以理解的是,由客户端直接发送全局校验块到数据节点,能够有效减少数据的转发,减少数据传输量。

图10示出了本说明书又一个实施例提供的一种多AZ环境下纠删码数据的写入装置的结构示意图。如图10所示,所述全局校验写入模块904包括:校验块分配子模块9042及全局校验写入子模块9044。

该校验块分配子模块9042,可以被配置为在所述全局校验块为多个的情况下,将所述全局校验块按照块的数量平均分配给各个AZ。

该全局校验写入子模块9044,可以被配置为将所述全局校验块写入被分配到的AZ的数据节点中。

所述数据发送模块906包括:数据块分配子模块9062及数据块发送子模块9064。

该数据块分配子模块9062,可以被配置为将所述若干个数据块按照块的数量平均分配给各个AZ。

该数据块发送子模块9064,可以被配置为向所述多个AZ的中继节点分别发送对应AZ的数据块。

本说明书一个或多个实施例中,如图10所示,该装置还可以包括:用户配置接收模块908及用户配置发送模块910。

该用户配置接收模块908,可以被配置为接收用户对LRC纠删码算法的配置信息。

该用户配置发送模块910,可以被配置为将所述配置信息发送给所述多个AZ的中继节点,以使所述中继节点利用所述配置信息,设置LRC纠删码算法。

客户端通过发送纠删码算法的配置信息给中继节点,能够按照用户配置生成一个或多个局部校验块,满足用户灵活配置的需求。

上述为本实施例的配置于客户端的多AZ环境下纠删码数据的写入装置的示意性方案。需要说明的是,该多AZ环境下纠删码数据的写入装置的技术方案与上述的应用于客户端的多AZ环境下纠删码数据的写入方法的技术方案属于同一构思,配置于客户端的多AZ环境下纠删码数据的写入装置的技术方案未详细描述的细节内容,均可以参见上述应用于客户端的多AZ环境下纠删码数据的写入方法的技术方案的描述。

图11示出了根据本说明书一个实施例提供的一种计算设备1100的结构框图。该计算设备1100的部件包括但不限于存储器1110和处理器1120。处理器1120与存储器1110通过总线1130相连接,数据库1150用于保存数据。

计算设备1100还包括接入设备1140,接入设备1140使得计算设备1100能够经由一个或多个网络1160通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备1140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。

在本说明书的一个实施例中,计算设备1100的上述部件以及图11中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图11所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备1100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备1100还可以是移动式或静止式的服务器。

一方面中,处理器1120用于执行如下计算机可执行指令:

从多AZ的分布式系统的客户端接收数据块;

利用接收到的数据块,通过LRC纠删码算法生成局部校验块;

将所述局部校验块写入所述中继节点所属AZ的数据节点中。

上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的应用于中继节点的多AZ环境下纠删码数据的写入方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述应用于中继节点的多AZ环境下纠删码数据的写入方法的技术方案的描述。

另一方面中,处理器1120用于执行如下计算机可执行指令:

利用若干个数据块,通过LRC纠删码算法生成全局校验块;

将所述全局校验块写入AZ的数据节点中;

向多个AZ的中继节点分别发送对应AZ的数据块,以使所述中继节点利用接收到的数据块,通过LRC纠删码算法生成局部校验块,将所述局部校验块写入所属AZ的数据节点中。

上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的应用于客户端的多AZ环境下纠删码数据的写入方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述应用于客户端的多AZ环境下纠删码数据的写入方法的技术方案的描述。

本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,一方面中,该指令被处理器执行时以用于:

从多AZ的分布式系统的客户端接收数据块;

利用接收到的数据块,通过LRC纠删码算法生成局部校验块;

将所述局部校验块写入所述中继节点所属AZ的数据节点中。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的应用于中继节点的多AZ环境下纠删码数据的写入方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述应用于中继节点的多AZ环境下纠删码数据的写入方法的技术方案的描述。

另一方面中,该指令被处理器执行时以用于:

利用若干个数据块,通过LRC纠删码算法生成全局校验块;

将所述全局校验块写入AZ的数据节点中;

向多个AZ的中继节点分别发送对应AZ的数据块,以使所述中继节点利用接收到的数据块,通过LRC纠删码算法生成局部校验块,将所述局部校验块写入所属AZ的数据节点中。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的应用于客户端的多AZ环境下纠删码数据的写入方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述应用于客户端的多AZ环境下纠删码数据的写入方法的技术方案的描述。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

相关技术
  • 多AZ环境下纠删码数据的写入方法以及装置
  • 云环境下基于队列的高并发数据快速写入系统及方法
技术分类

06120113256304