一种基于图数据库的分布式系统的制作方法

文档序号:23727245发布日期:2021-01-26 17:36阅读:79来源:国知局
一种基于图数据库的分布式系统的制作方法

[0001]
本发明涉及图数据库领域,具体的是一种基于图数据库的分布式系统。


背景技术:

[0002]
随着互联网时代的不断发展,全球因特网每秒钟都在产生海量的数据集,这些数据集往往具有非结构化、没有固定格式、数据之间关系复杂等特点。为了更高效地处理和分析这些数据,近些年来大数据技术、分布式计算、数据挖掘、ai等技术蓬勃发展。图数据库作为一种新型的专门为存储图数据而设计的数据库,能够很好适应这种数据应用场景。图数据可以以图的形式进行声明和定义的数据,所有可以被关系型数据库抽象和存储的数据都能被无障碍的转化为图数据。同时,图数据是以一个或数个点为起点,以边导向向外进行遍历操作,这种有规律的遍历具有非常好的数据临近性,这使得在遍历操作之前可以做一些预处理操作来加速遍历,在分布式场景下,图数据的这种特性也可以帮助提升查询性能。
[0003]
目前,图数据库的应用中存在下列问题:(1)现有的图数据库都是简单的在其它类型数据库存储引擎的基础上进行语义封装,不能在存储层就考虑到图数据的邻近性和关系查询,其性能得不到本质的提升;(2)现有的查询语言在对图数据查询的表达上有着先天不足,不具备基于图的思想来查询数据库的能力,不足以胜任图数据库的查询工作。


技术实现要素:

[0004]
为解决上述背景技术中提到的不足,本发明的目的在于提供一种基于图数据库的分布式系统,通过算子下推的方案较好地利用了图数据的邻近性来提高性能,同时也减少了存储层和计算层数据通信带来的性能开销,通过存储层和计算层分离的思路解决了分布式图数据可扩展性的问题,存储层则通过键值对结合哈希分区的思路解决了数据存储和分片的难题。
[0005]
本发明的目的可以通过以下技术方案实现:
[0006]
一种基于图数据库的分布式系统,包括客户端、数据库管理层、计算层、存储层、资源管理模块和数据导入层;
[0007]
客户端与数据库管理层交互,完成数据库登录鉴权流程,客户端与计算层互交,用于发送查询语句、接受查询结果元数据、根据元数据提取结果数据;
[0008]
数据库管理层用于提供数据库web gui操作接口,包括登录、查询、开关机、状态图形化展示,具备用户鉴权和负载均衡能力;
[0009]
计算层包括若干个分布式计算集群,分布式计算集群由查询控制节点和图查询节点组成,分布式计算集群用于查询请求的执行和调度以及数据库事务控制,计算层建立在存储层之上,对存储层提取的数据进行筛选、聚合、排序等后续处理,最后向客户端输出结果;
[0010]
存储层包括存储控制节点和图存储节点,存储控制节点负责管理分片规则、产生事务id和管理存储节点的运行状态,图存储节点承担图数据的存储、查询和更新操作;
[0011]
资源管理模块根据数据库管理层发来的命令在物理节点上启动对应的数据库进程;
[0012]
数据导入层用于将外部的数据源进行适配转化,然后形成适应存储层键值对存储形式的图数据。
[0013]
优选地,控制节点包括主查询控制节点和从查询控制节点,主查询控制节点用于用户会话管理、查询语句词法语法语义分析、逻辑执行计划的生成、物理执行计划的生成、查询语句执行状态更新、结果回报、图查询节点状态检测;从查询控制节点内部逻辑和主查询控制节点相同,当主控制节点离线时,从控制节点将会自动转化为主控制节点并接管整个集群;
[0014]
优选地,图查询节点负责接收从控制节点发来的算子执行命令,并且在本机调度执行算子,算子为计算层中调度和执行的基本单位,算子包括计算层查询算子、更新算子和存储层查询算子。
[0015]
优选地,计算层算子调度时将同一个算子的不同分片分布到不同的图查询节点上,将不同算子需要通信的分片部署在同一个图查询节点上,尽量减少算子间通信带来的图查询节点间的通信开销,同时每一个逻辑算子都会被切分为当前可用的最大查询节点的数目,在调度时,每一个切分后的物理算子都会被部署到对应的一个图查询节点上,最大程度利用当前集群中可利用的资源。
[0016]
优选地,计算层算子执行时指将本来在计算层执行的算子下放至存储层执行,以此减少计算层和存储层之间的通信开销,减少存储层和计算层之间反复传递不必要消息带来的资源空耗问题和查询时延,进行下放的算子包括filter算子和expand算子。
[0017]
优选地,图存储节点包括本地kv存储层、分布式kv层、多版本控制层、事务层和图语义层;
[0018]
本地kv存储层采用键值对存储,为上层提供基于磁盘的键值对存储和查询能力;
[0019]
分布式kv层设置在本地kv存储层上层,在单机键值对存储的基础上提供分布式键值对存储的能力,分布式kv层将整个哈希空间通过partitionld将分为多个分区,并且为每一个分区创建相应的副本,同一个分区的若干副本通过raft协议保持一致;
[0020]
多版本控制层用于支撑上层事务层的实现,当多个事务同时操作一个键值对时,由多版本控制层根据事务层提供的事务id为键值对生成多个版本进行并发访问,事务完成后,多版本控制成需要负责将多个版本的改动回写;
[0021]
事务层主要负责事务之间的并发顺序,保证一个事务内的多个键值对读写必须满足某种指定的一致性需求;
[0022]
图语义层位于图存储节点最上层,用于执行下推的算子。
[0023]
本发明的有益效果:
[0024]
本发明基于图数据库分布式系统通过算子下推的方案较好地利用了图数据的邻近性来提高性能,同时也减少了存储层和计算层数据通信带来的性能开销,通过存储层和计算层分离的思路解决了分布式图数据可扩展性的问题,存储层则通过键值对结合哈希分区的思路解决了数据存储和分片的难题。
附图说明
[0025]
下面结合附图对本发明作进一步的说明。
[0026]
图1是本发明基于图数据库分布式系统的整体框架图;
[0027]
图2是本发明基于图数据库分布式系统分布式计算集群的框架图;
[0028]
图3是本发明基于图数据库分布式系统存储层的框架图。
具体实施方式
[0029]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0030]
在本发明的描述中,需要理解的是,术语“开孔”、“上”、“下”、“厚度”、“顶”、“中”、“长度”、“内”、“四周”等指示方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的组件或元件必须具有特定的方位,以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0031]
如图1-3所示,一种基于图数据库的分布式系统,包括客户端、数据库管理层、计算层、存储层、资源管理模块和数据导入层;
[0032]
客户端与数据库管理层交互,完成数据库登录鉴权流程,客户端与计算层互交,用于发送查询语句、接受查询结果元数据、根据元数据提取结果数据;
[0033]
数据库管理层用于提供数据库web gui操作接口,包括登录、查询、开关机、状态图形化展示,具备用户鉴权和负载均衡能力;
[0034]
计算层包括若干个分布式计算集群,分布式计算集群由查询控制节点和图查询节点组成,分布式计算集群用于查询请求的执行和调度以及数据库事务控制,计算层建立在存储层之上,对存储层提取的数据进行筛选、聚合、排序等后续处理,最后向客户端输出结果;
[0035]
存储层包括存储控制节点和图存储节点,存储控制节点负责管理分片规则、产生事务id和管理存储节点的运行状态,图存储节点承担图数据的存储、查询和更新操作;
[0036]
资源管理模块根据数据库管理层发来的命令在物理节点上启动对应的数据库进程;
[0037]
数据导入层用于将外部的数据源进行适配转化,然后形成适应存储层键值对存储形式的图数据。
[0038]
控制节点包括主查询控制节点和从查询控制节点,主查询控制节点用于用户会话管理、查询语句词法语法语义分析、逻辑执行计划的生成、物理执行计划的生成、查询语句执行状态更新、结果回报、图查询节点状态检测;从查询控制节点内部逻辑和主查询控制节点相同,当主控制节点离线时,从控制节点将会自动转化为主控制节点并接管整个集群;
[0039]
图查询节点负责接收从控制节点发来的算子执行命令,并且在本机调度执行算子,算子为计算层中调度和执行的基本单位,算子包括计算层查询算子、更新算子和存储层查询算子。
[0040]
计算层算子调度时将同一个算子的不同分片分布到不同的图查询节点上,将不同
算子需要通信的分片部署在同一个图查询节点上,尽量减少算子间通信带来的图查询节点间的通信开销,同时每一个逻辑算子都会被切分为当前可用的最大查询节点的数目,在调度时,每一个切分后的物理算子都会被部署到对应的一个图查询节点上,最大程度利用当前集群中可利用的资源。
[0041]
计算层算子执行时指将本来在计算层执行的算子下放至存储层执行,以此减少计算层和存储层之间的通信开销,减少存储层和计算层之间反复传递不必要消息带来的资源空耗问题和查询时延,进行下放的算子包括filter算子和expand算子。
[0042]
图存储节点包括本地kv存储层、分布式kv层、多版本控制层、事务层和图语义层;
[0043]
本地kv存储层采用键值对存储,为上层提供基于磁盘的键值对存储和查询能力;
[0044]
分布式kv层设置在本地kv存储层上层,在单机键值对存储的基础上提供分布式键值对存储的能力,分布式kv层将整个哈希空间通过partitionld将分为多个分区,并且为每一个分区创建相应的副本,同一个分区的若干副本通过raft协议保持一致;
[0045]
多版本控制层用于支撑上层事务层的实现,当多个事务同时操作一个键值对时,由多版本控制层根据事务层提供的事务id为键值对生成多个版本进行并发访问,事务完成后,多版本控制成需要负责将多个版本的改动回写;
[0046]
事务层主要负责事务之间的并发顺序,保证一个事务内的多个键值对读写必须满足某种指定的一致性需求;
[0047]
图语义层位于图存储节点最上层,用于执行下推的算子。
[0048]
在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0049]
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1