最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

vesoft 于新林:开源,让 Nebula Graph 图数据库更好

  • 2021-11-23
  • 本文字数:3604 字

    阅读完需:约 12 分钟

vesoft 于新林:开源,让 Nebula Graph 图数据库更好

万物互联让数据呈指数级增长,在面对一些海量高并发的场景时,传统的关系型数据库已不适用。而随着人们对数据处理需求的快速增长,加之图数据库的技术也逐渐成熟,人们发现用树和拓扑图更容易表达这充满关系的现实世界。

 

Nebula Graph 作为一款开源的分布式图数据库,定位为大规模的属性图。以处理大规模海量数据为设计目标,是世界上唯一能够容纳千亿个顶点和万亿条边,并提供毫秒级查询延时的图数据库解决方案。接下来,就让我们跟 vesoft 的 CTO 于新林一起来聊一聊 Nebula Graph。视频下方也有文字版。

 

00:00 / 00:00
    1.0x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00

    vesoft CTO 于新林


    InfoQ:请于老师从自己的工作经历方面做一下个人介绍。

     

    于新林:我上个工作是在阿里,大约待了十四年,前十年在支付宝做支付宝的首席架构师,后四年在阿里云的 IoT 负责 IoT 的基础 PaaS。2021 年 5、6 月份加入欧若数网,现在在做图数据领域相关的工作。

     

    InfoQ:刚开始,公司为什么想做 Nebula Graph 这款产品呢?


    于新林:公司 CEO 在图数据库这一领域的沉淀和积累较深。他之前在 Facebook,再到后来的蚂蚁一直是做图数据库的。因为 CEO 有比较深的图数据库技术背景,刚好也在这一领域涉猎多年,所以就出来做图数据库相关的技术,然后就做了 Nebula Graph 这款产品。

     

    InfoQ:据了解,目前 Nebula Graph 是一款开源的分布式图数据库,为什么刚开始就选择了开源?

     

    于新林:第一,我们公司成立在 2018 年 10 月份左右,那个时候感觉业界整个开源的势头越来越强,这是一个大的趋势;第二,因为我们公司是做图数据库的,图数据库是底层的 infrastructure 的产品,这种产品只要是商业模式找到了,其实开源是一个比较好的手段,它可以快速地让你接触到你的客户、接触到开发者,可以让客户和开发者给你提需求、提 Bug,甚至贡献代码,这样更适合产品的发展,进行快速迭代,所以当时我们选择了开源。

     

    InfoQ:作为公司的 CTO,您当初在 Nebula Graph 的架构设计上有哪些考虑?


    于新林:对于架构设计,首先对于一个产品我们有一些大的原则,这些原则包括:


    第一,我们选择开源;

    第二,因为数据量越来越大,我们要支持海量、大并发的业务,它肯定是一个分布式的(架构);

    第三,我们希望有一个相对比较灵活的架构,所以采用了计算层和存储层分离的架构;

    第四,现在基于 K8s 的云原生越来越火,并且它也是一个必然的趋势,我们现在支持云原生,全面拥抱云原生;

    第五,我们之前主要的精力是放在 OLTP 上,但是图的计算和分析,一定也是未来的趋势,所以说我们也会做 HTAP 的融合。

     

    以上是我们基于这些大的设计原则来做的 Nebula Graph 这款产品。另外图数据库本身的发展,要依赖于整个的生态,还包括周边的一系列的配套的工具、产品,我们也希望和社区一起基于 Nebula Graph 打造一个图数据库相关领域的生态,类似于周边的一些 SDK、工具、平台,让这个生态能够更加繁荣。这是一些基本的思考。

     

    InfoQ:Nebula Graph 研发过程中的核心技术有哪些?


    于新林:因为我们是一个分布式的、存储和计算分离的框架。第一,图数据库领域本身就有一定难度。一般像底层基础设施难的是操作系统,再上面是数据库,所以核心技术就包括怎么解决分布式的问题,一旦数据存在不同的物理机上,一定涉及到分布式事务的一致性问题;第二,怎么去处理这种高并发、实时海量的数据的问题。第三,因为数据库本身要稳定,又稳又快,而且要安全,所以怎么样去通过各种手段来保证数据库的稳定,给客户提供持续可靠的服务。刚说到数据库本身要速度快,所以要怎么优化?因此在查询层类似于优化器、调度器、解析器,都要去做比较深入细致的工作,才能真的让性能提升上来。

     

    很多客户对安全性要求也高,包括用户的权限、网络通信、甚至底层数据加密的存储等一系列的问题。光从分布式的计算存储分离的数据库来看,技术的挑战点就很大、很多,以上是我认为一些比较难的点。

     

    InfoQ:对比市面上其他的图数据库,Nebula Graph 有哪些优势?


    于新林:第一,因为 Nebula Graph 是一个开源的、完全自研的图数据库,所以我们的可控性就高了很多,当然自研包括我们跟社区共建产品;第二,因为可控性很高(自研),我们可以做很多极致的优化。我们最大的场景可以到千亿点和万亿边,现在有的客户已经达到这种规模,在这种海量高并发场景下采用(Nebula Graph)很适合。另外在这种高并发下,客户对于响应时间的要求比较严格。因为 Nebula Graph 是一个 OLTP(联机事务数据库),在性能上,在海量高并发下可以实现毫秒级返回,这些都是我们目前感觉做的相对比较好的点,当然也有一些不足我们要持续的优化和完善。

     

    InfoQ:在 Nebula Graph 研发过程中,你们面临的比较大的挑战有哪些?针对这些挑战,你们又是如何解决的?


    于新林:研发当中肯定会面临很多的挑战。拿稳定性来讲,客户一般对于数据库产品的要求比较高。要保证数据库的稳定其实有很多方面,包括兼容怎么做、内存怎么处理,在高并发下服务会不会 Crash 掉。对于一些网络和故障,分布式处理怎么样?为了应对稳定性这一问题,我们做了很多的工作,包括混沌测试、压测、收集客户的场景的特制案例等,在这些方面都做了很多的优化。

     

    还有一些自身的挑战,比如因为(Nebula Graph)本身是一个分布式的数据库,分布式数据库一定会涉及到最终的 ACID,这是一个分布式事务的问题,怎么样保证事务的最终一致性,其实挑战是比较大的。再一个就是,在这种集群下,它怎么样保证集群之间数据的同步、集群出故障如何快速地处理故障切换服务等等一系列的挑战。

     

    其实再细化一些,例如在查询层优化器做的好不好,其实也是一个很大的挑战。一条语句,经过语法、语义解析之后产生的这种执行计划,还涉及到索引选择一系列的问题,优化的策略也包括基于规则的优化、基于成本的优化,甚至后续出现类似于智能的优化。另外调度器的挑战也很大。例如,执行一条语句,其实可以考虑在一台机器上执行,但会有一个问题,这台机器的计算资源是有限的,当其他机器空闲的时候,很难充分利用集群的优势,这时候可以考虑通过把这台机器的任务调度到其他机器上,能尽快的并发执行,这是关于调度器和执行器的优化。

     

    对于存储层,一个是刚刚说过的分布式事物,另外一个是可以考虑大的内存,这样可以把整个图数据库的拓扑图搬到内存里去,一旦搬到内存里去,就涉及到内存和磁盘的一致性的问题,当内存空间不够的时候,又怎么和磁盘进行交换?另外,图一定会涉及到多跳查询,每次出现多跳查询就会涉及到与集群中其他进程的交互,怎么通过一些内存和存储的优化去降低这种频繁的多跳交互带来的网络开销或者性能降低?很多挑战是需要我们去解决的。也希望社区的小伙伴有时间多给我们贡献,或者加入我们一起解决问题。

     

    InfoQ:目前,Nebula Graph 适用的业务场景有哪些?于老师可以举一些比较典型的例子。


    于新林:典型的应用场景像金融欺诈的检测,类似于反洗钱;公安的一些伴随、跟随,还有犯罪团伙的发现;国安和公安这类业务场景,通过一些关系找到一些犯罪团伙;像知识图谱;像平时我们的开发同学遇到的数据血缘关系、系统的链路调度关系;还有比较陌生的一些,像芯片设计的 EDA 软件等都会用到图数据库。我觉得图领域在将来的场景会越来越丰富、越来越渗透到整个社会发展的各行各业里面去,其实它的空间还是蛮大的。


    InfoQ:Nebula Graph 的下一步打算是什么?


    于新林:第一步,先把 Nebula Graph 上云,提供 DBaaS 服务,类似于 PaaS 服务,客户不用去考虑怎么样去搭建、部署、运维一个数据库,只要使用数据库的服务就好了。我们现在已经在和一些云厂商合作,把我们图数据库搬到云上来。第二步,我们其实后续也在加大 AP 这个领域的投入,现在已经有 AP 相关的服务,但是跟我们理想中的还有差距,之后通过加大对 AP 领域的投入,真正把 TP 和 AP 融合起来,做到 HTAP。第三步,我们后续也是希望能把图的计算和图的分析以 SaaS 化的服务形式搬上云,这样对一些客户来讲,就不需要去搭建一套图计算和图分析的平台,只需要用 SaaS 服务把数据上传,进行图计算和图分析便可得到结果,这样可实现按需付费,按照计算单元和时间付费,这是我们接下来的一些大的思考和规划。

     

    InfoQ:研发过程中,有没有令您印象深刻的事?


    于新林:令我印象最深的一件事是我们有一个版本发布以后,客户说他们性能急剧下降,但是我们自己都测过,根本没出现过这个问题。我们也很诧异为什么会出现这种情况,于是立刻联系客户,希望在第一时间去解决客户的问题,并与客户迅速建立电话会议。经过排查后发现,客户这种场景是我们以前案例里没有的。其实这个也是客户和我们一起共建社区的一个过程,通过这种案例,也可以提高我们产品的健壮性和稳定性。在这样紧急的情况下,经过大家一起共建,很快就发现了问题,并解决了问题。当天就打了一个 Patch 包解决了客户的问题。

     

    诸如此类的事情还有很多,但那次我印象特别深,因为很快地响应客户并快速地解决了客户的问题,同时感谢客户给我们贡献我们以前没有想到或者遇到的场景。这是令我印象比较深的一件事情。


    公众号推荐:

    跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

    2021-11-23 17:112280
    用户头像

    发布了 46 篇内容, 共 75286 次阅读, 收获喜欢 24 次。

    关注

    评论

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

    鲁班软件使用明道云优化项目管理的全过程

    明道云

    前端已死?我看未必,但「低代码」已剑指前端程序员

    引迈信息

    面试 Vue 前端 低代码

    安全高效 | AIRIOT智慧工地管理解决方案

    AIRIOT

    物联网 智慧工地

    请你喝一杯 Corretto?谈一谈 JDK 的新选择

    亚马逊云科技 (Amazon Web Services)

    Java jdk

    运维训练营第16周作业

    好吃不贵

    龙蜥LoongArch架构研发全揭秘,龙芯开辟龙腾计划技术合作新范式

    OpenAnolis小助手

    操作系统 龙蜥社区 龙腾计划 龙芯中科 LoongArch

    《数据治理行业实践白皮书》正式发布,开辟数据治理新范式(附下载)

    袋鼠云数栈

    数据治理

    【技术干货】第1篇:有道实况OCR技术

    有道技术团队

    Spring中Autowired注解到底怎么实现的

    做梦都在改BUG

    Java spring 框架

    再次飙升GitHub榜首!这份“保姆级”的SpringBoot笔记,不服不行

    做梦都在改BUG

    Java spring 微服务 Spring Boot 框架

    探究计算机视觉新兴能力:如何通过提示检索提高性能?

    Zilliz

    计算机视觉

    听说你没法在 JRE 中使用 arthas?不,你可以

    阿里巴巴云原生

    Java 阿里云 容器 云原生

    解读场景化视频制作工具的实现过程

    阿里云视频云

    云计算 智能生产

    架构训练营模块八作业

    现在不学习马上变垃圾

    架构训练营10期

    会声会影2023官方新功能介绍

    茶色酒

    会声会影2023

    最佳实践 | 基于腾讯云MRCP-Server打造简单智能外呼系统

    牵着蜗牛去散步

    人工智能 腾讯云 腾讯 语音识别 智能外呼系统

    我的sql没问题为什么还是这么慢|MySQL加锁规则

    做梦都在改BUG

    Java MySQL 数据库

    玩好 StarRocks,大厂 offer 接不完!|字节跳动、小红书、京东物流、唯品会、腾讯音乐要的就是你!

    StarRocks

    数据库

    从智能进化模型看用友BIP的AI平台化能力

    YonBuilder低代码开发平台

    在云原生和裸金属环境开展NFS存储性能比对测试

    QE_LAB

    云原生 性能测试

    解锁智能合约的力量:区块链入门教程

    领创集团Advance Intelligence Group

    区块链 智能合约 以太坊

    2022 IoTDB Summit:Dr.Feinauer《Apache IoTDB 在德国汽车生产线多级数据同步中的应用实践》

    Apache IoTDB

    数据库·

    GitLab 专家分享|关于 DevSecOps ,你需要知道这几点

    极狐GitLab

    DevOps DevSecOps 极狐GitLab 研发运维 安全左移

    深度访谈 Vland CTO:像乐高一样搭建元宇宙

    万事ONES

    元宇宙 访谈

    借助阿里云 AHPA,苏打智能轻松实现降本增效

    阿里巴巴云原生

    阿里云 容器 云原生 AHPA

    3.基于Label studio的训练数据标注指南:文本分类任务

    汀丶人工智能

    信息抽取 数据标注 文本分类 labelstudio

    一文吃透 Go 内置 RPC 原理

    捉虫大师

    Go RPC

    OpenCloudOS 如何以最小成本,高效定位内存泄露路径?

    OpenCloudOS

    Linux 内存 opencloudOS

    一文读懂PaddleSpeech中英混合语音识别技术

    飞桨PaddlePaddle

    语音识别 百度飞桨

    阿里云云原生每月动态 | 聚焦实战,面向开发者的系列课程全新上线

    阿里巴巴云原生

    阿里云 云原生

    跨境数据传输是日常业务中经常且至关重要的组成部分

    镭速

    vesoft 于新林:开源,让 Nebula Graph 图数据库更好_数据库_王莹_InfoQ精选文章