带你读《对象存储实战指南》第三章命名和同步3.3逻辑时钟(一)

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 《对象存储实战指南》第三章命名和同步3.3逻辑时钟

在分布式系 统中,如果物理时钟精不够或者误差太大,就会使用逻辑时钟( Log ic alClock) 来控制系统不同组件、进程之间事件的时间先后顺序 


3.3.1 逻辑时钟技术 

业界逻 辑时钟的典型实 现有软件序号器 的兰伯特时间戳 ( LamportTimestamp)、时间偏( PartialOrdering) 的向时钟 ( VectorClock)、副本顺( OrderReplicas) 的版本向(VersionVector )

1.  . 逻辑时钟 

1978,图奖获得者 LeslieLamport在其发表的论文 Time, clocks, andtheorderingof
eventsinadistributedsystem中 详细描述时钟现,核心点先后顺( HappenedBefore) 序号计数 ( SoftwareCounter)

先后顺序按照数学理论偏序的定义如下。

 

·  相同进程内,如果事件 a先千事件 b发生,就表示为 a->b

·   不同进程内,如果事件 X是进程 A发送消息 ,事件 Y是进程 B接收该消息 ,那么事X定先千事件 Y发生就表示X->Y

发生的先后顺,可以很方 便地用软件计 数 ( SoftwareCounter) 序号,而序号小可以判断先后顺序。如图 3-12所示,如果没有逻辑时 钟技术 ,3步发生时可能l步因为网络问题还没 有完成数据写入 磁盘的操作,从而导致第 3议到磁盘 的历史数据是引入逻辑时钟,可以通过序值确定先后 顺序,保证系统设计正确性

image.png

3-12         逻辑时钟示例


 

基于逻辑时钟非常容易实现两台服务器或两个进程间的事件先后顺序裁决,但是如果   在多台服务器 或多个进程的情况下继续使用 就需要选出 唯成器,众务器向该序生成器申请序号以判断先顺序,此时会导致序号生成器成为系统瓶颈

时钟通过组合多 个本地计数器判断事件的先后顺序,不需要唯一 的序号生器就可以实现关联事件的先后顺序裁决。如图3-13,事件 1-1到事件 1-10有先后个或地计数器组成如,1-5(由A:2,   B:2,   C:l]钟组成)1-6(由A:2,   B:4,   C:l]之间存在先后,而2-1(由B:3,   C:l]钟组1-5(由A:2,   B:2, C: l]个本地逻辑时钟组成之间就无判断先的两个

image.png

3-13时钟

 

在分布式对象存储,读写不同     的对,而写对、再取对就存在先,特/写相同对时就制先

 

1.  版本向量 

不管是逻辑时 钟还是向 时钟,它们都集中解决事件的先后顺序问题而版可以在分布式系统中跟踪数据的变 化,特别是多个客户端在不同 的时间更新数据的变 化

户端 l户端 2在不同时间更新数据存储 Rl的对象X。每次更新记录版本时 ,Rl按时间 顺记录数据更新3个,组合起来就[X:l=AAA, X:2=BBB,  X:3=CCC] ,从而形成版本 向,如图 3-14( a) 所示针对分布式系 统,数据会保存为多个副本 ,每个副本都会有版本,将个副的版量组合来就形成了版本矩阵  ( Version  Matrix),如图所示。

image.png

3-14    版本示例

由千系统的更新有依赖关系,每次更新只有在确认上次版本写入成功后才能覆盖,此时就会存在历史 版本的清理问题,因此需要在数据 存储侧对版本向进行合并删减 而在分布式冗余存储中 ,还需要结合多个副 本的致性进行处理,这些都是分布式系统的挑战点。

 

1.  多版本并 发控制

 

数据库领域中广泛 使用的多版本并发控制 ( Multi-Version ConcurrencyControl, MVCC),就是与版本向量非常类似的一种技术。它是数据库管理系统常用的并发控制技术,其目标是优化读/写 锁造成的个长时间的读操作饿死 写操作问题 。它的核心机制是每次事务读到 数据项都是历史快照,而每次事务的写操作不覆盖已有数据项,而是创建新的版本。

MVCC使用系 统时间戳( TS) 或逻辑时 钟号,在写入数据时将其作为版本标识符( ID) ,

读/写时采取如下规则。

 

·   基千 MVCC的读操作 。事务 T,读取对时,将选择比事务 T,时间更早,且最接近事T,的有效版本 返回。

·   基于MVCC  的写操作若事T,和T  以先后序写相同对象,则必须保T,先 千 T丿 发生,也就是T,T丿 ,因此入时需要做更多的版本时间检查 ,才能保证数据致性。

在保证致性的前提下,MVCC  通过类似于乐观锁的机制提供并发控制 ,在写冲突较少的情况下可以大幅提升系统性能


相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
对象存储
|
20天前
|
DataWorks 安全 关系型数据库
DataWorks产品使用合集之同步数据到OSS时,文件的切分单位如何设置
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
20天前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何将CSV文件从阿里云OSS同步到ODPS表,并且使用列作为表分区
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
DataWorks产品使用合集之如何将CSV文件从阿里云OSS同步到ODPS表,并且使用列作为表分区
|
21天前
|
存储 DataWorks 关系型数据库
DataWorks产品使用合集之在使用数据集成中的同步任务从mysql同步表到oss,存储为csv时,最终生成的文件中没有表头,这个属性可以在哪里配置么
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
19天前
|
SQL 运维 DataWorks
DataWorks操作报错合集之同步任务同步到OSS,报错:Caused by: com.aliyun.oss.ClientException: The target server failed to respond,如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
21天前
|
存储 分布式计算 关系型数据库
实时数仓 Hologres产品使用合集之是否提供相应的功能接口和指令,可以将数据从OSS存储同步到Hologres中进行分析
实时数仓Hologres的基本概念和特点:1.一站式实时数仓引擎:Hologres集成了数据仓库、在线分析处理(OLAP)和在线服务(Serving)能力于一体,适合实时数据分析和决策支持场景。2.兼容PostgreSQL协议:Hologres支持标准SQL(兼容PostgreSQL协议和语法),使得迁移和集成变得简单。3.海量数据处理能力:能够处理PB级数据的多维分析和即席查询,支持高并发低延迟查询。4.实时性:支持数据的实时写入、实时更新和实时分析,满足对数据新鲜度要求高的业务场景。5.与大数据生态集成:与MaxCompute、Flink、DataWorks等阿里云产品深度融合,提供离在线
|
2月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之在DataWorks中,同步OSS中的数据的步骤如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
45 0
|
对象存储
|
数据采集 对象存储 开发者
同步数据到 OSS|学习笔记
快速学习同步数据到 OSS
241 0
同步数据到 OSS|学习笔记
|
2月前
|
分布式计算 大数据 MaxCompute
MaxCompute产品使用合集之使用pyodps读取OSS(阿里云对象存储)中的文件的步骤是什么
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。

热门文章

最新文章