小红书自研KV存储架构如何实现万亿量级存储与跨云多活

RedKV是小红书为解决公司内部实时落盘KV存储需求自研的分布式NoSQL系统,支持无中心和有中心管控架构。对比开源产品,RedKV在写吞吐和读性能上有显著提升,成本优化明显。它支持Redis协议,兼容多种数据类型,解决了早期Redis集群和HBase的性能和稳定性问题。RedKV通过分层优化,提供高QPS和低延时读取、低成本缓存和NoSQL存储特性,满足了业务的多样化需求。

摘要:

RedKV是小红书自研的一款基于NVMeSSD的分布式NoSQL KV存储系统,支持无中心和有中心的两种管控架构,旨在解决公司内实时落盘的KV存储需求。RedKV1.0基于Gossip协议做节点管理,在全公司已经大规模使用,实时QPS接近1亿/秒,存储量在数PB级别。RedKV2.0采用中心Shard管理架构,支持全球多云多副本在线弹性伸缩,异地容灾和服务秒级切换。

通过分层优化,RedKV对比开源同类产品,聚合写吞吐能力平均提升3倍,读1.5倍;对标HBase,成本优化近40%。RedKV部分兼容Redis协议,string/hash/zset等主要数据类型很好的的支持了公司的绝大部分在线存储业务,优化了早期Redis集群部署产生的成本问题以及HBase带来的性能及稳定性问题。RedKV和Hive数仓的数据互通能力为离线数据业务提供了一种解决方案。

1.小红书存储发展历史

小红书是年轻人的生活记录、分享平台,用户可以通过短视频、图文等形式记录生活点滴,分享生活方式。在当前的业务模型下,用户的画像数据和笔记数据用来做风险控制和内容推荐。存储数据具有对象-属性的特征、维度多,画像数据量已经达到数十TB, 在线业务对画像和笔记数据的访问P99 时延要求非常高。

2020年之前公司选择的NoSQL存储产品主要有:Redis、HBase,随着公司DAU的高速增长,早期的存储方案遇到如下挑战:

  • Redis集群主要适用于缓存场景,开启AOF数据实时落盘对性能有比较大的影响,同时每个节点需要额外挂载云盘用于存储AOF。在集群节点和存储容量受限的情况下,单节点的数据量设置过大会导致故障后节点数据的failover时间太长,单节点数据量设置小会导致gossip协议在稳定性高要求下节点个数受限,同时考虑突发流量的压力,Redis集群在部署上需要做一些空间预留,带来成本高的问题。
  • HBase作为一款生态完善的NoSQL存储系统,在高QPS下也产生了诸多的性能和稳定性问题,如:Zookeeper压力大时稳定性难以保障(节点探活,服务注册等都依赖 Zookeeper);HBase的数据文件和WAL日志文件直接写HDFS,节点故障后,重放HDFS上的WAL速度慢;Java GC会导致Zookeeper误杀RegionServer,同时产生毛刺;Major Compaction 会导致I/O飙升,产生长尾效应;受限HDFS的复杂性,黑盒运维对工程师来说比较困难;在小红书的业务实战中,百万QPS下HBase延时不太理想,核心数据用大内存机型兜住,也引发成本高的问题。

随着业务的持续增长,开源存储产品已经不能很好的满足公司的业务发展需求, 公司需要一款稳定的高性能KV系统支撑内部业务,一方面要满足业务对功能和性能的需求,另一方面要优化成本。

2.小红书业务需求

2.1. 高QPS和低延时读取特性

特征数据存储场景:

  • 写入带宽达到数十GB/s,要求实时写入性能和读取性能都很高。

图片缓存的场景:

  • 数据量很大,要求读取时延低。可以接受故障场景下少量数据丢失。

高性能(P99 < 10ms):

  • 模型数据存储服务。记录过去一段时间用户训练模型数据,对P99时延要求非常高,数据量在几十TB。
  • 去重存储服务。数据量在几十TB,P99<10ms, P999<20ms。
  • 风控数据存储服务。QPS目前达到千万级别,P999 < 30ms。

2.2. 低成本的缓存特性

对标Redis:

  • 兼容Redis协议,性能比Redis慢一些,但资源成本降低50%+。

典型场景:

  • 广告的关键词存储和反作弊业务,解决大数据量、低QPS的存储模型。

2.3. NoSQL存储特性

对标HBase:

  • 支持数据多版本,列存行取等特性,比HBase成本减少30%+,P99时延提升6倍。
  • 支持KKV级别的TTL。
  • 强一致:目前RedKV1.0采用的主从双副本,数据写入成功,可以通过配置同步模式来保障2副本写成功,读主写主保障强一致。对于写性能要求高的场景,可以打开异步写,写主成功则返回,依赖增量同步从节点数据。

典型场景:

  • 风控服务。实时查询对P999要求极高,千万QPS下HBase已经不能满足性能需求,时延抖动比较大。
  • 画像存储服务。数据的维度多,字段读取的业务方多,对时延要求敏感。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小红书技术REDtech

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值