[发明专利]基于缓存流的加速有效
申请号: | 201480056920.3 | 申请日: | 2014-10-02 |
公开(公告)号: | CN105637510B | 公开(公告)日: | 2017-10-13 |
发明(设计)人: | 诺亚·菲德尔;杰里米·纳尔逊 | 申请(专利权)人: | 谷歌公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 中原信达知识产权代理有限责任公司11219 | 代理人: | 李宝泉,周亚荣 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 缓存 加速 | ||
1.一种系统,包括:
处理器;
处理器可读存储器,其中存储有使所述处理器执行包括以下的步骤的方法的指令:
在web服务器处从访问装置接收内容请求;
在所述web服务器处分析所接收的内容请求以确定所接收的内容请求是否与所述web服务器先前执行的内容请求相同;
响应于确定所接收的内容请求与先前执行的内容请求不相同:
发起所接收的内容请求的串行执行;
创建每个所处理的远程过程调用的踪迹或记录;以及
存储表示所处理的请求和所创建的踪迹或记录的元数据;
响应于确定所接收的内容请求与先前执行的内容请求相同:
基于所述先前执行的内容请求来识别能够与所接收的内容请求的执行并行地单独执行的一个或多个远程过程调用;以及
与所接收的内容请求的串行执行并行地发起所识别的远程过程调用的执行;
在所述web服务器处本地缓存响应于所识别的远程过程调用的并行执行而接收的数据;以及
响应于所接收的内容请求的所述串行执行,向所述访问装置提供所缓存的数据。
2.如权利要求1所述的系统,其中,所识别的远程过程调用的执行包括将至少一个数据请求发送到在数据中心处的至少一个数据库以执行。
3.如权利要求1所述的系统,进一步包括:
基于所接收的内容请求来生成请求签名;
将所生成的请求签名与一个或多个已知或先前生成的请求签名进行比较以确定所接收的内容请求是否与所述web服务器先前执行的内容请求相同,所述已知或先前生成的请求签名每一个与一个或多个已知或先前执行的远程过程调用的集合相关联;以及
使用与所述已知或先前生成的请求签名相关联的一个或多个已知或先前执行的远程过程调用的集合来识别能够与所接收的内容请求的执行并行地单独执行的一个或多个远程过程调用。
4.如权利要求3所述的系统,其中,所接收的内容请求包括关于发起所述内容请求的应用的信息;以及
其中,所述请求签名是基于关于发起所述内容请求的所述应用的信息来生成的。
5.一种计算机实现的方法,包括:
在web服务器处从数据访问装置接收内容请求;
从所接收的内容请求生成请求签名;
将所生成的请求签名与至少一个已知的请求签名进行比较,所述已知的请求签名与至少一个已知的远程过程调用相关联;
响应于确定所生成的请求签名与任何已知的请求签名不匹配:
发起所接收的内容请求的串行执行;
创建至少一个所处理的远程过程调用的踪迹或记录;以及
存储所生成的请求签名以及所创建的踪迹或记录;
响应于确定所生成的请求签名与所述已知的请求签名相匹配,
与所接收的内容请求的串行执行并行地发起与所述已知的请求签名相关联的所述至少一个已知的远程过程调用的执行;
在所述web服务器的处理器可读存储器中本地缓存响应于所识别的远程过程调用的并行执行而接收的数据;以及
响应于所接收的内容请求的所述串行执行,向所述访问装置提供所缓存的数据。
6.如权利要求5所述的方法,其中,所述至少一个已知的远程过程调用的执行包括将至少一个数据请求发送到在数据中心处的至少一个数据库以执行。
7.如权利要求5所述的方法,其中,所生成的请求签名识别在所接收的内容请求中包括的所有所述远程过程调用;以及
比较步骤包括确定所识别的远程过程调用是否与和已知的请求签名相关联的已知或先前执行的远程过程调用集合相匹配。
8.如权利要求5所述的方法,其中,所接收的内容请求包括关于发起所述内容请求的应用的信息;以及
其中,所述请求签名是基于关于发起所述内容请求的应用的信息来生成的。
9.如权利要求5所述的方法,其中,比较步骤包括将所生成的请求签名与一个或多个已知或先前生成的请求签名进行比较,所述已知或先前生成的请求签名中的每一个与一个或多个先前执行的数据请求的集合相关联。
10.如权利要求9所述的方法,其中,所述已知或先前生成的请求签名存储在所述web服务器的所述处理器可读存储器中。
11.一种系统,包括:
处理器;
处理器可读存储器,其中存储有使所述处理器执行包括以下的步骤的方法的指令:
从做出请求的实体接收对内容的请求;
基于所接收的对内容的请求生成请求指纹;
首先确定所生成的请求指纹与存储的请求指纹是否相匹配,所述存储的指纹具有与其相关联的远程过程调用的集合;
响应于确定所生成的请求指纹与存储的请求指纹不匹配:
发起所接收的内容请求的串行执行;
创建至少一个所处理的远程过程调用的踪迹或记录;以及
存储所生成的请求指纹以及所创建的踪迹或记录;
响应于确定所生成的请求指纹与所述存储的请求指纹相匹配,
并行发起与所存储的请求指纹相关联的远程过程调用;以及
本地缓存响应于所述远程过程调用的并行执行而接收的数据;
在所述首先确定步骤之后,串行执行所接收的请求,对于在所接收的请求中包括的每个远程过程调用,所述串行执行包括,
将结果存根附接到该远程过程调用,所述结果存根表示并行执行的远程过程调用中的一个的结果的占位符;
确定并行执行的远程过程调用中的所述一个是否已经完全执行;
响应于确定并行执行的远程过程调用中的所述一个已经完全执行,将并行执行的远程过程调用中的所述一个已经完全执行的结果返回到所述结果存根;以及
响应于确定并行执行的远程过程调用中的所述一个没有完全执行,暂停该远程过程调用的串行执行,直到并行执行的远程过程调用中的所述一个已经完全执行,并且将并行执行的远程过程调用中的完成的一个的结果返回到所述结果存根;以及
响应于所述串行执行的远程过程调用的所有都具有结果,基于远程过程调用结果将请求结果返回到所述做出请求的实体。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于谷歌公司,未经谷歌公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201480056920.3/1.html,转载请声明来源钻瓜专利网。