一种服务端直接读取引用参数的远程过程调用方法技术

技术编号:32437140 阅读:16 留言:0更新日期:2022-02-26 07:55
本发明专利技术提供一种服务端直接读取引用参数的远程过程调用方法。其中涉及的服务端直接读取引用参数的远程过程调用方法及客户端装置、服务端装置、远程跨进程通信系统和相关计算机软件可读存储介质,主要是在远程过程调用的执行过程中,使其中的服务端直接向本地客户端内存读取其本地参数,即所需的引用参数,以克服通信瓶颈,提高远程跨端、跨进程通信效率,进而提高整个运行效率。提高整个运行效率。提高整个运行效率。

【技术实现步骤摘要】
一种服务端直接读取引用参数的远程过程调用方法


[0001]本专利技术涉及计算机技术中的远程过程调用(RPC)
,具体地,涉及一种服务端直接读取引用参数的远程过程调用方法。

技术介绍

[0002]远程过程调用,即Remote Procedure Call,简称RPC,是指一种是一台主机上的程序能够调用其他主机上方法的机制。具体来说,一个典型的远程过程调用的具体过程,例如,可以包括:计算机A上的进程,调用另外一台计算机B上的进程,其中计算机A上的调用进程被挂起,而计算机B上的被调用进程开始执行,当值返回给计算机A时,计算机A进程继续执行。其中,调用方(例如前面述及的计算机A)可以通过使用参数将信息传送给被调用方,而后可以通过传回的结果得到信息。
[0003]虽然RPC是需要调用远端主机上的方法/函数等,但是从根本上来说,RPC也是要使远程过程调用具有与本地过程调用相同的形式。稍微不同于本地过程调用的是,RPC并不要求操作系统提供数据,而是在远程过程调用过程中,是将参数打包成消息发送到远端的作为被调用方主机。
[0004]而要实现远程过程调用,就需要考虑如何传递参数。传递引用参数并不是一个简单的消息传递过程。单纯地传递参数的引用(例如,包括指针)是完全没有意义的,因为仅将引用地址传递给远端主机,其指向的内存位置可能与远程操作系统上的完全不同。若要实现一个有效的引用参数传递,则其过程至少包括:客户端(调用方主机)发送参数的副本,将其置于远程操作系统内存中,以及向其传递一个指向服务器(被调用方主机)函数的指针,然后再将对象发送回客户端,复制它的引用等。
[0005]一般来说,上述的引用参数传输过程的实现,是通过TCP协议或基于TCP的相关通信协议/通信框架实现的。然而,传统的基于TCP/IP协议的跨端通信,在数据包处理过程中,往往要经过操作系统及其他软件层,需要占用大量的服务器资源和内存总线带宽,数据在系统内存、处理器缓存和网络控制器缓存之间来回进行复制移动,给服务器的CPU和内存造成了沉重负担。尤其是网络带宽、处理器速度与内存带宽三者的严重"不匹配性",更加剧了网络延迟效应。因此,若是在远程调用过程中,被调用的服务端进程若能直接从客户端内存中读取引用参数,则无疑将能提高RPC效率。

技术实现思路

[0006]有鉴于此,本专利技术提供一种服务端直接读取引用参数的远程过程调用方法,以提高远程过程调用(RPC)过程中远程服务端进程获取引用参数的效率。
[0007]一方面,本专利技术实施例提供一种服务端直接读取引用参数的远程过程调用方法。
[0008]上述的远程过程调用方法,包括:客户端本地进程向服务端提出远程过程调用请求;服务端注册并启动相关进程,即相对于客户端的远程服务端进程;向远程服务端进程传入其所需要的客户端本地参数,即所述引用参数,其中包括:当远程服务端进程要客户端传
入本地参数时,将所述本地参数对应的内存注册为RDMA内存,生成RDMA通道信使元信息,并通知服务端注册内存和获取所述RDMA通道信使元信息,其中,RDMA通道信使元信息主要包括远程内存识别标志;所述远程内存识别标志,被提供给远程主机节点的通道适配器(HCA),用来在RDMA操作期间允许远程进程访问本地的系统内存;服务端注册内存,并获取所述RDMA通道信使元信息;通过两端的注册内存地址和所述RDMA通道信使元信息中的远程内存识别标志形成RDMA通道,服务端将从客户端的相应内存中读取所述引用参数并写入服务端相应的内存;调用和执行服务端远程进程,通过网络传输返回结果给客户端本地进程。
[0009]在第一方面的各实施例中,其中的一些作为一种可能的实现方式,其所提供的远程过程调用方法中,若一次RPC过程中远程服务端请求客户端传入多个本地参数,也即所述引用参数,参与的远程过程执行,则使所述的RDMA通道元信使信息包括引用参数编号,所述引用参数编号一一对应所述引用参数,两端进程可通过引用参数编号识别所述的引用参数。
[0010]在上述实施例中的一些,更优选的,其中的一些作为一种可能的实现方式,所述的引用参数,可以分批次传入;服务端可以在当前所需引用参数被传入后即开始执行远程过程,同时继续传入后续的引用参数。
[0011]在上述实施例中的一些,更优选的,其中的一些作为一种可能的实现方式,根据所述引用参数编号设定优先级,管理所述参数的传入次序,最大化利用通道和提高程序执行效率。
[0012]在第一方面的各实施例中,其中的一些作为一种可能的实现方式,其所提供的远程过程调用方法中,若所述引用参数的大小为预选约定的或服务端已知所述引用参数的大小,则可无需等待客户端通知,直接在要求传入引用参数之初,即注册内存。
[0013]在第一方面的各实施例中,其中的一些作为一种可能的实现方式,考虑到RDMA通信的开销及通信收益等,其所提供的远程过程调用方法中,对于小于预设数据长度的传入参数,可仍通过TCP通道传输。而该预设长度为经验值,可通过多次实验摸索能够得到较高通信效率收益的值。
[0014]另一方面,本专利技术实施例提供一种装置,用于运行远程过程调用的客户端程序。
[0015]结合第一方面,上述的装置,包括:处理器、存储器和RDMA网卡;其中,所述的存储器存储有可在所述处理器上运行的计算机程序;而所述的处理器在执行上述计算机程序时,能够执行第一方面述及的服务端直接读取引用参数的远程过程调用方法中客户端的操作;所述的RDMA网卡则为所述方法中的RDMA传输提供物理通道。
[0016]再一方面,本专利技术实施例提供一种装置,用于运行远程过程调用的服务端程序。
[0017]结合上述各方面,上述的装置,包括:处理器、存储器和RDMA网卡;其中,所述的存储器存储有可在所述处理器上运行的计算机程序;而所述的处理器在执行上述计算机程序时,能够执行第一方面述及的服务端直接读取引用参数的远程过程调用方法中服务端的操作;所述的RDMA网卡则为所述方法中的RDMA传输提供物理通道。
[0018]又一方面,本专利技术实施例提供一种远程跨进程通信系统,能够通过执行远程过程调用的方式进行远程跨进程通信。
[0019]结合上述各方面,上述的远程跨进程通信系统,包括:第二方面述及的客户端装置以及与之对应的第三方面述及的服务端装置。
[0020]又一方面,本专利技术实施例提供一种计算机可读存储介质。
[0021]上述的计算机可读存储介质中存储有用于数据通信的代码,其中包括:用于执行第一方面述及的服务端直接读取引用参数的远程过程调用方法的指令;或,执行第一方面述及的服务端直接读取引用参数的远程过程调用方法中客户端/服务端操作的指令。
[0022]上述诸实施例提供的服务端直接读取引用参数的远程过程调用方法及客户端装置、服务端装置、远程跨进程通信系统和相关计算机软件可读存储介质,主要是在远程过程调用的执行过程中,使其中的服务端直接向本地客户端内存读取其本地参数,即所需的引用参数,以克服通信瓶颈,提高远程跨端、本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种服务端直接读取引用参数的远程过程调用方法,其特征在于,所述方法包括:客户端本地进程向服务端提出远程过程调用请求;服务端注册并启动远程服务端进程;传入远程服务端进程所需要的客户端本地参数,其中包括:客户端将所述本地参数对应的内存注册为RDMA内存,生成RDMA通道信使元信息;通知服务端注册内存和获取所述RDMA通道信使元信息;其中,RDMA通道信使元信息包括远程内存识别标志;所述远程内存识别标志,被提供给远程主机节点的通道适配器,用来在RDMA操作期间允许远程进程访问本地的系统内存;服务端注册内存;并获取所述RDMA通道信使元信息;通过两端的注册内存地址和所述RDMA通道信使元信息中的远程内存识别标志形成RDMA通道;从客户端的相应内存中读取所述引用参数并写入服务端相应的内存;调用和执行服务端远程进程,通过网络传输返回结果给客户端本地进程。2.根据权利要求1所述服务端直接读取引用参数的远程过程调用方法,其特征在于,若需传入多个引用参数,则所述的RDMA通道元信使信息包括引用参数编号。3.根据权利要求2所述服务端直接读取引用参数的远程过程调用方法,其特征在于,分批次传入所述的引用参数。4.根据权利要求2所述服务端直接读取引用参数的远程过程调用方法,其特征在于,根据所述引用参数编号设定优先级,管理所述参数的传入次序。5.根据权利要求1所述服务...

【专利技术属性】
技术研发人员:李杨张翔宇张曼妮孙军欢
申请(专利权)人:深圳致星科技有限公司
类型:发明
国别省市:

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

1