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

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 1个月
简介: 背景 文件网关在一个事务中将客户户端数据写入缓存盘返回,然后以异步的方式在后台线程中上传到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存储还是存在诸多不便。
11415 1
利用云存储网关在Windows上挂载OSS
|
7月前
|
安全 Linux 网络安全
Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架
628 0
|
存储 数据采集 监控
云上数据安全保护:敏感日志扫描与脱敏实践详解
随着企业对云服务的广泛应用,数据安全成为重要课题。通过对云上数据进行敏感数据扫描和保护,可以有效提升企业或组织的数据安全。本文主要基于阿里云的数据安全中心数据识别功能进行深入实践探索。通过对商品购买日志的模拟,分析了如何使用阿里云的工具对日志数据进行识别、脱敏(3 种模式)处理和基于 StoreView 的查询脱敏方式,从而在保障数据安全的同时满足业务需求。通过这些实践,企业可以有效降低数据泄漏风险,提升数据治理能力和系统安全性。
2020 242
云上数据安全保护:敏感日志扫描与脱敏实践详解
|
安全 物联网 数据安全/隐私保护
物联网卡在应用于交通运输与物流中常见问题及解决建议
在交通运输与物流领域使用物联网卡期间,常见的问题主要包括网络连接、信号稳定性、设备管理、数据安全性以及套餐流量管理等方面。以下是对这些问题的详细分析和操作建议
|
SQL 运维 监控
MSSQL性能调优实战:索引优化、SQL查询效率提升与并发控制策略
在Microsoft SQL Server(MSSQL)的日常运维与性能优化中,精准的策略与技巧是实现高效数据库管理的关键
1054 3
|
12月前
|
存储 数据安全/隐私保护 开发者
领取永久免费的ClawCloud云服务容器部署Alist网盘
领取永久免费的ClawCloud云服务容器部署Alist网盘,这是一款类似于 Vercel 和 Netlify 的在线开发平台,专为开发者和个人用户设计。如 Alist、Dify、frp 等,无需复杂的配置或高昂的成本。目前,平台提供永久免费的 5 刀/月额度,只需绑定一个注册超过 180 天的 GitHub 账号即可享受。
3781 10
|
Java 程序员 API
【Lock锁的使用与原理】
【Lock锁的使用与原理】
444 0
|
机器学习/深度学习 人工智能 自然语言处理
【模型微调】AI Native应用中模型微调概述、应用及案例分析
在AI Native应用中,模型微调是一个关键步骤,它允许开发者使用特定领域的数据对预训练模型进行二次训练过程,从而使其更好地适应特定任务或数据集。模型微调通过调整模型的参数,使模型在特定任务上达到更高的性能。这种技术广泛应用于自然语言处理、图像识别、语音识别等领域
721 1
|
存储 机器学习/深度学习 算法
【博士每天一篇文献-综述】基于脑启发的连续学习算法有哪些?附思维导图
这篇博客文章总结了连续学习的分类,包括经典方法(重放、正则化和稀疏化方法)和脑启发方法(突触启发、双系统启发、睡眠启发和模块化启发方法),并讨论了它们在解决灾难性遗忘问题上的优势和局限性。
419 2
|
消息中间件 存储 Java
RabbitMQ-同步和异步区别&快速入门
RabbitMQ-同步和异步区别&快速入门
779 1