CN105487937A - 一种rdma实现方法和装置 - Google Patents
一种rdma实现方法和装置 Download PDFInfo
- Publication number
- CN105487937A CN105487937A CN201510853635.0A CN201510853635A CN105487937A CN 105487937 A CN105487937 A CN 105487937A CN 201510853635 A CN201510853635 A CN 201510853635A CN 105487937 A CN105487937 A CN 105487937A
- Authority
- CN
- China
- Prior art keywords
- data
- write request
- request
- write
- receiving end
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1072—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
Abstract
本发明实施例公开了一种RDMA实现方法和装置,该方法可包括:接收发送端发送的携带有数据的写请求;响应所述写请求,将所述数据写入存储器中;在所述数据写入到所述存储器后,向所述发送端发送携带有所述写请求的请求完成状态的响应消息。本发明实施例可以降低时延和减少网络带宽消耗。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种远程直接内存访问(RemoteDirectMemoryAccess,RDMA)实现方法和装置。
背景技术
RDMA技术是一种新的高性能的数据传输技术,带宽高、时延低,且CPU占用率低。目前RDMA技术中,发送端向接收端写入数据时,为了确保数据写入的完成情况,往往会向接收端发送RDMA写(WRITE)命令和RDMA读(READ)命令,其中,RDMAWRITE命令实现向接收端的存储器内写入数据,而RDMAREAD命令是读取RDMAWRITE命令写入的存储位置的数据,发送端再将读取到的数据与写入的数据进行比较,以完成数据的写入。可见,目前RDMA技术中写入一个数据时往往需要传输两个消息,这会使得时延较长,而且网络带宽消耗较多。
发明内容
本发明实施例提供了一种RDMA实现方法和装置,可以降低时延和减少网络带宽消耗。
第一方面,本发明实施例提供一种RDMA实现方法,包括:
接收发送端发送的携带有数据的写请求;
响应所述写请求,将所述数据写入存储器中;
在所述数据写入到所述存储器后,向所述发送端发送携带有所述写请求的请求完成状态的响应消息。
该实现方式中,可以实现通过传输一个写请求和一个响应消息就可以完成数据写入,从而相比现有技术传输写请求和读请求,可以降低时延和减少网络带宽消耗。
在第一方面的第一种可能的实现方式中,所述方法还可以包括如下步骤:
在所述数据写入到所述存储器后,在所述数据被写入的存储位置中执行读取操作,以获取读取内容;
判断所述读取内容是否为所述数据,若是,则执行向所述发送端发送携带有所述写请求的请求完成状态的响应消息的步骤,且所述请求完成状态包括数据写入成功状态;
若所述读取内容不为所述数据时,则执行向所述发送端发送携带有所述写请求的请求完成状态的响应消息的步骤,且所述请求完成状态包括数据写入失败状态。
该实现方式中,可以实现将写入的内容读取再进行判断,从而可以实现向发送端发送写入成功或者写入失败的响应消息。
结合第一方面的第一种可能的实现方式,第一方面的第二种可能的实现方式中,上述写请求还可以携带有循环冗余校验(CyclicRedundancyCheck,CRC)值;
上述判断所述读取内容是否为所述数据的步骤,可以包括:
计算所述读取内容的CRC值,并将所述计算的CRC值与所述写请求携带的CRC值进行比较,当比较一致时,则确定所述读取内容为所述数据,当比较不一致时,则所述读取内容不为所述数据。
该实现方式中,可以实现使用CRC校验数据是否写入成功。
结合第一方面的上述任一种实现方式,在第一方面的第三种可能的实现方式中,上述写请求还可以携带有CRC值;
所述响应所述写请求,将所述数据写入存储器中,包括:
使用所述CRC值对所述数据进行CRC校验,当校验通过时将所述数据写入存储器中。
该实现方式中,可以实现在将数据写入存储器前,对数据进行CRC校验,以防止向存储器中写入错误的数据。
第二方面,本发明实施例提供一种RDMA实现方法,包括:
向接收端发送携带有数据的写请求;
接收所述接收端发送的携带有所述写请求的请求完成状态的响应消息,其中,所述响应消息是所述接收端在响应所述写请求将所述数据写入到存储器后发送的。
该实现方式中,可以实现通过传输一个写请求和一个响应消息就可以完成数据写入,从而相比现有技术传输写请求和读请求,可以降低时延和减少网络带宽消耗。
在第二方面的第一种可能的实现方式中,上述写请求还可以携带有CRC值,以使所述接收端在所述数据写入到所述存储器后,在所述数据被写入的存储位置中执行读取操作,以获取读取内容,并由所述接收端将所述读取内容的CRC值与所述写请求携带的CRC值进行比较,当比较一致时,所述请求完成状态包括数据写入成功状态,当比较不一致时,所述请求完成状态包括数据写入失败状态。
结合第二方面或者第二方面的第一种可能的实现方式,在第二方面的第一种可能的实现方式中,所述写请求还可以携带有CRC值,以使所述接收端在接收到所述写请求时,使用所述CRC值对所述数据进行CRC校验,当校验通过时将所述数据写入存储器中。
第三方面,本发明实施例提供一种RDMA实现装置,该接收机被配置实现第一方面提供的方法的功能,由硬件/软件实现,其硬件/软件包括与上述功能相应的单元。
第四方面,本发明实施例提供一种RDMA实现装置,该接收机被配置实现第二方面提供的方法的功能,由硬件/软件实现,其硬件/软件包括与上述功能相应的单元。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的RDMA实现方法可应用的系统架构图;
图2是本发明实施例提供的RDMA实现方法可应用的另一种系统架构图;
图3是本发明实施例提供的一种RDMA实现方法的流程示意图;
图4是本发明实施例提供的另一种RDMA实现方法的流程示意图;
图5是本发明实施例提供的另一种RDMA实现方法的流程示意图;
图6是本发明实施例提供的另一种RDMA实现方法的流程示意图;
图7是本发明实施例提供的一种RDMA实现装置的结构示意图;
图8是本发明实施例提供的另一种RDMA实现装置的结构示意图;
图9是本发明实施例提供的另一种RDMA实现装置的结构示意图;
图10是本发明实施例提供的另一种RDMA实现装置的结构示意图;
图11是本发明实施例提供的另一种RDMA实现装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1是本发明实施例提供的RDMA实现方法可应用的系统架构图,如图1所示,包括发送端11、交换机12和接收端13,其中,上述发送端11和接收端13可以是具备RDMA功能的芯片、计算机、电板板或者服务器等装置。另外,发送端11可以是通过交换机12与接收端13连接,但本发明实施例中,发送端11通过交换机12与接收端13连接并不是必要的,例如:发送端11也可以通过线缆与接收端13直连。另外,上述交换机可以是无限带宽(Infiniband,IB)交换机或者以太网交换机。
另外,如图2所示,上述发送端11和接收端13可以包括处理器、存储器、支持RDMA的网络接口控制器(RDMA-awareNetworkInterfaceController,RNIC)以及应用程序。
其中,处理器可以是CPU或者是特定集成电路(ApplicationSpecificIntegratedCircuit,ASIC),或者是一个或多个集成电路,用于执行操作系统与应用程序。本发明实施例中,在发送端11中处理器接收到执行应用程序的命令以后,可以把写命令(例如:WRITE_VERIFY命令)和数据下发给RNIC,RNIC再发往位于网络中的IB交换机。
RNIC可以是支持IB协议或者RoCE协议的,RNIC可以是IB接口卡或RoCE接口卡或者iWAP接口卡,或是支持IB协议或RoCE协议或者iWAP协议的集成电路,用于接收RDMA命令,并发送到网络中,以及接收网络中的RMDA消息,执行相应的RDMA消息。
存储器可以理解为内存,用于存放数据和程序,可以是一个或多个集成电路或内存条。
应用程序可以是处理器上运行的应用程序,例如:数据库应用程序、存储应用程序、商业分析应用程序、高性能计算应用程序等等。
请参阅图3,图3是本发明实施例提供的一种RDMA实现方法的流程示意图,如图3所示,包括以下步骤:
301、发送端向接收端发送携带有数据的写请求。
上述写请求可以是理解为发送端向接收端发送用于请求将所述数据写入接收端的存储器的请求消息。另外,上述写请求可以包括写命令和数据。
该步骤可以是发送端的应用程序产生写请求,应用程序将写请求提交给发送端的RNIC,RNIC再向接收端发送该写请求。
302、接收端接收发送端发送的携带有数据的写请求。
该步骤可以是接收端的RNIC接收发送端发送的写请求。
303、接收端响应所述写请求,将所述数据写入存储器中。
接收端接收到上述写请求后,就可以获取上述数据,从而可以将该数据写入存储器中。例如:接收端的RNIC通过直接内存访问(DirectMemoryAccess,DMA)方法将数据写入存储器中。
304、接收端在所述数据写入到所述存储器后,向所述发送端发送携带有所述写请求的请求完成状态的响应消息。
在数据写入到存储器中后,就可以向发送端返回上述响应消息,以告诉发送端请求完成状态。该步骤可以是接收端的RNIC向发送端发送上述响应消息。另外,上述请求完成状态可以包括写入成功状态或者写入失败状态。
305、发送端接收所述接收端发送的携带有所述写请求的请求完成状态的响应消息,其中,所述响应消息是所述接收端在响应所述写请求将所述数据写入到存储器后发送的。
该步骤可以是发送端的RNIC接收上述响应消息。另外,发送端的RNIC接收到上述响应消息后,还可以将该响应消息传输给应用程序,以通知应用程序接收端针对写请求的请求完成状态。
另外,本实施例中,上述写请求可以理解为RDMAWRITE命令。
本实施例中,通过上述步骤可以实现通过传输一个写请求和一个响应消息就可以完成数据写入,从而相比现有技术传输写请求和读请求,可以降低时延和减少网络带宽消耗。
请参阅图4,图4是本发明实施例提供的另一种RDMA实现方法的流程示意图,如图4所示,包括以下步骤:
401、发送端向接收端发送携带有数据的写请求。
402、接收端接收发送端发送的携带有数据的写请求。
403、接收端响应所述写请求,将所述数据写入存储器中。
本实施例中,上述写请求还可以携带有CRC值,其中,该CRC值是发送端对写请求携带的数据进行运算得到的CRC值,这样通过该CRC值可以校验写请求的传输过程携带的数据是否损坏或者在接收端进行写操作时是否损坏等。该实现方式中,步骤403可以包括:
使用所述CRC值对所述数据进行CRC校验,当校验通过时将所述数据写入存储器中。
该实施方式中,可以实现使用写请求携带的CRC值对写请求携带的数据进行CRC校验,以校验接收端获取的数据是否与发送端发送的数据一致,若校验通过则将所述数据写入存储器中,以防止向存储器中写入错误的数据。即发送端发送的写请求携带有CRC值可以使接收端在接收到所述写请求时,使用所述CRC值对所述数据进行CRC校验,当校验通过时将所述数据写入存储器中。
另外,该实施方式中,当数据写入存储器中后,可以直接向发送端发送响应消息,因为写入操作往往都是可靠,这样可以不执行步骤404和405,直接向发送端发送响应消息。
另外,该实施方式的实现过程还可以参考图5,如图5所示,包括以下步骤:
4501、发送端的应用程序产生写请求并把写请求提交给发送端的RNIC。
4502、发送端的RNIC把写请求传送到接收端RNIC。
4503、接收端的RNIC接收到写请求后,进行CRC校验,校验通过后,按照请求执行写入操作,把数据通过DMA方法写入接收端存储器。
4504、接收端的RNIC完成把数据写入接收端存储器后,向发送端RNIC发送响应消息,其中该响应消息携带请求完成状态,这里请求完成状态包括写入成功状态或者写入失败状态。
4505、发送端的RNIC通知发送端的应用程序写完成,该写完成的通知消息携带请求完成状态。
404、接收端在所述数据写入到所述存储器后,在所述数据被写入的存储位置中执行读取操作,以获取读取内容。
由于步骤403将上述数据写存储器中,这样接收端知道该数据写入的存储位置,从而步骤404可以是在数据写入后,在数据被写入的存储位置中执行读取操作,以获取读取内容。
该步骤中可以是接收端的RNIC从在数据被写入的存储位置中执行读取操作,以获取读取内容。
405、判断所述读取内容是否为所述数据,若是,则执行步骤406,若否,则执行步骤407。
该步骤可以是将读取内容与写请求携带的数据直接进行比较,以判断所述读取内容是否为所述数据。或者该步骤可以对读取内容进行校验,校验读取内容是为写请求携带的数据。
本实施例中,上述写请求还可以携带有CRC值,其中,该CRC值是发送端对写请求携带的数据进行运算得到的CRC值,这样通过该CRC值可以校验写请求的传输过程携带的数据是否损坏或者在接收端进行写操作时是否损坏等。该实施方式中,步骤405可以包括:
计算所述读取内容的CRC值,并将所述计算的CRC值与所述写请求携带的CRC值进行比较,当比较一致时,则确定所述读取内容为所述数据,当比较不一致时,则所述读取内容不为所述数据。
该实施方式中,可以通过CRC校验,以确定针对写请求的写入是否写入成功,即发送端通过写请求携带上述CRC值可以使所述接收端在所述数据写入到所述存储器后,在所述数据被写入的存储位置中执行读取操作,以获取读取内容,并由所述接收端将所述读取内容的CRC值与所述写请求携带的CRC值进行比较,当比较一致时,向发送端发送所述请求完成状态包括数据写入成功状态的响应消息,当比较不一致时,向发送端发送所述请求完成状态包括数据写入失败状态的响应消息。
另外,该实施方式的实现过程还可以参考图6,如图6所示,包括以下步骤:
4601、发送端的应用程序产生写请求并把写请求提交给发送端的RNIC。
4602、发送端的RNIC把写请求发送到接收端RNIC。
4603、接收端的RNIC接收到写请求后,进行CRC校验,校验通过后,按照请求执行写入操作,把数据通过DMA方法写入接收端存储器。
4604、接收端的RNIC完成把数据写入接收端存储器后,通过DMA方法从接收端存储器(写入位置)中读出数据。
4605、接收端的RNIC从接收端存储器中读出的数据后,计算读出数据的CRC值。
4606、接收端的RNIC比较步骤4605中计算得到的CRC值和步骤4602中接收到的写请求中携带的CRC值。
4607、接收端的RNIC向发送端的RNIC发送响应消息,其中携带请求完成状态,其中,如果步骤4606中CRC值比较相等,则该请求完成状态为成功,否则请求完成状态为失败。
4608、发送端的RNIC通知发送端的应用程序写完成,该写完成的通知消息携带请求完成状态。
406、接收端向所述发送端发送携带有所述写请求的请求完成状态的响应消息,该请求完成状态包括数据写入成功状态。
通过步骤406就可以实现当上述数据写入成功时,接收端向发送端发送包括数据写入成功状态响应消息。
407、接收端向所述发送端发送携带有所述写请求的请求完成状态的响应消息骤,该请求完成状态包括数据写入失败状态。
408、发送端接收所述接收端发送的携带有所述写请求的请求完成状态的响应消息。
另外,本实施例中,接收端还可以记录发送端发送的写请求的成功或者失败记录,这样在执行步骤402之后与执行步骤403之前,可以识别发送端发送的写请求的历史成功或者失败记录,当发送端的成功率大于特定阈值时,就可以不执行步骤403和步骤404,直接向发送端发送上述响应消息,该响应消息包括写入成功状态,这样提高写数据的效率,因为在实际应用中写入操作往往是可靠的。
本实施例中,在图3所示的实施例的基础上增加了多种可选的实施方式,且都可以实现可以降低时延和减少网络带宽消耗。
下面为本发明装置实施例,本发明装置实施例用于执行本发明方法实施例一至二实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例一和实施例二。
请参阅图7,图7是本发明实施例提供的一种RDMA实现装置的结构示意图,如图7所示,包括:接收单元71、响应单元72和发送单元73,其中:
接收单元71,用于接收发送端发送的携带有数据的写请求。
上述写请求可以是理解为发送端向接收端发送用于请求将所述数据写入接收端的存储器的请求消息。另外,上述写请求可以包括写命令和数据。
另外,接收单元71可以是接收端的RNIC接收发送端发送的写请求。
响应单元72,用于响应所述写请求,将所述数据写入存储器中。
接收端接收到上述写请求后,就可以获取上述数据,从而可以将该数据写入存储器中。例如:响应单元72通过接收端的RNIC通过DMA方法将数据写入存储器中。
发送单元73,用于在所述数据写入到所述存储器后,向所述发送端发送携带有所述写请求的请求完成状态的响应消息。
在数据写入到存储器中后,就可以向发送端返回上述响应消息,以告诉发送端请求完成状态。发送单元73可以是接收端的RNIC向发送端发送上述响应消息。另外,上述请求完成状态可以包括写入成功状态或者写入失败状态。
本实施例中,如图8所示,上述装置还可以包括:
读取单元74,用于在所述数据写入到所述存储器后,在所述数据被写入的存储位置中执行读取操作,以获取读取内容;
判断单元75,用于判断所述读取内容是否为所述数据;
发送单元73可以用于在所述判断单元75判断所述读取内容为所述数据时,向所述发送端发送携带有所述写请求的请求完成状态的响应消息,且所述请求完成状态包括数据写入成功状态;
所述发送单元73还用于在所述判断单元75判断所述读取内容不为所述数据时,向所述发送端发送携带有所述写请求的请求完成状态的响应消息,且所述请求完成状态包括数据写入失败状态。
判断单元75可以是将读取内容与写请求携带的数据直接进行比较,以判断所述读取内容是否为所述数据。或者该步骤可以对读取内容进行校验,校验读取内容是为写请求携带的数据。
该实施方式中,上述写请求还可以携带有CRC值;
判断单元75可以用于计算所述读取内容的CRC值,并将所述计算的CRC值与所述写请求携带的CRC值进行比较,当比较一致时,则确定所述读取内容为所述数据,当比较不一致时,则所述读取内容不为所述数据。
该实施方式中,可以通过CRC校验,以确定针对写请求的写入是否写入成功。
本实施例中,上述写请求还可以携带有CRC值;
所述响应单元72可以用于使用所述CRC值对所述数据进行CRC校验,当校验通过时将所述数据写入存储器中。
该实施方式中,可以通过该CRC值可以校验写请求的传输过程携带的数据是否损坏或者在接收端进行写操作时是否损坏等。
需要说明的是,本实施例提供的装置可以应用于图1-图6所示的实施例中的接收端,且图1-图6所示的实施例中提供的接收端的任意实施方式都可以被该装置的实施。
本实施例中,接收发送端发送的携带有数据的写请求;响应所述写请求,将所述数据写入存储器中;在所述数据写入到所述存储器后,向所述发送端发送携带有所述写请求的请求完成状态的响应消息。这样可以实现通过传输一个写请求和一个响应消息就可以完成数据写入,从而相比现有技术传输写请求和读请求,可以降低时延和减少网络带宽消耗。
请参阅图9,图9是本发明实施例提供的另一种RDMA实现装置的结构示意图,如图9所示,包括:发送单元91和接收单元92,其中:
发送单元91,用于向接收端发送携带有数据的写请求。
上述写请求可以是理解为发送端向接收端发送用于请求将所述数据写入接收端的存储器的请求消息。另外,上述写请求可以包括写命令和数据。
发送单元91可以是发送端的应用程序产生写请求,应用程序将写请求提交给发送端的RNIC,RNIC再向接收端发送该写请求。
接收单元92,用于接收所述接收端发送的携带有所述写请求的请求完成状态的响应消息,其中,所述响应消息是所述接收端在响应所述写请求将所述数据写入到存储器后发送的。
接收单元92可以是发送端的RNIC接收上述响应消息。另外,发送端的RNIC接收到上述响应消息后,还可以将该响应消息传输给应用程序,以通知应用程序接收端针对写请求的请求完成状态。
本实施例中,上述写请求还可以携带有CRC值,以使所述接收端在所述数据写入到所述存储器后,在所述数据被写入的存储位置中执行读取操作,以获取读取内容,并由所述接收端将所述读取内容的CRC值与所述写请求携带的CRC值进行比较,当比较一致时,所述请求完成状态包括数据写入成功状态,当比较不一致时,所述请求完成状态包括数据写入失败状态。
该实施方式中,通过该CRC值可以校验数据写入接收端的存储器是否成功。
本实施例中,上述写请求还可以携带有CRC值,以使所述接收端在接收到所述写请求时,使用所述CRC值对所述数据进行CRC校验,当校验通过时将所述数据写入存储器中。
该实施方式中,通过该CRC值可以校验写请求的传输过程携带的数据是否损坏或者在接收端进行写操作时是否损坏等。
需要说明的是,本实施例提供的装置可以应用于图1-图6所示的实施例中的发送端,且图1-图6所示的实施例中提供的发送端的任意实施方式都可以被该装置的实施。
本实施例中,向接收端发送携带有数据的写请求;接收所述接收端发送的携带有所述写请求的请求完成状态的响应消息,其中,所述响应消息是所述接收端在响应所述写请求将所述数据写入到存储器后发送的。这样可以实现通过传输一个写请求和一个响应消息就可以完成数据写入,从而相比现有技术传输写请求和读请求,可以降低时延和减少网络带宽消耗。
请参阅图10,图10是本发明实施例提供的另一种RDMA实现装置的结构示意图,如图10所示,包括:处理器101、存储器102、RNIC103和通信总线104,其中,通过总线104用于实现处理器101、存储器102和RNIC103之间连接通信,所述处理器101执行所述存储器102中存储的程序用于实现以下方法:
接收发送端发送的携带有数据的写请求;
响应所述写请求,将所述数据写入存储器中;
在所述数据写入到所述存储器后,向所述发送端发送携带有所述写请求的请求完成状态的响应消息。
本实施例中,处理器101执行的程序还可以包括:
在所述数据写入到所述存储器后,在所述数据被写入的存储位置中执行读取操作,以获取读取内容;
判断所述读取内容是否为所述数据,若是,则执行向所述发送端发送携带有所述写请求的请求完成状态的响应消息的步骤,且所述请求完成状态包括数据写入成功状态;
若所述读取内容不为所述数据时,则执行向所述发送端发送携带有所述写请求的请求完成状态的响应消息的步骤,且所述请求完成状态包括数据写入失败状态。
该实施方式中,上述写请求还可以携带有循环冗余校验CRC值;
处理器101执行判断所述读取内容是否为所述数据的程序,可以包括:
计算所述读取内容的CRC值,并将所述计算的CRC值与所述写请求携带的CRC值进行比较,当比较一致时,则确定所述读取内容为所述数据,当比较不一致时,则所述读取内容不为所述数据。
本实施例中,上述写请求还可以携带有CRC值;
处理器101执行的响应所述写请求,将所述数据写入存储器中的程序,可以包括:
使用所述CRC值对所述数据进行CRC校验,当校验通过时将所述数据写入存储器中。
需要说明的是,本实施例提供的装置可以应用于图1-图6所示的实施例中的接收端,且图1-图6所示的实施例中提供的接收端的任意实施方式都可以被该装置的实施。
本实施例中,接收发送端发送的携带有数据的写请求;响应所述写请求,将所述数据写入存储器中;在所述数据写入到所述存储器后,向所述发送端发送携带有所述写请求的请求完成状态的响应消息。这样可以实现通过传输一个写请求和一个响应消息就可以完成数据写入,从而相比现有技术传输写请求和读请求,可以降低时延和减少网络带宽消耗。
请参阅图11,图11是本发明实施例提供的另一种RDMA实现装置的结构示意图,如图11所示,包括:处理器111、存储器112、RNIC113和通信总线114,其中,通过总线114用于实现处理器111、存储器112和RNIC113之间连接通信,所述处理器111执行所述存储器112中存储的程序用于实现以下方法:
向接收端发送携带有数据的写请求;
接收所述接收端发送的携带有所述写请求的请求完成状态的响应消息,其中,所述响应消息是所述接收端在响应所述写请求将所述数据写入到存储器后发送的。
本实施例中,上述写请求还可以携带有CRC值,以使所述接收端在所述数据写入到所述存储器后,在所述数据被写入的存储位置中执行读取操作,以获取读取内容,并由所述接收端将所述读取内容的CRC值与所述写请求携带的CRC值进行比较,当比较一致时,所述请求完成状态包括数据写入成功状态,当比较不一致时,所述请求完成状态包括数据写入失败状态。
本实施例中,上述写请求还可以携带有CRC值,以使所述接收端在接收到所述写请求时,使用所述CRC值对所述数据进行CRC校验,当校验通过时将所述数据写入存储器中。
需要说明的是,本实施例提供的装置可以应用于图1-图6所示的实施例中的发送端,且图1-图6所示的实施例中提供的发送端的任意实施方式都可以被该装置的实施。
本实施例中,向接收端发送携带有数据的写请求;接收所述接收端发送的携带有所述写请求的请求完成状态的响应消息,其中,所述响应消息是所述接收端在响应所述写请求将所述数据写入到存储器后发送的。这样可以实现通过传输一个写请求和一个响应消息就可以完成数据写入,从而相比现有技术传输写请求和读请求,可以降低时延和减少网络带宽消耗。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存取存储器(RandomAccessMemory,简称RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (14)
1.一种远程直接内存访问RDMA实现方法,其特征在于,包括:
接收发送端发送的携带有数据的写请求;
响应所述写请求,将所述数据写入存储器中;
在所述数据写入到所述存储器后,向所述发送端发送携带有所述写请求的请求完成状态的响应消息。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
在所述数据写入到所述存储器后,在所述数据被写入的存储位置中执行读取操作,以获取读取内容;
判断所述读取内容是否为所述数据,若是,则执行向所述发送端发送携带有所述写请求的请求完成状态的响应消息的步骤,且所述请求完成状态包括数据写入成功状态;
若所述读取内容不为所述数据时,则执行向所述发送端发送携带有所述写请求的请求完成状态的响应消息的步骤,且所述请求完成状态包括数据写入失败状态。
3.如权利要求2所述的方法,其特征在于,所述写请求还携带有循环冗余校验CRC值;
所述判断所述读取内容是否为所述数据,包括:
计算所述读取内容的CRC值,并将所述计算的CRC值与所述写请求携带的CRC值进行比较,当比较一致时,则确定所述读取内容为所述数据,当比较不一致时,则所述读取内容不为所述数据。
4.如权利要求1-3中任一项所述的方法,其特征在于,所述写请求还携带有CRC值;
所述响应所述写请求,将所述数据写入存储器中,包括:
使用所述CRC值对所述数据进行CRC校验,当校验通过时将所述数据写入存储器中。
5.一种RDMA实现方法,其特征在于,包括:
向接收端发送携带有数据的写请求;
接收所述接收端发送的携带有所述写请求的请求完成状态的响应消息,其中,所述响应消息是所述接收端在响应所述写请求将所述数据写入到存储器后发送的。
6.如权利要求5所述的方法,其特征在于,所述写请求还携带有CRC值,以使所述接收端在所述数据写入到所述存储器后,在所述数据被写入的存储位置中执行读取操作,以获取读取内容,并由所述接收端将所述读取内容的CRC值与所述写请求携带的CRC值进行比较,当比较一致时,所述请求完成状态包括数据写入成功状态,当比较不一致时,所述请求完成状态包括数据写入失败状态。
7.如权利要求5或6所述的方法,其特征在于,所述写请求还携带有CRC值,以使所述接收端在接收到所述写请求时,使用所述CRC值对所述数据进行CRC校验,当校验通过时将所述数据写入存储器中。
8.一种RDMA实现装置,其特征在于,包括:接收单元、响应单元和发送单元,其中:
所述接收单元,用于接收发送端发送的携带有数据的写请求;
所述响应单元,用于响应所述写请求,将所述数据写入存储器中;
所述发送单元,用于在所述数据写入到所述存储器后,向所述发送端发送携带有所述写请求的请求完成状态的响应消息。
9.如权利要求8所述的装置,其特征在于,所述装置还包括:
读取单元,用于在所述数据写入到所述存储器后,在所述数据被写入的存储位置中执行读取操作,以获取读取内容;
判断单元,用于判断所述读取内容是否为所述数据;
所述发送单元用于在所述判断单元判断所述读取内容为所述数据时,向所述发送端发送携带有所述写请求的请求完成状态的响应消息,且所述请求完成状态包括数据写入成功状态;
所述发送单元还用于在所述判断单元判断所述读取内容不为所述数据时,向所述发送端发送携带有所述写请求的请求完成状态的响应消息,且所述请求完成状态包括数据写入失败状态。
10.如权利要求9所述的装置,其特征在于,所述写请求还携带有CRC值;
所述判断单元用于计算所述读取内容的CRC值,并将所述计算的CRC值与所述写请求携带的CRC值进行比较,当比较一致时,则确定所述读取内容为所述数据,当比较不一致时,则所述读取内容不为所述数据。
11.如权利要求8-10中任一项所述的装置,其特征在于,所述写请求还携带有CRC值;
所述响应单元用于使用所述CRC值对所述数据进行CRC校验,当校验通过时将所述数据写入存储器中。
12.一种RDMA实现装置,其特征在于,包括:发送单元和接收单元,其中:
所述发送单元,用于向接收端发送携带有数据的写请求;
所述接收单元,用于接收所述接收端发送的携带有所述写请求的请求完成状态的响应消息,其中,所述响应消息是所述接收端在响应所述写请求将所述数据写入到存储器后发送的。
13.如权利要求12所述的装置,其特征在于,所述写请求还携带有CRC值,以使所述接收端在所述数据写入到所述存储器后,在所述数据被写入的存储位置中执行读取操作,以获取读取内容,并由所述接收端将所述读取内容的CRC值与所述写请求携带的CRC值进行比较,当比较一致时,所述请求完成状态包括数据写入成功状态,当比较不一致时,所述请求完成状态包括数据写入失败状态。
14.如权利要求12或13所述的装置,其特征在于,所述写请求还携带有CRC值,以使所述接收端在接收到所述写请求时,使用所述CRC值对所述数据进行CRC校验,当校验通过时将所述数据写入存储器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510853635.0A CN105487937A (zh) | 2015-11-27 | 2015-11-27 | 一种rdma实现方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510853635.0A CN105487937A (zh) | 2015-11-27 | 2015-11-27 | 一种rdma实现方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105487937A true CN105487937A (zh) | 2016-04-13 |
Family
ID=55674931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510853635.0A Pending CN105487937A (zh) | 2015-11-27 | 2015-11-27 | 一种rdma实现方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105487937A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766261A (zh) * | 2017-09-22 | 2018-03-06 | 华为技术有限公司 | 数据校验的方法、装置以及网卡 |
CN108304214A (zh) * | 2017-12-13 | 2018-07-20 | 华为技术有限公司 | 一种立即数的完整性的校验方法及装置 |
CN109426632A (zh) * | 2018-02-01 | 2019-03-05 | 新华三技术有限公司 | 内存访问方法和装置 |
CN111400213A (zh) * | 2019-09-29 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 传输数据的方法、装置及系统 |
WO2021089036A1 (zh) * | 2019-11-07 | 2021-05-14 | 华为技术有限公司 | 一种数据传输方法、网络设备、网络系统及芯片 |
CN114024874A (zh) * | 2021-10-29 | 2022-02-08 | 浪潮商用机器有限公司 | 基于rdma的数据传输方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040123013A1 (en) * | 2002-12-19 | 2004-06-24 | Clayton Shawn Adam | Direct memory access controller system |
CN101446921A (zh) * | 2008-12-23 | 2009-06-03 | 青岛海信宽带多媒体技术股份有限公司 | 一种Flash存储器的动态存储方法 |
CN103645994A (zh) * | 2013-11-05 | 2014-03-19 | 华为技术有限公司 | 一种数据处理方法及设备 |
CN103929415A (zh) * | 2014-03-21 | 2014-07-16 | 华为技术有限公司 | Rdma下数据读写的方法、装置和网络系统 |
-
2015
- 2015-11-27 CN CN201510853635.0A patent/CN105487937A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040123013A1 (en) * | 2002-12-19 | 2004-06-24 | Clayton Shawn Adam | Direct memory access controller system |
CN101446921A (zh) * | 2008-12-23 | 2009-06-03 | 青岛海信宽带多媒体技术股份有限公司 | 一种Flash存储器的动态存储方法 |
CN103645994A (zh) * | 2013-11-05 | 2014-03-19 | 华为技术有限公司 | 一种数据处理方法及设备 |
CN103929415A (zh) * | 2014-03-21 | 2014-07-16 | 华为技术有限公司 | Rdma下数据读写的方法、装置和网络系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766261A (zh) * | 2017-09-22 | 2018-03-06 | 华为技术有限公司 | 数据校验的方法、装置以及网卡 |
CN108304214A (zh) * | 2017-12-13 | 2018-07-20 | 华为技术有限公司 | 一种立即数的完整性的校验方法及装置 |
CN108304214B (zh) * | 2017-12-13 | 2022-05-13 | 超聚变数字技术有限公司 | 一种立即数的完整性的校验方法及装置 |
CN109426632A (zh) * | 2018-02-01 | 2019-03-05 | 新华三技术有限公司 | 内存访问方法和装置 |
CN109426632B (zh) * | 2018-02-01 | 2021-09-21 | 新华三技术有限公司 | 内存访问方法和装置 |
CN111400213A (zh) * | 2019-09-29 | 2020-07-10 | 杭州海康威视系统技术有限公司 | 传输数据的方法、装置及系统 |
WO2021089036A1 (zh) * | 2019-11-07 | 2021-05-14 | 华为技术有限公司 | 一种数据传输方法、网络设备、网络系统及芯片 |
CN114024874A (zh) * | 2021-10-29 | 2022-02-08 | 浪潮商用机器有限公司 | 基于rdma的数据传输方法、装置、设备及存储介质 |
CN114024874B (zh) * | 2021-10-29 | 2023-03-14 | 浪潮商用机器有限公司 | 基于rdma的数据传输方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105487937A (zh) | 一种rdma实现方法和装置 | |
WO2017088572A1 (zh) | 一种处理数据的方法、装置及系统 | |
CN109408243B (zh) | 一种基于rdma的数据处理方法、装置和介质 | |
CN112684982B (zh) | 一种数据迁移方法、系统、设备及计算机可读存储介质 | |
CN112422485B (zh) | 一种传输控制协议的通信方法及装置 | |
CN102984138B (zh) | 一种获取对象的方法、装置和系统 | |
CN110659143B (zh) | 一种容器间的通讯方法、装置及电子设备 | |
WO2023045795A1 (zh) | 一种红外通讯方法及装置、存储介质及电子装置 | |
CN109885420B (zh) | 一种PCIe链路故障的分析方法、BMC及存储介质 | |
CN114880266B (zh) | 故障处理的方法、装置、计算机设备和存储介质 | |
CN108289165B (zh) | 一种基于手机控制相机的实现方法、装置及终端设备 | |
CN114221903B (zh) | 一种数据传输方法及装置 | |
CN103380593B (zh) | 一种在系统升级过程中对业务进行处理的方法、装置和设备 | |
CN114443537A (zh) | 一种pcie信号发送端参数配置方法、装置、设备及介质 | |
CN113806273B (zh) | 快速周边组件互连数据传输控制系统 | |
CN111026690B (zh) | 星务数据处理设备及方法 | |
US20110270970A1 (en) | Network device testing system and method | |
CN111338642A (zh) | 确定应用下载途径的方法、设备、终端及存储介质 | |
CN113535578A (zh) | 一种cts测试方法、装置及测试设备 | |
CN112818336A (zh) | 一种数据访问方法、数据访问装置及计算机可读存储介质 | |
CN114490202B (zh) | 一种密码设备测试方法、装置、电子设备及存储介质 | |
CN111371799A (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
CN108304214B (zh) | 一种立即数的完整性的校验方法及装置 | |
CN115622929B (zh) | 远程直接数据存取rdma的测试方法及相关装置 | |
CN112015346B (zh) | 一种存储控制器及其数据存储方法、装置和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160413 |