突破开源 Redis 的内存限制,存算分离的 GaussDB 到底有多能“装”?
摘要:GaussDB(for Redis)(下文简称高斯 Redis)是华为云数据库团队自主研发的兼容 Redis 协议的云原生数据库,该数据库采用计算存储分离架构,突破开源 Redis 的内存限制,可轻松扩展至 PB 级存储。
GaussDB(for Redis)(下文简称高斯 Redis)是华为云数据库团队自主研发的兼容 Redis 协议的云原生数据库,该数据库采用计算存储分离架构,突破开源 Redis 的内存限制,可轻松扩展至 PB 级存储。
本文将从存储架构、四大特性、竞争力、应用场景等方面进行介绍。
存储架构
高斯 Redis 基于计算存储分离架构,计算层实现热数据缓存,存储层实现全量数据的落盘,中间通过 RDMA 高速网络互连,通过算法预测用户的访问规律,实现数据的自动冷热交换,最终达到极致的性能提升。

四大特性

该架构基于华为内部强大且广泛使用的自研分布式存储系统 DFV,实现了一套 Share Everything 的云原生架构,充分发挥了云原生的弹性伸缩、资源共享的优势,使得高斯 Redis 具备强一致、秒扩容、低成本、超可用的四大特点,完美避开了开源 Redis 的主从堆积、主从不一致、fork 抖动、内存利用率只有 50%、大 key 阻塞、gossip 集群管理等问题。
Ø 强一致
数据复制是存储的事情,因此专业的事情交给专业的团队来做。通过分布式存储 DFV,高斯 Redis 轻松实现了 3 副本强一致,并可轻松支持 6 副本,为业界首创。
在强一致架构下,用户再也不用担心开源 Redis 的主从堆积,带来的丢数据、不一致、OOM 等极端问题,更不用担心业务出错,比如计数器、限流器、访问统计、hash 字段等不一致。
Ø 秒扩容
数据规模膨胀之后,扩容是个高危且困难的操作。高斯 Redis 基于云原生架构,将扩容分成计算层和存储层。计算层扩容,无需任何数据搬迁,只需修改路由映射,即可秒级完成。存储层是个共建的超级数据湖,其容量巨大,而且扩容是切成细腻度的 64MB 数据分区,对上层数据库业务几乎无感。
因此高斯 Redis 可以轻松支撑业务的大规模膨胀,并且真正做到计算/存储分层的按需扩容和购买。
Ø 低成本
高斯 Redis 相对于开源 Redis,在存储介质上使用了磁盘替代内存。一方面,由于采用存算分离架构,计算资源少了一半,即没有从节点;另一方面,存储资源按需购买,无任何浪费,并且采用了逻辑/物理压缩。最终,每 GB 综合成本不到开源 Redis 的十分之一。
Ø 超可用
开源 Redis 或友商 Redis 不管单分片还是集群,其数据复制都采用主从架构,导致 N 个节点的集群,如果同时挂掉一对主从(即 2 个节点),整个集群就不可用。而高斯 Redis 采用存算分离之后,每个计算节点都可以看到并共享所有数据,因此 N 个节点,最多可以容忍挂掉 N-1 个节点,真正做到比高可用还高的可用性。

竞争力分析

场景推荐
高斯 Redis 不仅性能逼近缓存,而且其存储能力(扩展性、高性能、易用性)超越数据库。因此除了缓存场景可以选择高斯 Redis 以外,上至 PB 级别大规模数据存储都可以选择高斯 Redis。场景参考如下:

选择建议

命令兼容
兼容 5.0 协议,包括 string/hash/list/zset/set/stream/geo/ HyperLogLog/bitmap/pubsub 等等,但出于性能和安全性考虑,禁用个别危险命令,详细参考:https://support.huaweicloud.com/usermanual-nosql/nosql_09_0076.html
容量参考
以往用户选择开源 Redis 的时候,需要购买内存,比如用户数据是 100G,由于开源 Redis 内存使用率减半,需要购买 200G 内存,并且为了高可用,还得购买 200G 的从节点,那么加起来就是 400G 的内存。但是购买高斯 Redis 时,用户只需要根据真实存放的数据大小,按需选择购买存储空间即可,内存只是为了性能加速(内存/磁盘比越大,性能越好)。
附:资料参考
《华为云 GaussDB(for Redis)与自建开源 Redis 的成本对比》
《一场由 fork 引发的超时,让我们重新探讨了 Redis 的抖动问题》https://bbs.huaweicloud.com/blogs/227525
《当 Redis 遇见计算存储分离》
https://developer.huaweicloud.com/hero/forum/thread-83188-1-1.html
《GaussDB(for Redis)与原生 Redis 的性能对比》
https://bbs.huaweicloud.com/blogs/236949
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/5e04794921697c4fa12aa2a46】。文章转载请联系作者。
评论