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

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

一年又过去了,感谢你和 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#3944KubeBlocks#3981 两个 PR 完成 KubeBlocks 和 NebulaGraph 的集成,让更多的 K8s 爱好者们可以有更多的数据库部署选择。

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

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

目录
相关文章
|
3月前
|
人工智能 弹性计算 编解码
阿里云gpu云服务器介绍:产品功能、收费标准、应用场景及最新活动价格参考
GPU云服务器提供了GPU加速计算能力,实现GPU计算资源的即开即用和弹性伸缩。作为阿里云弹性计算家族的一员,其结合了GPU计算力与CPU计算力,满足您在人工智能、高性能计算、专业图形图像处理等场景中的需求,例如,在并行运算方面,使用GPU云服务器可显著提高计算效率。本文为大家介绍gpu云服务器的产品功能和收费标准以及最新活动价格情况。
|
Arthas 监控 Java
|
机器学习/深度学习 人工智能 自然语言处理
卷积神经网络(CNN):视觉识别的革命先锋
卷积神经网络(CNN)作为人工智能领域的一颗璀璨明珠,在计算机视觉中发挥着核心作用。CNN的发展历程展现了从生物学灵感到技术创新的转变,历经LeNet-5至AlexNet、VGGNet、ResNet等里程碑式的进步。其独特结构包括卷积层、池化层及全连接层,能够层层递进地提取特征并作出决策。CNN不仅在图像分类、目标检测等领域表现卓越,还在人脸识别、医学影像分析等方面展现出巨大潜力。尽管存在局限性,如对序列数据处理能力有限及解释性问题,但通过引入注意力机制、自监督学习等方法,CNN将持续演进,引领人工智能技术走向更加精彩的未来。
1198 2
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的新闻管理系统源码+运行
基于Python+Vue开发的新闻管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的新闻管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
273 5
|
JavaScript 开发工具 git
使用webstorm来创建并且运行vue项目详细教程
使用webstorm来创建并且运行vue项目详细教程
2071 0
|
网络协议 数据可视化 网络安全
firewalld 详细介绍配置(二)
【8月更文挑战第10天】配置`firewalld`涉及安装、启动与管理防火墙规则。首先通过`yum install firewalld`安装,然后使用`systemctl`命令进行启动、停止及禁用服务。`firewall-cmd`命令用于管理防火墙状态、查看版本与帮助信息、设置默认区域及接口所属区域。可通过添加或移除端口和服务来控制网络流量,并利用丰富规则进行更细粒度的控制。此外,`firewalld`支持动态规则更新,无需重启服务即可生效。可以通过配置文件持久化规则设置,适用于长期维护场景。
740 3
|
机器学习/深度学习 PyTorch API
|
编解码 测试技术 API
模拟手机设备:使用 Playwright 实现移动端自动化测试
本文介绍了使用Python的Playwright库进行移动设备模拟和自动化测试的方法。通过Playwright,开发者能模拟不同设备的硬件和软件特性,如屏幕尺寸、用户代理,以确保网站在移动设备上的表现。示例代码展示了如何模拟iPhone X并访问网站,之后可在此基础上编写测试代码以检验响应式布局和交互功能。Playwright的设备参数注册表支持多种设备,简化了移动端自动化测试的流程。
|
机器学习/深度学习 计算机视觉
【YOLOv8改进】CAFM(Convolution and Attention Fusion Module):卷积和注意力融合模块
**HCANet: 高光谱图像去噪新方法** HCANet是一种结合CNN与Transformer的深度学习模型,专为高光谱图像设计。它使用卷积注意力融合模块(CAFM)捕捉局部和全局特征,并通过多尺度前馈网络(MSFN)增强多尺度信息聚合,提升去噪效果。CAFM包含卷积和注意力分支,整合局部细节与长距离依赖。代码已开源:[GitHub](https://github.com/summitgao/HCANet)。
QGS
|
前端开发 Java easyexcel
Springboot3+EasyExcel由浅入深
Springboot3+EasyExcel由浅入深
QGS
756 1