gremlin

应对万亿数据上亿并发!字节跳动的图数据库研发实践

穿精又带淫゛_ 提交于 2020-12-11 10:21:36
作者:字节跳动技术团队 技术架构团队来源:字节跳动技术团队 【责任编辑:未丽燕 TEL:(010)68476606】 https://database.51cto.com/art/202012/633379.htm 一、图状结构数据广泛存在 字节跳动的所有产品的大部分业务数据,几乎都可以归入到以下三种: 用户信息、用户和用户的关系(关注、好友等); 内容(视频、文章、广告等); 用户和内容的联系(点赞、评论、转发、点击广告等)。 这三种数据关联在一起,形成图状(Graph)结构数据。 为了满足 social graph 的在线增删改查场景,字节跳动自研了分布式图存储系统——ByteGraph。针对上述图状结构数据,ByteGraph 支持有向属性图数据模型,支持 Gremlin 查询语言,支持灵活丰富的写入和查询接口,读写吞吐可扩展到千万 QPS,延迟毫秒级。目前,ByteGraph 支持了头条、抖音、 TikTok、西瓜、火山等几乎字节跳动全部产品线,遍布全球机房。在这篇文章中,将从适用场景、内部架构、关键问题分析几个方面作深入介绍。 ByteGraph 主要用于在线 OLTP 场景,而在离线场景下,图数据的分析和计算需求也逐渐显现。2019 年年初,Gartner 数据与分析峰会上将图列为 2019 年十大数据和分析趋势之一,预计全球图分析应用将以每年 100% 的速度迅猛增长

图数据库对比:Neo4j vs Nebula Graph vs HugeGraph

家住魔仙堡 提交于 2020-10-23 11:04:03
本文系腾讯云安全团队李航宇、邓昶博撰写 图数据库在挖掘黑灰团伙以及建立安全知识图谱等安全领域有着天然的优势。为了能更好的服务业务,选择一款高效并且贴合业务发展的图数据库就变得尤为关键。本文挑选了几款业界较为流行的开源图数据库与 Nebula Graph 进行了多角度的对比。 图数据库介绍 Neo4j Neo4j 是目前业界广泛使用的图数据库,包含社区版本和商用版本,本文中使用社区版本。 HugeGraph HugeGraph 是百度基于 JanusGraph 改进而来的分布式图数据库,主要应用场景是解决百度安全事业部所面对的反欺诈、威胁情报、黑产打击等业务的图数据存储和图建模分析需求。具有良好的读写性能。 Nebula Graph Nebula Graph 是一款开源的分布式图数据库,采用 shared-nothing 分布式架构,擅长处理千亿节点万亿条边的超大规模数据集,从而更好地服务企业级应用。 测试硬件环境 性能对比 我们使用不同量级的图从入库时间,一度好友查询,二度好友查询,共同好友查询几个方面进行了对比,结果如下: 可以看到在导入性能上,数据量小的时候 Nebula Graph 的导入效率稍慢于 Neo4j,但在大数据量的时候Nebula Graph 的导入明显优于其他两款图数据库;在 3 种查询场景下, Nebula Graph 的效率都明显高于 Neo4j,与