分布式系统功能设计-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) 基于版本的回收(这样保证了删除过程既安全,系统又可以有平滑的性能,不影响用户的使用)

相关文章
|
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)
238 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
|
4月前
|
Oracle Java 关系型数据库
分布式锁设计问题之由于GC导致的Client同时操作共享资源的问题如何解决
分布式锁设计问题之由于GC导致的Client同时操作共享资源的问题如何解决
|
5月前
|
缓存 Devops 微服务
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决