一种基于远程直接数据存取的传输方法、设备技术

技术编号:24853055 阅读:35 留言:0更新日期:2020-07-10 19:07
本申请公开了一种基于远程直接数据存取RDMA的传输方法,该方法包括,在源端侧,将待发送任务拆分为至少两个以上子任务,将各个子任务分别存储于各个子缓存区中,当第一时刻到达时,向目的端侧发送第一子缓存区中的第一子任务;当第二时刻到达时,向目的端侧发送第二子缓存区中的第二子任务,所述第二子缓存区为所述第一子缓存区的下一子缓存区;所述第二时刻在第一时间段内的任一时刻等待,使得各个子缓存区中的各个子任务被批量发送;所述第一时间段为第一子任务被发送至该第一子任务的完成信息被获取的时间段。本申请屏蔽掉了各次发送完成后等待时间,使得各次发送时间以时分的方式复用,达到近似同步传输的效果。

【技术实现步骤摘要】
一种基于远程直接数据存取的传输方法、设备
本专利技术涉及计算机网络数据存取领域,特别地,涉及一种基于远程直接数据存取(RDMA)的传输方法。
技术介绍
传统的TCP/IP通信,发送和接收数据的过程中,都是在源端应用层数据从上向下逐层拷贝封装,目的端从下向上拷贝和解封装,所以比较慢,而且需要CPU参与的次数很多。RDMA(RemoteDirectMemoryAccess)技术全称为远程直接数据存取,是为了解决网络传输中服务器端数据处理的延迟而产生的。RDMA技术在数据存取的操作中,例如,数据的读/写操作,参与已经注册过的内存区域直接进行数据传输,而不需要CPU参与;其中,实现了RDMA引擎的网卡接替了CPU的工作,通过网络把数据从源主机(包括服务器或客户端)的存储区直接传入目标主机的存储区,将数据从一个本地系统快速移动到远程系统存储器中;由此可以看出,RDMA不对操作系统造成任何影响,它消除了外部存储器复制和文本切换的开销,节省下来的资源可以进行其它运算和服务,因而RDMA能解放内存带宽和CPU周期而用于改进应用系统性能,可以提供低延迟、本文档来自技高网...

【技术保护点】
1.一种基于远程直接数据存取RDMA的传输方法,其特征在于,该方法包括,在源端侧,/n将待发送任务拆分为至少两个以上子任务,将各个子任务分别存储于各个子缓存区中,/n当第一时刻到达时,向目的端侧发送第一子缓存区中的第一子任务;/n当第二时刻到达时,向目的端侧发送第二子缓存区中的第二子任务,所述第二子缓存区为所述第一子缓存区的下一子缓存区;/n所述第二时刻在第一时间段内的任一时刻等待,使得各个子缓存区中的各个子任务被批量发送;所述第一时间段为第一子任务被发送至该第一子任务的完成信息被获取的时间段。/n

【技术特征摘要】
1.一种基于远程直接数据存取RDMA的传输方法,其特征在于,该方法包括,在源端侧,
将待发送任务拆分为至少两个以上子任务,将各个子任务分别存储于各个子缓存区中,
当第一时刻到达时,向目的端侧发送第一子缓存区中的第一子任务;
当第二时刻到达时,向目的端侧发送第二子缓存区中的第二子任务,所述第二子缓存区为所述第一子缓存区的下一子缓存区;
所述第二时刻在第一时间段内的任一时刻等待,使得各个子缓存区中的各个子任务被批量发送;所述第一时间段为第一子任务被发送至该第一子任务的完成信息被获取的时间段。


2.如权利要求1所述的传输方法,其特征在于,所述待发送任务包括待发送数据,所述将待发送任务拆分为至少两个以上子任务包括,将存储有第一待发送数据的缓存区按照每次传输所设定的传输大小进行划分,得到至少两个以上子缓存区,将存储于各个子缓存区中的数据作为第二待发送数据,所述每次传输所设定的传输大小根据需要降低的延时确定;
所述当第一时刻到达时,向目的端侧发送第一子缓存区中的第一子任务,包括,
当第一时刻到达时,将存储于当前子缓存区的第二待发送数据作为第一数据,向目的端侧发送;
所述当第二时刻到达时,向目的端侧发送第二子缓存区中的第二子任务,包括,
当第二时刻到达时,将当前子缓存区的相邻下一子缓存区中的第二待发送数据作为第二数据,向目的端侧发送;所述第一时间段为第一数据被发送至该第一数据的完成信息被获取的时间段。
反复执行所述第二时刻的发送,直至各子缓存区中的第二待发送数据发送完毕。


3.如权利要求2所述的传输方法,其特征在于,该方法进一步包括,各子缓存区中的第二待发送数据发送完毕后,批量处理各子缓存区中的第二待发送数据发送后获取到的所有完成信息,遍历所有完成信息中的传输状态,如果任一完成信息中的传输状态为失败状态,则判定所述第一待发送数据发送失败,上报报错信息。


4.如权利要求3所述的传输方法,其特征在于,所述将存储有第一待发送数据的缓存区按照每次传输所设定的传输大小进行划分,得到至少两个以上子缓存区,进一步包括,分别为各个子缓存区设置对应的工作队列元素WQE,并填充至发送队列中;其中,各个WQE的指针分别指向其对应的子缓存区地址;
所述完成信息包括,为当前完成的发送而生成的完成队列元素CQE;
所述第一时间包括,从处理当前WQE、且当前WQE指针所指向的子缓冲区中的第二待发送数据通过RDMA的发送操作进行发送的结束时刻,到生成的CQE进入完成队列的时间段;
所述当第一时刻到达时,将存储于当前子缓存区的第二待发送数据作为第一数据,向目的端侧发送,包括,
对当前发送队列中的各个WQE依次进行处理:
处理当前WQE;
所述当第二时刻到达时,将当前子缓存区的相邻下一子缓存区中的第二待发送数据作为第二数据,向目的端侧发送,包括,
在所述从处理当前WQE、且当前WQE指针所指向的子缓冲区中的第二待发送数据通过RDMA的发送操作进行发送至目的端侧结束,到生成的CQE进入完成队列的第一时间内的任一时刻,处理下一WQE。


5.如权利要求4所述的传输方法,其特征在于,所述在所述从处理当前WQE、且当前WQE指针所指向的子缓冲区中的第二待发送数据通过RDMA的发送操作进行发送至目的端侧结束,到生成的C...

【专利技术属性】
技术研发人员:陈文祥陈伟叶敏王伟
申请(专利权)人:杭州海康威视系统技术有限公司
类型:发明
国别省市:浙江;33

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

1