ITPub博客

首页 > 数据库 > 国内数据库 > 回顾 2023,NebulaGraph 的这一年的变化

回顾 2023,NebulaGraph 的这一年的变化

原创 国内数据库 作者:nebulagraph 时间:2024-01-19 11:25:19 0 删除 编辑

一年又过去了,感谢你和 NebulaGraph 一起又走过一个春夏秋冬。在这 365 天里,我们一起见证了 214 个 commit 带来的 NebulaGraph 3 个中版本的上线,它们分别是 v3.4.0、v3.5.0 和 v 3.6.0;除了内核经历了 3 个中版本的迭代之外,NebulaGraph 在 2023 年也迎来一大波新周边工具,以及已有周边工具的大更新。

由于篇幅的关系,现在我们来相对克制地了解下这 3 个版本和周边工具。

2023 年 NebulaGraph 的内核变更

一直以来,稳定性和高性能在 NebulaGraph 的产品规划中都是重中之重。今年,NebulaGraph 更是把 稳定性作为第一优先级:在功能上,引入了 Memory Tracker 功能(该功能开发者分享了一篇从原理讲起的文章 《内存管理实践之 Memory Tracker》);在测试上,进行了多轮的覆盖测试,同时引入了 fuzzer 等测试工具及方法,对 NebulaGraph 做了一次彻底的 “全身体检 ",也纠正和限制了一些不符合预期的行为。

在整体上,从 v3.3.0 到 v3.6.0,NebulaGraph 的稳定性有了明显的提升;而最新的发行版 v3.6.0 版本,在性能上,针对图上常用的路径查询、多跳查询上,均有不同程度的性能提升,最高提升了 6 倍。

以下罗列了一些大家不可错过的新特性:

  • KILL SESSION 可终止执行过慢的查询语句; #pr5146
  • 支持在返回语句中使用像  v.tag 这样的表达式; #pr5440
  • 支持  UPDATE 语句中的  json_extract 函数; #pr5457
  • 支持在  EXPLAIN 输出中使用 TCK 格式; #pr5414
  • DML 支持参数; #pr5328
  • 支持使用  MATCH 子句检索 VID 或属性索引时使用变量; pr#5486  #5553
  • 优化  MATCH 语句查询不存在的属性时的性能; pr#5634
  • 增强了聚合函数中的属性裁剪功能; pr#5301
  • 提高了遍历执行器的性能; pr#5308
  • 优化了  FIND ALL PATH 性能; pr#5409
  • MATCH 支持 ID 集合; pr#5360
  • 重构了  GO planner; pr#5369
  • graphd 配置文件中添加了部分性能选项; pr#5463

如果你对各个 NebulaGraph 版本的具体的 release note 有兴趣,可以前往 GitHub 页面阅读各个版本的信息: https://github.com/vesoft-inc/nebula/releases

2023 年新晋周边工具

image

除了官方出品的周边工具之外,在  nebula-contrib 组织下收录了大量社区用户贡献的实用工具。而今年,这个组织下又有了新动态:

2023 年周边工具重大变化

不像 nebula-contrib 组织下的项目从零到一,下面这些大家熟悉的周边工具在 2023 年也迎来了大的功能迭代:

  • 可视化工具  nebula-studio,在  nebula-studio v3.7.0 版本中对 ARM 架构进行了适配,在  pr#667 中优化了执行计划的可视化;
  • 数据导入工具  nebula-importer 在 v4.0.0 版本中进行了重构,极大地提高了导入性能和导入配置文件的可读性;
  • 数据导入工具  nebula-exchange 在 v3.4.0 版本支持了对 HDFS 配置文件的读取,在 v3.5.0 中支持了对数据源做预处理,v3.6.0 的 nebula-exchange 则支持了批量的删除和更新操作,最新的 v3.7.0 中 nebula-exchange 支持根据数据源获取模板配置文件;
  • 大数据工具  nebula-spark-connector 在 v3.6.0 对 Spark 3 进行了支持;
  • 大数据工具  nebula-flink-connector 在 3.5.0 对动态表 Sink 的增删改进行了支持;
  • 客户端  nebula-go 在 v3.4.0 支持了 JSON 格式的执行计划数据返回,在 v3.6.0 支持了 HTTP/2;
  • 客户端  nebula-java 在 v3.4.0 支持了 Session ID 的获取以及可  Ping 指定 Session,在 v3.5.0 支持配置  SessionPoolConfig.setReconnect() 来设定客户端是否进行现有可用服务的重连接,在 v3.6.1 支持了 HTTP/2;
  • 客户端  nebula-console 在 v3.4.0 支持了 ARM 架构下的 Docker 镜像,在 v3.6.0 支持了 HTTP/2;
  • K8s 运维工具  nebula-operator 在 v1.4.0 支持了备份恢复(将在 v1.9.0 发布定时备份),在 v1.5.0 支持了 mTLS、日志定时清理、init-container 等特性,在 v1.6.0 支持了 Zone 可用在云上多个可用区场景,在 v1.7.0 支持了 HPA、存储卷扩容;
  • 由 @CurvusY 维护的 NebulaGraph + Spring Boot 的数据库 ORM 框架  ngbatis 在 1.1.2 中支持了 nebula-java 的 session pool 以及使用 java 的继承关系实现数据库多标签的操作,而 v1.2.0 在 XML 中支持  ngql + include 的用法,拓展了 NebulaDaoBasic 的多个接口,v1.2.0-jdk17 中支持了 Spring Boot 3.x。

2023 年的 NebulaGraph 和 Doris 以及 KubeBlocks

2023 年的 NebulaGrpah 不只是专注自身的发展,也同其他的开源项目紧密合作,比如:高性能实时分析数据库 Apache Doris 和云原生数据基础设施管理平台 KubeBlocks。

  • Doris#19209 在这个 PR 中,知乎技术团队对 Doris 扩充图引擎 NebulaGraph,在多维分析和全文检索的基础上实现与图引擎的结合。
  • KubeBlocks#3944、 KubeBlocks#3981 两个 PR 完成 KubeBlocks 和 NebulaGraph 的集成,让更多的 K8s 爱好者们可以有更多的数据库部署选择。

感谢你对 NebulaGraph 的关注 (///▽///)

如果你有什么需求社区还未安排上,来和 星云小姐姐 说道说道。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69952037/viewspace-3004428/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
你好,这里是 NebulaGraph NebulaGraph 是一款性能高效、安全稳定的企业级原生分布式图数据库,其核心部分 100% 自主研发,拥有多项核心专利和技术认证,为用户带来全新的数据探索和管理体验。

注册时间:2019-10-28

  • 博文量
    179
  • 访问量
    144660