图数据库 gStore 1.0 版本正式发布

2022年10月1日,面向大规模知识图谱应用的原生图数据库系统gStore 最新的1.0版本正式上线发布。

gStore系统源于2011年北京大学邹磊教授在VLDB发表的论文:“gStore: Answering SPARQL Queries via Subgraph Matching”。北京大学邹磊教授团队十余年在坚持图数据管理领域不断原始学术创新的同时,带领团队深耕图数据库系统,坚持开源gStore图数据库系统的持续更新,感谢大家一直的关注和使用。发布地址:

gStore官网:http://www.gstore.cn/

GitHub:https://github.com/pkumod/gStore 

Gitee:https://gitee.com/PKUMOD/gStore  

欢迎大家的关注和使用

详细说明文档请访问:

http://www.gstore.cn/pcsite/index.html#/documentation

一、gStore1.0版本新增功能如下

1、支持用户自定义图分析算子函数

基于经典图分析算法对图数据进行分析一直是图数据库系统的重要功能,在gStore1.0版本中,我们新增了用户自定义图分析算法功能。用户可通过API接口或可视化管理平台gstore-workbench对自定义图分析算子函数进行管理,通过接口函数获取图数据的结点数、边数、任意给定结点的邻居等,以此为基本单元进行实现自定义的图分析算子函数,并支持动态编译和动态运行;该功能模块已在CCKS2022评测任务十五“基于图数据库的自定义图分析算法测评”中应用,并获得了参赛队伍的一致好评。

2、新增grpc网络接口服务

基于开源的库workflow实现的一个基于HTTP协议的高性能网络接口服务,进一步提高了接口服务的效率和稳定性,具体接口文档见下表所示(接口延续了gHttp接口参数,可无缝升级切换):

接口名称

含义

备注

build

构建图数据库

数据库文件需在服务器本地

check

心跳信号

检测ghttp心跳信号

load

加载图数据库

将数据库加载到内存中

unload

卸载图数据库

将数据库从内存中卸载

monitor

统计图数据库

统计指定数据库相关信息(如三元组数量等)

drop

删除图数据库

可以逻辑删除和物理删除

show

显示数据库列表

显示所有数据库列表

usermanage

用户管理

新增、删除、修改用户信息

showuser

显示所有用户列表

显示所有用户列表信息

userprivilegemanage

用户权限管理

新增、删除、修改用户权限信息

userpassword

修改用户密码

修改用户密码

backup

备份数据库

备份数据库信息

restore

还原数据库

还原数据库信息

query

查询数据库

包括查询、删除、插入

export

导出数据库

导出数据库为NT文件

login

登陆数据库

用于验证用户名和密码

begin

启动事务

事务启动,需要与tquery配合使用

tquery

查询数据库(带事务)

带事务模式的数据查询(仅限于insert和delete)

commit

提交事务

事务完成后提交事务

rollback

回滚事务

回滚事务到begin状态

txnlog

获取transaction的日志信息

以json返回transcation的日志信息

checkpoint

将数据写入磁盘

当对数据库进行了insert或delete操作后,需要手动执行checkpoint

testConnect

测试连接性

用于检测ghttp是否连接

getCoreVersion

获取gStore版本号

获取gStore版本号

batchInsert

批量插入数据

批量插入NT数据

batchRemove

批量删除数据

批量删除NT数据

shutdown

关闭ghttp服务

querylog

获取query的日志信息

以json返回query的日志信息

querylogdate

获取query日志的日期列表

查询已有query日志的日期列表

accesslog

获取API的访问日志

以json返回API的访问日志信息

accesslogdate

获取API日志的日期

查询已有API日志的日期列表

ipmanage

黑白名单管理

维护访问gstore的IP黑白名单

funquery

查询算子函数

分页获取自定义算子函数列表

funcudb

管理算子函数

算子函数的新增、修改、删除、编译

funreview

预览算子函数

在创建和更新时,可通过预览接口查看最后生成的算子函数源码

grpc与ghttp对比实验结果表明,grpc在并发访问性能方面有巨大提升,在2000/QPS情况下,无拒绝访问情况出现。

3、新增gconsole命令

长久以来,gStore主要是通过ghttp、grpc等实现远程访问,以及通过gquery、gbuild等本地指令进行本地操作,但是都是“短会话”模式,为此,在gStore1.0中我们重磅推出了gConsole模块,实现了“长会话”操作gStore。gconsole模块支持命令行模式下实现数据库的管理,目前支持的指令如下:

指令

含义

备注

help

帮助指令

打印帮助信息

quit

退出

同时支持快捷键CTRL+D

sparql

执行sparql语句文件

支持批量执行,多个文件用;分割

create

创建数据库

use

切换数据库

切换后将自动load数据,并把之前的当前库unload

drop

删除数据库

只能删除当前库以外的库

show

显示数据库信息

默认显示前10行三元组

showdbs

查看所有的数据库

仅显示当前用户有查询权限的数据库

backup

备份当前数据库

默认备份路径为./backups

restore

恢复数据库

export

导出当前数据库

pdb

显示当前数据库名

flushpriv

刷新权限

读取db刷新当前用户权限

pusr

显示当前用户名和权限

setpswd

修改当前用户密码

需要输入密码验证身份

setpriv

设置权限

需要验证密码验证root身份

addusr

新增用户

需要验证密码验证root身份

delusr

删除用户

需要验证密码验证root身份

showusers

查看所有用户

settings

查看配置

显示ini.conf的内容

version

查看版本

pwd

查看当前所在路径

clear

清屏

Ctrl+c

结束/取消当前命令

Ctrl+d

退出

二、gStore1.0版本优化功能如下

4、优化器与执行器分离

gStore1.0解耦了优化器和执行器,从原有的深度耦合的贪心策略,转化为基于动态规划的查询优化器和基于广度优先遍历的查询执行器。进一步地,gStore兼容针对topk查询的优化器以及对应的基于深度优先遍历的查询优化器。得益于优化器和执行器的解耦,用户可以针对自己的使用需求定制基于使用场景的查询优化策略,并选择合适的执行方式对优化策略进行执行,最终实现查询执行的高性能和高可用性。

5、优化top-k查询

我们在gStore中实现了基于DP-B算法的Top-K SPARQL处理框架,包括查询切分,子结果聚合等部分。之后在gStore查询中,对Top-K 查询将走另外的处理逻辑,实现了对传统Rank After Matching算法的替代,节省了查询过程中的内存占用且提升了查询执行效率。我们的实验结果证明Top-K优化的有效性,尤其是在结果数多的情况下有巨大提升。

6、支持ACID事务处理

gStore1.0通过引入多版本管理机制,可以对插入和删除操作启动事务机制,用户可以对事务进行开启、提交、回滚等操作,从而支持ACID事务处理。目前gStore1.0支持四个隔离等级:read-uncommitted(读未提交)、read-committed(读并提交)、repeatable read(可重复读)、serializable(可串行化)。

7、重构database内核,优化执行树生成逻辑

我们优化了 Database 模块的代码,重构了内核。此外,我们在新版 gStore 中,引入了两种连接操作(worst-case-optimal join 和 binary join)优化查询执行。优化器采用基于采样的基数估计器,搭配精心设计的代价模型,能够生成较好的将两种连接操作结合的执行计划,提升查询效率。

8、优化日志模块

基于log4cplus库,实现统一格式的系统日志输出,用户可配置日志输出的方式(控制台输出、文件输出),输出格式以及日志输出级别等。

9、新增内置高级函数

应广大用户要求,本次gStore1.0版本将新增四个高级函数,分别是三角形计数(triangleCounting),紧密中心度:(closenessCentrality),宽度优先遍历结点计数(bfsCount),所有K跳路径(kHopEnumeratePath)等算法,算法使用可以参考官网技术文档。

10、新增SPARQL函数支持

在1.0版本中,我们支持了在BIND语句中使用代数或逻辑表达式对变量赋值的功能。表达式中可以包含BIND语句之前出现过的其他变量,也可以调用SPARQL内建函数;被赋值的变量在BIND语句之后可与普通变量一样自由使用,为复杂查询提供了更便捷的书写方式。

11、优化接口,修复bug

如优化了bin/shutdown命令,无需再输入启动端口信息;修复了批量插入或删除数据库后,调用monitor接口统计信息不准确的bug等。

三、应用场景

gStore历史版本及生态产品已应用于金融、医疗、政府大数据、公安、纪检、智能问答等多个领域,在多个互联网和人工智能公司的图数据和知识图谱项目进行了部署,已产生了良好的社会和经济效益。 

gStore1.0 版本将继续在各领域发挥更加强劲作用,更好的支撑各领域业务场景和实际需要,产生更多价值和效益。此外,gStore系列产品已广泛适配鲲鹏、飞腾、海光、兆芯、麒麟、统信UOS等国产自主可控体系,积极打造图数据库中国芯。

面向大规模知识图谱应用的原生图数据库系统gStore的发展离不开众多开发者和使用者的支持以及研发团队的不断努力,希望在未来的道路上不断前行,打造功能更加完善、性能更加优异的自主可控国产图数据库。也期待更多同行者一同完善、发展gStore生态和实践。

欢迎大家的关注和使用


针对gStore有任何问题也可通过加运营同学微信,邀请加入gStore图谱社区咨询。

诚邀大家参加

·gStore-weekly技术文章征集活动·

  相关技术文章,包含但不限于以下内容:系统技术解析、案例分享、实践总结、开发心得、客户案例、使用技巧、学习笔记等。文章要求原创。

  入选周刊即送精美礼品~

 

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
评论

打赏作者

PKUMOD

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值