Fast Erasure Coding for Data Storage(fast‘19、TOS‘2020)

  • 怎么快速的跟流水线比了吗?
    用了什么样的方法?
    共同使用之前提出的纠删码
    单独的全面评估
    哪几种?
    EVENODD代码[3],RDP代码[7],Linux Raid-6 [16],STAR代码[9]和Quantcast-QFS [14]代码。
    如何做的测试
    快到什么程度
    目前的纠删都是什么速度?
    如何优化计算链
    什么叫做在新的cup上迁移工作最少?为什么

    文献中已经提出了各种技术来提高擦除码的计算效率,包括优化位矩阵设计和计算时间表,通用XOR(异或)操作减少,缓存管理技术和矢量化技术。这些技术主要是单独提出的,在这项工作中,我们寻求共同使用它们。为了完成此任务,需要对这些技术进行单独的全面评估,并更好地理解它们之间的关系。在广泛的测试基础上,我们开发了一些方法来系统地优化计算链以及底层的位矩阵。这导致了一种通过最小化加权计算成本函数来优化位矩阵的简单设计方法,以及一种简单的编码过程-遵循从优化的位矩阵产生的计算时间表以应用XOR级矢量化。与大多数现有技术(例如ISA-L和Jerasure库中使用的技术)相比,此过程提供了更好的性能,并且有时甚至可以与众所周知但不太通用的代码(例如EVENODD,RDP和STAR代码)竞争。一个特别重要的发现是,与直接矢量化有限字段操作相比,矢量化XOR操作是一个更好的选择,这不仅是因为选择有限字段大小的灵活性和更好的编码吞吐量,而且还因为它在新CPU上的迁移工作最少。
    解决的问题
    (1)哪些方法最有效,即可以提供最显着的改进? 特别是,如何对优化位矩阵调度和矢量化的两种不同方法进行公平的比较?
    (2)是否可以并且应该一起使用这些技术,以最大化编码吞吐量?
    (3)如果这些技术可以一起使用,应该优化哪些组件以及如何优化它们?
    如何结合个人技术

配备了上面所报告的个人改进,我们对是否以及如何将这些技术组合起来以实现更有效的擦除编码感兴趣。我们测试的技术可以分为三层:比特矩阵层,调度层和与硬件相关的层,如图2所示。
由于这些技术大多位于不同的层中,因此可以串联应用。唯一的SS,UM和WM技术属于例外,因为它们实际上是在优化计算链中的同一组件。因此,我们需要选择要采用的一种或多种技术。此外,尽管BN可以提供改进,并且可以与其他技术一起使用,但从本质上来说,它也是一种优化比特矩阵的过程,并且该组测试并未表明与SS结合后它是否仍然有效, UM或WM。 S-CO技术基本上独立于其他技术。因此,我们可以随时将其用于任何组合策略。同样,V-XOR可以与所有其他方法直接一起应用。
在本节中,我们将在所提出的方法与文献中几种有效的有效擦除编码方法之间提供全面的编码吞吐量评估,以及专为高吞吐量设计的擦除阵列代码。后者包括EVENODD代码[3],RDP代码[7],Linux Raid-6 [16],STAR代码[9]和Quantcast-QFS [14]代码。 EVENODD代码,RDP代码和Raid-6专门设计为具有两个parities,而STAR代码和Quantcast-QFS专门设计为仅具有三个奇偶校验。某些代码的开源实现不可用。因此,我们在内部进行了这些编码过程(有或没有矢量化),以用于我们的比较。前一类包括基于位矩阵(基于XOR的CRS)[13、18、21],有限域矢量化的Reed-Solomon码(基于GF的RS码)[18]和流行的几种有效的Cauchy Reed-Solomon码实现。英特尔®的ISA-L库[2];它们的源代码可以在我们的比较中使用的Jerasure库2.0 [18]和ISA-L 2.27 [2]在线中找到。 Jerasure库2.0中的实现基于GF(28),GF(216)和GF(232)中的矢量化(通过128位指令)有限域操作; ISA-L自动选择平台上可能的最宽矢量化,但仅允许GF(28)。可以将Jerasure库1.2 [21]中的Cauchy Reed-Solomon代码实现改编为利用XOR级矢量化。但是,它不包括UM(或WM)组件和第4.3节中讨论的成本函数的改进。为了使比较公平(因为仅Jerasure 2.0库
我们将报告四个方面的单核单线程编码和解码吞吐量结果
不同的硬件平台,如表5所示。这些硬件平台包括Intel,AMD和ARM CPU,其中一些是台式机CPU,有些是服务器CPU。测试了各种编译器和编译器设置,包括GCC,“现代C编译器” CLANG,英特尔C编译器ICC和AMDC编译器AOCC。吞吐量结果没有显示出显着差异。在续篇中,报告了使用-O3优化的GCC 8.3.0的所有性能结果(即,在编译时启用了自动矢量化功能,但在运行时将其绕过),并在必要时提供了用于显式矢量化的相关编译器标志。在相同的(n,k)参数下,编码和解码吞吐量随w的增加而降低。因此,在性能评估中,除非另有说明,否则在建议的编码过程中将w选择为满足2w≥n的最小值。各种代码和编码过程在续篇中缩写如下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值