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

相关文章
|
NoSQL Java Redis
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件(一)
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件
293 1
|
11月前
|
存储 负载均衡 算法
zk基础—4.zk实现分布式功能
本文详细介绍了基于 ZooKeeper(ZK)实现分布式系统中的多种核心功能,包括数据发布订阅、负载均衡、分布式命名服务、Master-Worker 协调、分布式通信、Master 选举、分布式锁及分布式队列与屏障的实现。每部分均包含原理说明和具体代码示例,展示了 ZK 在分布式环境下的协调能力与应用场景。
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
定时任务在企业应用中至关重要,常用于异步数据处理、自动化运维等场景。在单体应用中,利用Java的`java.util.Timer`或Spring的`@Scheduled`即可轻松实现。然而,进入微服务架构后,任务可能因多节点并发执行而重复。Spring Cloud Alibaba为此发布了Scheduling模块,提供轻量级、高可用的分布式定时任务解决方案,支持防重复执行、分片运行等功能,并可通过`spring-cloud-starter-alibaba-schedulerx`快速集成。用户可选择基于阿里云SchedulerX托管服务或采用本地开源方案(如ShedLock)
553 1
|
11月前
|
运维 监控 Linux
WGCLOUD运维平台的分布式计划任务功能介绍
WGCLOUD是一款免费开源的运维监控平台,支持主机与服务器性能监控,具备实时告警和自愈功能。本文重点介绍其计划任务功能模块,可统一管理Linux和Windows主机的定时任务。相比手动配置crontab或Windows任务计划,WGCLOUD提供直观界面,通过添加cron表达式、执行指令或脚本并选择主机,即可轻松完成任务设置,大幅提升多主机任务管理效率。
|
消息中间件 NoSQL Java
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
779 0
|
NoSQL Java Redis
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件(二)
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件
153 1
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
Spring Cloud Alibaba 发布了 Scheduling 任务调度模块 [#3732]提供了一套开源、轻量级、高可用的定时任务解决方案,帮助您快速开发微服务体系下的分布式定时任务。
16470 115
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
1888 0
|
开发工具 git 开发者
Git 作为最流行的分布式版本控制系统之一,为开发者提供了强大的功能和灵活的操作方式
本文深入介绍了 Git 中的 `git rebase` 操作,涵盖其基本概念、原理、与 `git merge` 的区别、具体操作步骤及应用场景,如保持提交历史整洁、解决合并冲突等,并讨论了其优缺点。强调在公共分支上谨慎使用 rebase,以避免潜在的风险。
395 6
|
监控 Cloud Native 容灾
核心系统转型问题之API网关在云原生分布式核心系统中的功能如何解决
核心系统转型问题之API网关在云原生分布式核心系统中的功能如何解决