基于多模式切换的RDMA友好的SPARQL查询方法技术

技术编号:15542304 阅读:88 留言:0更新日期:2017-06-05 11:18
本发明专利技术公开了一种基于多模式切换的RDMA友好的SPARQL查询方法,其包括以下步骤:步骤一,收到消息并判断消息类型;步骤二,执行一步查询,用图遍历的方法找到新节点;步骤三,判断请求是否执行结束;步骤四,判断执行下一步需要的RDMA操作数是否大于等于临界值;步骤五,生成新的子请求,发给其他机器,记录等待的回复个数;步骤六,当所需RDMA操作数小于临界值时,直接读取远程的数据,完成下一步请求,回到步骤三。本发明专利技术能够利用高性能网络互联设备提供的远程直接内存访问模式,更合理地选择查询的执行模式,减少系统的通讯开销,提高复杂查询的并行度。

RDMA friendly SPARQL query method based on multi-mode switching

The invention discloses a method for multi query mode switching friendly RDMA based on SPARQL, which comprises the following steps: step one, receives the message and determine the message type; step two, execute step query, find new nodes using graph traversal approach; step three, determine whether a request execution end; step four, judgment the RDMA operation is performed to the next step number is greater than or equal to the critical value; step five, generating new sub requests to other machines, a record number of waiting for the reply; step six, when the required RDMA operand is less than the critical value, directly read remote data, do the next steps back to the request. Three. The invention can utilize the remote direct memory access mode provided by the high-performance network interconnection device to select the execution mode of the query more reasonably, reduce the communication overhead of the system and improve the parallelism of the complicated query.

【技术实现步骤摘要】
基于多模式切换的RDMA友好的SPARQL查询方法
本专利技术涉及一种SPARQL查询方法,特别是涉及一种基于多模式切换的RDMA友好的SPARQL查询方法。
技术介绍
大数据时代,许多知识库如DBpedia(特殊的语义网应用范例)通常以RDF(ResourceDescriptionFramework,资源描述框架)的形式进行存储。RDF数据实际上是由一系列的三元组数据组成的,其中每个三元组都是由主语,谓语,宾语组成。如果把主语和宾语当成是一个顶点,那么每个三元组实际上就是由主语这个起始顶点指向宾语这个终止节点的一条边,则整个RDF数据集认为是一张有向图。SPARQL(SimpleProtocolandRDFQueryLanguage)是RDF数据上的一种标准查询语言,由一系列类似的三元组组成,其中每个元素是一个常量或者是一个变量。查询得到的结果是满足所有三元组的变量的集合。RDMA(远程直接内存访问,RemoteDirectMemoryAccess),是当前高性能网络设备提供的一种模式,能够直接对远端节点已注册的内存空间进行读写访问,完全不需要服务器机器的CPU进行协助。相比使用传统网络,使用RDMA传输带宽能大幅提高,网络延迟大幅下降,性能提升达一个数量级。不同的SPARQL查询差异非常大,有的查询只涉及到了图的小部分数据,而有的查询则涉及到同一类型的所有数据,很难使用同一种方法统一地处理RDF数据的查询。对于小的查询,最重要的是确保它占用的资源不多,系统同时支持多个小的查询;对于大的查询,最重要的是确保它被并行执行,在较短的时间内完成。因此,如何针对SPARQL的特性,以及针对远程直接内存访问模式特征,设计一种RDMA友好的SPARQL查询方法,减少系统的通讯开销,提高复杂查询的并行度,降低用户查询请求的延迟,实已成为本领域技术人员亟待解决的技术难题。
技术实现思路
本专利技术所要解决的技术问题是提供一种基于多模式切换的RDMA友好的SPARQL查询方法,其能够利用高性能网络互联设备提供的远程直接内存访问模式,更合理地选择查询的执行模式,减少系统的通讯开销,提高复杂查询的并行度,降低用户查询请求的延迟。本专利技术是通过下述技术方案来解决上述技术问题的:一种基于多模式切换的RDMA友好的SPARQL查询方法,其特征在于,所述基于多模式切换的RDMA友好的SPARQL查询方法包括以下步骤:步骤一,收到消息并判断消息类型;步骤二,执行一步SPARQL查询,用图遍历的方法找到符合条件的新节点;步骤三,判断请求是否执行结束,是则返回回复;否则执行步骤四;步骤四,判断执行请求的下一步时,需要的RDMA操作数是否大于等于某个事先约定的临界值;是则执行步骤五;否则执行步骤六;步骤五,生成新的子请求,发给其他机器,并记录需要等待的回复个数;步骤六,当所需RDMA操作数小于临界值时,直接读取远程的数据,完成下一步请求,并回到步骤三。优选地,所述步骤一中,若判断消息类型是请求,则执行步骤二,若判断消息类型是回复,则存储回复;若已经收到所需的全部回复,则合并所有回复为一个完整的回复,返回给之前发送请求的机器;若还未受到所需的全部回复,则结束处理,继续等待下一个消息。优选地,所述步骤二包括如下步骤:由请求的发送者保证,请求的所有起始点一定是在本地的;从本地存储中,找到所有的起始点;遍历所有起始点的边数据,获得满足这一步查询的所有终止点的ID。优选地,所述步骤四包括如下步骤:根据之前的执行结果,获得下一步请求的所有起始点的ID;计算每个起始点的所属机器,统计不属于本机的起始点的个数,即执行请求的下一步需要的RDMA操作数;若RDMA操作数小于临界值,则执行步骤六,否则执行步骤五。优选地,所述步骤五包括如下步骤:对下一步请求的所有起始点的ID,计算他们的所属机器;按照所属机器,将请求划分为多个子请求,所属机器相等的起始点被划分到同一个子请求中;将所有子请求发送给对应的机器,并记录需要等待的回复个数。优选地,所述步骤六包括如下步骤:对下一步请求的所有起始点的ID,计算他们的所属机器,并计算起始点的数据在所属机器的位置,直接使用RDMA请求将起始点的边数据读取到本地;遍历边数据,获得满足这一步查询的所有终止点的ID;之后回到步骤三。优选地,所述基于多模式切换的RDMA友好的SPARQL查询方法使用RDMAWRITE实现高效的消息收发机制。优选地,所述基于多模式切换的RDMA友好的SPARQL查询方法使用本地执行模式和Fork-join模式处理SPARQL。本专利技术的积极进步效果在于:本专利技术能够利用高性能网络互联设备提供的远程直接内存访问(RDMA)模式,更合理地选择查询的执行模式,减少系统的通讯开销,提高复杂查询的并行度,降低用户查询请求的延迟。附图说明图1为本专利技术的流程图。图2为本专利技术的信息发送机制图。具体实施方式下面结合附图给出本专利技术较佳实施例,以详细说明本专利技术的技术方案。如图1所示,本专利技术基于多模式切换的RDMA友好的SPARQL查询方法包括以下步骤:步骤一,收到消息并判断消息类型;步骤二,执行一步SPARQL查询,用图遍历的方法找到符合条件的新节点;步骤三,判断请求是否执行结束,是则返回回复;否则执行步骤四;步骤四,判断执行请求的下一步时,需要的RDMA操作数是否大于等于某个事先约定的threshold(临界)值;是则执行步骤五;否则执行步骤六;步骤五,生成新的子请求,发给其他机器,并记录需要等待的回复个数;步骤六,当所需RDMA操作数小于threshold(临界)值时,直接读取远程的数据,完成下一步请求,并回到步骤三。所述步骤一中,若判断消息类型是请求,则执行步骤二,若判断消息类型是回复,则存储回复;若已经收到所需的全部回复,则合并所有回复为一个完整的回复,返回给之前发送请求的机器;若还未受到所需的全部回复,则结束处理,继续等待下一个消息。所述步骤二包括如下步骤:由请求的发送者保证,请求的所有起始点一定是在本地的;从本地存储中,找到所有的起始点。遍历所有起始点的边数据,获得满足这一步查询的所有终止点的ID。所述步骤四包括如下步骤:根据之前的执行结果,获得下一步请求的所有起始点的ID。计算每个起始点的所属机器,统计不属于本机的起始点的个数,即执行请求的下一步需要的RDMA操作数;若RDMA操作数小于threshold(临界)值,则执行步骤六,否则执行步骤五。所述步骤五包括如下步骤:对下一步请求的所有起始点的ID,计算他们的所属机器。按照所属机器,将请求划分为多个子请求,所属机器相等的起始点被划分到同一个子请求中;将所有子请求发送给对应的机器,并记录需要等待的回复个数。所述步骤六包括如下步骤:对下一步请求的所有起始点的ID,计算他们的所属机器,并计算起始点的数据在所属机器的位置,直接使用RDMA请求将起始点的边数据读取到本地。遍历边数据,获得满足这一步查询的所有终止点的ID;之后回到步骤三。本专利技术使用RDMAWRITE(写入)实现高效的消息收发机制,如图2所示。接收方会事先准备好空间足够大的环形缓冲区。发送方在发送消息时,会在消息前后加上消息A的大小信息B,然后使用RDMAWRITE将所有内容一次性写到接收方的环形缓冲区中,R本文档来自技高网
...
基于多模式切换的RDMA友好的SPARQL查询方法

【技术保护点】
一种基于多模式切换的RDMA友好的SPARQL查询方法,其特征在于,所述基于多模式切换的RDMA友好的SPARQL查询方法包括以下步骤:步骤一,收到消息并判断消息类型;步骤二,执行一步SPARQL查询,用图遍历的方法找到符合条件的新节点;步骤三,判断请求是否执行结束,是则返回回复;否则执行步骤四;步骤四,判断执行请求的下一步时,需要的RDMA操作数是否大于等于某个事先约定的临界值;是则执行步骤五;否则执行步骤六;步骤五,生成新的子请求,发给其他机器,并记录需要等待的回复个数;步骤六,当所需RDMA操作数小于临界值时,直接读取远程的数据,完成下一步请求,并回到步骤三。

【技术特征摘要】
1.一种基于多模式切换的RDMA友好的SPARQL查询方法,其特征在于,所述基于多模式切换的RDMA友好的SPARQL查询方法包括以下步骤:步骤一,收到消息并判断消息类型;步骤二,执行一步SPARQL查询,用图遍历的方法找到符合条件的新节点;步骤三,判断请求是否执行结束,是则返回回复;否则执行步骤四;步骤四,判断执行请求的下一步时,需要的RDMA操作数是否大于等于某个事先约定的临界值;是则执行步骤五;否则执行步骤六;步骤五,生成新的子请求,发给其他机器,并记录需要等待的回复个数;步骤六,当所需RDMA操作数小于临界值时,直接读取远程的数据,完成下一步请求,并回到步骤三。2.如权利要求1所述的基于多模式切换的RDMA友好的SPARQL查询方法,其特征在于,所述步骤一中,若判断消息类型是请求,则执行步骤二,若判断消息类型是回复,则存储回复;若已经收到所需的全部回复,则合并所有回复为一个完整的回复,返回给之前发送请求的机器;若还未受到所需的全部回复,则结束处理,继续等待下一个消息。3.如权利要求1所述的基于多模式切换的RDMA友好的SPARQL查询方法,其特征在于,所述步骤二包括如下步骤:由请求的发送者保证,请求的所有起始点一定是在本地的;从本地存储中,找到所有的起始点;遍历所有起始点的边数据,获得满足这一步查询的所有终止点的ID。4.如权利要求1所述的基于多模式切换的RDMA友好的SPARQL查询方法,其特征在于...

【专利技术属性】
技术研发人员:陈榕陈海波臧斌宇
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1