华为云gaussdb(for redis)揭秘第26期:为什么说高斯redis是广告业务存储神器-4008云顶国际网站

高斯redis官方博客 发表于 2022/10/14 20:55:17 2022/10/14
【摘要】 高性能、大容量、低成本、强稳定性,广告业务需要的ta都有

       在互联网时代,媒体平台逐渐成为广告业务的主体,而作为广告主的企业往往每年需花费数亿甚至数十亿广告费,却依然难以准确触达目标用户,这就造成大量资金浪费。在这样的需求场景下,rta广告业务模式逐渐流行起来。

       rta 即realtime api的简称,是一套接口服务,用于满足广告主实时个性化的投放需求,在竞价中减少资金浪费。简单来说,rta大体流程如下:

  1. 媒体在将广告曝光给用户前,先通过rta接口询问广告主是否参与本次竞价;
  2. 广告主结合自己的画像数据(一般是百gb~tbkey-value数据)进行决策,快速响应媒体侧,表明是否要参与本次曝光竞价,以及具体的曝光策略;
  3. 媒体平台根据价高者得原则,进行精准目标广告投放。

rta广告业务流程图

      rta让广告投放变得更精准,更省钱,还可以满足许多不同的投放需求,例如获取新用户、召回流失用户等。

     对广告主来说,rta业务价值明显,但媒体侧可是设置了不小的技术门槛,一般要求rta系统高峰承载20w qps50100ms快速响应。当不达标时,媒体侧会有降级和清退机制,例如暂时关闭广告主的rta接入通道。

     因此,rta业务的首要需求是使用靠谱的画像数据库:

  1. 毫秒级响应,支持数十万级qps
  2. 稳定性高,关键时刻不能掉链子
  3. 支持百gb~tb的画像存储,且成本可控

     根据经验,很多公司会使用开源redis集群来做这件事,但其实开源redis并不太适合这类大数据场景:

一方面,虽然开源redis并发性能和响应都很优秀,但终究只是缓存,无法提供数据库级的稳定性保障,丢数据、fork抖动、分片不均oom、扩容耗时久等等,都是很常见的问题。

     另一方面,由于开源redis中存放的数据无法突破内存限制,上百gb的数据存储价格非常昂贵,例如512gb规格的开源redis接近5w/月。

     在这类大数据业务场景下,我们推荐使用华为云数据库gaussdb for redis做画像数据存储。

     gaussdb for redis是华为云企业级存算分离redis数据库,使用上与开源redis别无二致,并且能够兼顾缓存与存储两类典型场景:

  1. 内存分布式存储池(nvme ssd),提供毫秒级响应速度,并实现了大幅降本
  2. 命令兼容度>98%,业务零改造平迁
  3. 容量最大支持36tb,高压缩比,且保障数据库级别可靠存储
  4. 算力用多少买多少,支持水平扩展到千万级qps
  5. 无感热扩容,128gb512gb也只需一秒
  6. 支持多db租户访问权限隔离(增强版acl

     rta广告业务对画像存储的核心需求是:响应快、稳定性高、大容量且不贵,gaussdb for redis充分满足这类大数据业务需求。

  • 超低时延,性能满足媒体侧要求

     根据现网的案例经验,在数十万qps流量下,gaussdb for redis可稳定保持平均时延1msp99时延2ms

媒体侧一般对广告主端到端响应要求在50~100ms,这其中包括了业务及网络链路的耗时,gaussdb for redis可以很好地满足响应要求,并给业务链路留有充足的余量。

     为什么gaussdb for redis在存算分离的架构下还能提供低时延访问?

  1. 自动冷热分离,计算层的内存资源会被用来充分加速热数据
  2. 存储池是基于高性能nvme ssdrdma网络所构建,响应速度其实也很快

实际上,响应快速并非内存的专利,nvme ssd同样有优秀的时延表现,下图是市面上某款nvme ssd的性能指标:

  • 作为存算分离的数据库,稳定性远超缓存redis

       开源redis的稳定性问题存在已久,单线程、fork机制、gossip协议……这些都是让开源redis稳定性不够好的原因。在小数据量缓存场景问题不一定经常出现,但在百gb的大数据存储场景下很容易成为打破系统稳定的隐患。

       gaussdb for redis存算分离架构对稳定性的提升是巨大的。在扩容场景,只需调整存储池配合,即可1秒完成扩容,业务0感知。由于数据全部存储在分布式存储池中,当计算节点发生故障,数据依然可见,业务只感知秒级抖动。同时,也不会发生分片数据不均oom问题。

  • 存储百gb画像数据,比缓存redis成本节省 50%以上

       gaussdb for redis在这类场景下能够帮助企业实现有效降本,原因是:

       1. 内存分布式存储池(nvme ssd

       开源redis技术上无法突破内存限制,因此成本会随着每涨1gb而线性增长,大数据业务中很容易带来成本痛点。

gaussdb for redis分布式存储池采用的高性能nvme ssd硬件成本虽然比普通ssd高,但是跟内存相比还是比较高性价比的。另外还支持根据实际所需qps购买计算节点,避免不必要的算力成本浪费。

     2. 高压缩比

     很多画像类业务使用protobuf格式,gaussdb for redis采用了逻辑数据块数据双重压缩机制,对于protobuf的压缩比效果很好。根据现网案例经验,500gbprotobuf数据写入gaussdb for redis后,实际占用的存储空间可压缩到160g,压缩率30%

     rta广告竞价业务近年来发展潜力巨大,一方面要满足媒体侧的性能指标要求,另一方面又要承担企业降本重任。在这类典型大数据业务中,往往需要一款能够兼顾性能与存储降本需求的kv数据库来做画像存储,华为云数据库gaussdb for redis无论从性能、稳定性,还是大容量、低成本,都充分满足这类场景的需求,是其最佳存储选型。

【4008云顶国际集团的版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。