CN111488492A - 用于检索图数据库的方法和装置 - Google Patents
用于检索图数据库的方法和装置 Download PDFInfo
- Publication number
- CN111488492A CN111488492A CN202010268108.4A CN202010268108A CN111488492A CN 111488492 A CN111488492 A CN 111488492A CN 202010268108 A CN202010268108 A CN 202010268108A CN 111488492 A CN111488492 A CN 111488492A
- Authority
- CN
- China
- Prior art keywords
- retrieval
- deep
- request
- task
- subtask
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000004044 response Effects 0.000 claims abstract description 18
- 238000012545 processing Methods 0.000 claims description 59
- 230000015654 memory Effects 0.000 claims description 19
- 238000010276 construction Methods 0.000 claims description 3
- 230000002618 waking effect Effects 0.000 claims description 2
- 239000000126 substance Substances 0.000 claims 1
- 238000007726 management method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 239000003795 chemical substances by application Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了用于检索图数据库的方法,涉及知识图谱领域。具体实现方案为:接收终端设备发送的深度检索请求,并将深度检索请求添加到预设的任务队列,其中,深度检索请求用于请求图数据库的数据检索;利用预先构建的任务执行线程从任务队列中获取深度检索请求,将所获取的深度检索请求拆分成多个检索子任务,并将各检索子任务添加到任务队列;利用多个任务执行线程从任务队列中并行获取各检索子任务,以使各任务执行线程并列执行所获取的检索子任务;响应于确定出各检索子任务执行完成,返回深度检索请求的检索结果。该实现方式通过将图数据库的深度检索请求拆分成检索子任务并行执行,提高了图数据库检索的效率。
Description
技术领域
本公开的实施例涉及计算机技术领域,具体涉及图数据库技术领域。
背景技术
图数据库通常是指通过节点、属性、边的图格式进行数据存储的数据库。目前,图数据库克服了其他数据库无法解决的大而复杂的数据难题,在复杂问题的处理上有着明显的优势,已经成为所有数据管理系统中成长最快的分类。
与传统的数据库相比,图数据库中的数据通过包括节点、边的图结构进行存储。因此,图数据库的检索通常是沿图结构中的节点和边的深度检索,检索耗时长。
发明内容
提供了一种用于检索图数据库的方法、装置、设备以及存储介质。
根据第一方面,提供了一种用于检索图数据库的方法,该方法包括:接收终端设备发送的深度检索请求,并将深度检索请求添加到预设的任务队列,其中,深度检索请求用于请求图数据库的数据检索;利用预先构建的任务执行线程从任务队列中获取深度检索请求,将所获取的深度检索请求拆分成多个检索子任务,并将各检索子任务添加到任务队列;利用多个任务执行线程从任务队列中并行获取各检索子任务,以使各任务执行线程并列执行所获取的检索子任务;响应于确定出各检索子任务执行完成,返回深度检索请求的检索结果。
根据第二方面,提供了一种用于检索图数据库的装置,该装置包括:接收单元,被配置成接收终端设备发送的深度检索请求,并将深度检索请求添加到预设的任务队列,其中,深度检索请求用于请求图数据库的数据检索;拆分单元,被配置成利用预先构建的任务执行线程从任务队列中获取深度检索请求,将所获取的深度检索请求拆分成多个检索子任务,并将各检索子任务添加到任务队列;检索子任务获取单元,被配置成利用多个任务执行线程从任务队列中并行获取各检索子任务,以使各任务执行线程并列执行所获取的检索子任务;返回单元,被配置成响应于确定出各检索子任务执行完成,返回深度检索请求的检索结果。
第三方面,提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述任一项的方法。
第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行上述任一项的方法。
根据本申请的技术解决了图数据库检索效率低的问题,提高了图数据库的检索效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请的用于检索图数据库的方法的第一实施例的示意图;
图2是根据本申请的用于检索图数据库的方法的第二实施例的示意图;
图3是根据本实施例的用于检索图数据库的方法的一个实现方式的系统架构图;
图4是根据本申请的用于检索图数据库的装置的实施例的示意图;
图5是用来实现本申请实施例的用于检索图数据库的方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
请参考图1,其示出了根据本申请的用于检索图数据库的方法的第一实施例的示意图。该用于检索图数据库的方法,可以包括以下步骤:
步骤101,接收终端设备发送的深度检索请求,并将深度检索请求添加到预设的任务队列。
在本实施例中,用于检索图数据库的方法的执行主体(例如服务器)可以通过有线连接方式或者无线连接方式从用户利用其进行数据检索的终端设备接收深度检索请求。该深度检索请求可以用于请求在图数据库中进行数据检索。而后,上述执行主体可以采用各种方式将深度检索请求添加到预先构建的任务队列中。作为示例,上述终端设备可以主动将深度检请求添加到任务队列。
在本实施例的一些可选的实现方式中,上述执行主体可以预先构建多个请求处理线程,例如handler线程。各请求处理线程可以用于获取上述深度检索请求,并将所获取的任务请求添加到任务队列。上述执行主体可以从多个预先构建的任务线程中选取用于处理上述深度检索请求的目标请求处理线程。而后,利用所选取的目标处理线程可以将深度检索请求添加任务队列中。该实现方式中公开的handler线程等请求处理线程可以针对性的处理图数据库的深度检索等耗时任务的后台运行。
通常,图数据库可以采用图结构对数据进行表示和存储,因此图数据库的检索可以理解为采用图查询技术完成的特定查询图的检索,从而可以从知识图谱中获取满足条件的数据。与普通数据库检索相比,图数据库的检索需要沿图结构的节点和边延伸查找,深度挖掘隐藏在关联关系中的数据,因此图数据库的检索通常可以称为深度检索。用对针对图数据库发出的检索请求可以称为深度检索请求。
步骤102,利用预先构建的任务执行线程从任务队列中获取深度检索请求,将所获取的深度检索请求拆分成多个检索子任务,并将各检索子任务添加到任务队列。
在本实施例中,上述执行主体可以预先构建多个任务执行线程,各任务执行线程可以执行任务队列中的检索任务或请求,并且在获取检索任务或请求之后无需再次构建任务执行线程。基于步骤101将所接收到的深度检索请求添加到任务队列,上述执行主体(例如服务器)可以从任务队列中获取上述深度检索请求,并对所获取的深度检索请求进行任务拆分,得到多个检索子任务。而后,上述执行主体可以将拆分后的子任务重新放到任务队列中。可选的,上述任务队列中可以包含多个深度检索任务,这里可以根据深度检索任务的任务标识进行区分。
在本实施例的一些可选的实现方式中,上述执行主体在对深度检索请求拆分之前,可以判断该深度检索请求的任务量是否大于预设任务量。如果确定出深度检索请求的任务量大于预设任务量,则可以对该深度检索请求进行任务拆分。如果确定出深度检索请求的任务量不大于预设任务量,则上述执行主体可以直接利用任务执行线程执行该深度检索请求。该实现方式可以根据深度检索请求的任务量将深度检索请求分为需要拆分和无需拆分两类,从而可以使得部分深度检索请求可以直接进行检索,进一步提高了图数据库的检索效率。
在本实施例的一些可选的实现方式中,上述执行主体采用如下方式确定任务执行线程的数目:获取CPU的核心数目;基于CPU的核心数目确定构建任务执行线程的数目。作为示例,获取CPU的核心数目为56,则上述执行主体可以确定任务执行线程的数目与CPU核心数目相同56或略小于CPU核心数目54。该实现方式根据CPU的核心数目确定任务执行线程的数目,从而可以避免出现因任务执行线程的数目过大导致的线程频繁切换的问题。进一步地,根据CPU的核心数目确定任务执行线程的数目,还可以避免出现因任务执行线程的数目过少导致的CPU利用不完全的问题。
步骤103,利用多个任务执行线程从任务队列中并行获取各检索子任务,以使各任务执行线程并列执行所获取的检索子任务。
在本实施例中,基于步骤102得到的拆分后的多个检索子任务,上述执行主体可以利用多个任务执行线程从任务队列中并行获取各检索子任务。可以理解的是,由于各任务执行线程需要从任务队列中并行获取检索子任务,因此,该任务队列需要为支持并行任务获取的任务队列。例如,任务队列可以为采用工作窃取算法work-stealing创建的任务队列。上述各任务检索队列在获取检索子任务之后,可以并列执行各检索子任务。与现有的深度检索请求只在一个任务执行线程中串行执行相比,将深度检索请求拆分成多个检索子任务,在多个任务执行线程中并行执行,检索效率更高。
步骤104,响应于确定出各检索子任务执行完成,返回深度检索请求的检索结果。
在本实施例中,上述执行主体可以采用各种方式确定各检索子任务是否执行完成,并在确定出各检索子任务均执行完成之后,获取各检索子任务的检索结果。以及基于各检索子任务的检索结果上述执行主体可以得到深度检索请求的检索结果,并向上述终端设备返回该深度检索请求的检索结果。
在本实施例的一些可选的实现方式中,上述执行主体可以在利用目标请求处理线程将深度检索请求添加到任务队列之后,将目标请求处理线程设置为等待状态。以及,在返回深度检索请求的检索结果之前,唤醒目标请求处理线程,以利用目标请求处理线程返回检索结果。在该实现方式中,通过对目标请求处理线程的等待(sleep)和唤醒(wake)的设置,避免出现将深度检索请求持续放入任务队列造成死循环情况的发生。
在本实施例的一些可选的实现方式中,上述执行主体可以基于任务执行线程的数目确定构建请求处理线程的数目。作为示例,上述执行主体可以确定请求处理线程的数目等于或略小于任务执行线程的数。在该实现方式中,根据任务执行线程的数目确定请求处理线程的数目可以合理设置请求处理线程的数目,避免出现请求处理线程冗余或不足的情况。
本申请的上述实施例提供的用于图数据库检索的方法,可以通过接收终端设备发送的深度检索请求,并将深度检索请求添加到预设的任务队列,之后利用预先构建的任务执行线程从任务队列中获取深度检索请求,将所获取的深度检索请求拆分成多个检索子任务,并将各检索子任务添加到任务队列,而后利用多个任务执行线程从任务队列中并行获取各检索子任务,可以使得各任务执行线程并列执行所获取的检索子任务,最后响应于确定出各检索子任务执行完成可以返回深度检索请求的检索结果,从而实现了通过将深度检索请求拆分成多个检索子任务,在预先构建的各任务执行线程中并列执行,从而提高了图数据库中深度检索请求的检索效率。
接下来请继续参考图2,图2是根据本申请的用于图数据库检索的方法的第二实施例的示意图。该用于图数据库检索的方法,可以包括以下步骤:
步骤201,接收终端设备发送的深度检索请求,并将深度检索请求添加到预设的任务队列。
在本实施例中,用于检索图数据库的方法的执行主体(例如服务器)可以通过有线连接方式或者无线连接方式从用户利用其进行数据检索的终端设备接收深度检索请求。该深度检索请求可以用于请求在图数据库中进行数据检索。而后,上述执行主体可以采用各种方式将深度检索请求添加到预先构建的任务队列中。作为示例,上述终端设备可以主动将深度检请求添加到任务队列。
步骤202,利用预先构建的任务执行线程从任务队列中获取深度检索请求,将所获取的深度检索请求拆分成多个检索子任务,并将各检索子任务添加到任务队列。
在本实施例中,上述执行主体可以预先构建多个任务执行线程,各任务执行线程可以执行任务队列中的检索任务或请求。基于步骤201将所接收到的深度检索请求添加到任务队列,上述执行主体(例如服务器)可以从任务队列中获取上述深度检索请求,并对所获取的深度检索请求进行任务拆分,得到多个检索子任务。而后,上述执行主体可以将拆分后的子任务重新放到任务队列中。
步骤203,记录检索子任务的任务数目。
在本实施例中,上述执行主体可以获取深度检索请求拆分出的检索子任务的数目,并记录所获取的检索子任务的数目。可以理解的是,在未对深度检索请求拆分之前,可以将该深度检索请求本身作为检索子任务,因此上述执行主体可以记录深度检索请求的检索子任务的数目为1,而后每从该深度检索请求中拆分出一个检索子任务,则在上述检索子任务的数目的基础上加1,直到该深度检索请求拆分完成,从而可以得到的检索子任务的任务数目。
步骤204,利用多个任务执行线程从任务队列中并行获取各检索子任务,以使各任务执行线程并列执行所获取的检索子任务。
在本实施例中,上述执行主体可以利用多个任务执行线程从任务队列中并行获取各检索子任务。需要说明的是,上述任务队列为可以支持任务执行线程并行获取检索子任务的任务队列。上述各任务检索队列在获取检索子任务之后,可以并列执行各检索子任务。
步骤205,针对多个检索子任务中的检索子任务,响应于确定出该检索子任务执行完成,将任务数目减1。
在本实施例中,针对各检索子任务中的任一检索子任务,上述执行主体可以获取该检索子任务的完成情况。对于各检索子任务中的任一检索子任务,当确定出该检索子任务执行完成时,可以将深度检索请求的检索子任务的任务数目减去1。因此,上述执行主体可以确定出深度检索请求中已完成和未完成的检索子任务的数目,从而及时准确地确定出深度检索请求的进度。
在本实施例的一些可选的实现方式中,上述执行主体可以预先建立线程管理模块,该线程管理模块可以记录深度检索请求的检索子任务的任务数目。具体地,线程管理模块还可以与各任务执行线程进行交互,因此在确定出用于执行上述深度检索请求的任一任务执行线程任务执行完成,线程管理模块可以将深度检索请求的检索子任务的任务数目减1。
步骤206,响应于确定出任务数目为0,确定各检索子任务执行完成。
在本实施例中,上述执行主体基于步骤205可以确定检索子任务的已完成数目和未完成数目。因此,上述执行主体可以判断检索子任务的任务数目是否为0,如果检索子任务的任务数目为0,则可以表明上述深度检索请求的各检索子任务均已执行完成,此时上述执行主体可以继续执行步骤207。如果检索子任务数目不为0,则可以表明上述深度检索请求中存在未执行完成的检索子任务,此时上述执行主体可以继续等待任务执行线程执行检索子任务,直到确定出检索子任务的任务数目为0。
步骤207,返回深度检索请求的检索结果。
在本实施例中,基于步骤206确定出的深度检索请求的各检索子任务执行完成,上述执行主体可以得到该深度检索请求的检索结果。而后,上述执行主体可以向终端设备返回深度检索请求的检索结果。
在一些可选的实现方式中,上述执行主体不仅可以构建线程管理模块,还可以构建多个请求处理线程,例如handler线程,如图3所示。图3是根据本实施例的用于检索图数据的方法的一个实现方式的系统架构图。
在本实现方式中,可以预先构建m个请求处理线程301、线程管理模块302和n个任务执行线程304,如图3所示。各请求处理线程301可以用于获取上述深度检索请求,并将所获取的任务请求添加到任务队列302。上述线程管理模块303与请求处理线程301和任务执行线程交互304,用于管理上述请求处理线程301和任务执行线程304。任务执行线程304可以用于执行深度检索请求和拆分出的检索子任务。
在本实现方式中,上述执行主体在接收到终端设备发送的深度检索请求之后,可以在预先构建的各请求处理线程301中确定目标请求处理线程,该目标请求处理线程301可以将深度检索请求添加到任务队列302中,如图3所示。以及,上述执行主体还可以利用线程管理模块303将目标请求处理线程设置为等待状态。而后,预先构建的任务执行线程304可以从任务队列302中获取深度检索请求,以及将所获取的深度检索请求拆分成多个检索子任务,并将各检索子任务添加到任务队列302中。
需要说明的是,上述线程管理模块303可以从任务执行线程304获取并记录深度检索请求所包含的检索子任务的任务数目。如图3所示,多个任务执行线程304可以从任务队列302中并行获取检索任务,并执行所获取的检索子任务。针对多个检索子任务中的检索子任务,响应于确定出该检索子任务执行完成,线程管理模块303可以将该深度检索请求的检索子任务的任务数目减1,直到所有检索子任务执行完成,此时任务数目为0。最后上述线程管理模块303可以唤醒目标请求处理线程,从而使得目标请求处理线程可以向终端设备返回深度检索请求的检索结果。
从图2中可以看出,与图1对应的实施例相比,本实施例中的用于检索图数据库的方法可以记录深度检索请求拆分出的检索子任务的任务数目,并且每当任务执行线程执行完成其所获取的检索子任务时,将深度检索请求的任务数目减1,并在确定出深度检索请求的任务数目为0时返回检索结果。由此,本实施例描述的方案可以通过记录的任务数目及时准确地判断出深度检索请求的各检索子任务是否完成,无需逐个监控各任务执行线程,简化了图数据库的检索方案,进一步提高了图数据库的检索效率。
进一步参考图4,作为对上述各图所示方法的实现,本公开提供了一种用于检索图数据库的装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例的用于检索图数据库的装置400包括:接收单元401、拆分单元402、检索子任务获取单元403和返回单元404。其中,接收单元,被配置成接收终端设备发送的深度检索请求,并将深度检索请求添加到预设的任务队列,其中,深度检索请求用于请求图数据库的数据检索;拆分单元,被配置成利用预先构建的任务执行线程从任务队列中获取深度检索请求,将所获取的深度检索请求拆分成多个检索子任务,并将各检索子任务添加到任务队列;检索子任务获取单元,被配置成利用多个任务执行线程从任务队列中并行获取各检索子任务,以使各任务执行线程并列执行所获取的检索子任务;返回单元,被配置成响应于确定出各检索子任务执行完成,返回深度检索请求的检索结果。
在本实施例的一些可选的实现方式中,装置400还包括:记录单元,被配置成在将所获取的深度检索请求拆分成多个检索子任务,并将各检索子任务添加到任务队列之后,记录检索子任务的任务数目;计算单元,被配置成在利用多个任务执行线程从任务队列中并行获取各检索子任务之后,针对多个检索子任务中的检索子任务,响应于确定出该检索子任务执行完成,将任务数目减1
在本实施例的一些可选的实现方式中,返回单元404进一步被配置成包括:响应于确定出任务数目为0,确定各检索子任务执行完成;返回深度检索请求的检索结果。
在本实施例的一些可选的实现方式中,接收单元401进一步被配置成:从预先构建的请求处理线程中选取目标请求处理线程,其中,请求处理线程用于将深度检索请求添加到任务队列;利用目标请求处理线程将深度检索请求添加到任务队列。
在本实施例的一些可选的实现方式中,装置400还包括:状态设置单元,被配置成在利用目标请求处理线程将深度检索请求添加到任务队列之后,将目标请求处理线程设置为等待状态;线程唤醒单元,被配置成在返回深度检索请求的检索结果之前,唤醒目标请求处理线程,以利用目标请求处理线程返回检索结果。
在本实施例的一些可选的实现方式中,装置400还包括:数目获取单元,被配置成获取CPU的核心数目;第一确定单元,被配置成基于CPU的核心数目,确定构建任务执行线程的数目。
在本实施例的一些可选的实现方式中,装置400还包括:第二确定单元,被配置成基于任务执行线程的数目,确定构建请求处理线程的数目。
装置400中记载的诸单元与参考图1描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作和特征同样适用于装置400及其中包含的单元,在此不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图5所示,是根据本申请实施例的用于检索图数据库的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图5所示,该电子设备包括:一个或多个处理器501、存储器502,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图5中以一个处理器501为例。
存储器502即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的用于检索图数据库的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的用于检索图数据库的方法。
存储器502作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的用于检索图数据库的方法对应的程序指令/模块(例如,附图4所示的接收单元401、拆分单元402、检索子任务获取单元403和返回单元x03)。处理器501通过运行存储在存储器502中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的用于检索图数据库的方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用于检索图数据库的电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至用于检索图数据库的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
用于检索图数据库的方法的电子设备还可以包括:输入装置503和输出装置504。处理器501、存储器502、输入装置503和输出装置504可以通过总线或者其他方式连接,图5中以通过总线连接为例。
输入装置503可接收输入的数字或字符信息,以及产生与用于检索图数据库的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置504可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,可以通过接收终端设备发送的深度检索请求,并将深度检索请求添加到预设的任务队列,之后利用预先构建的任务执行线程从任务队列中获取深度检索请求,将所获取的深度检索请求拆分成多个检索子任务,并将各检索子任务添加到任务队列,而后利用多个任务执行线程从任务队列中并行获取各检索子任务,可以使得各任务执行线程并列执行所获取的检索子任务,最后响应于确定出各检索子任务执行完成可以返回深度检索请求的检索结果,从而实现了通过将深度检索请求拆分成多个检索子任务,在预先构建的各任务执行线程中并列执行,从而提高了图数据库中深度检索请求的检索效率。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (16)
1.一种用于检索图数据库的方法,包括:
接收终端设备发送的深度检索请求,并将所述深度检索请求添加到预设的任务队列,其中,所述深度检索请求用于请求所述图数据库的数据检索;
利用预先构建的任务执行线程从所述任务队列中获取所述深度检索请求,将所获取的深度检索请求拆分成多个检索子任务,并将各所述检索子任务添加到所述任务队列;
利用多个所述任务执行线程从所述任务队列中并行获取各所述检索子任务,以使各所述任务执行线程并列执行所获取的检索子任务;
响应于确定出各所述检索子任务执行完成,返回所述深度检索请求的检索结果。
2.根据权利要求1所述的方法,其中,所述方法还包括:
在将所获取的深度检索请求拆分成多个检索子任务,并将各所述检索子任务添加到所述任务队列之后,记录所述检索子任务的任务数目;
在利用多个所述任务执行线程从所述任务队列中并行获取各所述检索子任务之后,针对所述多个检索子任务中的检索子任务,响应于确定出该检索子任务执行完成,将所述任务数目减1。
3.根据权利要求2所述的方法,其中,所述响应于确定出各所述检索子任务执行完成,返回所述深度检索请求的检索结果,包括:
响应于确定出所述任务数目为0,确定各所述检索子任务执行完成;
返回所述深度检索请求的检索结果。
4.根据权利要求1所述的方法,其中,所述将所述深度检索请求添加到预设的任务队列,包括:
从预先构建的请求处理线程中选取目标请求处理线程,其中,所述请求处理线程用于将所述深度检索请求添加到所述任务队列;
利用所述目标请求处理线程将所述深度检索请求添加到所述任务队列。
5.根据权利要求4的所述方法,其中,所述方法还包括:
在利用所述目标请求处理线程将所述深度检索请求添加到所述任务队列之后,将所述目标请求处理线程设置为等待状态;
在返回所述深度检索请求的检索结果之前,唤醒所述目标请求处理线程,以利用所述目标请求处理线程返回所述检索结果。
6.根据权利要求1所述的方法,其中,所述方法还包括:
获取CPU的核心数目;
基于所述CPU的核心数目,确定构建任务执行线程的数目。
7.根据权利要求4所述的方法,其中,所述方法还包括:
基于所述任务执行线程的数目,确定构建请求处理线程的数目。
8.一种用于检索图数据库的装置,包括:
接收单元,被配置成接收终端设备发送的深度检索请求,并将所述深度检索请求添加到预设的任务队列,其中,所述深度检索请求用于请求所述图数据库的数据检索;
拆分单元,被配置成利用预先构建的任务执行线程从所述任务队列中获取所述深度检索请求,将所获取的深度检索请求拆分成多个检索子任务,并将各所述检索子任务添加到所述任务队列;
检索子任务获取单元,被配置成利用多个所述任务执行线程从所述任务队列中并行获取各所述检索子任务,以使各所述任务执行线程并列执行所获取的检索子任务;
返回单元,被配置成响应于确定出各所述检索子任务执行完成,返回所述深度检索请求的检索结果。
9.根据权利要求8所述的装置,其中,所述装置还包括:
记录单元,被配置成在将所获取的深度检索请求拆分成多个检索子任务,并将各所述检索子任务添加到所述任务队列之后,记录所述检索子任务的任务数目;
计算单元,被配置成在利用多个所述任务执行线程从所述任务队列中并行获取各所述检索子任务之后,针对所述多个检索子任务中的检索子任务,响应于确定出该检索子任务执行完成,将所述任务数目减1。
10.根据权利要求9所述的装置,其中,所述返回单元进一步被配置成包括:
响应于确定出所述任务数目为0,确定各所述检索子任务执行完成;
返回所述深度检索请求的检索结果。
11.根据权利要求8所述的装置,其中,所述接收单元进一步被配置成:
从预先构建的请求处理线程中选取目标请求处理线程,其中,所述请求处理线程用于将所述深度检索请求添加到所述任务队列;
利用所述目标请求处理线程将所述深度检索请求添加到所述任务队列。
12.根据权利要求11的所述装置,其中,所述装置还包括:
状态设置单元,被配置成在利用所述目标请求处理线程将所述深度检索请求添加到所述任务队列之后,将所述目标请求处理线程设置为等待状态;
线程唤醒单元,被配置成在返回所述深度检索请求的检索结果之前,唤醒所述目标请求处理线程,以利用所述目标请求处理线程返回所述检索结果。
13.根据权利要求8所述的装置,其中,所述装置还包括:
数目获取单元,被配置成获取CPU的核心数目;
第一确定单元,被配置成基于所述CPU的核心数目,确定构建任务执行线程的数目。
14.根据权利要求11所述的方法,其中,所述装置还包括:
第二确定单元,被配置成基于所述任务执行线程的数目,确定构建请求处理线程的数目。
15.一种电子设备,其中,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010268108.4A CN111488492B (zh) | 2020-04-08 | 2020-04-08 | 用于检索图数据库的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010268108.4A CN111488492B (zh) | 2020-04-08 | 2020-04-08 | 用于检索图数据库的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111488492A true CN111488492A (zh) | 2020-08-04 |
CN111488492B CN111488492B (zh) | 2023-11-17 |
Family
ID=71810889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010268108.4A Active CN111488492B (zh) | 2020-04-08 | 2020-04-08 | 用于检索图数据库的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111488492B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949610A (zh) * | 2020-09-18 | 2020-11-17 | 苏州浪潮智能科技有限公司 | 一种基于ai训练平台的海量文件检索方法、装置及设备 |
CN112988827A (zh) * | 2021-04-20 | 2021-06-18 | 杭州欧若数网科技有限公司 | 一种图数据库统计点边数的方法、系统、设备和存储介质 |
CN113392252A (zh) * | 2021-06-01 | 2021-09-14 | 上海徐毓智能科技有限公司 | 数据处理方法和装置 |
WO2023124135A1 (zh) * | 2021-12-29 | 2023-07-06 | 上海商汤智能科技有限公司 | 特征检索方法、装置、电子设备、计算机存储介质和程序 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140137130A1 (en) * | 2012-11-13 | 2014-05-15 | International Business Machines Corporation | Method and apparatus for efficient execution of concurrent processes on a multithreaded message passing system |
US20160026677A1 (en) * | 2014-07-23 | 2016-01-28 | Battelle Memorial Institute | System and method of storing and analyzing information |
CN107341215A (zh) * | 2017-06-07 | 2017-11-10 | 北京航空航天大学 | 一种基于分布式计算平台的多源垂直知识图谱分类集成查询方法 |
CN108073620A (zh) * | 2016-11-14 | 2018-05-25 | 北京航天长峰科技工业集团有限公司 | 一种基于图数据结构的快速检索方法 |
CN110765157A (zh) * | 2019-09-06 | 2020-02-07 | 中国平安财产保险股份有限公司 | 数据查询方法、装置、计算机设备及存储介质 |
CN110941741A (zh) * | 2018-09-21 | 2020-03-31 | 百度在线网络技术(北京)有限公司 | 图数据的路径检索处理方法、装置、服务器及存储介质 |
-
2020
- 2020-04-08 CN CN202010268108.4A patent/CN111488492B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140137130A1 (en) * | 2012-11-13 | 2014-05-15 | International Business Machines Corporation | Method and apparatus for efficient execution of concurrent processes on a multithreaded message passing system |
US20160026677A1 (en) * | 2014-07-23 | 2016-01-28 | Battelle Memorial Institute | System and method of storing and analyzing information |
CN108073620A (zh) * | 2016-11-14 | 2018-05-25 | 北京航天长峰科技工业集团有限公司 | 一种基于图数据结构的快速检索方法 |
CN107341215A (zh) * | 2017-06-07 | 2017-11-10 | 北京航空航天大学 | 一种基于分布式计算平台的多源垂直知识图谱分类集成查询方法 |
CN110941741A (zh) * | 2018-09-21 | 2020-03-31 | 百度在线网络技术(北京)有限公司 | 图数据的路径检索处理方法、装置、服务器及存储介质 |
CN110765157A (zh) * | 2019-09-06 | 2020-02-07 | 中国平安财产保险股份有限公司 | 数据查询方法、装置、计算机设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
ALESSANDRO MORARI ET AL.: "Scaling Semantic Graph Databases in Size and Performance", 《IEEE MICRO》, vol. 34, no. 4, pages 16 - 26, XP011555463, DOI: 10.1109/MM.2014.39 * |
于戈;谷峪;鲍玉斌;王志刚;: "云计算环境下的大规模图数据处理技术", vol. 34, no. 10, pages 1753 - 1767 * |
钱立兵: "搜索引擎中查询处理及结果缓存技术研究", 《中国学位论文全文数据库》 * |
韩硕等: "动态图上的最短路径距离并行算法", 《北京大学学报(自然科学版)》, vol. 56, no. 1, pages 112 - 122 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949610A (zh) * | 2020-09-18 | 2020-11-17 | 苏州浪潮智能科技有限公司 | 一种基于ai训练平台的海量文件检索方法、装置及设备 |
CN111949610B (zh) * | 2020-09-18 | 2022-12-23 | 苏州浪潮智能科技有限公司 | 一种基于ai训练平台的海量文件检索方法、装置及设备 |
CN112988827A (zh) * | 2021-04-20 | 2021-06-18 | 杭州欧若数网科技有限公司 | 一种图数据库统计点边数的方法、系统、设备和存储介质 |
CN113392252A (zh) * | 2021-06-01 | 2021-09-14 | 上海徐毓智能科技有限公司 | 数据处理方法和装置 |
WO2023124135A1 (zh) * | 2021-12-29 | 2023-07-06 | 上海商汤智能科技有限公司 | 特征检索方法、装置、电子设备、计算机存储介质和程序 |
Also Published As
Publication number | Publication date |
---|---|
CN111488492B (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110806923B (zh) | 一种区块链任务的并行处理方法、装置、电子设备和介质 | |
CN111488492B (zh) | 用于检索图数据库的方法和装置 | |
US8438282B2 (en) | Information processing system and load sharing method | |
US10732853B2 (en) | Dynamic memory management techniques | |
JP2021106018A (ja) | データ処理方法、装置、機器及び記憶媒体 | |
US20210248469A1 (en) | Method and apparatus for scheduling deep learning reasoning engines, device, and medium | |
US8918795B2 (en) | Handling and reporting of object state transitions on a multiprocess architecture | |
KR20120115398A (ko) | 전자 디바이스에서 전력을 제어하는 시스템 및 방법 | |
CN111782147A (zh) | 用于集群扩缩容的方法和装置 | |
CN113364877A (zh) | 数据处理方法、装置、电子设备和介质 | |
CN111782357B (zh) | 标签控制方法及装置、电子设备和可读存储介质 | |
CN112486644A (zh) | 用于生成信息的方法、装置、设备以及存储介质 | |
CN111782341B (zh) | 用于管理集群的方法和装置 | |
CN111767169B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN113051279A (zh) | 数据消息的存储方法、存储装置、电子设备及存储介质 | |
CN111767149A (zh) | 调度方法、装置、设备及存储设备 | |
CN111459882B (zh) | 分布式文件系统的命名空间事务处理方法和装置 | |
CN116069497A (zh) | 执行分布式任务的方法、装置、设备以及存储介质 | |
CN111506399B (zh) | 任务迁移方法、装置、电子设备及存储介质 | |
JP2021118004A (ja) | グラフ計算の処理方法、装置、電子機器及び記憶媒体 | |
CN113297226A (zh) | 数据存储方法、数据读取方法、装置、电子设备及介质 | |
CN112306413A (zh) | 用于访问内存的方法、装置、设备以及存储介质 | |
CN111506420B (zh) | 内存同步方法、装置、电子设备及存储介质 | |
CN116521672A (zh) | 数据处理方法、装置、设备、系统及存储介质 | |
CN118132001A (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 |