回顾 2023,NebulaGraph 的这一年的变化
一年又过去了,感谢你和 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 年新晋周边工具
除了官方出品的周边工具之外,在 nebula-contrib 组织下收录了大量社区用户贡献的实用工具。而今年,这个组织下又有了新动态:
- 2 月新增 10s 拉起 NebulaGraph Docker 服务的 nebulagraph-docker-ext:https://github.com/nebula-contrib/nebulagraph-docker-ext
- 4 月新增支持 GraphQL 查询的 NebulaGraphQL:https://github.com/nebula-contrib/NebulaGraphQL、将查询结果转为 JSON 格式的 NebulaResultSetBoot:https://github.com/nebula-contrib/NebulaResultSetBoot
- 9 月新增 Scala 客户端 zio-nebula:https://github.com/nebula-contrib/zio-nebula
- 10 月新增可用来做容器化测试的 testcontainers-nebula:https://github.com/nebula-contrib/testcontainers-nebula、基于 Plato 实现 PersonalizedPageRank、TrustRank、BeliefPropagation 三个图算法的 analytics:https://github.com/nebula-contrib/analytics、NebulaGraph Operator 的 CLI 工具 operator-cli:https://github.com/nebula-contrib/operator-cli、采用游戏引擎 CoCos 实现的可视化图探索工具 graph-player:https://github.com/nebula-contrib/graph-player
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 的关注 (///▽///)
如果你有什么需求社区还未安排上,来和星云小姐姐 说道说道。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
奔图加入 openKylin,助力社区打印生态建设
近日,珠海奔图电子有限公司(以下简称“奔图”)签署了openKylin社区 CLA(Contributor License Agreement 贡献者许可协议),正式加入openKylin开源社区。 奔图是一家掌握打印机核心技术和自主知识产权,集研发、设计、生产、销售打印机、耗材及文印输出解决方案为一体的中国打印企业。所属的纳思达集团位列中国上市公司500强,年产值超过200亿元。 2010年第一台奔图打印机在中国人民大会堂成功发布,至今已全面构建“关键零部件—打印机—打印管理服务”一体化的全产业链布局,完成了从A4到A3、黑白到彩色、单功能到多功能、硬件到解决方案全产品线覆盖,销售网络遍及全球100多个国家及地区。 加入openKylin社区后,奔图将利用在打印领域的优势,积极推动和社区版本的生态适配及优化,积极参加社区活动和技术方面的交流,共同建设社区打印生态,提升用户使用满意度,为打造中国领先的开源操作系统根社区贡献自己的力量。
- 下一篇
IntelliJ IDEA 2024.1 EAP 1 发布
IntelliJ IDEA 2024.1 EAP 1 版本现已发布,具体更新内容如下: Java 支持 Java 22 功能 IntelliJ IDEA 2024.1 EAP 1 为定于 2024 年 3 月发布的 JDK 22 中的功能集提供支持。这包括对未命名变量和模式的最终迭代、字符串模板和隐式声明类的第二次预览以及实例main方法的支持。 此外,本次更新还引入了对预览状态下super(...)之前的新语句的支持。 Kotlin IntelliJ IDEA 的 K2 Kotlin Mode 现已进入 Alpha 阶段 通过新的 K2 模式,IntelliJ IDEA 现在可以使用嵌入式 K2 Kotlin 编译器来分析 Kotlin 代码。K2 Kotlin 编译器正在从头开始重写,因此项目团队也迁移了 IntelliJ IDEA 中的 Kotlin 代码支持。代码高亮和代码自动补全的性能和稳定性得到了显著提高,但尚未支持所有 IDE 功能。 此模式下已提供以下功能: 基本 IDE 功能,如代码导航、代码突出显示、代码补全和 Find Usages,以及调试器、格式化程序和导入优...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19