当前位置: 首页 > news >正文

纠删码ReedSolomon

  • 随着大数据技术的发展,HDFS作为Hadoop的核心模块之一得到了广泛的应用。为了数据的可靠性,HDFS通过多副本机制来保证。在HDFS中的每一份数据都有两个副本,1TB的原始数据需要占用3TB的磁盘空间,存储利用率只有1/3。
  • 而且系统中大部分是使用频率非常低的冷数据,却和热数据一样存储3个副本,给存储空间和网络带宽带来了很大的压力。因此,在保证可靠性的前提下如何提高存储利用率已成为当前HDFS面对的主要问题之一。
  • Hadoop 3.0 引入了纠删码技术(Erasure Coding),它可以提高50%以上的存储利用率,并且保证数据的可靠性。
  • 纠删码是采用计算的方法来维持数据的一致性,并用解方程的方法对数据进行恢复,容忍一定的误差。

概念

Reed-Solomon(RS)码是存储系统较为常用的一种纠删码,它有两个参数k和m,记为RS(k,m)。如下图所示,k个数据块组成一个向量被乘上一个生成矩阵(Generator Matrix)GT从而得到一个码字(codeword)向量,该向量由k个数据块和m个校验块构成。如果一个数据块丢失,可以用(GT)-1乘以码字向量来恢复出丢失的数据块。RS(k,m)最多可容忍m个块(包括数据块和校验块)丢失。
在这里插入图片描述

基本原理

容忍度

冗余符号的个数可以人为指定
在这里插入图片描述

数据的生成

把输入数据视为向量D=(D1,D2,…, Dn), 编码后数据视为向量(D1, D2,…, Dn, C1, C2,…, Cm),RS编码可视为如下图所示矩阵运算。
在这里插入图片描述
上图最左边是编码矩阵(或称为生成矩阵、分布矩阵,Distribution Matrix),编码矩阵需要 满足任意n*n子矩阵可逆。 为方便数据存储,编码矩阵上部是单位阵(n行n列),下部是m行n列矩阵。下部矩阵可以选择范德蒙德矩阵或柯西矩阵。
在这里插入图片描述

这里我们假设7和50丢失了 下方是恢复的过程,很简单解一个方程组就行。

7 x
50 y
x + 2*8 + 3 * 9 = y
4x + 5*8 + 6 * 9 = 122

数据的恢复

采用高斯消元的方法,我们来看一个具体的例子。
在这里插入图片描述

在这里插入图片描述

http://www.lryc.cn/news/272341.html

相关文章:

  • C++音视频开发技巧汇总(持续更新)
  • 4462 4.曙曙献爱心
  • 浅谈命令模式
  • 软件测试/测试开发丨Python 模块与包
  • java企业网站系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • MAC电脑安装java开发工具
  • 高压继电器,未来几年市场将保持稳定增长
  • 在Go语言中实现HTTP请求的缓存
  • 技术扫盲:如何优雅的使用 java -jar
  • 『番外篇七』SwiftUI 获取视图全局位置在 NavigationStack 中失效的解决方法
  • GBASE南大通用 GCDW阿里云计算巢:自动化部署云原生数据仓库
  • Docker实战02|Namespace
  • 01-03
  • 数据可视化与地理空间
  • 【elfboard linux开发板】4. 文件点灯与创建多进程
  • 黑马程序员SSM框架-Maven进阶
  • MFC综合实验二学习记录
  • Python 中的运算符介绍(1)
  • 达梦数据库查询各表数据量/以及达梦更新统计信息
  • Java---- 静态内部类与非静态内部类的区别
  • STM32 基础知识(探索者开发板)--135讲 ADC转换
  • Java经典框架之SpringBoot
  • LeetCode75| 二叉搜索树
  • 博物馆3d虚拟场景复原制作有助于传承和弘扬中华民族优秀传统文化
  • 二维码地址门牌系统:便捷报修服务引领社区新篇章
  • c++基础(对c的扩展)
  • RS485数据采集模块,如何一次采集多个modbus设备数据?
  • 面试 Vue 框架八股文十问十答第一期
  • 【积微成著】性能测试调优实战与探索(存储模型优化+调用链路分析)| 京东物流技术团队
  • 建立分位制,用标准去量化优化效果 - 启动优化为例