【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

DoorDash 重构多层缓存系统,提高性能并解决碎片化问题

  • 2023-11-10
    北京
  • 本文字数:884 字

    阅读完需:约 3 分钟

大小:420.76K时长:02:23
DoorDash重构多层缓存系统,提高性能并解决碎片化问题

DoorDash 重构了他们在所有微服务中使用的异构缓存系统,创建了一个通用的多层缓存,提供了一种通用的机制,解决了因采用碎片化缓存所带来的诸多问题。

 

缓存是一种常用的机制,不需要进行成本高昂的优化就可以提升系统的性能。DoorDash 工程师 Lev Neiman 和 Jason Fan 解释说,这在 DoorDash 的场景中尤为重要,因为对他们来说,实现业务逻辑比优化性能更重要。

 

遗憾的是,DoorDash 的不同团队使用了不同的缓存系统,包括CaffeineRedis Lettuce和 HashMap。这也意味着他们会一次又一次地经历和解决同样的问题,比如缓存过期、严重依赖 Redis、键模式不一致等。出于这个原因,DoorDash 的一个工程师团队开始为他们所有的微服务创建一个共享缓存库,从 DashPass 开始,这是一个由于流量增加而面临扩展挑战和频繁故障的关键服务。

 

第一步是基于两个 Kotlin 接口定义一个公共 API:CacheManager,为特定的键类型和回退方法创建新的缓存;CacheKey类,对键类型进行抽象。


这让我们可以使用依赖注入和多态性在后台注入任意逻辑,同时保持业务逻辑缓存调用的统一性。

 

在尽力保持缓存简单的同时,DoorDash 工程师选择了一种包含三层的多层设计,进一步提高性能优化的可能性。第一层称为请求本地缓存,数据驻留在哈希映射中,其生存期受请求约束。第二层为本地缓存,使用 Caffeine 在同一 Java 虚拟机的所有工作线程之间共享数据。第三层是 Redis 缓存,同一 Redis 集群中的所有 pod 都可以使用 Redis Lettuce 访问。

 

这个多层缓存系统的一个重要特性是运行时控制,每个层都有,可以打开或关闭缓存,设置缓存生存时间(TTL)或是影子模式(在这种模式下,会将一定比例的缓存请求与真实来源进行比较)。此外,缓存系统还支持指标收集,包括命中和未命中、缓存延迟和日志记录。

 

在缓存系统准备就绪并在 DashPass 中达到预期效果后,他们就把它逐步推广到组织的其他部门,并就何时使用、如何使用或者是何时不使用提供明确的指导。

 

根据 Neiman 和 Fan 的说法,新的缓存系统提高了他们所有服务的可扩展性和安全性,同时也方便了团队在必要时采用缓存来提高性能。

 

原文链接:

https://www.infoq.com/news/2023/10/doordash-multilayered-cache/

2023-11-10 08:0019969

评论

发布
暂无评论
发现更多内容

铭文 LaunchPad 平台 Solmash 推出早鸟激励计划

EOSdreamer111

盘点2023年我用过的AI大模型,国内也能免费用

程序员晚枫

大厂 大模型

2023 Gartner® 云数据库管理系统魔力象限发布 PingCAP 入选“荣誉提及”

PingCAP

数据库 Gartner TiDB

持续构建行业影响力|HarmonyOS SDK荣膺年度“技术卓越”奖项

HarmonyOS开发者

HarmonyOS

Terraform 的开源替代:OpenTofu 宣布 GA!

SEAL安全

开源 Terraform OpenTofu

如何规避云服务宕机现象?

天翼云开发者社区

云计算 服务器 云服务

深度调光降压型 LED 恒流驱动器

智趣匠

极狐 GitLab 冷知识:使用 git push 创建 Merge Request

极狐GitLab

交易所做市机器人与去中心化做市机器人

区块链技术

面试官:实际工作中哪里用到了自定义注解?

王磊

Java 面试

ZKFair 结束空投领取,未领取的1.3亿ZKF Token全部销毁

股市老人

【NOSQL】redis哨兵模式、集群搭建详解。

百度搜索:蓝易云

redis 云计算 Linux 运维 云服务器

【Docker存储】Docker的容器迁移方式详解

百度搜索:蓝易云

Docker 云计算 Linux 运维 云服务器

打造创新的金融数据平台,加速数字化和智能化转型丨PingCAP 官网金融行业专区上线

PingCAP

数据库 开源 金融 TiDB 金融数据

PingCAP 受邀参加 FICC 2023,获 Open100 世纪全球开源贡献奖

PingCAP

数据库 开源 分布式 TiDB pingCAP

使用存储过程自动化分区管理 Zabbix MySQL(8) 数据库中的大表;

瀚中子🤩

铭文 LaunchPad 平台 Solmash 推出早鸟激励计划

BlockChain先知

TiDB 在全球头部物流企业计费管理系统的应用实践

PingCAP

数据库 开源 分布式 TiDB 物流系统

存储结构的种类与比较

天翼云开发者社区

数据 存储结构

持续构建行业影响力|HarmonyOS SDK荣膺年度“技术卓越”奖项

HMS Core

HarmonyOS

Yocto环境搭建教程

百度搜索:蓝易云

云计算 Linux 运维 云服务器 yocto

加入openEuler训练营,一起探索开源世界的无限可能!

科技热闻

铭文 LaunchPad 平台 Solmash 推出早鸟激励计划

加密眼界

C 语言结构体和枚举完全指南:成员访问、字符串操作、枚举基础

小万哥

程序人生 编程语言 软件工程 C/C++ 后端开发

神州数码集团荣获“TiDB 社区最佳贡献企业”

PingCAP

数据库 开源 TiDB

首个云原生、分布式、全栈国产化银行核心业务系统投产上线丨TiDB × 杭州银行

PingCAP

数据库 开源 云原生 TiDB 银行业

青否互动式数字人的优势!

青否数字人

数字人

抖音APP如何实现用户生命周期提升

字节跳动数据平台

大数据 A/B测试 企业号 1 月 PK 榜 对比试验 数字化增长

铭文 LaunchPad 平台 Solmash 推出早鸟激励计划

石头财经

PingCAP上榜工信微报年度回顾《2023 年工业和信息化发展情况》 三大具有国际影响力的开源社区之一

PingCAP

数据库 开源 分布式 数字化 TiDB

微短剧市场暴涨267.65%,用微短剧场景AUI Kit精巧入局

阿里云视频云

云计算 视频云 微短剧

DoorDash重构多层缓存系统,提高性能并解决碎片化问题_微服务_Sergio De Simone_InfoQ精选文章