CN115033722B - 一种加速图数据库数据查询的方法、系统、装置和介质 - Google Patents
一种加速图数据库数据查询的方法、系统、装置和介质 Download PDFInfo
- Publication number
- CN115033722B CN115033722B CN202210957310.7A CN202210957310A CN115033722B CN 115033722 B CN115033722 B CN 115033722B CN 202210957310 A CN202210957310 A CN 202210957310A CN 115033722 B CN115033722 B CN 115033722B
- Authority
- CN
- China
- Prior art keywords
- graph
- data
- nodes
- query
- topology
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/53—Querying
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种加速图数据库数据查询的方法、系统、装置和介质,其中,该方法包括:通过在图数据库中引入拓扑节点;当图数据写入到图数据库中的存储节点后,将图数据同步到拓扑节点;通过拓扑节点存储图数据的图拓扑关系;通过计算节点接收客户端发送的查询请求,基于拓扑节点中存储的图拓扑关系完成查询请求,将对应的查询结果返回客户端,通过本申请,解决了图数据库中数据查询存在着效率低和网络请求开销大的问题,减少了在计算节点和存储节点的来回传输中计算结果的序列化及反序列化开销,以及网络请求的开销,同时也极大降低查询所需的内存开销,提升了查询的性能。
Description
技术领域
本申请涉及图数据库技术领域,特别是涉及一种加速图数据库数据查询的方法、系统、装置和介质。
背景技术
图数据库的主要应用场景之一就是多跳查询,目前基于key-value实现的图数据往往采用切边的图存储形式,导致在图遍历时候普遍采用广度优先遍历(BFS)的算法。在遍历过程中通常都会使用GAS (gather-apply-scatter)模型,导致一个图多跳查询在计算节点需要多次向不同存储节点进行请求的分发,以及汇总从存储节点查询到的数据。整个过程中涉及多次的网络请求、序列化、内存额外消耗等一系列开销导致多跳查询不高。
目前针对相关技术中图数据库中数据查询存在着效率低和网络请求开销大的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种加速图数据库数据查询的方法、系统、装置和介质,以至少解决相关技术中图数据库中数据查询存在着效率低和网络请求开销大的问题。
第一方面,本申请实施例提供了一种加速图数据库数据查询的方法,所述方法包括:
在图数据库中引入拓扑节点;
当图数据写入到所述图数据库中的存储节点后,将所述图数据同步到所述拓扑节点;
通过所述拓扑节点存储所述图数据的图拓扑关系;
通过计算节点接收客户端发送的查询请求,基于所述拓扑节点中存储的图拓扑关系完成所述查询请求,将对应的查询结果返回所述客户端。
在其中一些实施例中,在图数据库中引入拓扑节点包括:
将图数据库中的图数据按预设分片方式,分成若干数据分片,其中,在每个数据分片中有多个存储节点保存相同的图数据,基于Raft协议保证同一数据分片中各个存储节点数据一致;
将拓扑节点以learner身份加入图数据库中存储节点的各Raft 组中。
在其中一些实施例中,当图数据写入到所述图数据库中的存储节点后,将所述图数据同步到所述拓扑节点包括:
当图数据写入到所述图数据库中的存储节点后,通过Raft协议将所述图数据异步传输到所述拓扑节点。
在其中一些实施例中,通过所述拓扑节点存储所述图数据的图拓扑关系包括:
当所述拓扑节点接收到图数据后,从所述图数据中筛选出表示图拓扑关系的key值并进行存储,不存储表示属性数据的value值。
在其中一些实施例中,所述图数据库中图数据的存储格式为key-value格式,其中,所述key值表示图数据的图拓扑关系,所述value值表示图数据的属性数据。
在其中一些实施例中,当图数据写入到所述图数据库中的存储节点后,通过Raft协议将所述图数据异步传输到所述拓扑节点包括:
同一Raft组中存在不同身份的存储节点,当图数据写入所述图数据库中leader身份的存储节点,基于Raft协议通过所述leader身份的存储节点,将图数据异步传输到follower身份的存储节点和learner身份的拓扑节点。
在其中一些实施例中,所述预设分片方式包括哈希分片和范围分片。
第二方面,本申请实施例提供了一种加速图数据库数据查询的系统,所述系统包括创建模块、存储模块和查询模块;
所述创建模块,用于在图数据库中引入拓扑节点;
所述存储模块,用于当图数据写入到所述图数据库中的存储节点后,将所述图数据同步到所述拓扑节点;通过所述拓扑节点存储所述图数据的图拓扑关系;
所述查询模块,用于通过计算节点接收客户端发送的查询请求,基于所述拓扑节点中存储的图拓扑关系完成所述查询请求,将对应的查询结果返回所述客户端。
第三方面,本申请实施例提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的加速图数据库数据查询的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的加速图数据库数据查询的方法。
相比于相关技术,本申请实施例提供的一种加速图数据库数据查询的方法、系统、装置和介质,通过在图数据库中引入拓扑节点;当图数据写入到图数据库中的存储节点后,将图数据同步到拓扑节点;通过拓扑节点存储图数据的图拓扑关系;通过计算节点接收客户端发送的查询请求,基于拓扑节点中存储的图拓扑关系完成查询请求,将对应的查询结果返回客户端,解决了图数据库中数据查询存在着效率低和网络请求开销大的问题,减少了在计算节点和存储节点的来回传输中计算结果的序列化及反序列化开销,以及网络请求的开销,同时也极大降低查询所需的内存开销,提升了查询的性能。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据相关技术中基于图数据库实现数据查询的示意图;
图2是根据本申请实施例的加速图数据库数据查询方法的步骤流程图;
图3是根据本申请实施例的引入拓扑节点的示意图;
图4是根据本申请实施例的基于拓扑节点加速数据查询的流程示意图;
图5是根据本申请实施例测试场景一下的改进前后查询效率对比的示意图;
图6是根据本申请实施例测试场景二下的改进前后查询效率对比的示意图;
图7是根据本申请实施例的加速图数据库数据查询系统的结构框图;
图8是根据本申请实施例的电子设备的内部结构示意图。
附图说明:71、创建模块;72、存储模块;73、查询模块。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
在相关技术中,图1是根据相关技术中基于图数据库实现数据查询的示意图,如图1所示,该图数据库在架构上整体分为三类节点:metad作为元数据管理节点负责保存集群的元信息,graphd作为计算节点负责接收和响应用户的查询请求,storaged作为存储节点负责存储图数据。
由于图数据规模十分庞大,因此在一个集群中往往需要多个存储节点来保存数据。一种常见的存储形式是:某个点的数据和这个点的所有边存在同一个存储节点。一个数据查询(如多跳查询)需要在计算节点和存储节点之间交互多次。
以三跳查询为例(查某个人好友的好友的好友),如图1所示,整个步骤流程如下:
步骤1,计算节点(graphd)接收到客户端发送的请求,根据这个人的id(记为A)确定数据所在的存储节点,并向其发出查询A的所有好友的请求(图1中的hop1)
步骤2,计算节点收到hop1(单跳查询1)对应的存储节点的响应之后,获知A的所有好友,记为B1, B2, …, Bn
步骤3,计算节点根据B1, B2, …, Bn分别确定各自数据所在的存储节点,并向对应的存储节点发出查询Bi (1 <= i <= n)的好友的请求(图1中的hop2)
步骤4,计算节点收到所有hop2(单跳查询2)对应的存储节点的响应之后,也就获知了所有B1, B2, …, Bn的好友,即A的好友的好友,记为C1, C2, … Cm
步骤5,计算节点根据C1, C2, …, Cm分别确定各自数据所在的存储节点,并向对应的存储节点发出查询Cj (1 <= j <= m)的好友的请求(图1中的hop3)
步骤6,计算节点收到所有hop3(单跳查询3) 对应的存储节点的响应之后,也就获知了所有C1, C2, …, Cm的好友,即A的好友的好友的好友,此时计算节点会将结果返回给客户端。
上述相关技术中的图数据库实现数据查询的方式,属于典型的广度优先遍历。申请人经研究发现,在此类遍历查询过程中,需要在计算节点和存储节点之间进行多次交互,其中会引入额外的网络通信、序列化和内存占用等开销,导致整体查询效率不高。
因此,本申请提出一种加速图数据库数据查询的方法、系统、装置和介质,以解决相关技术中,计算节点和存储节点的多次交互带来的网络开销问题,多次交互带来的数据序列化和内存占用开销问题,以及导致的整体查询效率低的问题。
本申请实施例提供了一种加速图数据库数据查询的方法,图2是根据本申请实施例的加速图数据库数据查询方法的步骤流程图,如图2所示,该方法包括以下步骤:
步骤S202,在图数据库中引入拓扑节点;
具体地,将图数据库中的图数据按预设分片方式,分成若干数据分片,其中,在每个数据分片中有多个存储节点保存相同的图数据,基于Raft协议保证同一数据分片中各个存储节点数据一致;将拓扑节点以learner身份加入图数据库中存储节点的各Raft 组中。
需要说明的是,由于数据量较大,一般图数据库都会将整个图数据按预设分片方式进行分片(如哈希分片,范围分片等)。图3是根据本申请实施例的引入拓扑节点的示意图,如图3所示,将图数据分成了不相关的n个数据分片,分别由Part-1到Part-n保存,将n组数据合在一起即为完整数据。
数据分片(Partition)为图数据库(如Nebula Graph)的物理存储分区,一个完整的图数据可以有多个数据分片,每个数据分片拥有若干不同身份的副本,如领导者(leader)、跟随者(follower)和学习者(learner),并一一分布在对应存储节点上,而且数据分片也与Raft组一一对应,通过Raft分布式协议保证数据分片(Raft组)中各个存储节点(副本)的一致性,拓扑节点TopoListener以learner身份加入到所有Partition对应的各Raft 组中。
进一步地,Raft分布式协议(简称Raft协议)是一种去中心化的、高可用的共识算法。Raft协议中的leader可读可写;follower当前只读;learner与follower一样,但不能参与leader的投票选举。
步骤S204,当图数据写入到图数据库中的存储节点后,将图数据同步到拓扑节点;
具体地,当图数据写入到图数据库中的存储节点后,通过Raft协议将图数据异步传输到拓扑节点。
需要说明的是,如步骤S202中所述的,同一Raft组中存在不同身份的存储节点,同一个数据分片(Partition)内所有读写会通过leader身份的存储节点来完成,并通过Raft协议同步给follower身份的存储节点,通过以上机制即便有少数存储节点宕机,也能够保证整个集群对外服务。
拓扑节点TopoListener以learner身份加入了所有Partition对应的各Raft 组中,因此所有写入leader身份的存储节点的数据,也会基于Raft协议异步地同步到拓扑节点TopoListerner,满足最终的数据一致性。
步骤S206,通过拓扑节点存储图数据的图拓扑关系;
具体地,图数据库中图数据的存储格式为key-value格式,其中,key值表示图数据的图拓扑关系,value值表示图数据的属性数据。当拓扑节点接收到图数据后,从图数据中筛选出表示图拓扑关系的key值并进行存储,不存储表示属性数据的value值。
进一步地,图数据库中图数据的存储格式除了key-value格式外,还有链表格式、数组格式等等。同理,若是链表格式、数组格式,拓扑节点在接收到图数据后,同样从图数据中筛选出表示图拓扑关系的值并进行存储,在此对图数据的存储格式不作限定。
需要说明的是,图数据库中图数据的存储格式为key-value格式,其中,基于key-value的图数据一般使用key值来保存图的拓扑关系,而value值用来保存图数据(点和边)的各种属性数据。在value上保存的属性数据在存储空间上占图数据中的绝大多数,而一个千亿点、万亿边级别的图拓扑关系在单个节点上就能够满足存储需求。换而言之,如果能将整张图的图拓扑关系都能够保存到一个节点上,就能避免相关技术中数据查询带来的额外开销。拓扑节点TopoListener在接收到写入的图数据之后,丢弃存储在value中的点边属性数据,只保存图拓扑关系,实现了在一个节点上将图拓扑关系汇总和存储的效果。
步骤S208,通过计算节点接收客户端发送的查询请求,基于拓扑节点中存储的图拓扑关系完成查询请求,将对应的查询结果返回客户端。
优选地,由于所有图拓扑关系除了在存储节点保存,在拓扑节点TopoListener也有保存,数据查询(如多跳查询)的流程得以简化。图4是根据本申请实施例的基于拓扑节点加速数据查询的流程示意图,如图4所示,以查询某个人好友的好友的好友(三跳查询)为例,整个流程步骤如下:
步骤一,计算节点接收到客户端发送的请求,然后向TopoListener发出请求,查询这个人的id(记为A)三度好友(图4中的Hop <= 3)
步骤二,拓扑节点TopoListener收到请求,由于其内部保存了所有的拓扑关系,所以能够直接进行三跳查询,得到A的三度好友并返回给计算节点
步骤三,计算节点将拓扑节点TopoListener的相应返回给客户端
由此可见,由于所有图拓扑关系汇集到了拓扑节点TopoListener,在多跳查询的场景下不再需要计算节点在每一跳查询进行请求分发和响应汇总,减少了网络请求的开销、在计算节点和存储节点之间来回传输中间计算结果的序列化及反序列化开销,也能够极大降低多跳查询所需的内存开销,提升了多跳查询的性能。
通过本申请实施例中的步骤S202至步骤S208,解决了图数据库中数据查询存在着效率低和网络请求开销大的问题,减少了在计算节点和存储节点的来回传输中计算结果的序列化及反序列化开销,以及网络请求的开销,同时也极大降低查询所需的内存开销,提升了查询的性能。
构建测试环境,对上述基于步骤S202至步骤S208的一种加速图数据库数据查询的方法进行测试,具体环境条件如下:
CPU:56核 Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz
内存:256G
磁盘:SSD
单机部署:1 graphd + 1 storaged + 1 TopoListener
数据集:ldbc_snb_sf10
测试场景一:多跳查询,并返回终点的ID。图5是根据本申请实施例测试场景一下的改进前后查询效率对比的示意图,如图5所示,在10万+数据量、3跳查询条件下,current(当前,基于步骤S202至步骤S208的方法)相较于previous(先前,相关技术的方法)延迟降低了5.6倍;且在100万+数据量、5跳查询条件下,在600万+数据量、5跳查询条件下,其延迟都降低了至少5倍。
测试场景二:多跳查询,只返回结果个数。图6是根据本申请实施例测试场景二下的改进前后查询效率对比的示意图,如图6所示,在10万+数据量、3跳查询条件下,current(当前,基于步骤S202至步骤S208的方法)相较于previous(先前,相关技术的方法)延迟降低了17.9倍;且在100万+数据量、5跳查询条件下,在600万+数据量、5跳查询条件下,其延迟都降低了至少10倍。
因此,通过增加拓扑节点TopoListener,能够解决相关技术中,基于广度优先遍历的多跳查询引入的额外开销,能够在单个节点内就完成多跳查询,极大提升了查询性能。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例提供了一种加速图数据库数据查询的系统,图7是根据本申请实施例的加速图数据库数据查询系统的结构框图,如图7所示,该系统包括创建模块71、存储模块72和查询模块73。
创建模块71,用于在图数据库中引入拓扑节点;
存储模块72,用于当图数据写入到图数据库中的存储节点后,将图数据同步到拓扑节点;通过拓扑节点存储图数据的图拓扑关系;
查询模块73,用于通过计算节点接收客户端发送的查询请求,基于拓扑节点中存储的图拓扑关系完成查询请求,将对应的查询结果返回客户端。
通过本申请实施例中的创建模块71、存储模块72和查询模块73,解决了图数据库中数据查询存在着效率低和网络请求开销大的问题,减少了在计算节点和存储节点的来回传输中计算结果的序列化及反序列化开销,以及网络请求的开销,同时也极大降低查询所需的内存开销,提升了查询的性能。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
另外,结合上述实施例中的加速图数据库数据查询的方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种加速图数据库数据查询的方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种加速图数据库数据查询的方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,图8是根据本申请实施例的电子设备的内部结构示意图,如图8所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图8所示。该电子设备包括通过内部总线连接的处理器、网络接口、内存储器和非易失性存储器,其中,该非易失性存储器存储有操作系统、计算机程序和数据库。处理器用于提供计算和控制能力,网络接口用于与外部的终端通过网络连接通信,内存储器用于为操作系统和计算机程序的运行提供环境,计算机程序被处理器执行时以实现一种加速图数据库数据查询的方法,数据库用于存储数据。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种加速图数据库数据查询的方法,其特征在于,所述方法包括:
将图数据库中的图数据按预设分片方式,分成若干数据分片,其中,在每个数据分片中有多个存储节点保存相同的图数据,基于Raft协议保证同一数据分片中各个存储节点数据一致;
将拓扑节点以learner身份加入图数据库中存储节点的各Raft组中;
当图数据写入到所述图数据库中的存储节点后,将所述图数据同步到所述拓扑节点;
通过所述拓扑节点存储所述图数据的图拓扑关系;
通过计算节点接收客户端发送的查询请求,基于所述拓扑节点中存储的图拓扑关系完成所述查询请求,将对应的查询结果返回所述客户端。
2.根据权利要求1所述的方法,其特征在于,当图数据写入到所述图数据库中的存储节点后,将所述图数据同步到所述拓扑节点包括:
当图数据写入到所述图数据库中的存储节点后,通过Raft协议将所述图数据异步传输到所述拓扑节点。
3.根据权利要求1所述的方法,其特征在于,通过所述拓扑节点存储所述图数据的图拓扑关系包括:
当所述拓扑节点接收到图数据后,从所述图数据中筛选出表示图拓扑关系的key值并进行存储,不存储表示属性数据的value值。
4.根据权利要求1所述的方法,其特征在于,所述图数据库中图数据的存储格式为key-value格式,其中,所述key值表示图数据的图拓扑关系,所述value值表示图数据的属性数据。
5.根据权利要求2所述的方法,其特征在于,当图数据写入到所述图数据库中的存储节点后,通过Raft协议将所述图数据异步传输到所述拓扑节点包括:
同一Raft组中存在不同身份的存储节点,当图数据写入所述图数据库中leader身份的存储节点,基于Raft协议通过所述leader身份的存储节点,将图数据异步传输到follower身份的存储节点和learner身份的拓扑节点。
6.根据权利要求1所述的方法,其特征在于,所述预设分片方式包括哈希分片和范围分片。
7. 一种加速图数据库数据查询的系统,其特征在于,所述系统包括创建模块、存储模块和查询模块;
所述创建模块,用于将图数据库中的图数据按预设分片方式,分成若干数据分片,其中,在每个数据分片中有多个存储节点保存相同的图数据,基于Raft协议保证同一数据分片中各个存储节点数据一致;将拓扑节点以learner身份加入图数据库中存储节点的各Raft组中
所述存储模块,用于当图数据写入到所述图数据库中的存储节点后,将所述图数据同步到所述拓扑节点;通过所述拓扑节点存储所述图数据的图拓扑关系;
所述查询模块,用于通过计算节点接收客户端发送的查询请求,基于所述拓扑节点中存储的图拓扑关系完成所述查询请求,将对应的查询结果返回所述客户端。
8.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至6中任一项所述的加速图数据库数据查询的方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至6中任一项所述的加速图数据库数据查询的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210957310.7A CN115033722B (zh) | 2022-08-10 | 2022-08-10 | 一种加速图数据库数据查询的方法、系统、装置和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210957310.7A CN115033722B (zh) | 2022-08-10 | 2022-08-10 | 一种加速图数据库数据查询的方法、系统、装置和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115033722A CN115033722A (zh) | 2022-09-09 |
CN115033722B true CN115033722B (zh) | 2022-10-28 |
Family
ID=83131039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210957310.7A Active CN115033722B (zh) | 2022-08-10 | 2022-08-10 | 一种加速图数据库数据查询的方法、系统、装置和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115033722B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115248826B (zh) * | 2022-09-21 | 2023-04-11 | 杭州悦数科技有限公司 | 一种大规模分布式图数据库集群运维管理的方法和系统 |
CN115941786A (zh) * | 2022-11-23 | 2023-04-07 | 金篆信科有限责任公司 | 数据库中的数据包传输方法、装置、设备及介质 |
CN115658329B (zh) * | 2022-12-22 | 2023-03-17 | 杭州欧若数网科技有限公司 | 一种图数据结构的内存优化方法、系统和介质 |
CN116821155A (zh) * | 2023-06-27 | 2023-09-29 | 上海螣龙科技有限公司 | 一种网络资产数据存储和查询方法、装置及存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7701877B1 (en) * | 2006-09-28 | 2010-04-20 | Emc Corporation | Methods and apparatus for representing and querying storage area network (SAN) topology |
US10380186B2 (en) * | 2010-05-26 | 2019-08-13 | Entit Software Llc | Virtual topological queries |
CN109255055B (zh) * | 2018-08-06 | 2020-10-30 | 四川蜀天梦图数据科技有限公司 | 一种基于分组关联表的图数据存取方法和装置 |
CN113961730A (zh) * | 2021-10-18 | 2022-01-21 | 北京明略昭辉科技有限公司 | 图数据查询方法、系统、计算机设备和可读存储介质 |
CN114138776A (zh) * | 2021-11-01 | 2022-03-04 | 杭州欧若数网科技有限公司 | 图结构和图属性分离设计的方法、系统、装置和介质 |
CN114443908A (zh) * | 2022-01-07 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 图数据库构建方法、系统、终端及存储介质 |
CN114329096A (zh) * | 2022-03-03 | 2022-04-12 | 深圳市一号互联科技有限公司 | 一种原生图数据库处理方法及系统 |
CN114880504B (zh) * | 2022-07-08 | 2023-03-31 | 支付宝(杭州)信息技术有限公司 | 一种图数据的查询方法、装置以及设备 |
-
2022
- 2022-08-10 CN CN202210957310.7A patent/CN115033722B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115033722A (zh) | 2022-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115033722B (zh) | 一种加速图数据库数据查询的方法、系统、装置和介质 | |
CN112287182A (zh) | 图数据存储、处理方法、装置及计算机存储介质 | |
CN111522874B (zh) | 区块链共识方法、装置、计算机设备和存储介质 | |
CN111338806B (zh) | 一种业务控制方法及装置 | |
CN111723148A (zh) | 数据存储方法及装置、存储介质、电子装置 | |
CN114443908A (zh) | 图数据库构建方法、系统、终端及存储介质 | |
CN113254527B (zh) | 分布式存储图数据的优化方法、电子装置和存储介质 | |
CN116108238B (zh) | 一种图数据库中多跳查询的优化方法、系统和装置 | |
CN114661818B (zh) | 图数据库中集群间数据实时同步的方法、系统和介质 | |
CN111428114A (zh) | Elasticsearch搜索引擎的索引创建方法及装置 | |
CN115510161A (zh) | 数据同步方法、装置、设备及存储介质 | |
CN116303789A (zh) | 多分片多副本数据库并行同步方法、装置及可读介质 | |
CN111046004A (zh) | 一种数据文件存储方法、装置、设备及存储介质 | |
CN112395282A (zh) | 一种图重构方法及装置 | |
CN115544172A (zh) | 一种一主多从的集群间数据实时同步的方法和系统 | |
CN115203255A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN113905252A (zh) | 直播间的数据存储方法、装置、电子设备及存储介质 | |
Pietracaprina et al. | Constructive deterministic PRAM simulation on a mesh-connected computer | |
Vilaça et al. | On the expressiveness and trade-offs of large scale tuple stores | |
CN112579650A (zh) | 基于Redis缓存的数据处理方法及系统 | |
CN115210694A (zh) | 数据传输方法及装置 | |
CN113645261A (zh) | 一种会话数据处理方法、装置、存储介质和计算机设备 | |
CN117478304B (zh) | 区块链管理方法、系统和计算机设备 | |
CN117785490B (zh) | 一种图神经网络模型的训练架构、方法、系统及服务器 | |
CN117478300B (zh) | 基于节点确定的跨链共识方法、装置和计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |