写点什么

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:574601

评论

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

图解 SQL,这也太形象了吧!

xcbeyond

MySQL 6月日更

分享8个可以提高开发效率的JavaScript库

devpoint

node.js axios 6月日更

redis分布式锁原理

Skysper

redis 分布式锁

颠覆与创新,区块链将成音乐产业的下一个风口

CECBC

🌏【架构师指南】教你如何设计和规划系统架构(13条)

码界西柚

架构设计 架构设计原则 架构师技能 6月日更

《原则》(十二)

Changing Lin

6月日更

【译】JavaScript 中几种循环遍历方式对比

KooFE

6月日更

系统设计系列之任务队列

看山

MQ 6月日更

网络攻防学习笔记 Day42

穿过生命散发芬芳

网络攻防 6月日更

贪心算法最优装载问题(Java代码实现)

若尘

数据结构 贪心算法 6月日更

区块链行业的《高考志愿填报指南》

CECBC

Django组队学习Task0

IT蜗壳-Tango

IT蜗壳教学 6月日更 Datawhale

职场礼仪之坐车礼仪

石云升

6月日更 职场礼仪

【21-5】Grafana 时间Panel 如何使用

耳东@Erdong

Grafana 6月日更 panel clock

Java Shutdown Hook 场景使用和源码分析

陈皮的JavaLib

Java 线程安全 Thread

🌏【架构师指南】带你分析认识缓存穿透/雪崩/击穿

码界西柚

缓存穿透 缓存击穿 缓存雪崩 6月日更

【Flutter 专题】106 图解 AnimatedWidget & AnimatedBuilder 动画应用

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

给dubbo贡献源码,做梦都在修bug

捉虫大师

dubbo

雪花算法的原理及实现

架构精进之路

算法 6月日更

MySQL基础之十:union与limit

打工人!

myslq 6月日更

Windows 10 如何设置网络属性为私有

HoneyMoose

内卷的出路是躺平?

Qien Z.

创新 内卷 6月日更 躺平

金三银四跳槽季,美团、字节、阿里、腾讯Java面经,终入字节

Java 程序员 架构 面试

GitHub已霸榜!阿里技术官肝了3个月才完成的20万字Java面试手册

Java 程序员 架构 面试

一文带你深入了解 Java 字节码

mghio

技术 后端 Java 25 周年 基础

【LeetCode】重复的DNA序列Java题解

Albert

算法 LeetCode 6月日更

立flag(第………………次)

凯迪

随笔杂谈

「SQL数据分析系列」1. SQL背景知识介绍

Databri_AI

数据库 sql

提升代码格调——JavaScript 数组的 reduce() 方法入门

编程三昧

JavaScript 大前端 数组 js ES6

马丁策略量化交易系统搭建,网格量化策略系统

Kubernetes手记(9)- Ingress 控制器

雪雷

k8s 6月日更

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