[发明专利]一种同构环境下的RPC数据传输方法及系统有效
申请号: | 201310159080.0 | 申请日: | 2013-05-02 |
公开(公告)号: | CN104135496B | 公开(公告)日: | 2017-08-18 |
发明(设计)人: | 王芳;冯丹;朱挺炜;万勇 | 申请(专利权)人: | 华中科技大学 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L12/861 |
代理公司: | 华中科技大学专利中心42201 | 代理人: | 李智 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 同构 环境 rpc 数据传输 方法 系统 | ||
技术领域
本发明涉及集群网络通信技术领域,具体涉及一种同构环境下的远程过程调用(RPC)数据传输方法及系统,在传输大块数据时提高传输性能。
背景技术
RPC协议(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议广泛应用于分布式系统中,RPC协议的性能对提高分布式系统数据交换效率有很重要的意义。
RPC提供一种在不同机器之间通过网络传输数据结构体的机制,保证调用远程机器上的程序对上层应用透明。在进行远程过程调用时,传递的参数都是以数据结构体为单位的,这里称为参数数据。然而,对于数据结构体,在内存中有可能是不连续存放的,如在数据结构体中存在指针项时,指针项所指向的数据就可能存放在内存与数据结构体不连续的地址中。远程过程调用中,在传递有指针项的数据结构体时,同时也要将各指针指向的数据也传递给目标的机器。
SUN公司的开发的ONC RPC是目前最常用的版本之一,ONC RPC中在传输数据结构体过程中,先对数据结构体进行XDR(eXternal Data Representation,外部数据表示)编码处理。这种方法可以有效的解决数据在不同机器中的表示问题,同时也很好的解决传输数据结构体中有指针项时数据不连续的问题。该方法对RPC调用过程中要传输的所有数据,包括RPC的报文头部数据和参数数据,进行统一的编码处理,发送之前都先拷贝到发送缓存中,待缓存满后发送到接收端;接收端接收到数据都统一放在接收缓存中,在解码过程中将参数数据从接收缓存中拷贝出来放到上层应用的缓存中。这个过程就涉及到分别在发送端和接收端的共两次数据的拷贝操作,如果要传输的参数数据很大时,这两次数据拷贝操作将带来很大的性能开销。在一些分布式系统中,如分布式文件系统,常常要进行大量数据的迁移操作,这就要求系统能够进行高效的数据传输,而现有的RPC协议在进行调用过程要进行数据的编码与解码操作,涉及到前面所述两次数据的拷贝操作,这对数据的传输效率造成很大的影响。
对于以上情况,究其原因是由于要考虑在异构机器之间传输数据,导致在对数据进行编码与解码过程中难免地要进行数据的拷贝操作。事实上在配备集群的时候大多数机器都是批量配置的,故而有大批机器是在硬件及软件上都是同构的。那么,很有必要提供一种能用于同构环境中的高效RPC传输方式。在同构环境下,不需要考虑数据在收发机器间的表示问题,处理好指针存在带来的数据不连续的问题即可。通过设计数据的序列化方法,数据的编码方法,数据的发送方式,接收方式,数据解码方法,可以减少两次数据拷贝。在网络传输不成为瓶颈时,数据拷贝就是传输过程的瓶颈,即减少两次数据拷贝可以有效地提升RPC数据传输性能。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种同构环境下的RPC数据传输方法及系统,减少发送端与接收端的数据拷贝操作,提高了同构机器间RPC传输带宽。
一种同构环境下的RPC数据传输方法,涉及的发送端和接收端属于同构设备,该方法具体为:发送端先将待发送的数据中的多个小数据块拷贝到发送缓存然后整体发送给接收端,再将待发送的数据中的大数据块顺序发送给接收端;接收端接收来自发送端的数据块,计算和记录各数据块在数据接收缓存中的地址。
进一步地,该方法按照如下方式实现:
发送端的发送缓存由头部发送缓存和数据发送缓存构成,发送端发送数据的具体过程为:
计算所有待发送数据块的长度之和记为数据总长度,所有待发送数据块包括数据结构体和其包含的所有指针项指向数据块;
根据数据块长度将所有数据块分类为小数据块和大数据块,先对各小数据块的发送顺序编号,再接着小数据块对各大数据块的发送顺序编号,将各小数据块拷贝到数据发送缓存;
计算所有发送顺序号小于数据结构体发送顺序号的数据块长度之和,记为数据结构体的偏移;
将数据总长度、数据结构体的发送顺序号和数据结构体的偏移写入位于头部发送缓存中的RPC报文头部;
将数据结构体包含的各指针项指向数据块的发送顺序号以及该指针项指向数据块的长度写入其对应的指针项内容,完成数据结构体的编码;
发送端将头部发送缓存中的RPC报文头部发送给接收端,并将数据发送缓存中的数据块整体发送给接收端,然后将数据结构体的指针项指向的大数据块按照发送顺序号顺序发送给接收端;
接收端的接收缓存由头部接收缓存和数据接收缓存构成,接收端接收数据的具体过程为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310159080.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:服务提供方法及装置
- 下一篇:一种集成交互式白板与视频会议的嵌入式系统