使用多个引擎来进行图查询处理的制作方法_6

文档序号:9457675阅读:来源:国知局
能的 引擎选择规则和基于货币成本的引擎选择规则的组合可被用来标识多个独立的查询执行 引擎中将被用来处理查询分量中的每一个的查询执行引擎。
[0137] 图17以简化形式示出解决前述需要一个或多个子查询的结果来执行另外的一个 或多个子查询的情况的查询执行管理过程的示例性实施例的流程图。如图17中所例示的, 该过程在框1700开始,其中每当需要一个或多个子查询的结果来执行另外的一个或多个 子查询时均进行以下动作。将一个或多个子查询中的每一个发送给被标识成处理该子查询 的查询执行引擎(框1702)。随后从被标识成处理一个或多个子查询中的每一个的查询执 行引擎处接收该子查询的结果(框1704)。随后使用接收到的此一个或多个子查询的结果 来将另外的一个或多个子查询中的每一个发送给被标识成处理该子查询的查询执行引擎 (框1706)。随后从被标识成处理另外的一个或多个子查询中的每一个的查询执行引擎处 接收该子查询的结果(框1708)。随后将接收到的一个或多个子查询的结果以及接收到的 另外的一个或多个子查询的结果组合以生成对图查询的响应(框1710)。
[0138] 2.0附加实施例
[0139] 尽管具体参考各实施例描述了图查询处理技术,但可以理解,可对这些实施例作 出变化和修改而不背离图查询处理技术的真正精神和范围。还应当注意,可以按所需的任 何组合来使用上述实施例的任一个或全部以形成另外的混合实施例或分布式实施例。尽管 用对结构特征和/或方法动作专用的语言描述了各图查询处理技术实施例,但可以理解, 所附权利要求书中定义的主题不必限于至今所述具体特征或动作。相反,上述具体特征和 动作是作为实现权利要求的示例形式公开的。
[0140] 3.0示例性操作环境
[0141] 本文描述的图查询处理技术实施例可在多种通用或专用计算系统环境或配置内 操作。图18示出其上可实现本文所描述的图查询处理技术的各实施例和元素的通用计算 机系统的简化示例。注意,图18中由折线或虚线所表示的任何框表示简化计算设备的替换 实施方式,并且以下描述的这些替换实施方式中的任一个或全部可以结合贯穿本文所描述 的其他替换实施方式来使用。
[0142] 例如,图18示出了概括系统图,其示出简化计算设备1800。这样的计算设备通 常可以在具有至少某种最小计算能力的设备中找到,这些设备包括但不限于个人计算机 (PC)、服务器计算机、手持式计算设备、膝上型或移动计算机、诸如蜂窝电话和个人数字助 理(PDA)等通信设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、 网络PC、小型计算机、大型计算机、音频或视频媒体播放器或云计算环境中的计算资源等。
[0143] 为允许设备实现本文描述的图查询处理技术的各实施例,该设备应当具有足够的 计算能力和系统存储器以启用基本计算操作。具体而言,如图18所示,计算能力一般由一 个或多个处理单元1810示出,并且还可包括一个或多个图形处理单元(GPU) 1815,这两者 中的任一个或全部与系统存储器1820通信。注意,假话计算设备1800的处理单元1810 可以是专用微处理器(诸如数字信号处理器(DSP)、甚长指令字(VLIW)处理器、场可编程 门阵列(FPGA)、或其他微控制器)或者可以是具有一个或多个处理核的常规中央处理单元 (CPU),处理核包括但不限于多核CPU中的专用的基于GPU的核。
[0144] 另外,图18的简化计算设备1800还可包括其他组件,诸如例如通信接口 1830。图 18的简化计算设备1800还可包括一个或多个常规计算机输入设备1840 (例如定点设备、 键盘、音频(例如语音)输入设备、视频输入设备、触觉输入设备、姿势识别设备、用于接收 有线或无线数据传输的设备等)。图18的简化计算设备1800还可包括其他光学组件,诸 如例如一个或多个常规计算机输出设备1850(例如显示设备1855、音频输出设备、视频输 出设备、用于传送有线或无线数据传输的设备等)。注意,用于通用计算机的一般通信接口 1830、输入设备1840、输出设备1850和存储设备1860是本领域技术人员所公知的,且将不 在此详细描述。
[0145] 图18的简化计算设备1800还可包括各种计算机可读介质。计算机可读介质可以 是可由计算机1800经由存储设备1860访问的任何可用介质,并且可包括是可移动1870和 /或不可移动1880的易失性和非易失性介质,该介质用于存储诸如计算机可读或计算机可 执行指令、数据结构、程序模块或其他数据等信息。作为示例而非限制,计算机可读介质可 包括计算机存储介质和通信介质。计算机存储介质指代有形的计算机可读或机器可读介质 或存储设备,诸如数字多功能盘(DVD)、紧致盘(CD)、软盘、磁带驱动器、硬盘驱动器、光盘 驱动器、固态存储器设备、随机存取存储器(RAM)、只读存储器(R0M)、电可擦除可编程只读 存储器(EEPR0M)、闪存或其他存储器技术、磁带盒、磁带、磁盘存储或其他磁存储设备、或可 用于存储所需信息并且可由一个或多个计算设备访问的任何其他设备。
[0146] 诸如计算机可读或计算机可执行指令、数据结构、程序模块等信息的保持还可通 过使用各种上述通信介质中的任一种来编码一个或多个已调制数据信号或载波或其他传 输机制或通信协议来实现,并且可包括任何有线或无线信息传递机制。注意,术语"已调制 数据信号"或"载波"一般指以对信号中的信息进行编码的方式设置或变化其一个或多个特 征的信号。例如,通信介质可包括诸如有线网络或直接线连接等携带一个或多个已调制数 据信号的有线介质,以及诸如声学、射频(RF)、红外线、激光和其他无线介质等用于传送和 /或接收一个或多个已调制数据信号或载波的无线介质。以上的任何组合也应包括在通信 介质的范围内。
[0147] 此外,可以按计算机可执行指令或其他数据结构的形式存储、接收、传送或者从 计算机可读或机器可读介质或存储设备和通信介质的任何所需组合中读取具体化本文描 述的图查询处理技术实施例中的部分或全部的软件、程序和/或计算机程序产品或其各部 分。
[0148] 最终,本文描述的图查询处理技术的各实施例还可在由计算设备执行的诸如程序 模块等计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或 实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。图查询处理技术实施例还可 以在其中任务由通过一个或多个通信网络链接的一个或多个远程处理设备执行或者在该 一个或多个设备的云中执行的分布式计算环境中实现。在分布式计算环境中,程序模块可 以位于包括介质存储设备的本地和远程计算机存储介质中。另外,上述指令可以部分地或 整体地作为可以包括或不包括处理器的硬件逻辑电路来实现。
【主权项】
1. 用于对图查询作出响应的计算机实现的过程,包括: 使用计算机来执行以下过程动作: 接收被提交给由属性图来建模的图数据库的图查询; 将所述图查询分解成多个查询分量; 对于所述查询分量中的每一个, 标识多个独立的查询执行引擎中可用于处理所述查询分量的查询执行引擎, 生成表示所述查询分量的子查询, 将所述子查询发送给标识出的查询执行引擎以供处理,以及 从标识出的查询执行引擎接收所述子查询的结果;以及 组合接收到的结果以生成对所述图查询的响应。2. 如权利要求1所述的过程,其特征在于: 所述查询执行引擎包括一个或多个混合引擎,所述一个或多个混合引擎各自包括基于 存储器的组件和关系数据库组件; 所述属性图或其一部分被存储在所述关系数据库组件中,以及 每当给定子查询被发送给给定混合引擎以供处理时,仅与所述属性图或其所述部分的 拓扑结构相关联的数据被从所述关系数据库组件中检索并被存储在所述基于存储器的组 件中。3. 如权利要求1所述的过程,其特征在于,所述查询执行引擎包括以下中的任一个: 一个或多个关系数据库引擎及一个或多个图引擎;或者 一个或多个关系数据库引擎及一个或多个混合引擎;或者 一个或多个图引擎及一个或多个混合引擎。4. 如权利要求1所述的过程,其特征在于: 标识多个独立查询执行引擎中可用于处理所述查询分量的查询执行引擎的过程动作 包括使用基于性能的引擎选择规则来执行所述标识的动作, 所述规则指定所述图查询的模式匹配分量将由关系数据库引擎或混合引擎的关系数 据库组件来执行, 所述规则指定所述图查询的可达性分量将由图引擎或所述混合引擎的基于存储器的 组件来执行,以及 所述规则指定所述图查询的最短路径分量将由所述图引擎或所述混合引擎的基于存 储器的组件来执行。5. 如权利要求1所述的过程,其特征在于,标识多个独立的查询执行引擎中可用于处 理所述查询分量的查询执行引擎的过程动作包括至少使用基于货币成本的引擎选择规则 来执行所述标识的动作,所述规则指定所述查询分量将由多个独立的查询执行引擎中用起 来最便宜的查询执行引擎来执行。6. -种用于对图查询作出响应的系统,包括: 计算设备;以及 具有可由所述计算设备执行的程序模块的计算机程序,其中所述计算设备可由所述计 算机程序的程序模块来指导以便, 接收被提交给由属性图来建模的图数据库的图查询, 生成表示所述图查询的多个子查询, 对于所述子查询中的每一个, 标识多个独立的查询执行引擎中可用于处理所述子查询的查询执行引擎, 将所述子查询发送给标识出的查询执行引擎以供处理,以及 从标识出的查询执行引擎接收所述子查询的结果,以及 组合接收到的结果以生成对所述图查询的响应。7. 如权利要求6所述的系统,其特征在于,进一步包括用于每当需要所述子查询中的 一个或多个子查询的结果来执行所述子查询中另外的一个或多个子查询时进行以下操作 的程序t吴块: 将所述子查询中的一个或多个中的每一个发送给被标识成处理该子查询的查询执行 引擎, 从被标识成处理所述子查询中的所述一个或多个子查询中的每一个的所述查询执行 引擎处接收该子查询的结果, 使用接收到的所述子查询中的所述一个或多个子查询的结果来将所述子查询中所述 另外的一个或多个子查询中的每一个发送给被标识成处理该子查询的查询执行引擎, 从被标识成处理所述子查询中的所述另外的一个或多个子查询中的每一个的所述查 询执行引擎处接收该子查询的结果,以及 将接收到的所述子查询中的所述一个或多个子查询的结果以及接收到的所述子查询 中所述另外的一个或多个子查询的结果组合以生成对所述图查询的响应。8. 如权利要求6所述的系统,其特征在于,用于生成表示所述图查询的多个子查询的 程序模块包括用于以下操作的程序模块: 使用基于元组的代数方言来将所述图查询转换成包括多个代数运算符的代数查询计 划;以及 将所述代数查询计划转换成多个子查询,所述转换包括用于以下操作的程序模块: 为与所述属性图中的关系操作相关联的代数运算符生成一个或多个结构化查询语言 子查询,以及 为与所述属性图中的遍历操作相关联的代数运算符生成一个或多个非关系子查询。9. 如权利要求8所述的系统,其特征在于,用于使用基于元组的代数方言来将所述图 查询变换成包括多个代数运算符的代数查询计划的程序模块包括用于以下操作的程序模 块: 使用推断规则集合来将所述图查询的三元组模式映射到代数运算符集合上; 应用查询重写规则集合来减少所述图查询评估的执行时间;以及 使用三元组模式优先规则集合来根据其限制性对所述三元组模式重新排序。10. 如权利要求8所述的系统,其特征在于,用于标识多个独立的查询执行引擎中可用 于处理所述子查询的查询执行引擎的程序模块包括用于使用基于性能的引擎选择规则来 执行所述标识的程序模块,所述规则指定结构化查询语言子查询将由关系数据库引擎或混 合引擎的关系数据库组件来执行,并且还指定所述非关系子查询将由图引擎或混合引擎的 基于存储器的组件来执行。
【专利摘要】使用多个独立的查询执行引擎来处理图查询。接收被提交给由属性图来建模的图数据库的图查询。将图查询分解成多个查询分量。对于这些查询分量中的每一者,标识这些查询执行引擎中可用于处理该查询分量的查询执行引擎,生成表示该查询分量的子查询,将该子查询发送给标识出的查询执行引擎以供处理,以及从标识出的查询执行引擎中接收该子查询的结果。随后组合接收到的结果以生成对该图查询的响应。
【IPC分类】G06F17/30
【公开号】CN105210058
【申请号】CN201380065559
【发明人】S·艾尔尼克提, Y·何, S·萨克
【申请人】微软技术许可有限责任公司
【公开日】2015年12月30日
【申请日】2013年12月14日
【公告号】EP2932412A2, US9053210, US20140172914, WO2014093951A2, WO2014093951A3
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1