云数据库Tair:从稳定低延时缓存到 Serverless KV

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 Tair(兼容Redis),内存型 2GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
简介: 本次分享聚焦云数据库Tair的使用,涵盖三部分内容:1) Tair概览,介绍其作为稳定低延时缓存及KV数据库服务的特点和优势;2) 稳定低延迟缓存技术,探讨如何通过多线程处理、优化内核等手段提升性能与稳定性;3) 从缓存到Serverless KV的演进,特别是在AI大模型时代,Tair如何助力在线服务和推理缓存加速。Tair在兼容性、性能优化、扩缩容及AI推理加速方面表现出色,满足不同场景需求。

本次分享的是关于Tair的使用,云数据库Tair从稳定低延时缓存到Serverless KV。CONTENT整体分为三部分。第一部分,对云数据库Tair整体性介绍。第二部分,在缓存过程中怎么做到稳定低延迟技术。第三部分,在AI的大模型时代,应该如何将Tair从缓存往Serverless KV转移。

 

一、云数据库Tair概览

首先对Tair进行整体性介绍。从Tair的定位上,Tair是稳定低延时的缓存以及对KV的数据库服务。从生态上,Tair整体兼容Redis开源版,如果以Redis开源版的左从板所支持API集为全部集合,开源版的集群版对于左从版所能支持的API只有70%到78%,所以集群版对开源版的支持度并不高,但Tair的左从版和开源版完全兼容。集群版的兼容度在80%到90%之间,比开源版的集群版API兼容度高。另外Tair提供了不同的形态,可以使客户在各个业务场景中使用。单副本包括左主从版本、集群版、智能读写版,所以单副本可以用于测试环境,左从版本用于生产级别。在整体上Tair可以提供持久内存性,包括磁盘的Serverless KV给客户提供在不同场景对不同性能数据量成本有要求情况下做出综合性考量。

 

二、建设稳定低延迟缓存的关键技术

建设稳定低延迟缓存cache技术的挑战和解决方案


1.缓存的挑战-稳定承载流量变化

首先Redis的开源版以及在客户使用过程中可能会遇到的一些情况。Redis整体性能良好,但在中大规模以及集群规模下,会出现被爆破的情况,导致这个现象的原因是单个工作处理线程天花板能力是有限的,处理的KPI基本上在10万左右。在可运维性和稳定性上,譬如在集群下会遇到未知的情况,包括遇到超时抖动很难排查。


2.超越Redis的性能-轻松应对爆发请求

在整个Tair性能稳定以及可靠性做了非常多的工作,一是Tair采用了多线程的处理机制,相比于开源版Redis6.0,它号称多线程,但真正在处理数据上依然是单线程处理,所以整体处理的性能上限不高。通过Tair多线程之后,单进程的吞吐量是开源版的2.5倍左右,包括平均延时基本上也是Redis 6.0的50%或60%。在此性能与吞吐下,可以让客户在更多关键的场景下使用。


3.缓存服务的稳定低延时技术挑战

客户使用Redis或Tair的过程中碰到比较多的问题是超时了该怎么办以及该如何去查?如果我们使用的是开源版,由于开源版的可观测性差比较多,所以很难去定位。Tair从这方面,进程内核级别包括无所化、异步化技术,把慢查询隔离掉,可以做到在有慢查询情况下,把短的产品做到比较好的处理。


4.建设稳定低延时的缓存

把Tair的内核和阿里云操作系统紧密结合,将Redis开源版一直难以解决的问题,如在做快照或者做AOF、folk的情况下,有抖动的弊端解决掉。如果使用Redis是开源版32G的进程DB做folk时,可能会卡顿几百毫秒,但用Tair加阿里云操作系统后,卡顿基本上在1毫秒内。另外假如业务出现异常访问量或者业务上新应用,把Tair拖报之后,可能会导致意外的情况,但是Tair有RBAL的机制,可以将异常的访问API、异常的访问IP这一类定向限制住,对于客户业务来说,先通过限制住异常访问来帮助业务能够恢复到平稳态之后再来调查事故原因。


5.开箱即用-无感弹性

另外一个是客户头痛的点是扩缩容。假如使用开源板扩缩容会比较难做,特别是在一个较大的集群情况下。所以Tair在扩缩容上做了非常多工作,首先把开源版按key去搬迁的机制改成块件搬迁,通过中心化的集群管理机制来统一调度扩缩容的过程。通过改进机制可以让客户在扩容过程中完全无感知。用开源版的时候经常会出现因为有大key或是在扩容过程中有机器的情况下导致整个扩缩容失败,而且很难再回滚。


上述讲的是Tair在性能与稳定性以及扩缩容的一些工作。


三、从缓存走向一个Serverless KV

1.Tair Serverless KV助力在线服务&推理缓存加速

Tair Serverles KV是最新发布的,Tair Serverless KV从技术上可以分为两层,一层是Serverless  KV 的基座,他的作用是将CPU 的DRAM包括GPU的HBM、NVM持久内存和SSD,这些介质统一混合管理。


作为混合存储介质KV池并进行统一的适调。所以可以认为他提供了较大的KV值,在各个存储介质之间流动。左右两侧分别代表了两种不同的技术业务场景,左侧是面向互联网KV负载的场景,在互联网里面KV这类使用的很多。基于Tair Serverless KV后,提供了进入Redis的在线KV服务,和前面Tair的区别,第一它是高可靠持久化;第二他是多租户,通过用户态的精细实时间片去调度,可以把时延P99做到10毫秒内。


因为他是大集群,所以把集群里面的所有的资源CPU磁盘带宽等统一规划管理,因此扩缩容速度特别快。第三就他整体处理热点上比之前数据库提升很多,因为之前数据库都是竞争级别的,而它是集群多租户级别,可以充分利用机器上资源。相比开源的Redis,处理热点的能力是五倍以上。第四,面向AI推理,和TensorRT-LLM 基于推理引擎一起制作,相当于帮助TensorRT-LLM做缓存加速,所以和TensorRT-LLM结合推出了 Tair Serverless KV推理缓存加速的服务。整体上通过PD处理的优化机制,包括PD分离的机制、 KV Cache的池化,把AI推理过程中整体成本降低了20%,性能吞吐提升30%。


2.面向在线KV负载的Serverless 演进

将上述内容细化。第一点面向互联网在线KV,与之前的Redis进程级别的核心区别:一是数据的持久化,二是整个扩缩容速度迅速,以及扩得快扩得广,可以从1GB 1QPS扩展到上百TB的,三是因为Tair的整体定位上是面向整体在线KV的,所以在稳定低延时上花了特别大的功夫。


3.用户态精细调度

在有慢查询的情况下,往往会把用户普通查询拖慢。这种情况下用快慢分离的处理,慢线程处理CPU使用率特别高,但是快处理使用率并不一定高,所以整体使用率不能提的特别高。另外可以增加更多的线程数去处理的,但是会带来线程间资源相互干扰的情况,所以采用按用户态的时间片切分的方式,可以把慢的查询在处理到一定时间片之后往外调度,将快查询处理,通过这种机制确保用户API SLV,并且确保我们集群的使用率,包括客户的成本足够低。


4.大模型推理遇到的挑战

在AI推理遇到的一些挑战。整体在推理过程中会用到比较多的KV Cache,它与用户输入的长文本相关,如果输入的越长,整个KV Cache占用的会越高,往往在一个推理中KV Cache可能占到了40%、50%显存或者更多。所以怎么优化KV Cache是推理加速很关键的部分。推理过程中为两个阶段,一个是欲填充阶段,一个decoding阶段,这两个阶段对于显存的资源消耗是不一样的,所以期望把这两个阶段拆分开来以便把GPU资源使用好。


5.Tair  KVcache缓存加速推理

Tair的整体推出了以KV Cache缓存加速,把用户的Context  Cache包括RAG Cache可从重复使用的放到 Tair Serverless KV中,相当于通过更多的存储来节省GPU的计算率,另外把Prefill和Decoding两个阶段拆开可以将GPU的使用力提升更高,拆分开之后,将中间KV Cache通过我们的 Tair Serverless KV池进行共享。这是整个Tair在AI所做的工作。我们也希望Tair在互联网缓存工作以及AI推理时代向前推进。

以上是本次分享的全部内容。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
1天前
|
关系型数据库 Serverless 分布式数据库
瑶池数据库微课堂 | PolarDB Serverless弹性&价格力观测
瑶池数据库微课堂介绍阿里云PolarDB Serverless的弹性与性价比优势。通过瑶池解决方案体验馆,用户可免费实操,直观感受Serverless的秒级弹性及超高性价比。内容涵盖Serverless概念、操作步骤、压测演示及性能曲线分析,展示PolarDB在不同负载下的自动扩展能力。适合希望了解云数据库弹性和成本效益的技术人员。
|
1天前
|
存储 缓存 NoSQL
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
|
1天前
|
缓存 NoSQL 关系型数据库
云端问道21期实操教学-应对高并发,利用云数据库 Tair(兼容 Redis®)缓存实现极速响应
本文介绍了如何通过云端问道21期实操教学,利用云数据库 Tair(兼容 Redis®)缓存实现高并发场景下的极速响应。主要内容分为四部分:方案概览、部署准备、一键部署和完成及清理。方案概览中,展示了如何使用 Redis 提升业务性能,降低响应时间;部署准备介绍了账号注册与充值步骤;一键部署详细讲解了创建 ECS、RDS 和 Redis 实例的过程;最后,通过对比测试验证了 Redis 缓存的有效性,并指导用户清理资源以避免额外费用。
|
3月前
|
存储 缓存 NoSQL
数据的存储--Redis缓存存储(一)
数据的存储--Redis缓存存储(一)
145 1
|
26天前
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
171 85
|
3月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
89 6
|
24天前
|
缓存 监控 NoSQL
Redis经典问题:缓存穿透
本文详细探讨了分布式系统和缓存应用中的经典问题——缓存穿透。缓存穿透是指用户请求的数据在缓存和数据库中都不存在,导致大量请求直接落到数据库上,可能引发数据库崩溃或性能下降。文章介绍了几种有效的解决方案,包括接口层增加校验、缓存空值、使用布隆过滤器、优化数据库查询以及加强监控报警机制。通过这些方法,可以有效缓解缓存穿透对系统的影响,提升系统的稳定性和性能。
|
2月前
|
缓存 NoSQL 关系型数据库
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
本文详解缓存雪崩、缓存穿透、缓存并发及缓存预热等问题,提供高可用解决方案,帮助你在大厂面试和实际工作中应对这些常见并发场景。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
|
2月前
|
存储 缓存 NoSQL
【赵渝强老师】基于Redis的旁路缓存架构
本文介绍了引入缓存后的系统架构,通过缓存可以提升访问性能、降低网络拥堵、减轻服务负载和增强可扩展性。文中提供了相关图片和视频讲解,并讨论了数据库读写分离、分库分表等方法来减轻数据库压力。同时,文章也指出了缓存可能带来的复杂度增加、成本提高和数据一致性问题。
【赵渝强老师】基于Redis的旁路缓存架构
|
2月前
|
缓存 NoSQL Redis
Redis 缓存使用的实践
《Redis缓存最佳实践指南》涵盖缓存更新策略、缓存击穿防护、大key处理和性能优化。包括Cache Aside Pattern、Write Through、分布式锁、大key拆分和批量操作等技术,帮助你在项目中高效使用Redis缓存。
397 22