Erasure coding (EC) affords data redundancy for large-scale systems. XOR-based EC is an easy-to-implement method for optimizing EC. This paper addresses a significant performance gap between the state-of-the-art XOR-based EC approach (with 4.9 GB/s coding throughput) and Intel's high-performance EC library based on another approach (with 6.7 GB/s). We propose a novel approach based on our observation that XOR-based EC virtually generates programs of a Domain Specific Language for XORing byte arrays. We formalize such programs as straight-line programs (SLPs) of compiler construction and optimize SLPs using various optimization techniques. Our optimization flow is three-fold: 1) reducing operations using grammar compression algorithms; 2) reducing memory accesses using deforestation, a functional program optimization method; and 3) reducing cache misses using the (red-blue) pebble game of program analysis. We provide an experimental library, which outperforms Intel's library with 8.92 GB/s throughput.
翻译:以 XOR 为基础的 EC 是优化 EC 的简单实施方法。 本文阐述了基于 最先进的 XOR EC 方法( 4. 9 GB/ s 编码通过量) 与基于 另一种方法( 6. 7 GB/s ) 的 Intel 高性能EC 图书馆( 6 GB/s) 之间的重大绩效差距。 我们基于以下观察提出了一种新颖的方法: 以 XOR 为基础的 EC 实际生成 XOR 特定语言的 XOR 组合阵列程序。 我们正式确定了一些程序,如编译器建造的直线程序以及利用各种优化技术优化的 SLP 。 我们的优化流程有三重:1 减少使用语法压缩算法的操作; 2 减少使用砍伐森林的记忆存取,这是一种功能程序优化方法; 3 减少使用 ( 红布) 程序分析的泡泡游戏的缓存误差。 我们提供了一个实验图书馆, 它比 Intel 图书馆的8.92 GB/s通过量。