写点什么

LinkedIn 图数据库 LIquid:为 9.3 亿会员提供实时数据访问

作者:Eran Stiller

  • 2023-07-07
    北京
  • 本文字数:1014 字

    阅读完需:约 3 分钟

LinkedIn图数据库LIquid:为9.3亿会员提供实时数据访问

最近,LinkedIn 分享了其图数据库LIquid是如何自动索引和实时访问会员、学校、技能、公司、职位、工作、事件等之间的关系数据的。这个知识图谱被称为 LinkedIn 的“Economic Graph”,有 2700 亿条边,并且还在不断增长,目前每秒处理 200 万次查询。


LinkedIn 将其“你可能认识的人(People You May Know,PYMK)”推荐系统从传统的 GAIA 系统迁移到了 LIquid。这一变化显著改善了每秒查询数(QPS)、延迟和 CPU 利用率。QPS 从 120 增加到 18000,延迟从超过 15 秒下降到平均 50 毫秒以下,CPU 利用率下降了 3 倍以上。LIquid 还引入了新的数据库索引技术,支持实时数据查询,实现了即时推荐。



图片来源:https://engineering.linkedin.com/blog/2023/how-liquid-connects-everything-so-our-members-can-do-anything


上图是系统的架构图,使用了 LIquid,可以以较小的延迟和可接受的硬件成本来执行图查询。通过 LIquid 对Economic Graph的查询生成数百个候选对象,并应用第二个排名函数。这个排名函数使用Venice的机器学习功能和Apache Pinot的分析见解来评分并选择最佳候选对象。过滤步骤为呈现和最终评分准备好了这个排名列表。


LIquid 的设计使其能够伸缩到当前十倍的规模,可以支持 LinkedIn 9.3 亿多会员的有机增长和新的语义领域。它提供 99.99%的可用性,并可以自动根据图的大小和活动量的增加进行自动伸缩。


图数据库使用基于Datalog的可组合声明式查询语言,帮助开发人员高效地访问和使用数据。可组合语言能够让开发人员在现有的特性(叫作模块)上进行构建,声明式语言能够让开发人员专注于表达他们想要开发的东西,而 LIquid 自动化了高效的访问过程。开发人员因此可以快速变更数据集,大大减少了调整和更新数据库所需的时间。


LinkedIn 工程总监Bogdan Artintescu描述了 LIquid 的发展路线图:


要让会员能够做更多的事情,我们需要在回答会员的问题方面提供更加完善的能力。我们可以沿着两个方向做出改进。首先,复杂的查询和添加到 Economic Graph 的数据源的多样性将会驱动新特性的开发和呈现。其次,丰富数据将提高推理能力。这可以通过创建派生数据(通过确定性算法或概率机器学习方法)或通过知识图谱(KG)模式中更丰富的语义改进推理来实现。我们计划专注于高性能图形计算和分析,并建立一个 KG 生态系统,让我们的开发人员能够进一步增强会员体验。


LIquid 的成功激励了 LinkedIn 的其他团队和微软的姐妹团队将它作为图数据索引。


原文链接

https://www.infoq.com/news/2023/06/linkedin-liquid-graph-database/

2023-07-07 14:574369

评论

发布
暂无评论
发现更多内容

Zookeeper(从7个方面来了解Zookeeper基础概念)

Java 程序员 后端

「并发原理专题」AQS的技术体系之CLH、MCS锁的原理及实现

Java 程序员 后端

ZK(ZooKeeper)分布式锁实现

Java 程序员 后端

《代码重构》之方法到底多长算“长”

Java 程序员 后端

【Java从0到架构师】Maven

Java 程序员 后端

WPF学习——依赖项属性(1)

Java 程序员 后端

WPF学习——依赖项属性(2)

Java 程序员 后端

【Java 多线程 1】CountDownLatch

Java 程序员 后端

【Java核心面试宝典】Day3、图解HashMap高频面试及底层实现架构!

Java 程序员 后端

ZooKeeper分布式配置——看这篇就够了

Java 程序员 后端

《JVM系列》 第六章 -- 对象的实例化与内存布局

Java 程序员 后端

《吃透MQ系列》核心基础全在这里了,一文啃透!

Java 程序员 后端

公有云是什么意思?其存在的意义是什么?

行云管家

云计算 公有云 私有云 混合云

Worktile、Teambition与Tower项目管理软件对比

Java 程序员 后端

WPF学习——依赖项属性(2)(1)

Java 程序员 后端

[译] 微服务的设计模式

Java 程序员 后端

“抽象类”到底抽不抽象?实例对比一看便知!

Java 程序员 后端

《Spring实战》读书笔记-第4章 面向切面的Spring(1)

Java 程序员 后端

【Java从0到架构师】SQL 多表查询

Java 程序员 后端

架构实战营-模块三作业

随风King

「架构实战营」

YGC问题排查,又让我涨姿势了!

Java 程序员 后端

《Spring实战》读书笔记-第4章 面向切面的Spring

Java 程序员 后端

【C 语言小游戏】手打贪吃蛇1

Java 程序员 后端

【Java 集合框架】Stack、Queue 和 Deque 的使用

Java 程序员 后端

营口市广东商会成立

江湖老铁

《JVM系列》 第六章 -- 对象的实例化与内存布局(1)

Java 程序员 后端

《菜菜的机器学习sklearn课堂》降维算法PCA和SVD

Java 程序员 后端

《重学Java高并发》Disruptor使用实战

Java 程序员 后端

全面通透深入剖析工厂方法模式

Tom弹架构

Java 架构 设计模式

【Java 基础语法】万字解析 Java 的多态、抽象类和接口

Java 程序员 后端

【Java每日面试题】大厂是如何设计秒杀系统的?

Java 程序员 后端

LinkedIn图数据库LIquid:为9.3亿会员提供实时数据访问_数据库_InfoQ精选文章