CN113505021B - 基于多主节点主从分布式架构的容错方法及系统 - Google Patents
基于多主节点主从分布式架构的容错方法及系统 Download PDFInfo
- Publication number
- CN113505021B CN113505021B CN202110577964.2A CN202110577964A CN113505021B CN 113505021 B CN113505021 B CN 113505021B CN 202110577964 A CN202110577964 A CN 202110577964A CN 113505021 B CN113505021 B CN 113505021B
- Authority
- CN
- China
- Prior art keywords
- node
- calculation
- working
- master
- nodes
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种基于多主节点主从分布式架构的容错方法及系统。所述方法包括:S10、为工作节点分配计算任务并设计容忍落后者问题的编码计算方案;S20、工作节点完成本地计算并根据一定策略将计算结果传输至各个主节点;S30、主节点接收来自各个工作节点的计算结果并根据解码方案生成中间值。通过多个主节点与工作节点合作完成迭代计算任务中的聚合工作以降低每个节点处的工作负载。通过对每个工作节点计算结果使用编码生成冗余数据,可以避免工作节点计算结果丢失,以应对主节点出错的情形。
Description
技术领域
本发明涉及分布式系统领域,具体涉及一种能利用系统中所有节点工作能力以解决落后者问题的编码计算方案。
背景技术
分布式计算逐渐成为完成大规模机器学习和大数据分析的主流方法。使用分布式系统执行分布式计算任务时的一个主要问题是存在落后者,即由于网络条件变化、资源争用等多种因素,部分工作节点的任务完成速度非常慢。由于在广泛使用的主从分布式架构下,主节点必须等待所有的工作节点完成任务才可进行下一步的工作,所以落后节点会大大延长整个系统的计算时间。因此,解决分布式计算中的落后者问题有重大意义。
为了解决分布式系统中的落后者问题,很多场景中都采用了编码计算技术。针对落后者问题,编码计算通过利用计算节点上富余的存储或计算能力,采用编码理论的方法引入适当的冗余子任务,使得整个计算过程不需要等待落后者和失效节点的计算结果。许多编码方案均存在恢复阈值,恢复阈值指主节点在最坏情况下恢复所需输出需要的工作节点的数量。当主节点接收到来自等同于恢复阈值个数的节点的计算结果后,就可以解码出所需结果。通过这种方式,能够以较小的开销容忍工作节点出现计算落后现象,从而在一定程度上解决落后者问题。
一般解决落后者问题的编码计算方案都应用于主从分布式架构下,并且有且仅有唯一一个主节点。由于在此架构下,主节点负责接收来自所有工作节点的计算结果后执行聚合操作,且大规模机器学习中涉及的矩阵乘法或梯度下降等关键原语计算产生的计算结果规模都较大,因此在此过程中主节点处需要存储大量数据,单台机器的存储能力会成为性能瓶颈。同时聚合操作对计算性能要求较大,会消耗大量时间,此时单个主节点处的计算能力也会成为整个分布式系统的性能瓶颈。在迭代式计算任务中,主节点处的性能瓶颈导致的落后会使整个分布式计算性能低下。因此,对主从分布式计算架构而言,解决主节点处的性能瓶颈问题是很有必要的。因此,对适用于矩阵乘法、梯度下降等计算任务的编码计算方案而言,对其优化使得可以充分利用系统中所有工作节点计算能力也是很有必要的。
发明内容
本发明的目的是基于主从分布式计算框架下执行矩阵乘法计算任务的工作场景,提出一种基于多主节点主从分布式架构的容错方法,解决分布式计算中主节点性能瓶颈且落后节点工作能力不被充分利用的问题。
本发明的另一目的是提供一种基于多主节点主从分布式架构的容错系统。
为了实现以上发明目的,本发明的技术方案如下:
第一方面,一种基于多主节点主从分布式架构的容错方法,包括以下步骤:
S10、基于任务数据集为工作节点分配计算任务,并设计容忍落后者问题的编码计算方案;
S20、工作节点完成本地计算并根据一定策略将计算结果传输至各个主节点;
S30、主节点接收来自各个工作节点的计算结果并根据解码方案生成中间值。
于第一方面的一些实施例中,所述步骤S10中基于任务数据集为工作节点分配计算任务包括:
S11、将任务数据集D划分为k1份;
S12、对k1份任务数据使用(n1,k1)MDS编码生成n1份新的编码数据集,其中n1,k1满足n1>k1;
S13、将新的编码数据集放置在n1个工作节点上,其中每个工作节点随机存放其中一份,每份数据只存放在唯一工作节点上。
于第一方面的一些实施例中,所述步骤S20包括:
S21、工作节点执行分配给自己的本地计算任务,获得本地计算结果G;
S22、将本地计算结果划分为k2份;
S23、对本地计算结果使用(n2,k2)MDS生成n2份新的计算结果集,其中n2,k2满足n2>k2;
S24、每个工作节点向所有主节点各传输一份编码后的计算结果。
于第一方面的一些实施例中,n1,k1,n2,k2满足k1<n1<k2<n2。
于第一方面的一些实施例中,所述步骤S30包括:
S31、每个主节点接收到来自所有工作节点的各一份计算结果;
S32、每个主节点根据计算结果生成新的中间值并传输至各个工作节点;
S33、当部分工作节点失效时,正常工作的工作节点根据对任务数据集使用的MDS码性质恢复失效工作节点所拥有的数据;当部分主节点失效时,正常工作的主节点根据对计算结果使用的MDS码性质恢复失效主节点所拥有的数据,因此对于任意工作节点而言均能够接收到进行下一轮迭代计算所需中间值。
第二方面,一种基于多主节点主从分布式架构的容错系统,包括控制部件、多个主节点和多个从节点,控制部件基于任务数据集为工作节点分配计算任务,并设计容忍落后者问题的编码计算方案;每个从节点接收分配给自己的计算任务,完成本地计算并根据一定策略将计算结果传输至各个主节点;每个主节点接收来自各个工作节点的计算结果并根据解码方案生成中间值,并将中间值传输至各个工作节点;当部分工作节点失效时,其他工作节点根据对任务数据集使用的编码计算方案恢复失效工作节点所拥有的数据;当部分主节点失效时,其他主节点根据对计算结果使用的编码计算方案恢复失效主节点所拥有的数据,因此对于任意工作节点而言均能够接收到进行下一轮迭代计算所需中间值。
于第二方面的一些实施例中,所述控制部件包括:
第一划分单元,用于将任务数据集D划分为k1份;
第一编码单元,用于对k1份任务数据使用(n1,k1)MDS编码生成n1份新的编码数据集,其中n1,k1满足n1>k1;
分配单元,用于将新的编码数据集放置在n1个工作节点上,其中每个工作节点随机存放其中一份,每份数据只存放在唯一工作节点上;以及
编码方案设计单元,用于设计容忍落后者问题的编码计算方案,所述编码计算方案采用MDS编码方案,供第一编码单元和从节点进行编码时使用。
于第二方面的一些实施例中,所述从节点包括:
执行单元,用于执行分配给自己的本地计算任务,获得本地计算结果G;
第二划分单元,用于将本地计算结果划分为k2份;
第二编码单元,用于对本地计算结果使用(n2,k2)MDS生成n2份新的计算结果集,其中n2,k2满足n2>k2;
第二传输单元,用于向所有主节点各传输一份编码后的计算结果;
第二恢复单元,用于在部分工作节点失效时,根据对任务数据集使用的编码计算方案恢复失效工作节点所拥有的数据。
于第二方面的一些实施例中,所述主节点包括:
接收单元,用于接收到来自所有工作节点的各一份计算结果;
中间值生成单元,用于根据计算结果生成新的中间值;
第一传输单元,用于将新的中间值传输至各个工作节点;
第一恢复单元,用于在部分主节点失效时,根据对计算结果使用的编码计算方案恢复失效主节点所拥有的数据。
本发明能够取得以下有益效果:本发明的方案既能够容忍主节点发生故障也能够容忍工作节点计算落后,在此过程中还可以充分利用每个工作节点所做工作,避免因为出现落后者导致不必要的等待时间,从而缩短整个分布式系统的任务执行时间。
附图说明
图1是本发明实施例提供的基于多主节点主从分布式架构的容错方法流程图。
图2是本发明实施例中多主节点分布式计算架构示意图。
图3是本发明实施例中工作节点处任务分配策略示意图。
图4是本发明实施例中计算结果编码方案示意图。
图5是本发明实施例中多主节点分布式系统中的容错机制示意图。
具体实施方式
下面结合附图和具体实施方式对本发明的技术方案作进一步说明。
分布式系统执行的计算任务通常为矩阵乘法。由于矩阵规模较大,所以系统会将矩阵拆分成多个小块后分配给每个工作节点进行计算,每个节点的任务文件大小是相同的。由于分布式系统中存在落后者问题,在任务分配时各个工作节点之间存在冗余,使得主节点只需要收到来自部分工作节点的计算结果后即可恢复出所需结果。在主从分布式计算架构中,主节点负责对来自所有工作节点的结果进行聚合操作,由于单个节点工作能力有限,因此在主节点处会产生通信和计算瓶颈问题。由于主节点的性能低下,整个分布式系统性能低下,因此需要考虑解决此问题。
在一个实施例中,本发明提出在分布式计算系统中,使用多个主节点代替单主节点的方案。在多主节点情况下,这些主节点共同完成接收来自工作节点的计算结果并聚合的任务。每个工作节点将与所有的主节点分别进行通信,并转发计算结果,转发内容为本地计算结果的一部分。与以前的分布式计算架构相比,这有两点好处:每个主节点的工作负载降低,无需储存大量来自工作节点的计算结果,执行聚合操作耗时降低;每个工作节点每次传输的计算结果规模变小,减少了传输过程中出现错误的可能性。
通过在分布式系统中引入多个主节点,每个主节点的工作负载会显著降低,从而在根本上解决了主节点处性能瓶颈的问题。但是,再进一步地考虑,此时若其中部分主节点出错,则会导致系统工作低效。这是由于每个主节点均负责处理各个工作节点计算结果的一部分,且各个主节点之间的信息没有冗余,如果其中的一个主节点无法正常工作,那么它负责的部分数据将会丢失,此时整个系统由于没有足够多的信息便无法正常完成计算任务。如果分布式系统中执行的是类似于机器学习算法中常见的迭代式任务,那么工作节点将无法获取最新参数继续完成计算任务。因此,在多主节点分布式计算框架中,不仅需要解决工作节点处的落后者问题,也需要考虑主节点可能出错的情形。
此问题为节点落后问题,所以可以使用编码思想来解决。在本发明实施例中,通过使用极大距离可分码(maximum distance separable code,MDS),对工作节点的本地计算结果进行切分后,根据切分后的结果可生成等同于系统中主节点数量的新的编码数据块。在编码完成后,每个工作节点向所有主节点同时转发这些编码块,其中每个主节点会接收到来自所有工作节点的各一份数据。由于编码性质保证使用这些数据块中的一部分可以恢复出原始数据,即可以容忍部分数据丢失的情况,因此当有部分主节点出错时,剩余正常工作的主节点可以使用解码算法恢复出丢失数据。
参照图1,一种基于多主节点主从分布式架构的容错方法,包括以下步骤:
S10、为工作节点分配计算任务并设计容忍落后者问题的编码计算方案。
步骤S10具体包括:
S11、任务数据集D为大型矩阵,由独立于主节点与工作节点的单独控制部件在分布式系统开始执行计算任务前,划分为k1份子矩阵;
S12、单独控制部件对k1份任务数据使用(n1,k1)MDS编码生成n1份新的编码数据集,其中(n1,k1)MDS编码可实现以下功能:使用线性编码方式由k1份原始数据生成n1份新数据,且这n1份数据中的任意k1份均可通过使用高斯消元法恢复出原始的k1份数据;
S13、单独控制部件将通过编码生成的新数据放置在n1个工作节点上,其中每个工作节点随机存放其中一份,每份数据只存放在唯一工作节点上。视计算任务量n1,k1选取任意值,但需满足n1>k1。工作节点执行计算,当部分工作节点失效时,由MDS码性质,可使用部分数据恢复失效数据。
S20、工作节点完成本地计算并根据一定策略将计算结果传输至各个主节点。
步骤S20具体包括:
S21、工作节点执行本地计算任务,获得本地计算结果G;
S22、本地计算结果划分为k2份;
S23、对本地计算结果使用(n2,k2)MDS生成n2份新的计算结果集,其中n2,k2需满足n2>k2,n1,k1,n2,k2之间并无特殊的约束关系,但由于在对本地计算结果使用编码后,相较于未编码情形,每个工作节点计算开销不变,通信开销为原先的n2/k2倍,每个主节点工作负载为原先的n1/k2倍,所以令k1<n1<k2<n2,可使得以每个工作节点上较小的额外开销为代价,大幅度降低主节点处的存储和计算开销;
S24、每个工作节点向所有主节点各传输一份编码后的计算结果。
其中的计算任务可面向矩阵-向量乘法、梯度计算(梯度下降)等线性计算任务,只需工作节点返回的计算结果为一个向量值即可。在大规模机器学习任务中,隐藏层之间存在着大量的矩阵-向量乘法计算任务和梯度下降任务,因此适用范围广泛。另由于矩阵-矩阵乘法为非线性计算任务,目前方案中的编码方法无法对此时的工作节点计算结果进行处理,因此暂不适用。
S30、主节点接收来自各个工作节点的计算结果并根据解码方案生成中间值。
步骤S30具体包括:
S31、每个主节点接收到来自所有工作节点的各一份计算结果;
S32、每个主节点根据计算结果生成新的中间值并传输至各个工作节点;
S33、当部分工作节点失效时,根据对任务数据集使用的MDS码性质可以恢复失效工作节点所拥有的数据;当部分主节点失效时,根据对计算结果使用的MDS码性质可以恢复失效主节点所拥有的数据,因此对于任意工作节点而言均可接收到进行下一轮迭代计算所需中间值。对于工作节点失效情形:在系统开始执行任务前,已由独立于工作节点和主节点的第三方控件(即前述单独控制部件)生成了n1份编码数据,此时存在(n1-k1)份冗余数据,故可至多容忍(n1-k1)个工作节点出错。对于主节点失效情形:在每个工作节点完成本地计算任务后、开始传输前,根据预设编码算法,会在工作节点本地生成n2份编码数据,此时存在(n2-k2)份冗余数据,故可容忍至多(n2-k2)个主节点出错。当出错节点数量未超出预先设置值时,根据MDS码性质(S12中有提及)主节点集可使用任意k2份编码数据恢复所需结果,工作节点集可使用任意k1份编码数据恢复所需结果。注意此处存在两部分的容错编码,工作节点集使用的数据由第三方控件提供,主节点集使用的数据由工作节点集提供,两者不是同一份数据。
如图2所示,在一个实施例中,系统中包含3个工作节点和3个主节点,每个工作节点向所有主节点传输计算结果,并且每个主节点向所有工作节点返回执行下一轮迭代所需的数据。记任务数据集为矩阵D,由于三个工作节点合作完成计算任务且工作节点会出现落后者问题,因此在为工作节点分配计算任务时需要设置一定的冗余。
如图3所示划分D为两部分,为节点1分配D1,节点2分配D2,节点3分配D1+D2。同时3个节点存储向量x。节点1,2,3并行执行计算任务,本地计算结果记为g1,g2,g1+g2。在完成计算任务后,每个工作节点与所有主节点通信,传输计算结果。
由于主节点会出现落后者问题,因此工作节点在传输本地计算结果前需要对其进行编码构造一定的冗余,如图4所示。每个工作节点传输数据前将计算结果划分为两部分,记为g11,g12,g21,g22,g11+g21,g12+g22。根据划分的计算结果,使用线性编码生成新数据记为g11+g12,g21+g22,g11+g21+g12+g22。需要说明的是,线性编码指使用线性运算对需要编码的数据执行运算,由于此处需要编码的数据量较少,且为了简单表述与举例,故使用“加法”和“简单的参数(此处为1)”即可,但应理解,这仅是示例的作用而非对本发明的限制。为了对“冗余”有更清楚的理解,进一步说明如下:在未编码之前,3个工作节点上拥有的数据(即本地计算结果)为g1,g2,g1+g2。为了对每个节点上的数据分别使用编码,需要首先将这些数据分成两等份(由于数据是向量,因此可直接按行划分)。划分完成后,3个工作节点上的数据可记为g11,g12、g21,g22和g11+g21,g12+g22。以这两份为原始数据使用编码可生成第三份数据,分别记为g11+g12,g21+g22,g11+g21+g12+g22,这第三份数据就是冗余数据。其实在正常执行情况下,若使用(3,2)MDS编码,使用两份原始数据应该生成三份不同于原始数据的新数据,但理论证明新数据中包含部分原始数据不影响编码性能,以节点1为例,编码后存储了三份数据,分别为g11,g12,g11+g12,其中g11可看作g11+0×g12,g12同理。
每个工作节点对本地计算结果完成编码后,可生成n2份数据,而系统中预设了n2个主节点,因此每个工作节点会与所有主节点通信,发送一份数据。每个主节点则会收到来自每个工作节点的各一份数据。为了便于解码,此处还假设各个工作节点对本地计算结果使用的编码方案是一致的,并且g11、g21都发送至1号主节点;g12、g22都发送至2号主节点等等,即每个主节点接收到的结果下标一致。在正常情形下,完成传输后主节点1接收到数据g11,g21,g11+g21,主节点2接收到数据g12,g22,g12+g22,主节点3接收到数据g11+g12,g21+g22,g11+g21+g12+g22。在单主节点情形下,主节点接收到g1,g2后可生成中间值h。在多节点情形下,主节点1可生成h1,主节点2可生成h2,主节点3可生成h1+h2。每个主节点将中间值传输至所有工作节点处,因此对于每个工作节点而言均可通过h1以及h2生成h。中间值的生成方式为:h=f(g),例如,在梯度下降任务中f可以理解为损失函数计算,这也是一个线性计算任务,在每轮迭代中都需要执行一次。在单主节点场景下,由于单个主节点拥有所有信息,因此其可以直接执行此函数计算,生成h,随后传输至各个工作节点作为下一轮计算任务(就是计算任务)。但是在多主节点场景下,由于多个主节点直接彼此不通信,而对于一个主节点来说,其所拥有的信息量不足以执行此计算,所以将这部分的计算任务(例如,损失函数计算)由主节点迁移到各个工作节点处,当工作节点接收到来自k2个主节点的信息时(即可以解码),将完成解码,并随后执行h=f(g),并以h为新一轮的任务数据集,开始下一轮的计算任务。
图5描述了分布式计算系统中的容错机制。由于使用的编码方式为(3,2)MDS编码,因此可容忍系统中主节点和工作节点各出现一个落后者节点。不妨假设工作节点1和主节点1为落后节点,即主节点无法接收到来自工作节点1的数据且主节点1无法正常参与聚合任务。此时主节点2,主节点3拥有的数据为g22,g12+g22,g21+g22,g11+g21+g12+g22,需要恢复的数据为g11,g12,g21,g22。正常工作的主节点使用高斯消元法可以成功解码出所需数据。因此,每个工作节点可以收到来自主节点2的h2和主节点3的h1+h2,从而求出h1后生成中间值h,并开始下一轮迭代计算任务。
本发明实施例提出的主从分布式架构中具有多个主节点,这些节点合作完成迭代计算任务中的聚合工作以降低每个节点处的工作负载。由于分布式系统中存在落后者问题,所以当主节点集中包含多个主节点时,也会出现类似问题。通过对每个工作节点计算结果使用编码生成冗余数据,可以避免工作节点计算结果丢失,以应对主节点出错的情形。
根据与方法实施例相同的技术构思,本发明的另一实施例提供一种基于多主节点主从分布式架构的容错系统,包括控制部件、多个主节点和多个从节点,控制部件基于任务数据集为工作节点分配计算任务,并设计容忍落后者问题的编码计算方案;每个从节点接收分配给自己的计算任务,完成本地计算并根据一定策略将计算结果传输至各个主节点;每个主节点接收来自各个工作节点的计算结果并根据解码方案生成中间值,并将中间值传输至各个工作节点;当部分工作节点失效时,其他工作节点根据对任务数据集使用的编码计算方案恢复失效工作节点所拥有的数据;当部分主节点失效时,其他主节点根据对计算结果使用的编码计算方案恢复失效主节点所拥有的数据,因此对于任意工作节点而言均能够接收到进行下一轮迭代计算所需中间值。
具体而言,控制部件包括:
第一划分单元,用于将任务数据集D划分为k1份;
第一编码单元,用于对k1份任务数据使用(n1,k1)MDS编码生成n1份新的编码数据集,其中n1,k1满足n1>k1;
分配单元,用于将新的编码数据集放置在n1个工作节点上,其中每个工作节点随机存放其中一份,每份数据只存放在唯一工作节点上;以及
编码方案设计单元,用于设计容忍落后者问题的编码计算方案,本发明中所述编码计算方案采用MDS编码方案,供第一编码单元和从节点进行编码时使用。
每个从节点包括:
执行单元,用于执行分配给自己的本地计算任务,获得本地计算结果G;
第二划分单元,用于将本地计算结果划分为k2份;
第二编码单元,用于对本地计算结果使用(n2,k2)MDS生成n2份新的计算结果集,其中n2,k2满足n2>k2;
第二传输单元,用于向所有主节点各传输一份编码后的计算结果;
第二恢复单元,用于在部分工作节点失效时,根据对任务数据集使用的编码计算方案恢复失效工作节点所拥有的数据。
每个主节点包括:
接收单元,用于接收到来自所有工作节点的各一份计算结果;
中间值生成单元,用于根据计算结果生成新的中间值;
第一传输单元,用于将中间值传输至各个工作节点;
第一恢复单元,用于在部分主节点失效时,根据对计算结果使用的编码计算方案恢复失效主节点所拥有的数据。
其中,第一恢复单元的具体工作过程如下:当系统中部分主节点失效时,正常工作的主节点的第一恢复单元基于接收单元所接收到的工作节点的计算结果,由于MDS码性质保证了接收到足够多数据而非全部数据即可解码,此时使用高斯消元法即可成功解码出所需数据,并通过第一传输单元传输至各个工作节点。
第二恢复单元的工作过程如下:当系统中部分工作节点失效时,正常工作的工作节点的第二恢复单元基于当前所接收到的控制部件对任务数据集的编码结果,由于MDS码性质保证了接收到足够多数据而非全部数据即可解码,此时使用高斯消元法即可成功解码出所需数据,并通过第二传输单元传输至各个主节点。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明具体应用途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进,这些改进也应视为落入本发明的保护范围。
Claims (3)
1.一种基于多主节点主从分布式架构的容错方法,其特征在于,包括以下步骤:
S10、基于任务数据集为工作节点分配计算任务,并设计容忍落后者问题的编码计算方案,其中,所述编码计算方案采用极大距离可分(MDS)编码方案,所述基于任务数据集为工作节点分配计算任务包括:
S11、将任务数据集D划分为k1份;
S12、对k1份任务数据使用(n1,k1)MDS编码生成n1份新的编码数据集,其中n1,k1满足n1>k1;
S13、将新的编码数据集放置在n1个工作节点上,其中每个工作节点随机存放其中一份,每份数据只存放在唯一工作节点上;
S20、工作节点完成本地计算并根据一定策略将计算结果传输至各个主节点,包括:
S21、工作节点执行分配给自己的本地计算任务,获得本地计算结果G;
S22、将本地计算结果划分为k2份;
S23、对本地计算结果使用(n2,k2)MDS编码生成n2份新的计算结果集,其中n2,k2满足n2>k2;
S24、每个工作节点向所有主节点各传输一份编码后的计算结果;
S30、主节点接收来自各个工作节点的计算结果并根据解码方案生成中间值,包括:
S31、每个主节点接收到来自所有工作节点的各一份计算结果;
S32、每个主节点根据计算结果生成新的中间值并传输至各个工作节点;
S33、当部分工作节点失效时,正常工作的工作节点根据对任务数据集使用的MDS码性质恢复失效工作节点所拥有的数据;当部分主节点失效时,正常工作的主节点根据对计算结果使用的MDS码性质恢复失效主节点所拥有的数据,因此对于任意工作节点而言均能够接收到进行下一轮迭代计算所需中间值。
2.根据权利要求1所述的基于多主节点主从分布式架构的容错方法,其特征在于,n1,k1,n2,k2满足k1<n1<k2<n2。
3.一种基于多主节点主从分布式架构的容错系统,其特征在于,包括控制部件、多个主节点和多个从节点,控制部件基于任务数据集为工作节点分配计算任务,并设计容忍落后者问题的编码计算方案;每个从节点接收分配给自己的计算任务,完成本地计算并根据一定策略将计算结果传输至各个主节点;每个主节点接收来自各个工作节点的计算结果并根据解码方案生成中间值,并将中间值传输至各个工作节点;当部分工作节点失效时,其他工作节点根据对任务数据集使用的编码计算方案恢复失效工作节点所拥有的数据;当部分主节点失效时,其他主节点根据对计算结果使用的编码计算方案恢复失效主节点所拥有的数据,因此对于任意工作节点而言均能够接收到进行下一轮迭代计算所需中间值;
所述控制部件包括:
第一划分单元,用于将任务数据集D划分为k1份;
第一编码单元,用于对k1份任务数据使用(n1,k1)极大距离可分(MDS)编码生成n1份新的编码数据集,其中n1,k1满足n1>k1;
分配单元,用于将新的编码数据集放置在n1个工作节点上,其中每个工作节点随机存放其中一份,每份数据只存放在唯一工作节点上;以及
编码方案设计单元,用于设计容忍落后者问题的编码计算方案,所述编码计算方案采用MDS编码方案,供第一编码单元和从节点进行编码时使用;
所述从节点包括:
执行单元,用于执行分配给自己的本地计算任务,获得本地计算结果G;
第二划分单元,用于将本地计算结果划分为k2份;
第二编码单元,用于对本地计算结果使用(n2,k2)MDS生成n2份新的计算结果集,其中n2,k2满足n2>k2;
第二传输单元,用于向所有主节点各传输一份编码后的计算结果;
第二恢复单元,用于在部分工作节点失效时,根据对任务数据集使用的编码计算方案恢复失效工作节点所拥有的数据;
所述主节点包括:
接收单元,用于接收到来自所有工作节点的各一份计算结果;
中间值生成单元,用于根据计算结果生成新的中间值;
第一传输单元,用于将新的中间值传输至各个工作节点;
第一恢复单元,用于在部分主节点失效时,根据对计算结果使用的编码计算方案恢复失效主节点所拥有的数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110577964.2A CN113505021B (zh) | 2021-05-26 | 2021-05-26 | 基于多主节点主从分布式架构的容错方法及系统 |
PCT/CN2021/103901 WO2022246952A1 (zh) | 2021-05-26 | 2021-07-01 | 基于多主节点主从分布式架构的容错方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110577964.2A CN113505021B (zh) | 2021-05-26 | 2021-05-26 | 基于多主节点主从分布式架构的容错方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113505021A CN113505021A (zh) | 2021-10-15 |
CN113505021B true CN113505021B (zh) | 2023-07-18 |
Family
ID=78008599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110577964.2A Active CN113505021B (zh) | 2021-05-26 | 2021-05-26 | 基于多主节点主从分布式架构的容错方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113505021B (zh) |
WO (1) | WO2022246952A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114296648B (zh) * | 2021-12-24 | 2023-08-08 | 天翼云科技有限公司 | 分布式云存储数据的维护方法、装置、设备和可读介质 |
CN114579311B (zh) * | 2022-03-04 | 2023-05-30 | 北京百度网讯科技有限公司 | 执行分布式计算任务的方法、装置、设备以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013104135A1 (zh) * | 2012-01-13 | 2013-07-18 | 北京大学深圳研究生院 | 一种存储数据的方法、装置及分布式网络存储系统 |
CN103544270A (zh) * | 2013-10-18 | 2014-01-29 | 南京大学镇江高新技术研究院 | 面向数据中心的通用化网络编码容错存储平台及工作方法 |
CN104782101A (zh) * | 2012-07-20 | 2015-07-15 | 北京大学深圳研究生院 | 用于分布式网络存储的自修复码的编码、重构和恢复方法 |
WO2020047707A1 (zh) * | 2018-09-03 | 2020-03-12 | 深圳花儿数据技术有限公司 | 分布式存储系统的数据编码、解码及修复方法 |
CN111858721A (zh) * | 2020-08-03 | 2020-10-30 | 南京大学 | 一种基于优先级编码的分布式计算方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8856593B2 (en) * | 2010-04-12 | 2014-10-07 | Sandisk Enterprise Ip Llc | Failure recovery using consensus replication in a distributed flash memory system |
US9122532B2 (en) * | 2011-04-29 | 2015-09-01 | Nokia Technologies Oy | Method and apparatus for executing code in a distributed storage platform |
US20170173262A1 (en) * | 2017-03-01 | 2017-06-22 | François Paul VELTZ | Medical systems, devices and methods |
KR102146293B1 (ko) * | 2018-05-08 | 2020-08-28 | 한국전자통신연구원 | 분산 파일 시스템 복구 장치 및 방법 |
SG11202011778QA (en) * | 2018-06-01 | 2020-12-30 | Regeneron Pharma | Methods and systems for sparse vector-based matrix transformations |
US11244242B2 (en) * | 2018-09-07 | 2022-02-08 | Intel Corporation | Technologies for distributing gradient descent computation in a heterogeneous multi-access edge computing (MEC) networks |
CN111400026B (zh) * | 2019-11-15 | 2023-02-28 | 河海大学 | 一种基于主从备份技术的分布式负载均衡方法 |
CN112364985B (zh) * | 2020-11-13 | 2023-07-18 | 河海大学 | 一种基于分布式编码的卷积优化方法 |
-
2021
- 2021-05-26 CN CN202110577964.2A patent/CN113505021B/zh active Active
- 2021-07-01 WO PCT/CN2021/103901 patent/WO2022246952A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013104135A1 (zh) * | 2012-01-13 | 2013-07-18 | 北京大学深圳研究生院 | 一种存储数据的方法、装置及分布式网络存储系统 |
CN104782101A (zh) * | 2012-07-20 | 2015-07-15 | 北京大学深圳研究生院 | 用于分布式网络存储的自修复码的编码、重构和恢复方法 |
CN103544270A (zh) * | 2013-10-18 | 2014-01-29 | 南京大学镇江高新技术研究院 | 面向数据中心的通用化网络编码容错存储平台及工作方法 |
WO2020047707A1 (zh) * | 2018-09-03 | 2020-03-12 | 深圳花儿数据技术有限公司 | 分布式存储系统的数据编码、解码及修复方法 |
CN111858721A (zh) * | 2020-08-03 | 2020-10-30 | 南京大学 | 一种基于优先级编码的分布式计算方法 |
Non-Patent Citations (5)
Title |
---|
Unequal Failure Protection Coding Technique for Distributed Cloud Storage Systems;Yupeng Hu;Yonghe Liu;Wenjia Li;Keqin Li;Kenli Li;Nong Xiao;Zheng Qin;IEEE Transactions on Cloud Computing;第9卷(第1期);全文 * |
一种面向海量存储系统的高效元数据集群管理方案;肖中正;陈宁江;魏峻;张文博;;计算机研究与发展(第04期);全文 * |
分布式存储中的纠删码容错技术研究;王意洁;许方亮;裴晓强;;计算机学报(第01期);全文 * |
网络编码与家族体系下的可靠多播方案;周艳玲;张思成;;泰山学院学报(第03期);全文 * |
面向期限感知分布式矩阵相乘的高效存储方案;赵永柱;黎卫东;唐斌;梅峰;卢文达;计算机应用(第002期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113505021A (zh) | 2021-10-15 |
WO2022246952A1 (zh) | 2022-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113505021B (zh) | 基于多主节点主从分布式架构的容错方法及系统 | |
Mallick et al. | Rateless codes for near-perfect load balancing in distributed matrix-vector multiplication | |
WO2020047707A1 (zh) | 分布式存储系统的数据编码、解码及修复方法 | |
CN111697976B (zh) | 一种基于分布式存储的rs纠删快速解码方法及系统 | |
Mallick et al. | Fast and efficient distributed matrix-vector multiplication using rateless fountain codes | |
CN103229172B (zh) | 复制数据 | |
Zhang et al. | Reaching consensus in the byzantine empire: A comprehensive review of bft consensus algorithms | |
CN110190926B (zh) | 基于网络计算的纠删码更新方法及系统 | |
US9753807B1 (en) | Generation and verification of erasure encoded fragments | |
CN112887135B (zh) | 一种基于状态pce进行多点故障恢复的方法与装置 | |
US10929043B2 (en) | Space reservation for distributed storage systems | |
CN111682874A (zh) | 一种数据恢复的方法、系统、设备及可读存储介质 | |
CN111490795B (zh) | 一种面向中间值长度异构的编码MapReduce方法 | |
CN111045843B (zh) | 具有容错能力的分布式数据处理方法 | |
CN107807845A (zh) | 一种增量式数据并行处理装置与方法 | |
CN110888761A (zh) | 一种基于关键任务部分主动备份的容错方法和流处理平台 | |
US20170264317A1 (en) | Method of encoding data and data storage system | |
Soto et al. | Rook coding for batch matrix multiplication | |
KR102002246B1 (ko) | 빅데이터 처리를 위한 자원 분배 방법 및 장치 | |
CN112612601A (zh) | 分布式图像识别的智能模型训练方法及系统 | |
CN110570309A (zh) | 用于更换区块链网络的领导者的方法和系统 | |
CN113297318B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114564337A (zh) | 一种基于x码的分布式存储系统容错方法及系统 | |
Calis et al. | Repair strategies for mobile storage systems | |
CN113504875A (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 |