[发明专利]用于处理远程过程调用请求的方法及系统无效
申请号: | 201210037171.2 | 申请日: | 2012-02-17 |
公开(公告)号: | CN102594891A | 公开(公告)日: | 2012-07-18 |
发明(设计)人: | 唐宏伟;霍志刚;余璜;冯圣中 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L12/56 |
代理公司: | 北京泛华伟业知识产权代理有限公司 11280 | 代理人: | 王勇 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 处理 远程 过程 调用 请求 方法 系统 | ||
1.一种用于处理远程过程调用请求的方法,所述方法包括:
步骤1)接收来自客户端的远程过程调用(RPC)请求;
步骤2)将所收到的RPC请求以流水线的方式进行处理;
其中,所述流水线由多个流水段构成,每个流水段包括一个或多个线程,每个流水段中的每个线程处理的是相同的子任务,不同的流水段中的线程处理的是不同的子任务,前一个流水段的输出作为后一个流水段的输入,各个流水段的子任务组合起来共同完成对来自客户端的RPC请求的处理。
2.根据权利要求1所述的方法,其中,所述流水线中的流水段的划分应符合下述条件:
各个流水段的子任务对系统资源的需求应尽量不同;
每个流水段的子任务之间没有重叠,且各个流水段的子任务组合起来应完成对来自客户端的RPC请求的处理过程。
3.根据权利要求1或2所述的方法,其中所述流水线包括5个流水段:
流水段1的子任务为与RPC客户端建立通信连接;
流水段2的子任务为从所建立的连接接收RPC请求分片;
流水段3的子任务为将所接收的RPC请求的分片组合成完整的RPC请求包;
流水段4的子任务为基于RPC请求包对RPC请求进行处理;
流水段5的子任务为将对RPC请求处理的结果作为应答返回到客户端。
4.根据权利要求3所述的方法,其中所述步骤2)包括以下步骤:
将收到的来自客户端的RPC请求提交给流水段1中的线程进行处理;
流水段1中的线程与该RPC客户端建立通信连接,并在将连接标识符传递到流水段2后,返回继续处理其他的RPC请求;
流水段2中的线程基于连接标识符来从将所建立的连接接收RPC请求分片,在将所接收的分片传递到流水段3后,返回继续处理其他的RPC请求;
流水段3中的线程将所接收的RPC请求的分片组合成完整的RPC请求包并传递到流水段4,然后返回继续处理其他的RPC请求;
流水段4中的线程基于RPC请求包对RPC请求进行处理,并将处理的结果传递到流水段5后,返回继续处理其他的RPC请求;
流水段5中的线程将对RPC请求处理的结果作为应答返回到客户端后,返回继续处理其他的RPC请求。
5.根据权利要求1或2所述的方法,其中流水段之间的数据传递是通过流水段之间的数据通路来实现的,每个流水段都有一个输入数据通路和一个输出数据通路,每个数据通路既是前一个流水段的输出数据通路也是后一个流水段段的输入数据通路,每个流水段中的所有线程共享该流水段的输入数据通路和输出数据通路。
6.根据权利要求5所述的方法,其中所述数据通路为先进先出队列。
7.根据权利要求1或2所述的方法,其中每个流水段所包含的线程数量是固定的。
8.根据权利要求1或2所述的方法,还包括动态调整每个流水段所包含的线程数量的步骤。
9.根据权利要求8所述的方法,其中动态调整每个流水段所包含的线程数量的步骤包括:周期性地调整各个流水段中的线程数量,以使得各个流水段具有相同的每线程平均待处理任务数,所述每线程平均待处理任务数是由每个流水段的待处理任务的数量除以该流水段的线程的数量得到的。
10.根据权利要求8所述的方法,其中动态调整每个流水段所包含的线程数量的步骤包括:周期性地调整各个流水段中的线程数量,以使得各个流水段具有相同的每线程平均处理任务时间,所述每线程平均处理任务时间为每个流水段中的线程处理子任务所需的平均处理时间。
11.根据权利要求8所述的方法,其中动态调整每个流水段所包含的线程数量的步骤包括周期性地执行如下操作:
查找流水线中“断流”的流水段,所述“断流”流水段为当前正在空闲或者几近空闲的流水段;
然后,检查该“断流”的流水段的直接前驱阶段是否产生了瓶颈,所述瓶颈是指该流水段待处理的任务多,而线程数量少,以致无法生产出足够多的数据以满足后继流水段的处理需求;
如果发现了瓶颈,则从最下游的“断流”流水段中移出一个线程到该产生瓶颈的流水段;否则进一步查看该前驱流水段的前驱,直至找到产生瓶颈的流水段或到达第一个流水段。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210037171.2/1.html,转载请声明来源钻瓜专利网。