【技术实现步骤摘要】
一种图数据库遍历方法、装置、设备及存储介质
本申请涉及计算机技术,尤其涉及智能搜索
技术介绍
在图数据库中,遍历操作是最基本的操作。现有技中,在获取到用户输入的图遍历语句后,会根据图遍历语句中所包含的多个算子之间的嵌套调用、或者按照各算子的执行顺序对前一算子的执行结果依次筛选,最终得到目标元素。然而,上述两种方式在大规模数据并发的情况下,目标元素查询效率较低,导致系统资源利用率低下。
技术实现思路
本申请实施例提供了一种图数据库遍历方法、装置、设备及存储介质,以提高对图数据库中目标元素的查询效率和系统资源利用率。第一方面,本申请实施例提供了一种图数据库遍历方法,包括:获取输入的图遍历语句,确定所述图遍历语句包含的至少两个算子和各算子的执行顺序,为各算子分别分配线程,并为每两个相邻算子分别创建缓冲队列;对于每两个相邻算子,通过所述两个相邻算子中前一算子对应的线程,执行前一算子的操作,并将前一算子的执行结果数据写入所述两个相邻算子对应的缓冲队列中;以及,通过所述两个相邻算子中后一算子对应的线程,并行从所述缓冲队列中读取所述两个相邻算子中前一算子的执行结果数据,以用于执行后一算子的操作。本申请实施例通过获取输入的图遍历语句,确定图遍历语句包含的至少两个算子和各算子的执行顺序,为各算子分别分配线程,并为每两个相邻算子分别创建缓冲队列;对于每两个相邻算子,通过两个相邻算子中前一算子对应的线程,执行前一算子的操作,并将前一算子的执行结果数据写入两个相邻算子对应 ...
【技术保护点】
1.一种图数据库遍历方法,其特征在于,包括:/n获取输入的图遍历语句,确定所述图遍历语句包含的至少两个算子和各算子的执行顺序,为各算子分别分配线程,并为每两个相邻算子分别创建缓冲队列;/n对于每两个相邻算子,通过所述两个相邻算子中前一算子对应的线程,执行前一算子的操作,并将前一算子的执行结果数据写入所述两个相邻算子对应的缓冲队列中;以及,通过所述两个相邻算子中后一算子对应的线程,并行从所述缓冲队列中读取所述两个相邻算子中前一算子的执行结果数据,以用于执行后一算子的操作。/n
【技术特征摘要】
1.一种图数据库遍历方法,其特征在于,包括:
获取输入的图遍历语句,确定所述图遍历语句包含的至少两个算子和各算子的执行顺序,为各算子分别分配线程,并为每两个相邻算子分别创建缓冲队列;
对于每两个相邻算子,通过所述两个相邻算子中前一算子对应的线程,执行前一算子的操作,并将前一算子的执行结果数据写入所述两个相邻算子对应的缓冲队列中;以及,通过所述两个相邻算子中后一算子对应的线程,并行从所述缓冲队列中读取所述两个相邻算子中前一算子的执行结果数据,以用于执行后一算子的操作。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
按照各算子的执行顺序,将令牌数据在各算子对应的线程间传递,以使接收到令牌数据的线程开始执行本线程对应算子的操作,并将所述令牌数据传递至下一算子对应的线程。
3.根据权利要求2所述的方法,其特征在于,为各算子分别分配线程,包括:
根据可用线程的数量,按照各算子的执行顺序,为各算子分别分配线程。
4.根据权利要求3所述的方法,其特征在于,若所述可用线程的数量小于算子的数量,在按照各算子的执行顺序,将令牌数据在各算子对应的线程间传递时,所述方法还包括:
接收到所述令牌数据的线程判断下一算子是否具有对应的线程;
若接收到所述令牌数据的线程判断下一算子不具有对应的线程,则在出现满足预设条件的已分配线程时,将所述已分配线程重新分配给所述下一算子,并将所述令牌数据传递至所述已分配线程,以使所述已分配线程执行所述下一算子的操作;
其中,所述预设条件为所述已分配线程已执行完本线程对应的算子的操作。
5.根据权利要求1所述的方法,其特征在于,为各算子分别分配线程,并为每两个相邻算子分别创建缓冲队列,包括:
为各算子分别分配本地计算机设备的线程,并为每两个相邻算子在所述本地计算机设备分别创建缓冲队列;或者,
针对各算子,从至少两个计算机设备中确定用于执行所述算子的计算机设备,并为所述算子分配所确定的计算机设备的线程;
针对每两个相邻算子,从至少两个计算机设备中确定用于创建缓冲队列的计算机设备,并在所确定的计算机设备中创建所述两个相邻算子对应的缓冲队列。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
针对第一个算子,将用于保存所述第一个算子的执行结果数据的缓冲队列的地址信息发送至用于执行所述第一个算子的计算机设备,以使执行所述第一个算子的计算机设备基于接收到的所述地址信息定位对应的缓冲队列;
针对除所述第一个算子以外的任一目标算子,将用于保存所述任一目标算子的前一算子的执行结果数据的第一缓冲队列的地址信息和用于保存所述任一目标算子的执行结果数据的第二缓...
【专利技术属性】
技术研发人员:张海平,汪洋,陈曦,王益飞,
申请(专利权)人:北京百度网讯科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。