快手分布式高性能图平台KGraph及其应用
背景介绍
快手作为国民级短视频APP,拥有巨大的日活用户和海量交互数据,其复杂的技术场景对数据处理提出了高要求。传统社交推荐系统面临图数据结构容量有限、服务器启动耗时长以及数据库频繁join操作等痛点。
KGraph架构
KGraph是以图论为基础的分布式高性能图数据库,支持Gremlin、Cypher、nGQL等多种查询语言。其架构包括:
- 有向异构属性图建模:通过点(Vertex)和边(Edge)及其属性进行数据存储和查询。
- 整体框架:采用DBServer架构,结合NVMe SSD和App Direct Mode提升性能。
- 高性能RPC框架KRPC:单机40核可支持100W+ QPS,减少线程间冲突。
- 超级节点优化:将出边分散至多个KV并以Tree组织,解决单点瓶颈问题。
关键问题分析
KGraph通过以下方案解决社交推荐痛点:
- 图数据结构:优化数据容量和服务器启动时间。
- 数据库:减少频繁join操作。
- 持久化引擎:实现分布式线性拓展和高性能。
- 高性能RPC框架KRPC:提升查询效率。
- 超级节点:优化出边管理,提升系统性能。
应用场景介绍
KGraph主要应用于:
- 基于KGraph实时查询的社交推荐:
- 挑战:千亿/万亿条关系存储、3亿+ DAU吞吐、多度关系推荐策略迭代。
- 技术方案:从MySQL+join迁移至KGraph+多度计算,实现简单推荐、用户推荐和关系文案保存与计算。
- 基于电商图谱的推荐召回:利用KGraph的多跳查询能力,挖掘图关系应用于召回、样式、策略、模型等领域,如品牌召回。
- 利用Spark的离线图计算:基于KGraph构建好友关系图、安全知识图谱等,进行K跳子图、最短路径等图算法计算。
小结与展望
- 小结:
- KGraph凭借新硬件PMem、高性能网络框架KRPC和Cache的使用,达到单机千万极限吞吐,为业务优化留出空间。
- 支持OLTP实时查询和OLAP计算,已稳定应用于快手社交推荐、电商推荐等业务。
- 展望:
- 架构方面:将完善高效图查询引擎、多种图存储底座和完备的图计算框架。
- 系统方面:提升高性能、高可用、易维护性。
- 场景方面:拓展至知识图谱、安全风控、网络/IT运营等领域。