《迷你世界》亿级玩家都在用的游戏场景推荐系统长啥样?

迷你,世界,玩家,游戏,场景,推荐,系统 · 浏览次数 : 121

小编点评

**华为云企业级KV数据库GaussDB(for Redis)在《迷你世界》游戏场景推荐系统中的关键价值** **关键词:**华为云,GaussDB,Redis,游戏场景推荐系统 **《迷你世界》的推荐业务通过使用华为云企业级KV数据库GaussDB(for Redis),成本降低了60%,而且提升了画像数据承载量,让玩家更容易、更快速找到自己喜欢的游戏场景。** **GaussDB(for Redis)的主要优势包括:** * 低成本 * 高稳定性 * 高可靠性 * 强一致性 * 强扩展性 * 强抗写 **与开源Redis相比,GaussDB(for Redis)的优势包括:** * 降低成本40%以上 * 高效的存储引擎 * 避免数据丢失问题 **华为云GaussDB(for Redis)还提供以下优势:** * 存算分离架构,可进行秒级扩容 * 多线程设计+全部节点可写,抗写能力强 * 基于存算分离架构的共享资源池,实现全球多区域游戏场景数据实时同步更新

正文

摘要:通过使用华为云企业级KV数据库GaussDB(for Redis),《迷你世界》的推荐业务不仅成本降低了60%,而且提升了画像数据承载量,让玩家更容易、更快速找到自己喜欢的游戏场景。

本文分享自华为云社区《《迷你世界》亿级玩家都在用的游戏场景推荐系统长啥样?》,作者:GaussDB数据库。

提到推荐系统,很多人都在电商购物、资讯或娱乐平台中体验过。比如,你刚在某电商APP买了一部手机,过两天再登录时,首页推荐中必定有耳机、手机壳等手机配件。

本质上,推荐系统是互联网世界的资源调度系统,决定了用户体验和企业核心竞争力。比如,根据亚马逊2019年度报告,其40%的营收来自内部稳定的推荐系统。如今,推荐系统已不再是电商、互联网行业的专用技术,越来越多行业将其作为核心业务之一。

一个聪明的推荐系统,背后有很多关键技术,KV数据库便是其中之一。以《迷你世界》游戏场景推荐系统为例,《迷你世界》是国内头部沙盒创意平台,目前月活用户超过1亿。通过使用华为云企业级KV数据库GaussDB(for Redis),《迷你世界》的推荐业务不仅成本降低了60%,而且提升了画像数据承载量,让玩家更容易、更快速找到自己喜欢的游戏场景。

中国TOP1沙盒游戏的数据存储攻坚战

了解游戏的读者一定知道,沙盒类游戏最吸引人的就是层出不穷的新场景。如何将新个性化场景推荐给最感兴趣的玩家,成为持续提升用户体验的关键。

在《迷你世界》中,推荐系统对两类玩家的体验都至关重要。对于第一次登录的新玩家,茫然不知道该玩哪个游戏场景时,需要及时指引。对于老玩家,则有海量新鲜有趣的游戏场景等待探索。要知道《迷你世界》的UGC生态非常活跃,平台上有超过7000万创作者,累计创造的场景超过2亿个。因此,《迷你世界》推荐系统亟需一个强大的KV数据库来承载持续增长的海量场景特征,提升推荐系统的服务效率。

提到KV数据库,一般会让人立刻想到Redis。但在推荐系统这类AI场景下,开源Redis却显得捉襟见肘,并非最佳选型。经过长期实践和调研,《迷你世界》最终选择了华为云GaussDB(for Redis)作为推荐业务的核心存储选型。

完胜开源版本,GaussDB(for Redis)助力《迷你世界》加速创新

在《迷你世界》的游戏场景推荐系统中,GaussDB(for Redis)主要承载了特征平台的核心特征数据存储功能,起着“承上启下”的作用。因为,在一个推荐系统中,确保特征数据的可靠存储、弹性扩容,是极为关键的一环,这也是GaussDB(for Redis)在《迷你世界》推荐系统中的重要价值。

早期,《迷你世界》使用开源Redis做特征数据存储,开源Redis在成本、扩容、可靠性等方面存在诸多短板,越来越无法满足业务高速增长的需求。在华为云GaussDB(for Redis)帮助下,《迷你世界》整体成本降低60%,特征数据总承载量提升3倍,并大幅提升了玩家的游戏体验。概括来说,GaussDB(for Redis)的优势可以总结为:低成本、高稳定、高可靠、强一致、强扩展、强抗写。

相比开源Redis在大数据场景下存在显而易见的痛点, GaussDB(for Redis)更适合存储特征数据:

开源Redis丢数据 VS 高斯Redis提供DB级别可靠存储

开源Redis中的数据是可丢失的,生产中只适合用在纯缓存场景。开源Redis的AOF持久化也仅仅是磁盘中保留一个简单的文本文件而已,并不可靠。假如写入速度是2000条/秒,那么即使开了AOF持久化,故障场景下开源Redis也会丢失至少2000条数据。《迷你世界》游戏场景推荐系统的特征数据关系到用户体验,长久可靠保存是基本要求。

GaussDB(for Redis)是真正意义上的KV数据库,对存储引擎、LSM-tree存储结构、WAL日志、menifest元数据存储、SSTable文件格式等方面均做了深度优化,搭配华为独有的高性能分布式存储池DFV,做到数据三副本强一致存储,相当可靠。即使在节点故障场景,GaussDB(for Redis)也能够秒级恢复,业务仅会感知一个小小的“抖动”。

开源Redis烧钱 VS 高斯Redis省钱40%以上

从成本上看,内存存储的一大特点就是贵,相同容量的内存与极速SSD相比,一般价格要贵10倍以上。尤其是《迷你世界》这类客户,数据量激增很快,当数据量达到几十GB、几百GB,开源Redis只会越来越“烧钱”。而且,开源Redis自身fork问题导致容量利用率低,硬件资源有很大的浪费。

华为云GaussDB(for Redis)则是帮企业省钱的小能手。一方面,GaussDB(for Redis)的所有数据全部落在高性能分布式存储池,其成本比开源Redis降低了75%~90%。另一方面,华为云GaussDB(for Redis)自带的数据压缩功能,可以对序列化后的信息进行高压缩比的压缩,实际占用空间仅为开源Redis的50%左右,进一步降低了存储成本。此外,GaussDB(for Redis)会进行自动冷热数据交换,最大程度保证了热数据的低时延访问。

开源Redis扩容慢,影响业务 VS 高斯Redis无感热扩容

如果一个开源Redis快写满了,需要从64G扩容到128G,耗时至少半小时。这是因为过程中要将老分片中的数据远程copy到新分片,导致耗时久、业务受影响时间长。《迷你世界》此前不得不凌晨熬夜扩容,而且还要承受业务受小时级影响的损失。

华为云GaussDB(for Redis)采用存算分离架构,天然可以做到按需扩容,即“计算不够扩计算,存储不够扩存储”。在存算分离的架构下,底层数据可以被任意上层计算节点访问,存储扩容过程不发生数据拷贝搬迁,只需修改一个配额即可瞬间完成扩容。因此,GaussDB(for Redis)可以做到秒级扩容,无论是扩节点还是扩存储容量,对业务的影响几乎为0,真正做到在线无感热扩容。

开源Redis灌库表现不佳 VS 高斯Redis强抗写能力,应对超高并发挑战

特征数据需要定期更新,往往以小时或天为周期进行大规模数据灌入任务。如果存储组件不够“皮实”,大量写入造成数据库故障,将导致整个推荐系统发生异常。开源Redis抗写能力不强 ,当大批量写入到来时,推荐系统就容易出问题,影响用户体验。这是由于:

1)单线程架构,灌库过程影响整体读写性能;

2)集群中有一半节点是备节点,它们只能处理读请求。

华为云GaussDB(for Redis)采用多线程设计+全部节点可写,抗写能力足够强大,从容应对Spark灌库压力和实时更新。

此外,基于存算分离架构,GaussDB(for Redis)底层共享资源池可以为《迷你世界》海量游戏场景及创作内容数据提供三副本强一致,实现全球多区域TB级游戏场景数据实时同步更新,加速全球玩家的协同创作。

“《迷你世界》有大量的KV数据库的需求,华为云GaussDB(for Redis)存算分离的架构和领先的性能确实非常好地满足了我们产品的需求。”迷你创想云服技术总监刘琪表示。

在现代商业体系中,推荐系统的重要性与日俱增。GaussDB(for Redis)在头部沙盒游戏《迷你世界》的成功应用,证明了其是推荐系统核心数据的极佳选型。不仅如此,GaussDB(for Redis)还展现了多行业场景的适用性。在电商行业,拥有亿级用户的华为商城也采用了GaussDB(for Redis),其在特征工程平台建设中起到了关键作用。

 

点击关注,第一时间了解华为云新鲜技术~

与《迷你世界》亿级玩家都在用的游戏场景推荐系统长啥样?相似的内容:

《迷你世界》亿级玩家都在用的游戏场景推荐系统长啥样?

摘要:通过使用华为云企业级KV数据库GaussDB(for Redis),《迷你世界》的推荐业务不仅成本降低了60%,而且提升了画像数据承载量,让玩家更容易、更快速找到自己喜欢的游戏场景。 本文分享自华为云社区《《迷你世界》亿级玩家都在用的游戏场景推荐系统长啥样?》,作者:GaussDB数据库。 提

突破自我认知的壁垒

从之前非常迷茫到现在慢慢变清晰,其实我发现很多时候看似难以逾越的问题下要突破自我认知的壁垒,需要你有打破了重建的自我革命精神!你所看到的世界并不一定是真实的世界,都是在自我认知固化和以你的生活为蓝本的大数据编织的信息茧房中,就如同黑客帝国中的Matix一样,现实迷茫的时候你必须要突破自己的理解误区。

IceRPC之依赖注入>快乐的RPC

作者引言 很高兴啊,我们来到了IceRPC之依赖注入>快乐的RPC,基础引导,打好基础,才能让自已不在迷茫,快乐的畅游世界。 依赖注入和IceRPC 了解 IceRPC (C#) 如何为依赖注入(DI)提供支持。 DI作为可选功能 DI的第一条规则是:不要引入对DI的依赖。 IceRPC (C#)

IceRPC之多路复用传输>快乐的RPC

作者引言 很高兴啊,我们来到了IceRPC之多路复用传输>快乐的RPC,基础引导,打好基础,才能让自已不在迷茫,快乐的畅游世界。 icerpc 和多路复用传输 了解 icerpc 协议和多路复用传输 icerpc 协议 当创建到服务器地址 icerpc://hello.zeroc.com 的客户端连

IceRPC之深入理解调度管道->快乐的RPC

作者引言 很高兴啊,我们来到了IceRPC之深入理解调度管道->快乐的RPC,为上篇的续篇,深入理解常见的调度类型, 基础引导,有点小压力,打好基础,才能让自已不在迷茫,快乐的畅游世界。 传入请求 了解如何处理传入的请求 接收传入的请求 调度器的调度方法接受传入的请求。该传入请求是由连接,在收到来自

IceRPC之调度管道->快乐的RPC

作者引言 很高兴啊,我们来到了IceRPC之调度管道->快乐的RPC, 基础引导,有点小压力,打好基础,才能让自已不在迷茫,快乐的畅游世界。 调度管道 Dispatch pipeline 了解如何接受请求并返回响应。 定义 接受/完成请求,并返回响应的过程称为调度。 调度通常由服务器连接创建: 服务

IceRPC之调用管道Invocation pipeline与传出请求Outgoing request->快乐的RPC

作者引言 .Net 8.0 下的新RPC 很高兴啊,我们来到了IceRPC之调用管道 Invocation pipeline与传出请求 Outgoing request->快乐的RPC, 基础引导,让自已不在迷茫,快乐的畅游世界。 调用管道 Invocation pipeline 了解如何发送请求r

IceRPC之服务器地址与TLS的安全性->快乐的RPC

作者引言 .Net 8.0 下的新RPC 很高兴啊,我们来到了IceRPC之服务器地址与TLS的安全性->快乐的RPC, 基础引导,让自已不在迷茫,快乐的畅游世界。 服务器地址 ServerAddress 了解服务器地址的概念和语法。 语法 服务器地址URI具有以下语法: protocol://ho

用代码玩转迷你图:手把手教你用编程语言打造简洁易读的数据图表!

摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:[葡萄城官网](https://www.grapecity.com.cn/),葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 # 前言 迷你图(Mini Chart)最早起源于流程图和组织架构图中的一种简化图形,用于表示一

打造炫酷效果:用Java优雅地制作Excel迷你图

摘要:本文由葡萄城技术团队原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前言 迷你图是一种简洁而有效的数据可视化方式,常用于展示趋势和变化。它通常由一组小型的线条或柱状图组成,用于表示数据的变化情况。迷你图的主要特点是占用空间少且易于理解。