RDMA数据操作方法
RDMA协议为远端直接数据缓存提供7种类型的控制操作。除了远端缓冲区读取操作之外,每一种RDMA控制操作都只产生一个对应的RDMA消息。
Send:发送操作使用Send消息将发送方应用的数据直接发送到数据接收方应用尚未明确声明的缓冲区中。Send消息使用的是DDP的无标记的缓冲区数据传递模型,将上层应用消息传递到接收方应用的无标记队列式缓冲区中。
Send with Invalidate:在Send基础上,加了一个导航标记Stag。当该消息缓存在Stag所指定对端应用缓冲区中,并将消息到达通知传达给接收方应用后,接收方应用就再不允许发送方应用介入该缓冲区,直到接收方应用重新声明该缓冲区可用后才可以供发送方应用继续使用。
Send with Solicited Event (Send with SE):该消息用来将发送方应用的数据直接发送到数据接收方应用的无标记队列式缓冲区中,具备Send所有的功能同时增加对消息的反馈。
Send with Solicited Event and Invalidate (Send with SE and Invalidate):该消息所对应的操作是将发送方应用的数据直接发送到数据接收方应用尚未明确声明的缓冲区中,具备Send with SE所有的功能同时增加对消息的反馈。
Remote Direct Memory Access Write:对应于RDMA写操作,用来将发送方应用的数据传递到接收方应用已声明的缓冲区中。在这个操作中,接收方应用事先应该已经分配出带标记的应用接收缓冲区,并允许发送方应用直接进行缓冲区写操作。同时,发送方应用还在声明中得到了上述缓冲区的位置、大小和相应的Stag等信息。之后发送方应用开始发起RDMA写操作,该操作使用DDP的带标记的缓冲区数据传递模型,将发送方应用的消息直接传递到接收方应用所声明的带标记缓冲区中。
Remote Direct Memory Access Read:对应于RDMA读操作,将对端(对应于数据源)带标记应用缓冲区的数据传递到本地(对应于数据接收方)的带标记应用缓冲区。数据源的上层应用首先需要事先分配出带标记的应用缓冲区,并允许对该缓冲区内容直接进行读操作。同时,数据源上层应用还要将待声明的数据源缓冲区的位置、大小和相应的Stag等信息传递到本地上层应用。数据接收方上层应用在得到上述声明后,分配相应的带标记应用缓冲区,开始从对端读取数据操作。
Terminate:终止操作使用Terminate消息将本地发生的错误信息通知给对端应用,以终止当前数据直接缓存操作。终止操作使用DDP的元标记缓冲区模型将Terminate传递到对端的无标记缓冲区。
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请您通过400-62-96871或关注我们的公众号与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!







请先 登录后发表评论 ~