【技术实现步骤摘要】
一种基于分布式图数据库的图遍历算法
[0001]本专利技术涉及分布式存储索引
,具体涉及一种基于分布式图数据库的图遍历算法。
技术介绍
[0002]随着各种互联网应用的蓬勃发展,大规模数据下的复杂关系给传统的关系型数据库带来了巨大的挑战。在传统的关系型数据库领域,查询同某个实体的相关联的其它实体,或继续以此向外延伸,数据库使用者需要编写冗长的SQL语句,同时数据库系统通常会进行复杂的多表join操作,查询性能并不理想。这类数据之间关联性查询,成为了关系型数查询。图数据库的出现,能够很好的解决关系型数据库所面临的实体关联类查询的性能瓶颈,推动数据库系统领域的发展。
[0003]在目前的分布式图数据库中,有多种不同架构的方案。为了让计算节点和存储节点可以根据实际的业务需求,灵活地横向扩展,通常的方案都是计算节点与存储节点分离。与此同时,分布式图数据库的网络通信成本也随之增大(副作用),每次查询需要从存储节点拉取大量的数据到计算节点进行计算,计算节点与存储节点之间的网络I/O效率成为了分布式图数据库的性能瓶颈之一。< ...
【技术保护点】
【技术特征摘要】
1.一种基于分布式图数据库的图遍历算法,其特征在于,包括以下步骤:步骤A:计算节点向主节点发送图遍历请求,主节点向其余从节点广播该图遍历请求;步骤B:主节点和从节点收到图遍历请求后,从符合条件的起始节点开始遍历自身存储的所有节点,得到主节点和从节点符合筛选条件的NodeIDs,如果没有符合条件的起始节点,则该存储节点的本地任务完成;步骤C:在上述步骤B中,如果遍历出存储于其他存储节点的节点,则将该节点存储至图遍历路由表,并将图遍历路由表发送至目标节点,得到该目标节点中符合筛选条件的NodeIDs;步骤D:从节点收到完成信息后,本从节点任务完成,并向主节点汇报,主节点收到全部从节点任务,且本地遍历任务全部完成,向计算节点汇报任务执行完毕。2.根据权利要求1所述的一种基于分布式图数据库的图遍历算法,其特征在于,所述步骤A的具体步骤为:步骤A1:主节点收到计算节点的图遍历请求后创建TraversalTask对象,并将TraversalTask对象的类型设定为JobMaster,并创建与从节点内Partition数量对应的用于进行图遍历的Worker。步骤A2:上述JobMaster向其他的从节点广播图遍历请求:步骤A3:从节点收到上述图遍历请求后创建各自TraversalTsak对象和Worker,并将TraversalTask对象的类型设定为Root。3.根据权利要求2所述的一种基于分布式图数据库的图遍历算法,其特征在于,所述Worker消费完自身的待遍历表的当前最大剩余跳数的数据后,主动窃取其他Worker当前最大剩余跳数的数据来执行圈层遍历。4.根据权利要求1所述的一种基于分布式图数据库的图遍历算法,其特征在于,所述步骤B的具体步骤为:步骤B1:从节点的TraversalTask对象根据自身类型,使用反序列化规则解析并维护图遍历上下文;步骤B2:当TraversalTask对象的类型为JobMaster或Root,每个Worker调用“节点属性过滤”函数,上述“节点属性过滤”函数的内部实现为:后序遍历图遍历上下文的某圈层节点的条件表达式树,完成该从节点内所有节点的访问,并得到符合条件的起始节点;步骤B3:每个Worker调用“获得出边”函数,并得到上述起始节点对应的EdgeIDs;步骤B4:每个Worker调用“对边集合进行属性过滤”函数,并得到符合条件的EdgeIDs,与作为输入的EdgeIDs取交集,产生结果EdgeIDs;步骤B5:每个Worker调用“获得目的节点”函数,得到上述EdgeIDs对应的NodeIDs。步骤B6:对得到的NodeIDs进行属性过滤,并产生结果NodeIDs。5.根据权利要求4所述的一种基于分布式图数据库的图遍历算法,其特征在于,所述步骤B5的具体步骤为:每个Worker调用“对节点集合进行属性过滤”函数,其中“对节点集合进行属性过滤”函数的内部实现是:后续遍历图遍历上下文的某圈层节...
【专利技术属性】
技术研发人员:段翰聪,李林,张建,王书涵,陈铎汝,李世豪,邹涛,李涛,
申请(专利权)人:电子科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。