CN116108238B - 一种图数据库中多跳查询的优化方法、系统和装置 - Google Patents

一种图数据库中多跳查询的优化方法、系统和装置 Download PDF

Info

Publication number
CN116108238B
CN116108238B CN202310383734.1A CN202310383734A CN116108238B CN 116108238 B CN116108238 B CN 116108238B CN 202310383734 A CN202310383734 A CN 202310383734A CN 116108238 B CN116108238 B CN 116108238B
Authority
CN
China
Prior art keywords
node
query
active
hop
attribute
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
Application number
CN202310383734.1A
Other languages
English (en)
Other versions
CN116108238A (zh
Inventor
王昌圆
郝彤
吴敏
叶小萌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Yueshu Technology Co ltd
Original Assignee
Hangzhou Yueshu Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Yueshu Technology Co ltd filed Critical Hangzhou Yueshu Technology Co ltd
Priority to CN202310383734.1A priority Critical patent/CN116108238B/zh
Publication of CN116108238A publication Critical patent/CN116108238A/zh
Application granted granted Critical
Publication of CN116108238B publication Critical patent/CN116108238B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing

Abstract

本申请涉及一种图数据库中多跳查询的优化方法、系统和装置,其中,该方法包括:初始化图数据库的图数据中所有节点的查询属性;设置指定节点的查询属性,使指定节点被激活为活跃节点;重复执行基于活跃节点的查询属性迭代计算直接邻居节点的查询属性,当迭代计算的次数达到预设次数的情况下,统计参与迭代计算的节点的查询属性,得到指定节点的多跳查询结果。通过本申请,解决了现有图数据库多跳查询存在的网络请求次数多和计算复杂的问题,在多跳查询计算过程中,通过将节点标记为活跃节点和非活跃节点,大幅度减少参与计算的节点数量和消息传播量。

Description

一种图数据库中多跳查询的优化方法、系统和装置
技术领域
本申请涉及图数据库技术领域,特别是涉及一种图数据库中多跳查询的优化方法、系统和装置。
背景技术
图数据库已经成为一种常见类型的数据库,它们可以有效地存储和管理具有复杂关联关系的数据。但是,在对大型图数据进行分析和查询时,往往需要计算指定节点的k跳邻居,即从一个节点出发,沿着边走k步能够到达的所有节点。虽然图数据库上关系查询的性能胜于关系型数据库,但由于在图数据库中进行k跳查询需要对图进行多次高深度图遍历,即从源节点开始,逐层扩展,直到查询到距离源节点为k的所有节点,在此过程中还需要对最终查询的结果进行去重,内存占用大;且存在一个节点被多次访问的情况,会有大量的重复计算。由此可见,传统主流图数据库中的k跳邻居查询存在着网络请求次数多、内存数据迁移量大,计算复杂度高的问题,尤其是在处理大规模图数据的场景下。
目前针对相关技术中现有图数据库多跳查询存在的网络请求次数多和计算复杂的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种图数据库中多跳查询的优化方法、系统和装置,以至少解决相关技术中现有图数据库多跳查询存在的网络请求次数多和计算复杂的问题。
第一方面,本申请实施例提供了一种图数据库中多跳查询的优化方法,所述方法包括:
初始化图数据库的图数据中所有节点的查询属性;
设置指定节点的查询属性,使所述指定节点被激活为活跃节点;
重复执行基于所述活跃节点的查询属性迭代计算直接邻居节点的查询属性,当所述迭代计算的次数达到预设次数的情况下,统计参与所述迭代计算的节点的查询属性,得到所述指定节点的多跳查询结果;
所述迭代计算直接邻居节点的查询属性包括:
将所述活跃节点的查询属性发送到所述活跃节点的直接邻居节点,使所述活跃节点被抑制为非活跃节点;
通过所述活跃节点的查询属性更新所述直接邻居节点的查询属性,使所述直接邻居节点被激活为活跃节点。
在其中一些实施例中,通过所述活跃节点的查询属性更新所述直接邻居节点的查询属性包括:
所述活跃节点的查询属性为包含迭代计算过程中节点ID信息的集合,用于标识所述活跃节点作为所述指定节点的邻居节点的级别;
将所述直接邻居节点的节点ID信息加入所述活跃节点的查询属性中,得到的新查询属性作为所述直接邻居节点的查询属性。
在其中一些实施例中,将所述活跃节点的查询属性发送到所述活跃节点的直接邻居节点包括:
若所述活跃节点的边为有向边,则所述活跃节点的直接邻居节点为所述有向边指向的节点,将所述活跃节点的查询属性发送到所述直接邻居节点;
若所述活跃节点的边为无向边,则从所述无向边关联的节点中选出未曾被激活的节点作为所述活跃节点的直接邻居节点,将所述活跃节点的查询属性发送到所述直接邻居节点。
在其中一些实施例中,在初始化图数据库的图数据中所有节点的查询属性之前,所述方法包括:
采用分布式计算框架,将图数据库中各服务器存储的图数据加载到内存中。
在其中一些实施例中,将图数据库中各服务器存储的图数据加载到内存中包括:
判断图数据库中各服务器存储的图数据的类型;
若图数据库中服务器存储的图数据为数值型ID图数据,则将所述数值型ID图数据直接加载到内存中;
若图数据库中服务器存储的图数据为非数值型ID图数据,则将所述非数值型ID图数据编码为数值型ID图数据,并加载到内存中。
在其中一些实施例中,统计参与所述迭代计算的节点的查询属性,得到所述指定节点的多跳查询结果包括:
采用所述分布式计算框架,分别统计各服务器中参与所述迭代计算的节点的查询属性,将统计得到的查询属性进行汇总,得到所述指定节点的多跳查询结果。
在其中一些实施例中,所述分布式计算框架包括Apache Spark Graphx计算框架和Plato计算框架。
在其中一些实施例中,在得到所述指定节点的多跳查询结果之后,所述方法包括:
将所述指定节点的多跳查询结果存储在图数据库中,作为所述指定节点的节点属性。
第二方面,本申请实施例提供了一种图数据库中多跳查询的优化系统,所述系统包括初始化模块、多跳查询模块和迭代计算模块;
所述初始化模块,用于初始化图数据库的图数据中所有节点的查询属性;
所述多跳查询模块,用于设置指定节点的查询属性,使所述指定节点被激活为活跃节点;
所述迭代计算模块,用于重复执行基于所述活跃节点的查询属性迭代计算直接邻居节点的查询属性,当所述迭代计算的次数达到预设次数的情况下,统计参与所述迭代计算的节点的查询属性,得到所述指定节点的多跳查询结果;
所述迭代计算直接邻居节点的查询属性包括:
将所述活跃节点的查询属性发送到所述活跃节点的直接邻居节点,使所述活跃节点被抑制为非活跃节点;
通过所述活跃节点的查询属性更新所述直接邻居节点的查询属性,使所述直接邻居节点被激活为活跃节点。
第三方面,本申请实施例提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的方法。
相比于相关技术,本申请实施例提供的一种图数据库中多跳查询的优化方法、系统和装置,其中,该方法通过初始化图数据库的图数据中所有节点的查询属性;设置指定节点的查询属性,使指定节点被激活为活跃节点;重复执行基于活跃节点的查询属性迭代计算直接邻居节点的查询属性,当迭代计算的次数达到预设次数的情况下,统计参与迭代计算的节点的查询属性,得到指定节点的多跳查询结果,解决了现有图数据库多跳查询存在的网络请求次数多和计算复杂的问题,在多跳查询计算过程中,通过将节点标记为活跃节点和非活跃节点,大幅度减少参与计算的节点数量和消息传播量,同时降低了分布式场景下rpc通信的请求次数。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的图数据库中多跳查询优化方法的步骤流程图;
图2是根据本申请实施例的图数据库中多跳查询优化系统的结构框图;
图3是根据本申请实施例的电子设备的内部结构示意图。
附图标识:21、初始化模块;22、多跳查询模块;23、迭代计算模块。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本申请实施例提供了一种图数据库中多跳查询的优化方法,图1是根据本申请实施例的图数据库中多跳查询优化方法的步骤流程图,如图1所示,该方法包括以下步骤:
步骤S102,初始化图数据库的图数据中所有节点的查询属性;
需要说明的是,对图数据中所有节点的属性进行初始化,对于K跳邻居查询而言,查询属性是一个标记集合,存储着当前节点作为指定节点v的i跳邻居所经过的其他节点集,其中i<=K,故除指定节点v之外所有节点的查询属性是一个空集合,指定节点v的属性是一个包含v自身的集合。
在步骤S102之前,还包括步骤S101,将数据存储到图数据库中,该图数据库可以通过图查询语言进行查询,采用分布式计算框架将图数据库中各服务器存储的图数据加载到内存中。
步骤S101具体地,基于分布式计算框架,判断图数据库中各服务器存储的图数据的类型,其中,该分布式计算框架包括但不限于Apache Spark Graphx计算框架和Plato计算框架;
若图数据库中服务器存储的图数据为数值型ID图数据,则将数值型ID图数据直接加载到内存中;
若图数据库中服务器存储的图数据为非数值型ID图数据,则将非数值型ID图数据编码为数值型ID图数据,并加载到内存中。
需要说明的是,在加载数据过程中,对于数值型ID数据则直接在内存构造拓扑图,对于非数值型ID的数据,则需要进行数据编码,将非数值型ID编码为数值型ID便于在计算中减少内存占用和网络io((Input/Output))。
同时,由于拓扑图是分布式存放的,对于a -> b -> c -> d 这样一个3跳查询,大概率下每条边边会存放在多台服务器 上,此时如果由某个中心服务器获取全部边信息,除了要求这台中心服务器要有很大的内存,此外每次网络通信都会浪费大量的时延,而采用分布式计算框架则能很好地解决这个问题。
步骤S104,设置指定节点的查询属性,使指定节点被激活为活跃节点;
需要说明的是,初始状态时只有指定节点将处于active(激活)状态,非指定节点将处于非active(非激活)状态,不参与计算。因此在第一轮迭代计算中只有指定节点会进行消息传递,而当指定节点传递完消息后则被抑制为非激活节点。
步骤S106,将活跃节点的查询属性发送到活跃节点的直接邻居节点,使活跃节点被抑制为非活跃节点;
步骤S106具体地,若活跃节点的边为有向边,则活跃节点的直接邻居节点为有向边指向的节点,将活跃节点的查询属性发送到直接邻居节点,并使活跃节点被抑制为非活跃节点;
若活跃节点的边为无向边,则从无向边关联的节点中选出未曾被激活的节点作为活跃节点的直接邻居节点,将活跃节点的查询属性发送到直接邻居节点,并使活跃节点被抑制为非活跃节点。
需要说明的是,在消息传递中,为了保证消息尽可能的少,在三元组(源节点、边属性、目标节点)的源节点属性集合中包含指定节点v且目标节点没有访问过时,才将源节点属性沿着边发送给目标节点。当K跳邻居查询时是不考虑方向时(如边是无向边),目标点也需要向源节点发送消息,但只有当目标节点属性集合中包含指定节点v且源节点没有访问过时,才将目标节点属性沿着边发送给源节点。同时,一个节点是否需要向外发送消息,取决于该节点是否是活跃节点,当该节点在上一轮迭代中有消息更新,则该节点属于活跃节点,未进行消息更新的节点属于非活跃节点,将不参与下一轮的迭代计算。
步骤S108,通过活跃节点的查询属性更新直接邻居节点的查询属性,使直接邻居节点被激活为活跃节点。
步骤S108具体地,活跃节点的查询属性为包含迭代计算过程中节点ID信息的集合,用于标识活跃节点作为指定节点的邻居节点的级别;
将直接邻居节点的节点ID信息加入活跃节点的查询属性中,得到的新查询属性作为直接邻居节点的查询属性,并使直接邻居节点被激活为活跃节点。
需要说明的是,在本申请实施例中,初始状态时只有指定节点v将处于active(激活)状态,非指定节点将处于非active(非激活)状态,不参与计算。因此在第一轮迭代计算中只有指定节点v会进行消息传递,而当指定节点v传递完消息后则被抑制为非激活节点。若在第i轮迭代计算中,传递消息的当前节点(激活节点)是指定节点v的i-1跳邻居,则首先将当前节点的查询属性(标识活跃节点作为指定节点的邻居节点的级别,如“我是节点v的i-1跳邻居节点”)发送给它的直接邻居节点,直接邻居节点收到消息后更新自己的查询属性,则更新自己查询属性(如“我是节点v的i跳邻居节点”)。
步骤S110,判断迭代计算的次数是否达到预设次数,若否,则重复执行上述步骤S106和步骤S108的基于活跃节点的查询属性迭代计算直接邻居节点的查询属性;若是,则统计参与迭代计算的节点的查询属性,得到指定节点的多跳查询结果;
步骤S110具体地,采用分布式计算框架,分别统计各服务器中参与迭代计算的节点的查询属性,将统计得到的查询属性进行汇总,得到指定节点的多跳查询结果。
需要说明的是,在迭代计算结束后对图中查询属性进行统计汇总。汇总过程是在分布式计算框架内通过分布式过滤和统计进行,各worker的统计结果提交给调度节点进行汇总,快速聚集查询结果,得到指定节点的K跳邻居总数。
在步骤S110之后,还可以将指定节点的多跳查询结果存储在图数据库中,作为指定节点的节点属性。结果回溯到数据库可以方便后续的查询。除了写回图数据库,也可以将结果写入到文件或则打印输出。
通过本申请实施例中的步骤S102至步骤S110,解决了现有图数据库多跳查询存在的网络请求次数多和计算复杂的问题,当迭代计算的次数达到预设次数(如K次)之后,通过对迭代计算结果中涉及的查询属性进行汇总,即可得到指定节点的K跳邻居(也即多跳查询结果)。在多跳查询计算过程中,通过将节点标记为活跃节点和非活跃节点,随着迭代次数的增加,每一轮迭代计算中涉及到的节点数量没有呈指数级增长,而是呈正态分布式的变化,大幅度减少参与计算的节点数量和消息传播量,同时降低了分布式场景下rpc通信的请求次数,计算性能远远优于图数据库中的遍历查询。
本申请具体实施例提供了一种图数据库中多跳查询的优化方法,基于分布式计算框架Graphx实现上述实施例中记载的技术方案,以进行多跳查询请求的测试。
在本具体实施例的测试中,对于twitter 2010数据集,7跳查询仅需2-3秒,15跳仅需3-4秒。而传统图数据库在twitter2010数据集上的多跳查询,7跳查询的时延普遍在30-90秒。而且随着查询语句复杂度的提升以及深度的增加,延迟则呈现指数级增加。
由此可见,上述实施例中记载的技术方案可以大大减少参与计算的数据量,从而提高查询效率。同时,通过将节点标记为active和非active的方式将数据量向内收缩,可以有效地避免重复计算和无效计算,提高计算效率和查询性能,为处理大规模图数据提供高性能和高可扩展性。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例提供了一种图数据库中多跳查询的优化系统,图2是根据本申请实施例的图数据库中多跳查询优化系统的结构框图,如图2所示,该系统包括初始化模块21、多跳查询模块22和迭代计算模块23;
初始化模块21,用于初始化图数据库的图数据中所有节点的查询属性;
多跳查询模块22,用于设置指定节点的查询属性,使指定节点被激活为活跃节点;
迭代计算模块23,用于重复执行基于活跃节点的查询属性迭代计算直接邻居节点的查询属性,当迭代计算的次数达到预设次数的情况下,统计参与迭代计算的节点的查询属性,得到指定节点的多跳查询结果;
迭代计算直接邻居节点的查询属性包括:
将活跃节点的查询属性发送到活跃节点的直接邻居节点,使活跃节点被抑制为非活跃节点;
通过活跃节点的查询属性更新直接邻居节点的查询属性,使直接邻居节点被激活为活跃节点。
通过本申请实施例中的初始化模块21、多跳查询模块22和迭代计算模块23,解决了现有图数据库多跳查询存在的网络请求次数多和计算复杂的问题,在多跳查询计算过程中,通过将节点标记为活跃节点和非活跃节点,随着迭代次数的增加,每一轮迭代计算中涉及到的节点数量是没有呈指数级增长的,大幅度减少参与计算的节点数量和消息传播量,同时降低了分布式场景下rpc通信的请求次数,计算性能远远优于图数据库中的遍历查询。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
另外,结合上述实施例中的图数据库中多跳查询的优化方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种图数据库中多跳查询的优化方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种图数据库中多跳查询的优化方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,图3是根据本申请实施例的电子设备的内部结构示意图,如图3所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图3所示。该电子设备包括通过内部总线连接的处理器、网络接口、内存储器和非易失性存储器,其中,该非易失性存储器存储有操作系统、计算机程序和数据库。处理器用于提供计算和控制能力,网络接口用于与外部的终端通过网络连接通信,内存储器用于为操作系统和计算机程序的运行提供环境,计算机程序被处理器执行时以实现一种图数据库中多跳查询的优化方法,数据库用于存储数据。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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 (10)

1.一种图数据库中多跳查询的优化方法,其特征在于,所述方法包括:
初始化图数据库的图数据中所有节点的查询属性;
设置指定节点的查询属性,使所述指定节点被激活为活跃节点,所述活跃节点的查询属性为包含迭代计算过程中节点ID信息的集合,用于标识所述活跃节点作为所述指定节点的邻居节点的级别;
重复执行基于所述活跃节点的查询属性迭代计算直接邻居节点的查询属性,当所述迭代计算的次数达到预设次数的情况下,统计参与所述迭代计算的节点的查询属性,得到所述指定节点的多跳查询结果;
所述迭代计算直接邻居节点的查询属性包括:
将所述活跃节点的查询属性发送到所述活跃节点的直接邻居节点,使所述活跃节点被抑制为非活跃节点;
通过所述活跃节点的查询属性更新所述直接邻居节点的查询属性,使所述直接邻居节点被激活为活跃节点。
2.根据权利要求1所述的方法,其特征在于,通过所述活跃节点的查询属性更新所述直接邻居节点的查询属性包括:
所述活跃节点的查询属性为包含迭代计算过程中节点ID信息的集合,用于标识所述活跃节点作为所述指定节点的邻居节点的级别;
将所述直接邻居节点的节点ID信息加入所述活跃节点的查询属性中,得到的新查询属性作为所述直接邻居节点的查询属性。
3.根据权利要求1所述的方法,其特征在于,将所述活跃节点的查询属性发送到所述活跃节点的直接邻居节点包括:
若所述活跃节点的边为有向边,则所述活跃节点的直接邻居节点为所述有向边指向的节点,将所述活跃节点的查询属性发送到所述直接邻居节点;
若所述活跃节点的边为无向边,则从所述无向边关联的节点中选出未曾被激活的节点作为所述活跃节点的直接邻居节点,将所述活跃节点的查询属性发送到所述直接邻居节点。
4.根据权利要求1所述的方法,其特征在于,在初始化图数据库的图数据中所有节点的查询属性之前,所述方法包括:
采用分布式计算框架,将图数据库中各服务器存储的图数据加载到内存中。
5.根据权利要求4所述的方法,其特征在于,将图数据库中各服务器存储的图数据加载到内存中包括:
判断图数据库中各服务器存储的图数据的类型;
若图数据库中服务器存储的图数据为数值型ID图数据,则将所述数值型ID图数据直接加载到内存中;
若图数据库中服务器存储的图数据为非数值型ID图数据,则将所述非数值型ID图数据编码为数值型ID图数据,并加载到内存中。
6.根据权利要求4所述的方法,其特征在于,统计参与所述迭代计算的节点的查询属性,得到所述指定节点的多跳查询结果包括:
采用所述分布式计算框架,分别统计各服务器中参与所述迭代计算的节点的查询属性,将统计得到的查询属性进行汇总,得到所述指定节点的多跳查询结果。
7.根据权利要求4所述的方法,其特征在于,所述分布式计算框架包括Apache SparkGraphx计算框架和Plato计算框架。
8.根据权利要求1所述的方法,其特征在于,在得到所述指定节点的多跳查询结果之后,所述方法包括:
将所述指定节点的多跳查询结果存储在图数据库中,作为所述指定节点的节点属性。
9.一种图数据库中多跳查询的优化系统,其特征在于,所述系统包括初始化模块、多跳查询模块和迭代计算模块;
所述初始化模块,用于初始化图数据库的图数据中所有节点的查询属性;
所述多跳查询模块,用于设置指定节点的查询属性,使所述指定节点被激活为活跃节点,所述活跃节点的查询属性为包含迭代计算过程中节点ID信息的集合,用于标识所述活跃节点作为所述指定节点的邻居节点的级别;
所述迭代计算模块,用于重复执行基于所述活跃节点的查询属性迭代计算直接邻居节点的查询属性,当所述迭代计算的次数达到预设次数的情况下,统计参与所述迭代计算的节点的查询属性,得到所述指定节点的多跳查询结果;
所述迭代计算直接邻居节点的查询属性包括:
将所述活跃节点的查询属性发送到所述活跃节点的直接邻居节点,使所述活跃节点被抑制为非活跃节点;
通过所述活跃节点的查询属性更新所述直接邻居节点的查询属性,使所述直接邻居节点被激活为活跃节点。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至9中任一项所述的方法。
CN202310383734.1A 2023-04-12 2023-04-12 一种图数据库中多跳查询的优化方法、系统和装置 Active CN116108238B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310383734.1A CN116108238B (zh) 2023-04-12 2023-04-12 一种图数据库中多跳查询的优化方法、系统和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310383734.1A CN116108238B (zh) 2023-04-12 2023-04-12 一种图数据库中多跳查询的优化方法、系统和装置

Publications (2)

Publication Number Publication Date
CN116108238A CN116108238A (zh) 2023-05-12
CN116108238B true CN116108238B (zh) 2023-06-16

Family

ID=86258290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310383734.1A Active CN116108238B (zh) 2023-04-12 2023-04-12 一种图数据库中多跳查询的优化方法、系统和装置

Country Status (1)

Country Link
CN (1) CN116108238B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112667860A (zh) * 2020-12-30 2021-04-16 海南普适智能科技有限公司 一种子图匹配方法、装置、设备及存储介质
CN114201505A (zh) * 2020-09-18 2022-03-18 华为云计算技术有限公司 数据查询方法及装置、数据库系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014022494A1 (en) * 2012-07-31 2014-02-06 Huawei Technologies Co., Ltd. Forward progress assurance and quality of service enhancement in a packet transferring system
CN105282771A (zh) * 2015-07-30 2016-01-27 南京大学 一种高能效的传感器网络邻居状态查询方法
CN111046065B (zh) * 2019-10-28 2022-06-17 北京大学 可扩展的高性能分布式查询处理方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114201505A (zh) * 2020-09-18 2022-03-18 华为云计算技术有限公司 数据查询方法及装置、数据库系统
CN112667860A (zh) * 2020-12-30 2021-04-16 海南普适智能科技有限公司 一种子图匹配方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN116108238A (zh) 2023-05-12

Similar Documents

Publication Publication Date Title
US11023448B2 (en) Data scrubbing method and apparatus, and computer readable storage medium
CN109062512B (zh) 一种分布式存储集群、数据读写方法、系统及相关装置
US11249969B2 (en) Data storage method and apparatus, and storage medium
CN106682215B (zh) 一种数据处理方法和管理节点
US20200349113A1 (en) File storage method, deletion method, server and storage medium
CN112287182A (zh) 图数据存储、处理方法、装置及计算机存储介质
CN115033722B (zh) 一种加速图数据库数据查询的方法、系统、装置和介质
CN112579602A (zh) 多版本数据存储方法、装置、计算机设备及存储介质
US20210157513A1 (en) Data reading method, apparatus, and system, and distributed system
CN114691611A (zh) 目录刷新的处理方法及装置、电子设备和存储介质
US11683316B2 (en) Method and device for communication between microservices
CN116108238B (zh) 一种图数据库中多跳查询的优化方法、系统和装置
CN111090397B (zh) 一种数据重删方法、系统、设备及计算机可读存储介质
CN116737069A (zh) 数据传输方法、装置、系统和计算机设备
CN114995770B (zh) 一种数据处理方法、装置、设备、系统及可读存储介质
CN113254480A (zh) 一种数据查询方法及装置
CN116225314A (zh) 数据写入方法、装置、计算机设备和存储介质
CN111723246B (zh) 一种数据处理的方法、装置和存储介质
CN111428453B (zh) 批注同步过程中的处理方法、装置以及系统
CN109948098B (zh) 数据过滤方法、缓存信息的记录方法及装置
CN112699148A (zh) 刷新缓存的方法、装置、设备及存储介质
CN112468317A (zh) 一种集群拓扑更新方法、系统、设备及计算机存储介质
CN110968267A (zh) 数据管理方法、装置、服务器及系统
CN111209304A (zh) 数据处理方法、装置及系统
CN115544321B (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