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

简介: 背景 文件网关在一个事务中将客户户端数据写入缓存盘返回,然后以异步的方式在后台线程中上传到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存储还是存在诸多不便。
11852 1
利用云存储网关在Windows上挂载OSS
|
编解码 达摩院 监控
阿里云 Elasticsearch 向量检索,轻松玩转人脸识别、搜索推荐等29个业务场景
简介:我们知道,市面上有不少开源的向量检索库供大家选择使用,例如 Facebook 推出的 Faiss 以及 Nswlib,虽然选择较多,但业务上需要用到向量检索时,依旧要面对四大共性问题。
11841 1
阿里云 Elasticsearch 向量检索,轻松玩转人脸识别、搜索推荐等29个业务场景
|
SQL 搜索推荐 TensorFlow
【最佳实践】阿里云 Elasticsearch 向量检索4步搭建“以图搜图”搜索引擎
“图片搜索”是作为导购类网站,比较常见的一种功能,其实现的方式也有多种。但如何做到快速、精准、简单等特性,本文给你答案。
13337 1
【最佳实践】阿里云 Elasticsearch 向量检索4步搭建“以图搜图”搜索引擎
|
SQL 分布式计算 DataWorks
【含视频+文字版】《从开源到云原生,你不得不知的大数据实战》| 2020 大数据技术公开课第一季
亲爱的大数据开发者们,新年好!在过去的2019年中,MaxCompute开发者社区共举办了六季大数据技术公开课,也受到广大开发者们的认可和鼓励。2月份我们已经紧锣密鼓的筹备了新年的第一季大数据技术公开课—《从开源到云原生,你不得不知的大数据实战》,欢迎各位开发者们一起参加。
2997 0
【含视频+文字版】《从开源到云原生,你不得不知的大数据实战》| 2020 大数据技术公开课第一季
|
存储 运维 Prometheus
神龙案例解读:与阿里云并肩作战,百家云三天扩容数十倍
2亿学生在线上课。疫情的肆虐,原本该回归各大校园的师生们涌入线上,突如其来的流量洪峰给在线教育行业带来了极大挑战。
3201 0
神龙案例解读:与阿里云并肩作战,百家云三天扩容数十倍
|
监控 测试技术 API
内核调优 | 如何提升Elasticsearch master调度性能40倍
自建集群从Elasticsearch 6.3.2 版本升至 7.4.0 版本,如何解决Master卡顿、创建/删除索引耗时过多的问题?本文给你答案。
4175 0
内核调优 | 如何提升Elasticsearch master调度性能40倍
|
存储 缓存 网络协议
云存储网关结合Active Directory服务搭建Windows文件共享服务器
本文通过具体的实践展示了如何利用云存储网关搭建一个和Active Directory集成的文件共享服务器。让用户在感受到传统文件协议的便利的同时可以享受阿里云对象存储服务所带来的海量存储空间以及高可靠性等独特优势。
4060 0
|
存储 缓存 安全
云存储网关使用Windows权限控制管理数据访问权限
Windows权限控制功能是云存储网关在1.1.0版本推出的新特性,旨在给用户提供更加灵活的用户权限配置,满足不同用户的需求,具体来说它能够允许用户进行精细到每个文件或者文件夹粒度的权限控制,能够有效的保证数据安全性。
2430 0
云存储网关使用Windows权限控制管理数据访问权限
|
Web App开发 数据采集 弹性计算
开发函数计算的正确姿势——轻松解决大依赖部署
本文介绍了 Fun 通过内置 NAS(阿里云文件存储)解决方案,可以一键帮用户创建、配置 NAS,并上传依赖到 NAS 上,解决函数计算对上传代码包大小的限制问题,而函数计算在运行时,可以自动从 NAS 读取到函数依赖。同时部署步骤简单明了,不需关心额外的配置,展现 Fun 工具对大依赖场景的顺滑体验。