50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

优步凭借 CacheFront 的改进实现每秒 1.5 亿次的读取操作

作者:Leela Kumili

  • 2025-10-14
    北京
  • 本文字数:1155 字

    阅读完需:约 4 分钟

大小:589.93K时长:03:21
优步凭借CacheFront的改进实现每秒1.5亿次的读取操作

优步的工程师更新了CacheFront的架构,以满足每秒钟1.5亿次的读取操作,同时确保了更强的一致性。这次更新解决了延迟敏感的服务中陈旧数据的读取问题,并通过引入新的写入一致性协议、与Docstore的更紧密协作以及对优步 Flux 流系统进行改进,支持了不断增长的需求。

 

早期的CacheFront设计中,通过消除请求重复并将频繁访问的键缓存在靠近应用服务的地方,实现了每秒 4000 万次读取的高吞吐量。虽然这种模型在可扩展性方面非常有效,但它缺乏强大的端到端一致性,这对于需要最新数据的工作负载来说是无法满足需求的。缓存失效依赖于生存时间(time-to-live,TTL)和变更数据捕获(change data capture,CDC),这实现了最终一致性并延迟了更新的可见性。这会造成特定的问题:在读取-拥有-写入(read-own-write)不一致性中,一条被读取、缓存然后更新的数据行可能会继续提供陈旧的值,直到它无效或过期。负缓存(存储“未找到”的结果)即使在行被插入后也可能返回错误的未命中结果,这可能会破坏读取-拥有-插入(read-own-insert)不一致性中的服务逻辑。



CacheFront 以前的读写失效路径(图片来源:Uber Engineering的博客文章

 

新的实现引入了写入一致性协议以及位于查询引擎和 Flux(优步的流更新系统)之间的去重层。现在每个 CacheFront 节点在提供响应之前都会与 Docstore 验证数据的新鲜度。存储引擎层包括用于已删除行的墓碑标记和用于MySQL会话分配的严格单调时间戳。这些机制允许系统在提交前高效地识别和读取所有修改过的键,包括删除操作,确保即使在高负载下也不会提供陈旧的数据。



改进后的 CacheFront 写路径与失效(图片来源:Uber Engineering的博客文章

 

当事务完成时,存储引擎会返回提交时间戳和受影响行键的集合。在这些响应上注册的回调会立即通过写入失效标记来使 Redis 中先前缓存的条目失效。Flux 继续尾随MySQL binlogs并执行异步缓存填充。这三种缓存填充机制:直接查询引擎更新、失效标记和 TTL 过期,结合 Flux 尾随,协同工作以便在支持极高读取吞吐量的同时保持强一致性。

 

优步的工程师Preetham Narayanareddy Eli Pozniansky解释了改进背后的动机:

对更高的缓存命中率和更强的一致性保证的需求在不断增加。使用 TTL 和 CDC 进行缓存失效的最终一致性在某些用例中成为了限制因素。

 

通过这次集成,优步的工程师还能够弃用并移除之前引入的专用API,减少了运维复杂性并简化了系统。

 

优步工程师增强了遥测和可观测性仪表板,以监控缓存健康和实时 binlog 尾随。缓存分片被重新组织以均匀分配负载。Cache Inspector 工具构建在与 Flux 相同的 CDC 管道上,它会将 binlog 事件与缓存中存储的条目进行比较。这些更新允许将表的 TTL 延长至 24 小时,将缓存命中率提高到 99.9%以上,同时保持低延迟。

 

查看英文原文:Uber Achieves 150M Reads per Second with CacheFront Improvements

2025-10-14 12:001

评论

发布
暂无评论

Taro 鸿蒙技术内幕系列(一):如何将 React 代码跑在 ArkUI 上

京东零售技术

taro 鸿蒙 前端

幽灵代币经济学:揭秘代币分配有哪些后门交易

区块链软件开发推广运营

dapp开发 链游开发 NFT开发 钱包开发 代币开发

如CGI一般的分子动力学,让科学家看到了3D渲染后的分子运动「影片」

新消费日报

Stability AI一口气推出3款图像生成模型系列!升级版Claude 3.5 Sonnet能像人类一样操控电脑|AI日报

可信AI进展

拼多多详情API接口的获取与应用

科普小能手

拼多多 API 接口 API 测试 pinduoduo API 拼多多数据

CST如何选择时域求解器的频率范围

思茂信息

cst使用教程 电磁仿真 频率

Spring高手之路23——AOP触发机制与代理逻辑的执行

砖业洋__

spring aop aop代理

Navicat Premium 数据库管理 --Navicat Premium中文汉化包

Rose

高效的剪辑和渲染能力 Final Cut Pro X简体中文安装包

Rose

鸿蒙网络编程系列35-通过数据包结束标志解决TCP粘包问题

长弓三石

DevEco Studio 开发实例 HarmonyOS NEXT 网络与连接

鸿蒙网络编程系列34-Wifi热点扫描及连接示例

长弓三石

DevEco Studio 开发实例 HarmonyOS NEXT 网络与连接

火山引擎数据飞轮线上研讨会即将开启,助力消费品牌双十一造爆款

字节跳动数据平台

商场LED透明屏:选择参考分析

Dylan

品牌 LED display LED显示屏 零售电商市场

1024|京东零售技术人的N种可能

京东零售技术

1024

Aloudata BIG 主动元数据平台支持 Oracle/DB2 存储过程算子级血缘解析

Aloudata

数据库迁移 存储过程 数据血缘

PaddleNLP上新!浪潮信息源2.0全面接入,大模型生态加速进化!

百度Geek说

百度 数据 大模型

ai2021安装包 及 Illustrator 2021安装教程

Rose

macOS Big Sur(苹果macos11系统)安装包分享及安装教程

Rose

NocoBase 本周更新汇总:子表格支持分页、工作流优化等

NocoBase

开源 低代码 无代码 产品更新

增长在流量规则巡检的探索实践|得物技术

得物技术

测试 质量保障 流量巡检

皮阿诺3.0抗菌“黑科技”石英石台面,由内而外守护家人健康

新消费日报

革新之作!可心柔保湿小绒巾上新,引领生活用纸新潮流

新消费日报

HyperWorks基础培训教程:批处理网格划分

智造软件

教程分享 CAE软件 Hypermesh

MicrosoftOffice2019密钥 office2019激活教程

Rose

非凸科技银牌赞助GOSIM CHINA 2024,并受邀出席Rust分论坛

非凸科技

开源 rust

如何处理海量数据?基于Milvus向量数据库的高度可扩展性

Zilliz

人工智能 Milvus 大模型 Zilliz 向量数据库

优步凭借CacheFront的改进实现每秒1.5亿次的读取操作_大前端_InfoQ精选文章