通过本文可以获得如下知识:
① XOR码、RS码的基本原理和恢复过程实例。
② 图解HDFS EC中block group(块组)的概念、图解striped layout(条带布局)和连续布局,以及它们的优缺点比较。用一个实例一步一步分析divideByteRangeIntoStripes方法生成的cells、ranges、striped数组。
③ HDFS EC的核心源码流程。
④ HDFS EC优势与劣势。
一、准备工作
在存储系统中,纠删码技术主要是通过利用纠删码算法将原始的数据进行编码得到校验,并将数据和校验一并存储起来,以达到容错的目的。
1.1 几个专业术语
-
Legacy coder: 遗留版本的Java RS码,起源于Facebook的HDFS-RAID项目。
-
ISA-L: 实现RS算法的英特尔存储加速库,为Intel指令集如SSE、AVX、AVX2和AVX-512提供性能优化。
-
ISA-L coder: 利用Intel ISA-L库的本地(native)RS编码器。
-
New Java coder: Reed-Solomon算法的纯Java实现(适用于没有所需CPU型号的系统)。这个编码器与ISA-L编码器兼容,还利用了JVM的自动向量化特性。
1.2 XOR码(异或码)
异或运算:相同为0,不同为1。
满足如下两个运算律: