CN106776815B - 基于多模式切换的rdma友好的sparql查询方法 - Google Patents
基于多模式切换的rdma友好的sparql查询方法 Download PDFInfo
- Publication number
- CN106776815B CN106776815B CN201611053001.8A CN201611053001A CN106776815B CN 106776815 B CN106776815 B CN 106776815B CN 201611053001 A CN201611053001 A CN 201611053001A CN 106776815 B CN106776815 B CN 106776815B
- Authority
- CN
- China
- Prior art keywords
- rdma
- request
- sparq
- friendly
- starting points
- 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.)
- Active
Links
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24561—Intermediate data storage techniques for performance improvement
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于多模式切换的RDMA友好的SPARQL查询方法,其包括以下步骤:步骤一,收到消息并判断消息类型;步骤二,执行一步查询,用图遍历的方法找到新节点;步骤三,判断请求是否执行结束;步骤四,判断执行下一步需要的RDMA操作数是否大于等于临界值;步骤五,生成新的子请求,发给其他机器,记录等待的回复个数;步骤六,当所需RDMA操作数小于临界值时,直接读取远程的数据,完成下一步请求,回到步骤三。本发明能够利用高性能网络互联设备提供的远程直接内存访问模式,更合理地选择查询的执行模式,减少系统的通讯开销,提高复杂查询的并行度。
Description
技术领域
本发明涉及一种SPARQL查询方法,特别是涉及一种基于多模式切换的RDMA友好的SPARQL查询方法。
背景技术
大数据时代,许多知识库如DBpedia(特殊的语义网应用范例)通常以RDF(Resource Description Framework,资源描述框架)的形式进行存储。RDF数据实际上是由一系列的三元组数据组成的,其中每个三元组都是由主语,谓语,宾语组成。如果把主语和宾语当成是一个顶点,那么每个三元组实际上就是由主语这个起始顶点指向宾语这个终止节点的一条边,则整个RDF数据集认为是一张有向图。SPARQL(Simple Protocol and RDFQuery Language)是RDF数据上的一种标准查询语言,由一系列类似的三元组组成,其中每个元素是一个常量或者是一个变量。查询得到的结果是满足所有三元组的变量的集合。
RDMA(远程直接内存访问,Remote Direct Memory Access),是当前高性能网络设备提供的一种模式,能够直接对远端节点已注册的内存空间进行读写访问,完全不需要服务器机器的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查询方法使用RDMA WRITE实现高效的消息收发机制。
优选地,所述基于多模式切换的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;之后回到步骤三。
本发明使用RDMA WRITE(写入)实现高效的消息收发机制,如图2所示。接收方会事先准备好空间足够大的环形缓冲区。发送方在发送消息时,会在消息前后加上消息A的大小信息B,然后使用RDMA WRITE将所有内容一次性写到接收方的环形缓冲区中,RDMA可以保证所有的写是按照顺序完成的。接收方会在空白处不断轮询,检查是否有消息。当轮询到非零值时,说明有消息到来,根据消息的大小信息,就可以知道消息的尾部的位置。之后接收方再次轮询消息的尾部,直到尾部的值与头部的值相等为止。由于RDMA可以保证所有的写是按照顺序完成的,说明此时RDMA WRITE已经执行完毕,消息已经发送完全。RDMA WRITE高效的地方在于直接写到接收方的用户态空间中,而不需要经过内核的TCP/IP协议栈。
本发明使用两种不同的执行模式(本地执行模式和Fork-join模式)处理SPARQL,并动态地选择更优的执行模式。本地执行模式是使用RDMA READ直接读取远端数据,然后再本地完成查询。Fork-join模式是把当前完成的部分以及剩余的请求通过消息发送给其他机器执行,等待所有机器回复,再合并所有结果。
本地执行模式处理小的请求效果很好,主要是因为它直接使用RDMA READ读取远端数据,完全绕过了远端的CPU,延迟特别低。多个机器同时使用本地执行模式的时候,不需要对方的参与,互相之间不会干扰,可以有效地提高系统的吞吐量。但是处理大请求时,由于RDMA READ只能读取一段连续的地址空间,大请求需要访问很多个不同的顶点,因此需要发很多次RDMA READ,开销比发消息来得大。
Fork-join模式处理大的请求效果很好,主要是因为它把一个请求拆分成多个子请求,可以充分利用集群的资源,并行地解决大请求。然而Fork-join模式处理小请求效果不佳,主要是因为消息的开销相对小请求的执行时间来说比较大,并行的优势无法得到体现。而且多个小请求之间互相干扰,降低系统的吞吐量。
综上所述,本发明提出的基于多模式切换的RDMA友好的SPARQL查询方法,充分利用高性能网络互联设备提供的远程直接内存访问(RDMA)模式,更合理地选择查询的执行模式,减少系统的通讯开销,提高复杂查询的并行度,降低用户查询请求的延迟。
上述实施案例仅列示性说明本发明的原理及功效,而非用于限制本发明。任何熟悉此项技术的人员均可在不违背本发明的精神及范围下,对上述实施例进行修改。因此,本发明的权利保护范围,应如权利要求书所列。
Claims (7)
1.一种基于多模式切换的RDMA友好的SPARQL查询方法,其特征在于,所述基于多模式切换的RDMA友好的SPARQL查询方法包括以下步骤:
步骤一,收到消息并判断消息类型;
步骤二,执行一步SPARQL查询,用图遍历的方法找到符合条件的新节点;
步骤三,判断请求是否执行结束,是则返回回复;否则执行步骤四;
步骤四,判断执行请求的下一步时,需要的RDMA操作数是否大于等于某个事先约定的临界值;是则执行步骤五;否则执行步骤六;
步骤五,生成新的子请求,发给其他机器,并记录需要等待的回复个数;
步骤六,当所需RDMA操作数小于临界值时,直接读取远程的数据,完成下一步请求,并回到步骤三;
所述步骤二包括如下步骤:由请求的发送者保证,请求的所有起始点一定是在本地的;从本地存储中,找到所有的起始点;遍历所有起始点的边数据,获得满足这一步查询的所有终止点的ID。
2.如权利要求1所述的基于多模式切换的RDMA友好的SPARQL查询方法,其特征在于,所述步骤一中,若判断消息类型是请求,则执行步骤二,若判断消息类型是回复,则存储回复;若已经收到所需的全部回复,则合并所有回复为一个完整的回复,返回给之前发送请求的机器;若还未受到所需的全部回复,则结束处理,继续等待下一个消息。
3.如权利要求1所述的基于多模式切换的RDMA友好的SPARQL查询方法,其特征在于,所述步骤四包括如下步骤:根据之前的执行结果,获得下一步请求的所有起始点的ID;计算每个起始点的所属机器,统计不属于本机的起始点的个数,即执行请求的下一步需要的RDMA操作数;若RDMA操作数小于临界值,则执行步骤六,否则执行步骤五。
4.如权利要求1所述的基于多模式切换的RDMA友好的SPARQL查询方法,其特征在于,所述步骤五包括如下步骤:对下一步请求的所有起始点的ID,计算他们的所属机器;按照所属机器,将请求划分为多个子请求,所属机器相等的起始点被划分到同一个子请求中;将所有子请求发送给对应的机器,并记录需要等待的回复个数。
5.如权利要求1所述的基于多模式切换的RDMA友好的SPARQL查询方法,其特征在于,所述步骤六包括如下步骤:对下一步请求的所有起始点的ID,计算他们的所属机器,并计算起始点的数据在所属机器的位置,直接使用RDMA请求将起始点的边数据读取到本地;遍历边数据,获得满足这一步查询的所有终止点的ID;之后回到步骤三。
6.如权利要求1所述的基于多模式切换的RDMA友好的SPARQL查询方法,其特征在于,所述基于多模式切换的RDMA友好的SPARQL查询方法使用RDMAWRITE实现高效的消息收发机制。
7.如权利要求1所述的基于多模式切换的RDMA友好的SPARQL查询方法,其特征在于,所述基于多模式切换的RDMA友好的SPARQL查询方法使用本地执行模式和Fork-join模式处理SPARQL。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611053001.8A CN106776815B (zh) | 2016-11-24 | 2016-11-24 | 基于多模式切换的rdma友好的sparql查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611053001.8A CN106776815B (zh) | 2016-11-24 | 2016-11-24 | 基于多模式切换的rdma友好的sparql查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106776815A CN106776815A (zh) | 2017-05-31 |
CN106776815B true CN106776815B (zh) | 2020-07-14 |
Family
ID=58911273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611053001.8A Active CN106776815B (zh) | 2016-11-24 | 2016-11-24 | 基于多模式切换的rdma友好的sparql查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776815B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019319B (zh) * | 2017-09-30 | 2021-08-13 | 北京国双科技有限公司 | 数据查询方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1491382A (zh) * | 2001-06-29 | 2004-04-21 | �Ҵ���˾ | 在多模式环境中提供对话管理和仲裁的系统和方法 |
CN101657802A (zh) * | 2006-12-06 | 2010-02-24 | 弗森多系统公司(dba弗森-艾奥) | 用于远程直接存储器存取固态存储设备的装置、系统及方法 |
CN104216975A (zh) * | 2014-08-29 | 2014-12-17 | 天津大学 | 面向大规模rdf数据的高效语义索引的构建方法 |
CN104679764A (zh) * | 2013-11-28 | 2015-06-03 | 方正信息产业控股有限公司 | 一种图数据检索方法和装置 |
CN105550238A (zh) * | 2015-11-27 | 2016-05-04 | 浪潮(北京)电子信息产业有限公司 | 一种数据库一体机的架构系统 |
-
2016
- 2016-11-24 CN CN201611053001.8A patent/CN106776815B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1491382A (zh) * | 2001-06-29 | 2004-04-21 | �Ҵ���˾ | 在多模式环境中提供对话管理和仲裁的系统和方法 |
CN101657802A (zh) * | 2006-12-06 | 2010-02-24 | 弗森多系统公司(dba弗森-艾奥) | 用于远程直接存储器存取固态存储设备的装置、系统及方法 |
CN104679764A (zh) * | 2013-11-28 | 2015-06-03 | 方正信息产业控股有限公司 | 一种图数据检索方法和装置 |
CN104216975A (zh) * | 2014-08-29 | 2014-12-17 | 天津大学 | 面向大规模rdf数据的高效语义索引的构建方法 |
CN105550238A (zh) * | 2015-11-27 | 2016-05-04 | 浪潮(北京)电子信息产业有限公司 | 一种数据库一体机的架构系统 |
Non-Patent Citations (1)
Title |
---|
Fast and Concurrent RDF Queries with RDMA-Based Distributed Graph Exploration;JIAXIN SHI等;《The 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI)》;20161104;1-23 * |
Also Published As
Publication number | Publication date |
---|---|
CN106776815A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6626211B2 (ja) | ショートリンクを処理する方法及び装置並びにショートリンクサーバ | |
US20180329860A1 (en) | Remote direct memory access (rdma) high performance producer-consumer message processing | |
WO2018075182A1 (en) | Gpu remote communication with triggered operations | |
CN102843426A (zh) | 基于智能父节点的Web缓存资源共享系统和方法 | |
WO2022037176A1 (zh) | 核间通信方法、装置、电子组件以及电子设备 | |
WO2019219005A1 (zh) | 一种数据处理系统及方法 | |
WO2021189195A1 (zh) | 数据查询方法、装置、服务器及存储介质 | |
US20230152978A1 (en) | Data Access Method and Related Device | |
US20230239358A1 (en) | Method for fowarding data, device, storage medium and data transmission system | |
CN111338808B (zh) | 一种协同计算方法及系统 | |
US11190620B2 (en) | Methods and electronic devices for data transmission and reception | |
CN113190528B (zh) | 一种并行分布式大数据架构构建方法及系统 | |
CN106776815B (zh) | 基于多模式切换的rdma友好的sparql查询方法 | |
CN110995817B (zh) | 请求回调方法、装置及客户端设备 | |
CN111209263A (zh) | 数据存储方法、装置、设备及存储介质 | |
CN110674086A (zh) | 数据合并方法、装置、电子设备及存储介质 | |
US20220253238A1 (en) | Method and apparatus for accessing solid state disk | |
CN113641604B (zh) | 一种数据传输方法及系统 | |
CN113923061B (zh) | 基于智能网卡的gpu网络通信方法、智能网卡、介质、设备 | |
CN109766347B (zh) | 一种数据更新方法、装置、系统、计算机设备及存储介质 | |
WO2022227561A1 (zh) | 用于数据读取的装置、方法、芯片、计算机设备及存储介质 | |
KR101926283B1 (ko) | 적어도 하나의 네트워크-연계된 객체를, 적어도 부분적으로, 할당 및/또는 구성하는 것을, 적어도 부분적으로, 허용하는 적어도 하나의 메커니즘 | |
US10439960B1 (en) | Memory page request for optimizing memory page latency associated with network nodes | |
WO2015123986A1 (zh) | 一种数据记录的方法、系统以及接入服务器 | |
CN107506491B (zh) | 一种分布式文件系统的osd数据分发方法及装置 |
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 |