EFC&CTO:缓存引发数据不一致问题排查与深度解析

简介: EFC是NAS自研分布式文件系统客户端,近期升级支持多客户端分布式缓存,兼容NAS、CPFS、OSS。因未适配CTO测试,发版时出现data mismatch。排查发现非单纯缓存读旧数据问题,通过NFS挂载验证确认文件系统数据被破坏,挑战超出预期。

EFC(Elastic File Client)是 NAS 自研的分布式文件系统客户端,最近完成了对缓存架构的更新,现在支持多个客户端之间构成分布式缓存,底层支持 NAS、CPFS 和 OSS。由于开发时间较短,一直没有做 NAS 场景 CTO 测试的适配。
CTO:Close-to-Open,指当一个文件被关闭后,再次 open 时,文件系统必须保证之前所有通过 close 操作提交的数据已经持久化到文件系统,并且读取时能获取到最新的、一致的状态。CTO 测试的具体实现是对本地和远端文件系统的文件执行相同的操作,在某些操作后读取两端文件系统的内容,比较是否相同。
● 本地为 EXT4 文件系统,符合 POSIX 语义,远端文件系统跟本地文件系统对比,信任本地文件系统的表现。
● 读缓存的测试是分布式的,单客户端读取由分布式缓存提供服务。
最近忙里偷闲适配了一下,静静等待测试的通过,结果没想到发生了 data mismatch 的错误,因为关闭缓存直读 NAS 的 CTO 测试在每次发版前都会跑一遍。得,缓存的锅铁定没跑了,那咱就来看看这个问题。

二、错误类型判断
读数据错误?
EFC 读缓存在 NAS 场景下会使用 dv(data version)作为缓存的版本号,文件系统数据更新的时候会对 dv 自增。EFC 与文件系统通信的 RPC 会更新本地记录的 dv 信息,EFC 读缓存就会根据客户端手上的 dv 作为版本号从缓存读取数据。
由于这个机制的存在,所以 data mismatch 问题一眼认定为:使用了旧的 dv 读到了缓存里的旧数据。看来问题不大,喝口水压压惊。
CTO 测试会对本地文件和 NAS 上的文件执行相同的操作,并在执行某些操作后检查读到的文件是否一致。这样在读到缓存旧数据的情况下,本地文件(本地 /root 下)和远端文件系统的文件(NAS /mnt1 挂载下)内容是相同的。
由于 mnt1 还是通过 EFC 客户端进行挂载,读取数据还是走的缓存,依然存在读到旧数据的可能。因此,为了排除 EFC 缓存的影响,使用 NFS 协议挂载了 NAS 文件系统后(不通过 EFC 进行挂载),通过 diff 比较本地和 NAS 上的文件内容,结果两者竟然不一致。结果表明,文件系统数据被破坏掉了,也宣告着读到缓存中的旧数据的想法破产。

相关文章
|
13天前
|
人工智能 安全 数据可视化
面向业务落地的AI产品评测体系设计与平台实现
在AI技术驱动下,淘宝闪购推进AI应用落地,覆盖数字人、数据分析、多模态创作与搜推AI化四大场景。面对研发模式变革与Agent链路复杂性,构建“评什么、怎么评、如何度量”的评测体系,打造端到端质量保障平台,并规划多模态评测、可视化标注与插件市场,支撑业务持续创新。
259 38
|
13天前
|
存储 缓存 NoSQL
阿里云 Tair 联手 SGLang 共建 HiCache,构建面向“智能体式推理”的缓存新范式
针对智能体式推理对KVCache的挑战,阿里云Tair KVCache团队联合SGLang社区推出HiCache技术,通过多级存储卸载与全局共享机制,实现缓存命中率翻倍、TTFT降低56%、QPS提升2倍,构建面向长上下文、高并发、多智能体协作的下一代推理缓存基础设施。
203 27
阿里云 Tair 联手 SGLang 共建 HiCache,构建面向“智能体式推理”的缓存新范式
|
1天前
|
jenkins 持续交付 调度
项目《神领物流》
本项目为自研物流系统,基于微服务架构实现智能调度与管控,涵盖用户、快递员、司机多端应用。采用GitFlow管理代码,通过Jenkins实现持续集成,提交后自动构建,保障开发效率与系统稳定,类似顺丰速运模式,面向C端提供高效快递服务。(239字)
|
3天前
|
存储 弹性计算 人工智能
阿里云免费云服务器领取教程及阿里云免费云产品全解析:从资源配置到实用指南
在云计算普及的当下,阿里云作为国内领先的云服务提供商,长期推出免费云产品试用体系,覆盖从基础设施到上层应用的全场景需求,为个人开发者、学生及初创企业降低了上云门槛。然而,免费资源背后往往存在配置限制、合规要求等细节问题,用户需结合自身场景理性选择。本文基于阿里云官方规则与真实使用反馈,系统梳理免费云产品的资源矩阵、使用体验、常见风险及适配场景,为不同需求的用户提供全面参考。
|
13天前
|
消息中间件 人工智能 NoSQL
AgentScope x RocketMQ:打造企业级高可靠 A2A 智能体通信基座
Apache RocketMQ 推出轻量级通信模型 LiteTopic,专为 AI 时代多智能体协作设计。它通过百万级队列支持、会话状态持久化与断点续传能力,解决传统架构中通信脆弱、状态易失等问题。结合 A2A 协议与阿里巴巴 AgentScope 框架,实现高可靠、低延迟的 Agent-to-Agent 通信,助力构建稳定、可追溯的智能体应用。现已开源并提供免费试用,加速 AI 应用落地。
245 36
AgentScope x RocketMQ:打造企业级高可靠 A2A 智能体通信基座
|
26天前
|
Kubernetes Cloud Native Nacos
MCP 网关实战:基于 Higress + Nacos 的零代码工具扩展方案
本文介绍一种基于开源 Higress 与 Nacos 的私有化 MCP 智能体网关架构,实现工具动态注册、Prompt 实时更新、多租户安全隔离,并支持在无外网、无 Helm 的生产环境中一键部署。
275 25
MCP 网关实战:基于 Higress + Nacos 的零代码工具扩展方案
|
23天前
|
弹性计算 运维 应用服务中间件
阿里云轻量应用服务器 vs 云服务器 ECS:全方位深度对比与选购指南
在阿里云的服务器产品体系中,轻量应用服务器与云服务器 ECS 是面向不同需求的核心产品。前者以 “简单易用、高性价比” 为核心,后者以 “功能全面、弹性灵活” 为优势。本文从适用人群、业务场景、功能配置、计费价格等 8 大维度展开深度对比,结合阿里云最新优惠政策,帮你精准匹配最适合的服务器方案。
|
人工智能 缓存 运维
探秘 AgentRun丨通过无代码创建的 Agent,如何用高代码进行更新?
AgentRun 打破 AI Agent 开发困局,无代码快速验证想法,一键转高代码实现深度定制。60 秒创建 Agent,支持多模型、工具集成与 Prompt 优化;业务增长后可平滑演进,保留配置生成高质量代码,助力从原型到生产的持续迭代。
169 25
|
15天前
|
消息中间件 人工智能 NoSQL
AgentScope x RocketMQ:打造企业级高可靠 A2A 智能体通信基座
基于 RocketMQ SDK 实现了 A2A 协议的 ClientTransport 接口(部分核心代码现已开源),并与 AgentScope 框架深度集成,共同构建了全新的 A2A 智能体通信基座,为多智能体应用提供企业级、高可靠的异步协同方案。
240 40