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

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

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

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


分布式系统功能设计-GC

一、垃圾回收

1. 在什么场景会出现垃圾回收:

(1) 在数据被删除的时候(比如有用户对某些文件不再使用了,他就会把不用的文件删除。会使用异步删除,好处就是在删除的时候不用考虑是不是把磁盘的空间清除完了,在分布式的环境下很难保证。这时候如果删除大量的文件 mat ,由于删除物理空间造成的 IO 量也会降低,所以就做了异步删除,这是保证系统更稳定、更平滑的功能)

(2) 数据写入失败,脏数据留在磁盘上(用户如果接着写了新的数据后,这些数据在清理过程中也会用到 GC ,这个过程主要基于数据版本控制。比如目前数据版本是 2,那如果发现一个数据版本是 1,就可能决定这种数据是脏数据)

(3) 由于机器宕机造成的(在宕机过程中可能会发现数据拷贝数够,要发起复制,这时候就要发起复制,但是宕机可能不会引起数据丢失。比如这个机器一时间断电,如果把电力恢复的话,这些拷贝还能回来,在恢复后会发现,拷贝数多于要求的拷贝数,比如之前要求三份,由于宕机,复制完之后就变成了四份,在它恢复之后,要把它多余的部分删除。防止多个拷贝在系统中占用更多的空间)

2. 在动画中,第一种是一个异步的过程,是一个垃圾,可以被删除。

image.png

第二种灰色的三角已经变成了版本是 2,这时候发现有一个版本是 1 的数据,也可以证明它是一个垃圾数据,也可以删除。

image.png

第三种会发现要求的拷贝数是 2,实际上有的拷贝数是 3,这样会占用过多的存储空间,也会进行异步删除

image.png

3. 总结:在 GC 的过程中,有两个关键点:

(1) 异步删除

(2) 基于版本的回收(这样保证了删除过程既安全,系统又可以有平滑的性能,不影响用户的使用)

相关文章
|
NoSQL Java Redis
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件(一)
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件
287 1
|
10月前
|
存储 负载均衡 算法
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)
525 1
|
10月前
|
运维 监控 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)
762 0
|
NoSQL Java Redis
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件(二)
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件
146 1
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
Spring Cloud Alibaba 发布了 Scheduling 任务调度模块 [#3732]提供了一套开源、轻量级、高可用的定时任务解决方案,帮助您快速开发微服务体系下的分布式定时任务。
16424 114
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
1822 0
|
开发工具 git 开发者
Git 作为最流行的分布式版本控制系统之一,为开发者提供了强大的功能和灵活的操作方式
本文深入介绍了 Git 中的 `git rebase` 操作,涵盖其基本概念、原理、与 `git merge` 的区别、具体操作步骤及应用场景,如保持提交历史整洁、解决合并冲突等,并讨论了其优缺点。强调在公共分支上谨慎使用 rebase,以避免潜在的风险。
385 6
|
监控 Cloud Native 容灾
核心系统转型问题之API网关在云原生分布式核心系统中的功能如何解决
核心系统转型问题之API网关在云原生分布式核心系统中的功能如何解决
下一篇
开通oss服务