分布式系统功能设计-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

相关文章
|
7月前
|
NoSQL Java Redis
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件(一)
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件
92 0
|
4月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
定时任务在企业应用中至关重要,常用于异步数据处理、自动化运维等场景。在单体应用中,利用Java的`java.util.Timer`或Spring的`@Scheduled`即可轻松实现。然而,进入微服务架构后,任务可能因多节点并发执行而重复。Spring Cloud Alibaba为此发布了Scheduling模块,提供轻量级、高可用的分布式定时任务解决方案,支持防重复执行、分片运行等功能,并可通过`spring-cloud-starter-alibaba-schedulerx`快速集成。用户可选择基于阿里云SchedulerX托管服务或采用本地开源方案(如ShedLock)
136 1
|
23天前
|
开发工具 git 开发者
Git 作为最流行的分布式版本控制系统之一,为开发者提供了强大的功能和灵活的操作方式
本文深入介绍了 Git 中的 `git rebase` 操作,涵盖其基本概念、原理、与 `git merge` 的区别、具体操作步骤及应用场景,如保持提交历史整洁、解决合并冲突等,并讨论了其优缺点。强调在公共分支上谨慎使用 rebase,以避免潜在的风险。
34 6
|
6月前
|
消息中间件 NoSQL Java
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
237 0
|
5月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
Spring Cloud Alibaba 发布了 Scheduling 任务调度模块 [#3732]提供了一套开源、轻量级、高可用的定时任务解决方案,帮助您快速开发微服务体系下的分布式定时任务。
15029 32
|
4月前
|
监控 Cloud Native 容灾
核心系统转型问题之API网关在云原生分布式核心系统中的功能如何解决
核心系统转型问题之API网关在云原生分布式核心系统中的功能如何解决
|
7月前
|
NoSQL Java Redis
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件(二)
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件
46 0
|
7月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
298 0
|
5月前
|
缓存 Devops 微服务
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
|
6月前
|
供应链 监控 物联网
区块链通过其独特的分布式账本技术和智能合约功能,确保供应链信息的实时更新
**区块链技术革新供应链:分布式账本确保信息实时一致,智能合约自动执行降低错误,物联网追踪增强透明度和信任。通过去中心化、不可篡改的特性,实现交易验证、货物追踪与业务规则自动化,提升供应链效率与安全性。**