本发明涉及计算机,特别涉及一种命令传输方法、装置、设备及介质。
背景技术:
1、现有技术中,rdma(remote-direct memory access,远程内存直接访问)链路分为一个admin管理队列和多条io(input/output,输入/输出)队列。admin队列主要用来传输管理命令,io队列则是传输数据使用。针对每一个io队列来说,发送io命令或数据过程是串行的,当第一个命令传送到接收端,接收端收到并且处理完成后会给发送端回复命令的status(称为命令的执行结果)。发送端在收到命令的status后,才会根据结果发送第二个命令。以上发送端称为initiator,接收端称为target。所以针对单个io队列来说,传输命令或数据的速度存在很多的限制因素,当网络有延迟时会大大推迟下一个命令的发送时间,最终导致性能不高。
2、由上可见,如何增加命令传输的性能,提高命令传输的效率是本领域有待解决的问题。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种命令传输方法、装置、设备及介质,能够增加命令传输的性能,提高命令传输的效率。其具体方案如下:
2、第一方面,本申请公开了一种命令传输方法,应用于发送端,包括:
3、获取待传输的命令,并确定出传输顺序;
4、按照所述传输顺序为各所述命令添加唯一标识,以得到各目标命令,并将各所述目标命令发送至接收端,以便所述接收端在获取到所述目标命令后,对所述目标命令进行处理,并生成返回结果;
5、获取所述接收端发送的所述返回结果,并对所述返回结果进行解析,若所述返回结果为成功,则基于所述返回结果中的最后一个目标命令对应的传输顺序确定出下一个待传输的传输顺序;
6、根据所述下一个待传输的传输顺序确定出下一个待传输的目标命令,将所述下一个待传输的目标命令发送至所述接收端,以便所述接收端对所述待传输的目标命令进行处理,直至所有的所述目标命令处理完成。
7、可选的,所述获取待传输的命令,并确定出传输顺序之前,还包括:
8、调用互联网协议地址,并对所述互联网协议地址进行网络畅通解析,若网络畅通,则获取连接请求,调用路由请求,并基于所述连接请求对所述路由请求进行解析,若路由正常,则获取连接资源信息;
9、调用连接命令,基于所述连接命令并利用所述连接资源信息建立本地与所述接收端之间的远程内存直接访问连接关系。
10、可选的,所述调用连接命令,基于所述连接命令并利用所述连接资源信息建立本地与所述接收端之间的远程内存直接访问连接关系,包括:
11、调用连接命令,并将所述连接命令发送至所述接收端,以便所述接收端在获取所述连接命令后,对所述连接命令进行响应,若响应成功,则生成用于表征本地与所述接收端之间的远程内存直接访问连接关系建立成功的信息,并将所述信息发送至本地。
12、可选的,所述获取待传输的命令,并确定出传输顺序,包括:
13、基于所述远程内存直接访问连接关系并采用多线程的方式创建io队列,并为所述io队列添加计数功能;
14、获取待传输的命令,将命令发送至所述io队列,根据所述计数功能确定出命令的传输顺序。
15、可选的,所述将各所述目标命令发送至接收端之后,还包括:
16、记录发送时间,判断当前时间与所述发送时间之间的时间间隔是否大于预设响应阈值,若当前时间与所述发送时间之间的时间间隔大于预设响应阈值,则默认各所述目标命令发送失败,并执行命令重新发送操作。
17、可选的,所述将各所述目标命令发送至接收端,以便所述接收端在获取到所述目标命令后,对所述目标命令进行处理,并生成返回结果,包括:
18、将各所述目标命令发送至接收端,以便所述接收端在获取到所述目标命令后,对所述目标命令进行处理,若各所述目标命令全部处理成功,则生成待发送返回结果;
19、确定出最后一个目标命令对应的传输顺序,将所述最后一个目标命令对应的传输顺序添加至所述待发送返回结果,以得到返回结果。
20、可选的,所述对所述返回结果进行解析之后,还包括:
21、若所述返回结果为失败,则基于所述返回结果确定出处理失败的目标命令对应的传输顺序;
22、将所述处理失败的目标命令对应的传输顺序作为下一个待传输的传输顺序,并将所述处理失败的目标命令作为下一个待传输的目标命令,然后重复执行上述操作,直至所有的所述目标命令处理完成。
23、第二方面,本申请公开了一种命令传输装置,包括:
24、传输顺序确定模块,用于获取待传输的命令,并确定出传输顺序;
25、目标命令发送模块,用于按照所述传输顺序为各所述命令添加唯一标识,以得到各目标命令,并将各所述目标命令发送至接收端,以便所述接收端在获取到所述目标命令后,对所述目标命令进行处理,并生成返回结果;
26、返回结果获取模块,用于获取所述接收端发送的所述返回结果,并对所述返回结果进行解析,若所述返回结果为成功,则基于所述返回结果中的最后一个目标命令对应的传输顺序确定出下一个待传输的传输顺序;
27、目标命令处理模块,用于根据所述下一个待传输的传输顺序确定出下一个待传输的目标命令,将所述下一个待传输的目标命令发送至所述接收端,以便所述接收端对所述待传输的目标命令进行处理,直至所有的所述目标命令处理完成。
28、第三方面,本申请公开了一种电子设备,包括:
29、存储器,用于保存计算机程序;
30、处理器,用于执行所述计算机程序,以实现前述的命令传输方法。
31、第四方面,本申请公开了一种计算机存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的命令传输方法的步骤。
32、可见,本申请提供了一种命令传输方法,包括获取待传输的命令,并确定出传输顺序;按照所述传输顺序为各所述命令添加唯一标识,以得到各目标命令,并将各所述目标命令发送至接收端,以便所述接收端在获取到所述目标命令后,对所述目标命令进行处理,并生成返回结果;获取所述接收端发送的所述返回结果,并对所述返回结果进行解析,若所述返回结果为成功,则基于所述返回结果中的最后一个目标命令对应的传输顺序确定出下一个待传输的传输顺序;根据所述下一个待传输的传输顺序确定出下一个待传输的目标命令,将所述下一个待传输的目标命令发送至所述接收端,以便所述接收端对所述待传输的目标命令进行处理,直至所有的所述目标命令处理完成。本申请通过依次传输命令至接收端,每个命令都携带唯一标识。接收端处理命令,然后生成返回结果,发送端收到返回结果,根据返回结果决定是否从某个命令开始重传,还是继续发送下一组命令,直至所有的命令全部处理完成,能够增加命令传输的性能,提高命令传输的效率。
1.一种命令传输方法,其特征在于,应用于发送端,包括:
2.根据权利要求1所述的命令传输方法,其特征在于,所述获取待传输的命令,并确定出传输顺序之前,还包括:
3.根据权利要求2所述的命令传输方法,其特征在于,所述调用连接命令,基于所述连接命令并利用所述连接资源信息建立本地与所述接收端之间的远程内存直接访问连接关系,包括:
4.根据权利要求2所述的命令传输方法,其特征在于,所述获取待传输的命令,并确定出传输顺序,包括:
5.根据权利要求1所述的命令传输方法,其特征在于,所述将各所述目标命令发送至接收端之后,还包括:
6.根据权利要求1所述的命令传输方法,其特征在于,所述将各所述目标命令发送至接收端,以便所述接收端在获取到所述目标命令后,对所述目标命令进行处理,并生成返回结果,包括:
7.根据权利要求1至6任一项所述的命令传输方法,其特征在于,所述对所述返回结果进行解析之后,还包括:
8.一种命令传输装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的命令传输方法。