极速同步如何保证反向同步数据一致性

简介: 背景 文件网关在一个事务中将客户户端数据写入缓存盘返回,然后以异步的方式在后台线程中上传到OSS,如果存在多个网关共享同时写入一个文件,对象的完整性是由OSS语义来保证的,网关始终能够保证正向同步的数据一致性。

背景

文件网关在一个事务中将客户户端数据写入缓存盘返回,然后以异步的方式在后台线程中上传到OSS,如果存在多个网关共享同时写入一个文件,对象的完整性是由OSS语义来保证的,网关始终能够保证正向同步的数据一致性。当网关需要反向同步OSS端的元数据时,之前采用的策略是定期在用户所进入的目录内进行全扫描,也可以保证网关的元数据最终与OSS一致。为了实现高效的数据共享,网关推出了极速同步功能,以初始全量扫描+增量事件通知的方式快速同步云上的元数据。在用户体验到秒级同步的极速性能时,网关是如何保证反向同步的一致性呢?是否会存在丢失增量信息的情况?如果由于网络原因导致MNS服务不可用又如何处理?下面我们就着这些问题展开讨论。

状态机管理

在极速同步的生命周期管理中,我们引入了几个状态位。
state

全量同步等待:网关创建同步组时会同时创建OSS事件通知规则,规则会同步到OSS集群,生效需要10分钟时间,如果同步组创建之后共享立即开启同步功能,则需要等待最长时间,稍后开启的话等待时间会随之减少。
全量同步进行中:创建全量同步扫描任务,多线程快速扫描OSS同步元数据到网关,监控任务状态,直至任务完成
同步正常:全量同步任务完成后,开始增量同步,处理消息队列的通知消息,并监控消息主题和消息队列的状态以及心跳包监听。需要注意的是,在全量同步等待中,网关已经开启消息监听,在全量同步的过程中有OSS事件发生,也会进行处理。虽然与全量同步可能存在重复对象处理,保证了全量同步完成时,网关的元数据和云上是完全一致的。
同步异常:异常是一个统称,会细化为消息主题不可访问,消息队列不可访问。

状态机异常处理

全量同步等待中:如果网关重启或者后台进程重启,会持久化保存等待时间,保证事件规则生效。
全量同步进行中:如果全量扫描任务出现异常,会重新发起扫描任务。
同步正常:如果健康检查中发现消息主题或者消息队列不可访问,会上报异常状态。同时每个开启极速同步的共享会发送心跳包到消息主题,如果没有收到心跳包,有可能是消息主题/消息队列不可访问导致消息通路中断或者是网关宕机很长一段时间才恢复。MNS可以保证已经成功投递的消息至少会被消费一次,如果长期没有收到心跳包,投递的消息会在消息队列中堆积,考虑到消息有其存活周期,心跳包中断超过一定的期限,我们会重启全量扫描任务保证极速同步共享重新获得跟OSS一致的元数据信息。

消息投递失败处理

对于消息主题和消息队列的持续异常网关会通过健康检查上报,这里讨论的是偶发性的OSS事件通知投递失败。OSS投递事件消息,会有简单重试机制,如果还是失败的话,会把投递状态位返回给网关,网关会生成自定义的消息往消息主题,重试直至投递成功。

小结

本文介绍了极速同步的生命周期管理,包括同步中的状态机管理以及异常处理。网关确保极速同步共享的消息投递成功,MNS保证了消息最少被消费一次,可以保证消息都能够被处理。在异常情况下,会有健康检测上报和心跳包实效管理,重启全量同步扫描保证数据的最终一致性。

相关实践学习
对象存储OSS快速上手——如何使用ossbrowser
本实验是对象存储OSS入门级实验。通过本实验,用户可学会如何用对象OSS的插件,进行简单的数据存、查、删等操作。
目录
相关文章
|
存储 缓存 对象存储
利用云存储网关在Windows上挂载OSS
概述 阿里云OSS提供了海量低成本高可靠的对象存储,非常适合于存储文件,图像,视频等非结构化数据,同时也提供了丰富的SDK生态给开发者集成使用。但是对于开发资源有限的小企业或者个人用户而言,直接使用OSS存储还是存在诸多不便。
11645 1
利用云存储网关在Windows上挂载OSS
|
9月前
|
人工智能 Kubernetes 调度
ModelDistribution:高效的大模型管理、分发和预热方案
阿里云ACK One舰队推出ModelDistribution方案,创新性采用OCI标准封装模型,实现跨地域高效分发与预热,解决大模型部署中的管理复杂、拉取慢、多集群同步难等痛点,助力企业平滑演进至多地域AI推理架构。
678 1
ModelDistribution:高效的大模型管理、分发和预热方案
|
10月前
|
安全 Linux 网络安全
Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架
708 0
|
存储 人工智能 Kubernetes
AI 场景深度优化!K8s 集群 OSSFS 2.0 存储卷全面升级,高效访问 OSS 数据
阿里云对象存储OSS是一款海量、安全、低成本、高可靠的云存储服务,是用户在云上存储的高性价比选择…
|
存储 数据采集 监控
云上数据安全保护:敏感日志扫描与脱敏实践详解
随着企业对云服务的广泛应用,数据安全成为重要课题。通过对云上数据进行敏感数据扫描和保护,可以有效提升企业或组织的数据安全。本文主要基于阿里云的数据安全中心数据识别功能进行深入实践探索。通过对商品购买日志的模拟,分析了如何使用阿里云的工具对日志数据进行识别、脱敏(3 种模式)处理和基于 StoreView 的查询脱敏方式,从而在保障数据安全的同时满足业务需求。通过这些实践,企业可以有效降低数据泄漏风险,提升数据治理能力和系统安全性。
2284 258
云上数据安全保护:敏感日志扫描与脱敏实践详解
|
10月前
|
存储 人工智能 安全
函数计算进化之路:AI Sandbox 新基座
AI Agent 的兴起催生了一种全新的、独特的云工作负载类型。它既不完全符合传统 IaaS(对于零散、突发的使用场景而言过于昂贵和笨重)的模式,也打破了第一代 FaaS(函数即服务,因其无状态和较弱的隔离保证而无法满足需求)的设计假想。市场迫切需要一种新型运行时——它必须兼具虚拟机的状态化和隔离性与 Serverless 的经济性和弹性。这正是阿里云函数计算(Function Compute, FC)架构演进所要解决的核心问题。
|
存储 测试技术 对象存储
使用容器服务ACK快速部署QwQ-32B模型并实现推理智能路由
阿里云最新发布的QwQ-32B模型,通过强化学习大幅度提升了模型推理能力。QwQ-32B模型拥有320亿参数,其性能可以与DeepSeek-R1 671B媲美。
|
存储 NoSQL Linux
《探秘程序崩溃:核心转储(Core Dump)分析全攻略》
在软件开发中,程序崩溃如同暴风雨,核心转储(Core Dump)则是这场风暴后的“事故现场记录”。它保存了程序崩溃时的内存状态和寄存器信息,为开发者提供了关键线索,帮助快速定位问题根源,节省调试时间。通过设置如Linux的`ulimit -c unlimited`或Windows的WinDbg,可生成核心转储文件,并利用GDB等工具分析调用栈和内存信息,结合源代码,揭示崩溃原因,提升软件稳定性。
950 7
|
Java 关系型数据库 MySQL
基于Springboot的高校图书馆座位预约系统(有报告)。Javaee项目,springboot项目。
基于Springboot的高校图书馆座位预约系统(有报告)。Javaee项目,springboot项目。