一种用户态RPC协议多线程优化方法和系统与流程

文档序号:12694329阅读:158来源:国知局

本发明涉及云计算技术领域,特别是涉及一种用户态RPC协议多线程优化方法和系统。



背景技术:

随着云计算时代的来临,人们对于高性能、低成本的数据中心的需求越来越迫切,作为数据中心最重要的基础设施,存储系统的高性能、高可靠以及低成本等需求也越来越受到关注。

RPC协议(远程调用协议Remote Procedure Call)是一种在分布式存储系统广泛应用的通信协议,它可以通过网络从远程计算机程序上请求服务,并且能够屏蔽底层网络的复杂性,还可以对外提供友好的接口。RPC采用客户机/服务器模式,请求程序就是一个客户机,而服务提供程序就是一个服务器。首先调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复消息,然后等待下一个调用信息,最后客户端调用过程接收答复信息,获得进程结果,然后调用执行继续进行。RPC根据所运行的层次不同分为用户态RPC和内核态RPC,用户态程序开发比内核态简单,被广泛应用于分布式程序开发中。但是用户态RPC数据传输效率低,影响了分布式系统的整体性能。

因此,如何提高用户态RPC的数据传输效率,以提高分布式系统的整体性能,是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本发明的目的是提供一种用户态RPC协议多线程优化方法和系统,可以提高用户态RPC的数据传输效率,以提高分布式系统的整体性能。

为解决上述技术问题,本发明提供了如下技术方案:

一种用户态RPC协议多线程优化方法,包括:

在RPC服务层通过监听端口监听客户端是否发出服务请求;

当所述监听端口监听到服务请求时,调用一个请求处理端口接管该服务请求;

通过预设的线程池对所述请求处理端口接管的服务请求进行并行处理。

优选地,所述在RPC服务层通过监听端口监听客户端是否发出服务请求,包括:

在所述RPC服务层的服务器端重构句柄创建函数;

调用svc_vc_create创建用于监听客户端的服务请求的所述监听端口;

调用svc_fd_create创建请求处理端口;

通过所述监听端口实时监听所述客户端是否发出服务请求。

优选地,所述当所述监听端口监听到服务请求时,调用一个请求处理端口接管该服务请求,包括:

启动服务函数,查询所述RPC服务层的所有端口是否有端口接收到信息;

若是,则判断接收到信息的端口是否为所述监听端口;

若是,则创建一个新请求处理端口接管该服务请求;

若否,则判定该接收到信息的端口为请求处理端口,并根据预设的处理请求函数解码该端口获取的服务请求,对该服务请求进行处理。

一种用户态RPC协议多线程优化系统,包括:

监听端口,用于在RPC服务层监听客户端是否发出服务请求;

请求处理端口,用于当所述监听端口监听到服务请求时,接管该服务请求;

线程池模块,用于与外界服务器连接,对所述请求处理端口接管的服务请求进行并行处理。

优选地,还包括:

端口创建模块,用于在所述RPC服务层的服务器端重构句柄创建函数,调用svc_vc_create创建用于监听客户端的服务请求的所述监听端口,调用svc_fd_create创建请求处理端口。

优选地,还包括:

查询模块,用于启动服务函数,查询所述RPC服务层的所有端口是否有端口接收到信息;

判断模块,用于在所述查询模块查询到有端口接收到信息时,判断接收到信息的端口是否为所述监听端口;

第一执行模块,用于在所述判断模块判定接收到信息的端口为所述监听端口时,创建一个新请求处理端口接管该服务请求;

第二执行模块,用于在所述判断模块判定接收到信息的端口不是所述监听端口时,判定该接收到信息的端口为请求处理端口,并根据预设的处理请求函数解码该端口获取的服务请求,对该服务请求进行处理。

与现有技术相比,上述技术方案具有以下优点:

本发明所提供的一种用户态RPC协议多线程优化方法,包括:在RPC服务层通过监听端口监听客户端是否发出服务请求;当监听端口监听到服务请求时,调用一个请求处理端口接管该服务请求;通过预设的线程池对请求处理端口接管的服务请求进行并行处理。在本技术方案中,加入线程池并行处理服务请求,监听端口在监听到客户端的服务请求后,通过请求处理端口将服务请求放入到线程池,通过线程池调度线程处理服务请求,监听端口继续监听新的请求,而不会终止监听,这样多个服务请求就可以并行处理,提高了服务器端处理事件的并发度,大大提高了用户态RPC的数据传输效率,继而提高分布式系统的整体性能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种具体实施方式所提供的用户态RPC协议多线程优化方法流程图。

具体实施方式

本发明的核心是提供一种用户态RPC协议多线程优化方法和系统,可以提高用户态RPC的数据传输效率,以提高分布式系统的整体性能。

为了使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。

在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施的限制。

请参考图1,图1为本发明一种具体实施方式所提供的用户态RPC协议多线程优化方法流程图。

本发明的一种具体实施方式提供了一种用户态RPC协议多线程优化方法,包括:

S11:在RPC服务层通过监听端口监听客户端是否发出服务请求。

在RPC服务层通过监听端口监听客户端是否发出服务请求,包括:在RPC服务层的服务器端重构句柄创建函数;调用svc_vc_create创建用于监听客户端的服务请求的监听端口;调用svc_fd_create创建请求处理端口;通过监听端口实时监听客户端是否发出服务请求。

S12:当监听端口监听到服务请求时,调用一个请求处理端口接管该服务请求。

当监听端口监听到服务请求时,调用一个请求处理端口接管该服务请求,包括:启动服务函数,查询RPC服务层的所有端口是否有端口接收到信息;若是,则判断接收到信息的端口是否为监听端口;若是,则创建一个新请求处理端口接管该服务请求;若否,则判定该接收到信息的端口为请求处理端口,并根据预设的处理请求函数解码该端口获取的服务请求,对该服务请求进行处理。

S13:通过预设的线程池对请求处理端口接管的服务请求进行并行处理。

在本实施方式中,当监听端口监听到客户端的服务请求时,该监听端口的监听线程不会终止监听,而是通过请求处理端口去处理该服务请求,并将这个服务请求加入到请求处理线程池,通过线程池调度相应的线程完成服务请求的处理,监听端口继续监听来自客户端的其他服务请求,接收到服务请求后同样放入线程池中,如此反复进行,这样多个服务请求就可以并行处理,提高了服务器端处理事件的并发度。

其中,本实施方式的技术方案主要是对TI-RPC进行多线程优化。具体地,加入线程池来进行并行处理服务请求;重构服务器端句柄创建函数,增加端口创建时的端口类型判断;重构服务启动函数,监听到来自客户端的请求后,监听端口将服务请求放入到线程池,而监听端口继续监听新的服务请求。其中,重构句柄创建函数,调用svc_vc_create创建监听端口,调用svc_fd_create创建请求处理端口,创建的监听端口只负责监听不去处理请求信息,而请求处理端口执行处理服务请求的服务。启动服务函数svc_run,使用poll方法查询所有的端口是否接收到消息,再调用宏定义函数指针SVC_RECV,当poll选择出来的端口是监听端口时,会创建一个新端口接管监听端口的服务请求,设定该新端口的SVC_RECV,在线程池中创建一个新的线程去处理这个服务请求,然后返回继续查询各端口是否接收到新信息。若查询到的端口是请求处理端口,则SVC_RECV就是真正处理服务请求的函数,它会解码获取的服务请求,并对服务请求进行处理,完成请求服务,最后将结果返回客户端。

相应地,本发明一种实施方式还提供了一种用户态RPC协议多线程优化系统,包括:监听端口,用于在RPC服务层监听客户端是否发出服务请求;请求处理端口,用于当监听端口监听到服务请求时,接管该服务请求;线程池模块,用于与外界服务器连接,对请求处理端口接管的服务请求进行并行处理。

进一步地,还包括:端口创建模块,用于在RPC服务层的服务器端重构句柄创建函数,调用svc_vc_create创建用于监听客户端的服务请求的监听端口,调用svc_fd_create创建请求处理端口。

查询模块,用于启动服务函数,查询RPC服务层的所有端口是否有端口接收到信息;判断模块,用于在查询模块查询到有端口接收到信息时,判断接收到信息的端口是否为监听端口;第一执行模块,用于在判断模块判定接收到信息的端口为监听端口时,创建一个新请求处理端口接管该服务请求;第二执行模块,用于在判断模块判定接收到信息的端口不是监听端口时,判定该接收到信息的端口为请求处理端口,并根据预设的处理请求函数解码该端口获取的服务请求,对该服务请求进行处理。

在本实施方式中,用户态RPC协议多线程优化系统通过对RPC协议进行多线程优化,提高了服务处理的并发能力,同时可以提高分布式系统的数据交换效率,提升系统的吞吐量,从而提高分布式系统的整体性能。

综上所述,本发明所提供的用户态RPC协议多线程优化方法和系统,可以提高用户态RPC的数据传输效率,以提高分布式系统的整体性能。

以上对本发明所提供的一种用户态RPC协议多线程优化方法和系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1