纠删码创新点整理

纠删码

纠删码最早是在通信行业解决部分数据在传输中损耗的问题,它的基本原理是把传输的信号分段,加入一定的校验再让各段间发生一定的联系,即使在传输过程中丢失掉部分信号,接收端仍然能通过算法把完整的信息计算出来。纠删码技术本身更多是用于传输,而并不是存储。纠删码算法将原始的数据进行编码得到冗余,它将数据分割成片段,把冗余数据块扩展、编码,并将其存储在不同的位置,并将数据和冗余一并存储起来,以达到容错的目的。

  • 传统的纠删码方法中,会将大小为m的原始数据等分为k个数据块:d0、d1、、dk- 1,对数据块编码之后产生m个编码块:p0、p1、…、pm-1,由此共得到n个块,数据 块、编码块会存储在个不同的存储节点上。存储节点是存储设备的逻辑抽象,既可以 是一个磁盘也可以是一个存储服务器。相比于传统的副本技术,纠删码技术一般具有 最优的存储效率或者最大距离可分(mds)性质,可以在较低的存储开销下提供与之对等 的系统可靠性。然而,纠删码在数据修复过程中需要读取并传输多个磁盘上的数据, 占用大量的存储资源和网络资源,所以在性能方面不及副本策略。以(,k)里德-所罗门 编码为例,只要该数据可修复,都需要k块整块数据块或校验块进行重建,所需要的数 据量都是m。
  • 最小存储再生码是一种特殊的纠删码,它会将编码块进行更加细粒度划分,然后可以 通过有选择性地选取可以重复使用的一些片段参与修复来实现最佳修复带宽。除了传 统的纠删码方法中的参数n和k,最小存储再生码还有参数d用以代表修复时通过网络连 接除失效块之外的有效块数目。单点失效时,现有的最小存储再生码大多是在通过网 络连接除失效块之外的所有有效块(d=n-1),从每个块上按照一定规则下载1/m的数据 量来修复损坏的数据,可以有效地减小修复带宽。但是在复杂的网络环境中,每次的修复都需要所有有效节点的参与是不切实际的。而且,数据修复时延取决于最后一个 节点返回数据请求的时间,当系统不稳定而出现拥塞节点或者节点被其他任务征用而 延缓发送修复所需数据时,系统的数据修复性能大大地降低。总的来说,采用最小存 储再生码时,在不稳定的网络环境下,数据修复性能有待提高。

一、分布式存储系统中数据快速修复的纠删码

柳青
华中科技大学
分布式存储系统中数据快速修复的纠删码
No Code

纠删码面临的挑战:

  • 传统的纠删码会遇到修复开销大的问题:修复过程所需要的数据量远大于失效数据量。大量的修复数据会消耗宝贵的磁盘I/O和网络带宽,并将系统长期暴露在一种不稳定的窗口期,使得任何额外故障将可能导致不可恢复的数据丢失,间接地降级了系统的可靠性。
  • 另外,纠删码在数据编码和数据修复时需要消耗大量的计算资源,如何减少计算开销也是纠删码领域的研究重点。

Motivation

  • 构建具有灵活参数、减少修复开销的纠删码
  • 和减少数据编码和数据修复时的计算开销

贡献:三个创新点

  • 提出一类新的再生码—GFR码
    • GFR码通过一个权衡参数实现分布式存储系统中存储开销和修复开销的权衡,使得其既可以达到理论最小存储开销、最小修复开销,也可以达到他们之间的平衡。
    • GFR码还使用一种启发式算法寻找到修复单点失效数据的最小修复开销,并利用一个阈值控制了启发式算法中搜索空间和搜索时间的权衡。
    • 经实验分析,基于GFR码的分布式存储系统比基于RAID码的系统具有更高的可靠性。GFR码在实际系统中可以达到理论上最优或近似最优的修复开销,其数据编码性能和FMSR码相近。
  • 提出一种矩阵和数据块在有限域上的快速乘法算法-预排移位乘(SSM)。
    • 预排移位乘法通过合理调度运算顺序,合并了在计算矩阵和数据块乘法时的相同计算,减少了纠删码在有限域上数据编码和数据修复时的计算开销。
    • 实验证明,预排移位乘法比传统算法具有更小的预测分支,预排移位乘法能提高RS编码速度和提.高GFR码的数据编码速度和数据修复速度。通过对GFR码修复性能分析,预排移位乘法对GFR码修复开销影响很小。
  • 提出了一类最小存储开销下最优修复开销的纠删码-Z码
    • Z码以置换矩阵为元矩阵,可以组合构造出具有最优修复开销的生成矩阵。
    • Z码还利用矩阵的张量乘积,可迭代地构造出任意参数下的生成矩阵,并保持了其最优修复开销。
    • GZ码以是Z码在有限域上的扩展,它具有MDS(Maximum Distance Separable)性质,且保持了和Z码相同的修复开销和系统性等性质。
  • GFR码和Z码都是减少修复开销的纠删码。
    • 前者是非系统码,编码后只有校验数据,能够减少存储系统中每个节点的修复开销;GFR还可以通过增加存储开销进一步减少修复开销,因此它更适合用于需要频繁的数据修复和修复开销大的分布式存储系统,
    • 后者是系统码,编码后保留了原始数据,能够减少原始数据部分的修复开销。 而Z码的系统性、高编码性能和低更新开销使得其适合于高性能存储系统。
    • 预排移位乘法为基于有限域上纠删码的数据编码和数据修复提供了一种快速运算方法。

二、面向多云存储系统的高效容错转换机制研究

王阿孟
华中科技大学
面向多云存储系统的高效容错转换机制研究
No Code

背景

单云存储架构:
- 单云存储因云故障而无法保证数据的高可用性要求,同时当用户需要迁移数据时,也会产生昂贵的成本
多云存储架构:
- 学术界提出多云存储架构,用以缓解单云故障和云服务提供商垄断问题,并快速被工业界所普遍认可和部署使用
容错转换机制:
- 当前分布式存储系统多采用多副本方式进行冗余存储以保证可靠性和读写性能,当数据变冷之后转换为纠删码方式进行冗余存储以提高存储效率;业界把这种通过数据访问热度变化来触发的“多副本-纠删码”的冗余机制变化称作为“容错转换”(Fault Tolerance Transition)。

Motivation

当前,学术界和工业界还缺乏在多云存储架构下对容错转换机制的相关研究。

贡献:两个创新点

  • 本文在多云存储架构中引入容错转换机制,构建相应的原型系统ClouT(Cloud with Transition)
  • 对冷热数据进行分层处理,对热数据采用双副本机制存储,对冷数据采用RAID5编码机制存储,冷热数据的容错机制均可容一错,从而保证转换后数据的可靠性。

挑战:

  • 挑战1、 当数据发生冷热转换时,需要对数据进行下载、编码等操作,这样则会产生大量的带宽开销和成本。
  • 解决方案: 为了降低转换过程产生的带宽开销和成本,对ClouT中容错转换机制进行优化,采用了中间节点编码和基于延迟转换的批处理算法Lazy来减少转换过程中的云间数据传输,最终达到降低转换成本的目的。
  • 经过理论验证ClouT可在一定程度上提高存储效率,减少存储和转换成本。测试结果表明:相对于传统转换过程,采用中间节点编码和基于延迟转换的批处理算法Lazy后,成本优化比率最高达62%,性能优化比率最高达27%,达到了预期的性能及成本优化效果。

三、分布式存储系统中数据快速修复的纠删码

许方亮
国防科技大学
云存储中基于纠删码的数据容错技术研究
No Code

背景

根据节点分布,云存储可分为

  • 单中心云存储跨中心云存储
    • 前二者通过运营包含大量服务器的一个或多个数据中心来提供服务;
  • P2P云存储
    • P2P云存储则通过大量租用个人闲置的存储空间和网络带宽来提供服务。
      对于任何一类云存储,采用容错技术以保证数据不因节点失效而丢失都至关重要。 基于纠删码的容错技术容错能力更强且存储效率更高,近年来广泛替代了传统基于副本的容错技术。

挑战:由于基于纠删码的容错技术更为复杂,其在云存储中面临着以下问题:

  • (1)数据编码包括数据分块、数据运算和数据分发等操作,已有的编码方法或者消耗了过多的I/O资源或者具有低下的数据读写速度;
  • (2)数据修复时每修复一个失效块都需要传输多个块并进行复杂的运算,已有的数据修复方法不能有效降低数据传输开销并提高数据修复效率。
  • (3)近年来,跨中心云存储和P2P云存储的兴起使这些问题变得更加突出。
  • (4)纠删码容错技术编码时需要收集多个数据块,对它们进行计算产生校验块,然后再将产生出的校验块发送到不同的存储节点。**这个复杂的编码过程容易导致编码速度低下。**因此,优化编码过程以提高系统性能是非常必要的。
  • (5)网络和磁盘都是分布式存储系统中较为稀缺的资源。由于数据中心之间的网络带宽非常昂贵,对于跨中心云存储系统,网络带宽更为宝贵。因此,还需要降低数据编码过程中的网络传输量 和磁盘读写量。

本文综合考虑各类云存储的特点,对纠删码容错技术中的数据编码问题数据修复问题展开深入研究


贡献

挑战1: 已有的数据编码方法或需要进行容错技术转换产生过多网络传输磁盘读写,或因使用离散分块方式严重降低了数据读写速度,尤其不适用于跨中心云存储。
解决方案1:本文面向单中心云存储和跨中心云存储研究提出了一种基于流水线的分布式渐进编码方法PDCE。
  • PDCE采用连续分块,以流水线的方式将新写入的数据传输到多个节点,在数据流过编码节点的同时直接对数据进行渐进式编码并将中间数据缓存在内存中,随着数据的写入逐步地在多个编码节点上分别产生校验块,最终再存储到相应的节点上,既可获得最优的数据写入效率,也无需进行容错技术转换
  • 通过调节编码节点的数量,PDCE可以灵活地权衡编码完成之前的容错能力与编码的网络传输开销
  • 理论分析和单中心以及跨中心环境下的大量实验表明,PDCE能够在网络传输和磁盘读写量与数据读写效率之间取得更好的权衡。(接近最优数据读写效率的同时,可将网络传输减少44.5%–48.4%,可将磁盘读写减少45.6%–66.7%。)
PDCE的基本思想

请添加图片描述
请添加图片描述

挑战2:在已有的数据修复方法中,绝大部分数据传输都要经过网络拓扑中的瓶颈链路,如数据中心内部网络的核心层链路和数据中心之间的链路。严重限制了总体修复效率,也对系统中正常的数据读写造成了不利影响。
解决方案2: 面向单中心云存储和跨中心云存储研究提出了一种局部性感知的树型修复方法LATR
LATR的**基本思想
  • 首先将彼此较为接近(如处在同一聚合域或同一数据中 心内)的编码块组合在一起,然后再把中间结果发送到更远的地方与其它编码块 (如位于其它聚合域或数据中心)进行进一步的组合。从而降低流经网络核心层的数据量。
    • 优点1:LATR先根据网络拓扑信息或节点之间延迟确定数据的局部性 ,然后根据局部性构建一棵以替代节点为根覆盖所有提供节点的最小生成树作为修复树。修复时,数据从修复树的叶节点开始向上传输,在内部节点合并后继续向上传输,依此类推,直至到达根节点完成修复。这使得距离较近的数据就近合并后再传输到较远的地方与其它数据合并,减少了经过上层链路的数据量。请添加图片描述
    • 优点2:注意到一个中间块的大小与一个 编码块相等,LATR将核心带宽消耗降低了50%。需要强调的是,在这个修复过 程中,LATR也没有增加下层带宽的消耗。虽然交换机AS1和节点1之间的路径上 的传输量增加了一个块,交换机AS3和节点s之间也增加了一个块,但是交换机 AS2和节点3之间的传输量减少了两个块。因此,LATR只是分散了下层的数据传输,使下层的网络负载变得更加均衡。
对比传统的星形修方法

请添加图片描述

  • 缺点1:所有四个编码块都要经过网络拓扑的核心层进行传输。
  • 缺点2:在已有的树型修复方法中,修复树的构建都未考虑数据局部性,其大部分数据传输也要经过核心层。如前所述,核心层通常是整个网络的性能瓶颈。较高的核心。
  • 较高的核心带宽消耗不仅限制了可以达到的最高修复吞吐率,也会严重影响同时运行的其它任务
LATR采用一种基于局部性的提供节点选择算法,可在有多种选择时迅速挑选出最优的提供节点组合。
  • **分析表明,**LATR修复时的核心层流量比已有修复方法低20%–61%。**大量实验表明,**LATR可将主动修复吞吐率提高至少23%,可将降级读取速度提升高达68%
挑战3:P2P云存储中节点的上传带宽常常远低于其下载带宽,使数据上传成为严重的性能瓶颈。
  • 已有数据修复方法均未考虑到这一特点,导致它们在P2P云存储中的数据修复效率较低。
解决方案3:本文面向P2P云存储研究提出了一种基于分片的分布式星型修复方法FDSR
  • FDSR采用一种“分散-聚合”的双层修复框架,先将编码块分成多个大小相同的编码片,然后使用多个修复节点以星型修复方法并行地修复失效编码片,对于不同的失效编码片选用不同的提供节点组合,最后再将修复出的编码片聚合至替代节点完成修复。通过使尽可能多的可用节点作为提供节点,FDSR减少了单个提供节点需要上传的数据。
  • 采用星型方法作为底层修复方法使FDSR可以同时适用于单点失效和多点失效的修复,而多个修复节点分散修复的方式则避免了传统星型修复方法负载不均衡的问题。
  • 理论分析表明, FDSR中提供节点的上传数据量明显低于现有方法,并且FDSR的整体负载更加均衡。**大量实验表明,**与已有数据修复方法相比,FDSR可将单点失效时的数据修复速度提高33.2%–87.8%,将多点失效时的数据修复速度提高78.4%–110.0%。
FDSR的基本思想
  • 将所有编码块划分为多个大小相等的编码片,然后使用不同的提供节点组合并行地重新产生丢失的编码片。我们知道,对于RS码,当 e个编码块丢失时,利用剩余k+m一e个可用编码块中的任何k个都能够重新产生出丢失的e个编码块。如此,就可以让所有存储可用编码块节点都作为提供节点,且每个提供节点只需要参与修复不可用编码片中的一部分。这意味着单个提供节点只需要上传它存储的编码片中的一部分,即提供节点上传的数据量减少 了。这就可以降低对提供节点上传带宽的压力
  • 为了能够适用多块失效的修复, 失效编码片都采用星型修复方法修复,可以使用同一组编码片把相应的多个失效编码片一次性都重新产生出来。为了解决星形方法中修复节点为性能瓶颈的问题, FDSR使用多个修复节点,不同的修复节点修复不同的不可用编码片。替代节点 只需要从修复节点下载重新产生出的编码片,然后将其合并成一个完整的编码块 即可。
FDSR的具体实现

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述

四、分布式存储系统中数据快速修复的纠删码

孙伟东
国防科技大学

传统分块方法分析

挑战1:采用连续的数据分块方法存在以下三个方面的问题
  • 1、客户端把本地磁盘中的数据对象存储到分布式存储系统中时,每一次编码 都需要从各个不同的数据块中各读取一个数据条,这些数据条在原数据对象中位于不同的位置,导致本地磁盘的数据读取无法连续的执行,引发了频繁 的磁头跳转,降低了/0的吞吐率;
  • 2、执行读取数据以后,如果读取的数据被写入本地磁盘,一次解码计算过程 中得到的个数据条在原始数据对象也中不连续的,写入过程不可避免地带来 了磁头的跳转,降低了/吞吐率;如果读取数据的被用于其他计算,则一次 解码计算提供的数据条具有较差的数据局部性;
  • 3、在执行退化的部分读取操作时,获取失效的数据条需要下载k倍于失效数 据条的数据量才能完成解码计算,带来了巨大的网络开销以及解码计算开销, 导致读取的效率很低。
    请添加图片描述
4.3.1基本思想

逻辑上,基于纠删码容错的分布式存储系统对数据块进行编码并生成校验块, 然后每个数据块和校验块均被放置到不同的存储节点上。但是受限于内存空间的 大小,实际实现时一般以条为基本单位执行纠删码的编码计算。因此,将一个数 据对象存储到一个基于(,k)纠删码容错的分布式存储系统中时,通常在客户端执 行一个循环的编码过程,每次循环中从数据对象中读取k个数据条,然后对此个 数据条进行编码生成m个校验条,然后将此k个数据条和m个校验条分别上传到n 个不同的存储节点上。根据分布式存储的容错要求,每次编码时读取的个数据条 必须来自k个不同的数据块,而生成的m个校验条则分别属于m个不同的校验块, 其中n=k+m。

根据上一节的分析,对于传统的数据分块方法,数据对象被顺序地划分成个 大小相等的数据块,因此编码时每次从一个数据块各读取一个数据条构成条带, 此时条带中的数据条在原始数据对象中是不连续的,则获取失效数据时一次解码 操作得到的数据条也不连续,从而导致退化的部分读取需要下载更多的条执行解 码计算才能恢复失效的数据条,带来了巨大的网络开销和计算开销,降低了读取 效率。

解决1:在基于纠删码容错的分布式存储中采用离散的数据分块方法

d- dividing方法的基本思想是在对原始数据对象进行分块并将数据块进行编码 生成校验块的过程中,每一次执行编码时读取在原始数据对象中位置连续的个数 据条构成编码条带。由于解码计算是编码计算的逆过程,构成一个编码条带的k个 数据条在解码时属于同一个解码条带,因此在有数据块失效情况下执行退化的部 分读取操作时,要获取其中的一个失效数据条,则下载该失效数据条所在条带中 的未失效数据条,假设其数目为,以及其他的k一l个校验条执行解码计算,即可 同时获得与该数据条位于同一个条带中的其他k一l个数据条,k一l≤m。此即意 味着下载k个条执行一次解码计算将能够同时得到在原始数据对象中位置连续的k 个数据条,此k个数据条很有可能是属于读取请求的数据。因此,d- dividing方法 能够降低传统数据分块方法带来的巨大网络开销和计算开销,进而提高数据读取效率。

d- dividing方法包括两个算法,分别是基于离散分块的数据写入算法 dd- writing( wirting algorithm of d- dividing approach)和基于离散分块的数据读取算 法dd- reading( reading algorithm of d- dividing approach),分别执行基于纠删码容错的分布式存储系统中数据对象的写入以及读取操作。

请添加图片描述
请添加图片描述

总结可以获得 以下几个方面的优势:

请添加图片描述


挑战2:(再生码)多节点修复面临的问题

现代大规模的分布式存储面临着频繁的数据失效,比如数据错误、系统宕机、 路由失效、电力中断等都会导致数据失效,系统要保持较高的容错能力,必须对 失效的数据进行修复。为了节省成本、方便管理,一般采取延迟修复或者定期修 复的策略,因此在一次修复时往往需要处理大量的失效节点。

传统的方法大多采用串行的方式,依次修复多个失效块。这种修复方法比较 简单,但是总的修复时间等于所有失效节点的修复时间的总和,修复效率低下, 而且漫长的修复时间导致修复期间数据对象的可用性和可靠性都很低,同时也使 得成功修复的概率降低。同时并行地修复多个节点可以提高修复效率。如果在一 次修复过程中同时修复多个失效节点,需要考虑以下几个问题:

  • **提供节点的选择:**根据前一节的描述,与基于星型结构的修复拓扑相比,基 于树型结构的修复拓扑能够更好的利用网络中的高带宽链路。但是树型拓扑 在构建时提供节点的选择需要考虑两个问题,
    - 一是提供节点的数量,二是选择哪些存活节点作为提供节点。
    - 一方面,根据文献[160Network coding for distributed storage systems]的结论,提供节点越多,需要下载的数据量越少;另一方面,当提供节点数量大于k以后,每增加一个节点,树结构的瓶颈链路都可能会减小
    - 因此需要在链路带宽和提供节点数量之间做一个权衡。
  • **链路竞争的处理:**如果同时修复多个失效块,需要为每个失效块构建修复拓扑,多个修复拓扑之间往往会共享链路从而导致存在链路竞争。如何避免或 者降低修复拓扑之间的链路竞争,并且在出现竞争时高效地处理是多节点失 效需要处理的另一个问题。
解决2:基于分组迭代的多节点并行修复本节针对基于纠删码容错的分布式存储环境中多失效节点的修复问题,提出了一个基于分组迭代的多节点并行修复方法 GIMPR。

该方法把对多个失效节点的修复转化成一个可以迭代执行的循环过程,每一次迭代循环被分成三个阶段:

  • (1) 从所有失效节点中选择部分失效节点组成一个可以并行修复的分组。
  • (2)为分组中的每个节点构建修复拓扑。
  • (3)对分组中的所有失效节点并行地执行修复。
5.3.1 基于贪心策略的分组构建

为了避免同时修复大量的失效节点带来的链路竞争,提高数据对象的可用性, 提升修复效率, GIMPR对失效的多个节点进行分组,使得组内的节点能够保持较 小的链路竞争,从而可以同时并行地修复。本节提出一个基于贪心策略的分组构 建算法GSGA( Greedy Strategy based Grouping Algorithm)。请添加图片描述
GSGA的基本思想:
把属于同一数据对象的失效块放到不同的分组中,以避 免链路竞争,同时提高数据对象的可用性。在基于纠删码的分布式存储中,每个 存储节点都保存了大量的属于不同数据对象的数据块或者校验块,一个失效节点 会导致节点上存储的大量属于不同数据对象的块失效,多个失效节点可能导致一 个数据对象有多个位于不同节点的块发生失效。属于同一个数据对象的失效块拥有相同的存活节点,因此同时修复时有很大的概率发生链路竞争。通过把属于同 一数据对象的失效块分配到不同的分组中,可以有效地降低对多个失效块并行地 修复时的链路竞争。

图5.2展示了GSGA算法的伪代码。算法可以分为以下几步:首先,初始化, 把当前要修复的分组集合清空(算法第1步);其次,不断地把与分组中的所有节点属于不同数据对象的失效节点加入到分组中。为了避免加入的节点与分组中的节点之间的链路竞争,在加入分组之前首先为候选失效节点调用基于生成树的自适应单节点修复拓扑构建算法ARTC(参见下一节)构建拓扑(算法第4步),并判断该拓扑与分组中节点的修复拓扑是否存在链路竞争,只把那些不存在链路竞争的失效节点加入到分组中(算法第2-7步);最后,更新待修复失效块集合,把加入到当前要修复分组中的失效块从待修复失效块集合中删除(算法第8步)。
从上面的算法过程中可以看出,GSGA的算法复杂度为O(r^'2),其中r’表示失效块的总数。

5.3.2基于生成树的单节点自适应修复拓扑构建

李军等人[13刀首先针对再生码提出了一种基于树型结构的修复策略。基于树型 结构的修复策略的基本思想是通过构建修复拓扑以更好的利用网络中带宽较大的 链路,从而减少修复时间,提高修复效率。本节首先介绍李均等人关于生成树构 建的基本原理,然后阐述我们提出的针对单个失效节点的自适应修复拓扑构建算法。

背景

生成树构建基本原理请添加图片描述
构建好最大生成树的修复拓扑以后,修复过程按照如下的过程执行。每个叶 子节点把自身存储的数据向上发送给其父节点;每个中间节点在收到其所有子节 点的数据之后,把自身存储的数据与所有来自其子节点的数据进行编码融合然后 继续向上发送到父节点;根节点对来自所有其子节点的数据进行编码融合,得到 失效数据块。

自适应生成树构建算法

上述介绍的基于生成树结构的修复策略从两个方面提高了修复效率,

  • 一是通过构建最大生成树避免了网络拓扑中的瓶颈链路;
  • 二是通过在中间节点对数据进行编码融合,减少了网络中的数据传输总量。
  • **但是根据李军等人[137证明,增加提供节点的数量可以减小修复时的数据传输总量,**为了进一步降低数据传输量,本节提出了一个基于生成树的单节点自适应修复拓扑构建算法ARTC( Adaptive Revovery Topology Construction algorithm based on spanning tree)。
    请添加图片描述
    ARTC的基本思想
    首先采用Prim算法[16S]构建一棵拥有k个提供节点的最小生成树。然后仍然依据Prim算法从剩余的d一k个候选提供节点中选择链路最大的节点作为下一步要加入生成树的节点,不同的是在加入之前对加入以后修复时间的变化进行判断,如果新加入的提供节点使得修复时间降低则确定把该节点加入到生成树中,并重新选择下一个节点,否则停止树的构建过程。

图5.3展示了ARTC算法的伪代码。ARTC算法可以分为以下几步:

  • (1)令集合 candidatesEdges表示所有存活节点到根节点的最短距离(即最大链路带宽), 并初始化该集合,使得所有存活节点指向替代节点,每个存活节点到根节点的最大链路是该存活节点到替代节点的链路带宽(算法第1-4步);
  • (2)不断地从集合 candidatesEdges中选择一条带宽最大的边edge确定为构成修复拓扑的边,即把边edge从 candidatesEdges集合中删除,然后把边edge的起始节点插入到提供节点集合,并让edge节点的父节点指向其尾节点(算法第11-15步);
  • (3)更新集合 candidatesEdges中的其他所有边,更新的规则为:如果集合 candidatesEdges中的某条边 edgei,经由边edge到替代节点拥有更大的链路带宽,则更新边edge的目的 节点为边edge的起始节点,并且更新edge的起始节点与替代节点之间的最大链路带宽为经由边edge路由以后的链路带宽大小(算法第16-21步);
  • (4)当提供节 点数量#§大于k以后,为了避免新加入的提供节点导致修复时间增大的问题,引 入了一个自适应的判断,如果修复时间增加则不再加入新的提供节点(算法第7-10 步);
  • (5)为了保证根节点的入度入满足=#§-k+1,当入度不满足时该条件 时,对树进行调整,将到根节点的链路最大的几个节点直接连接到根节点(算法 第23-29步)。
    请添加图片描述
    请添加图片描述
    图5.4展示了传统的基于树型结构的修复方法构建的修复拓扑结构。其中图 5.4(a)和图5.4(b)展示了只采用k=3个提供节点时构建的修复拓扑结构,此时
    请添加图片描述
    请添加图片描述
    请添加图片描述
5.3.3基于分组迭代的多节点并行修复

请添加图片描述

工作展望

请添加图片描述
(2)基于纠删码容错的数据更新技术研究
分布式存储系统中保存的数据往往需要在初次写入之后不断更新,因此数据 更新成为分布式存储系统中的一项常见操作[169。在基于复制容错的分布式存储系
请添加图片描述
请添加图片描述

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值