分布式系统功能设计-Erasure Coding | 学习笔记

简介: 快速学习分布式系统功能设计-Erasure Coding

开发者学堂课程【分布式文件存储系统技术及实现:分布式系统功能设计-Erasure Coding 】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/368/detail/4384


分布式系统功能设计-Erasure Coding

一、在分布式存储系统里面数据压缩的技术—Erasure Coding

1. 在分布式存储系统里面数据压缩的技术—Erasure Coding

(1) 纠错码也叫 Erasure Coding ,这个编码的方式有一个特点:比如用户的数据是 m 份,然后通过 m 份计算出 n 份数据,然后 m+n 份数据存储到磁盘上,如果只有 m 份数据,不管是用户的原始数据还是计算出来的纠错码数据,它都可以恢复之前的 n 份数据。这种特性就可以有效的降低存储空间。比如可以跟多个拷贝对比,用户数据有六份,可以计算编码块为三份,实际占用的存储空间是九份。 Erasure Coding 的编码方式存储效率是 1:1.5,相对于多个拷贝存储的方式, 1:3 要优越很多。

(2) 在数据安全性方面进行比较,由于 m+n 的存储可以允许n份同时丢失,如果 n=3 ,是安全性不小于多份拷贝有三个拷贝的。

2. 结合 Erasure Coding 的读写过程,了解编码过程和解码过程。

(1) 结合系统看一下 Erasure Coding 在系统中的读写过程。用户的数据被均等分成三份,然后编码块计算出来是两份,一共五份数据,写入到不同的 OSD 上,这时候 OSD 相对位置是不可变的,比如第一个编码块和第二个编码块位置相关但不允许相互交换。在读的过程中可以看到用户先读左边编码的块,就是用户的原始数据。如果从头扫描文件的话,它会读第一个编码块 OSD5 上面的数据,但是它在读用户的原始数据第二个块的时候,发现节点非常慢,这时可以通过其它块恢复这个数据块的位置,然后加快读取过程,这时候它要做的是读取 OSD1 和 OSD3 上面的数据,同之前读取的 OSD5 的数据共同计算,恢复 OSD2 上面的数据。如果这时候只有 OSD2 是慢节点 ,那就可以有效的规避到这个节点,在读第二块数据的时候,产生了网络流量,所以这就是弊端。

(2) 编码的劣势:在出现异常节点的时候,如果想读到数据,就需要更大的网络流量,这种编码方式一般用于冷数据存储。

image.png

相关文章
|
2月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
60 0
|
2月前
|
NoSQL Java Redis
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件(一)
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件
42 0
|
2月前
|
NoSQL Java Redis
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件(二)
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件
15 0
|
2月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
117 0
|
12天前
|
缓存 NoSQL Java
【亮剑】分布式锁是保证多服务实例同步的关键机制,常用于互斥访问共享资源、控制访问顺序和系统保护,如何使用注解来实现 Redis 分布式锁的功能?
【4月更文挑战第30天】分布式锁是保证多服务实例同步的关键机制,常用于互斥访问共享资源、控制访问顺序和系统保护。基于 Redis 的分布式锁利用 SETNX 或 SET 命令实现,并考虑自动过期、可重入及原子性以确保可靠性。在 Java Spring Boot 中,可通过 `@EnableCaching`、`@Cacheable` 和 `@CacheEvict` 注解轻松实现 Redis 分布式锁功能。
|
2月前
|
缓存 前端开发 小程序
【分布式技术专题】「架构设计方案」盘点和总结RBAC服务体系的功能设计及注意事项技术体系
【分布式技术专题】「架构设计方案」盘点和总结RBAC服务体系的功能设计及注意事项技术体系
33 0
|
2月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
70 1
|
2月前
|
消息中间件 SpringCloudAlibaba Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(八)Config服务配置+bus消息总线+stream消息驱动+Sleuth链路追踪
788 0
|
2月前
|
SpringCloudAlibaba Java 测试技术
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(六)Hystrix(豪猪哥)的使用
46 1
|
2月前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(五)OpenFeign的使用
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(五)OpenFeign的使用
46 0