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

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

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

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


分布式系统功能设计-Checksum

一、跟数据相关的 Checksum 功能

1. 跟数据相关的 Checksum 功能:Checksum 必须做到前链路。

(1) 首先对每一段数据都过到三元组。

(2) 数据会放到 buffer 里面,然后记录它的长度,记在 length 字段里面。前两个字段会计算 CRC 值,在网络传输的过程中,由于 buffer 比较大,所以要进行切分。

(3) 在切分这个过程中,一般就会进行网络分包,分成一小块一小块的数据包。对每个包都会做三元组,一个三元组会变成多个三元组,在这个过程中有一个关键的点就是在分包结束之后要验证原来没分的大包数据是否出错了,这样才能保证后边做出来的数据是在正确的数据下做出来的。

(4) 在存储和网络传输之前,如果有切分包的这个过程,都要有这样的机制保障。在数据到达存储节点之后,如果数据有拼接过程也需要遵循这个过程。而且当时计算完的 CRC 值也要同数据一起存储到磁盘上,这样在后面读取数据的时候才能验证数据在磁盘上是否发生变化,是否变成了错误的数据。

(5) 如果用户在后边不再进行读取、操作数据,那也要保证数据没有变坏。在数据内部,其中的后台有扫描过程,会定期对数字进行校验,将数据读出来然后同写入时候的 CRC 值进行校验,看数据是不是变错了,这样保证了数据的安全性。

2. 在 Checksum 的存储过程中,还有一些关键的技术点,例如:

是不是将数据和 CRC 值存储到同一个文件夹里面。还有一种方法是存储到不同的文件夹里面,这两种方法各有利弊;

(1) 如果存储到同一个文件夹里面:可以有效防止在读取的过程中进行两次访盘,比如数据要读一次,CRC 值又要读一次。但是也有一个弊端,在磁盘上的错误类型是指错的话,因为数据和 CRC 值在一起,自己验证数据没问题,实际上文件已经不是以前的文件了。

(2) 如果数据和 CRC 值存储到两个文件夹里面,就不会产生这个错误,但会引起两次访盘带来的问题。

 

相关文章
|
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
|
5月前
|
缓存 Devops 微服务
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
|
6月前
|
供应链 监控 物联网
区块链通过其独特的分布式账本技术和智能合约功能,确保供应链信息的实时更新
**区块链技术革新供应链:分布式账本确保信息实时一致,智能合约自动执行降低错误,物联网追踪增强透明度和信任。通过去中心化、不可篡改的特性,实现交易验证、货物追踪与业务规则自动化,提升供应链效率与安全性。**