对高速缓存条目进行一致性检查的概率技术制造技术

技术编号:5434577 阅读:201 留言:0更新日期:2012-04-11 18:40
描述了一种用于确定是否对高速缓存条目进行一致性检查的工具。该工具随机或者伪随机地选择一定范围内的值。如果所选值满足该范围内的预定一致性检查阈值,该工具对条目进行一致性检查,并且可以决定向其他高速缓存管理器传播该信息。另一方面,如果所选值不满足一致性检查阈值,该工具就确定不对条目进行一致性检查。

【技术实现步骤摘要】
【国外来华专利技术】
所描述技术涉及处理数据请求的领域。
技术介绍
高速缓存通常指把从远端数据源获得的数据进行本地存储,以精 简并提高对该数据的访问效率。图1是示出了用于高速缓存数据的典型结构的网络图。它示出了多个数据提供方节点,例如数据提供方iio,120和130,其中每一个都向多个数据消费方节点提供数据。例如,数 据提供方110向包括消费方112和113在内的消费方提供数据。每个数据 提供方还具有本地高速缓存。例如,提供方110拥有本地高速缓存111。 当数据提供方收到来自其消费方之一的主数据请求时,数据提供方首 先检査它的本地高速缓存,以确定高速缓存是否能满足主数据请求。 如果是,提供方用基于高速缓存内容的响应来回应主数据请求;否则, 提供方(l)向权威的数据源发起次数据请求,(2)用基于该数据源响 应于次数据请求所提供的数据的响应,来回应主数据请求,并且(3) 在它的本地高速缓存中存储该数据源响应于次数据请求所提供的数 据,作为条目,以用于满足将来的主数据请求。在某些情况下(未示 出),多个提供方可以共享同一个高速缓存。在某些情况下(未示出), 高速缓存可以自我管理,或者可以被相应的数据提供方之外的其他实 体管理。作为一个示例,每个数据消费方可以是向数据提供方,即网络服 务器,请求网页或者其它资源的网络客户端。数据源可以是提供数据 的中央数据存储或者服务,该数据使得网络服务器可以构建网络客户 端所请求的网页或者其它资源。在美国专利申请No.ll/177,206(于2005年7月8日提交)中描述了这样一个使用本地高速缓存的构架,该申请 全部内容作为参考合并在此。此外,数据提供方可以是代理服务器或8者其它中间高速缓存,比如在网络客户端运行的同一计算机系统上存 储的高速缓存,其针对一个或者多个网络客户端和网络服务器。在例如上述环境中,高速缓存数据所提供的效率级别高度依赖于 每一个高速缓存是如何管理的,特别是高速缓存和/或它的数据提供方 所使用的基本原理,该基本原理用于确定高速缓存条目存储的数据对 象的版本应该使用多长时间来满足主请求。用于保持高速缓存条目新鲜度的常规方法有显著的缺点。第一种 常规方法涉及对每个高速缓存数据对象的对象寿命的使用,数据对象 在包含有该对象的条目失效前应在高速缓存中被保存的最大时间量 (有时,称之为对象的生存时间)。在这种方法中,要么提供数据 对象的数据源为该对象分配这种时间量,要么数据提供方分配时间量。 当包含该数据对象的高速缓存条目被添加到高速缓存中,分配的时间 量加到当前时间上,以建立该条目的失效时间。当经过了该条目的失 效时间时,该条自失效,不能被从高速缓存中获取,并且它占用的空 间可以被收回用于新的高速缓存条目。通常很难选择对象寿命以产生好的结果。 一方面,如果对象寿命 选择得过长,高速缓存的对象可能会变得陈旧,即不再和提供该 高速缓存的对象的数据源响应于对该对象的新的次数据请求而提供的 对象相匹配,并且对于请求数据的消费方具有价值减少。另一方面, 如果对象寿命选择得过短,使用高速缓存的对象以满足主数据请求的 可能性就会很低,并且高速缓存该对象几乎不会带来什么好处。用于保持高速缓存条目新鲜度的第二种常规方法涉及对显式失 效的使用。显式失效是当数据源确定它将响应于次数据请求而提供的 对象的版本己发生变化,并且数据源提供的该对象的任何较早的高速 缓存版本现在都陈旧时,数据源发送给数据提供方的通知。当数据提 供方收到了来自数据源的显式失效通知时,它就会立即使其高速缓存 中所引用的对象失效,如果该对象被包含其中的话。尽管显式失效方法能够克服对象寿命方法的相关缺点,但是显式 失效方法的缺点在于,消耗了实质的处理和/或者通信资源。首先,检 测对象的变化和发送显式失效通常会在数据源部分消耗显著的处理能9力。 一旦数据源检测到这种变化,它可以(1)向所有数据提供方发送 显式失效,这导致大量网络带宽被用于传送该显式失效,并且导致显 著的数据提供方处理成本被用于响应该显式失效,或者(2)数据源本 身花费额外的处理和存储资源,来确定哪些数据提供方最有可能拥有 高速缓存对象的陈旧版本,并且仅仅向那些数据提供方发送显式失效。
技术实现思路
用于保持高速缓存条目新鲜度的并且克服了使高速缓冲条目失效 的常规方法的缺点的方法是非常有用的。附图说明图l是示出了用于高速缓存数据的典型结构的网络图。图2是示出了典型地合并入至少一些计算机系统以及其上执行本 专利技术工具的其他设备中的一些组件的框图。图3是描述了本专利技术工具运行的时间线图。图4是示出了在响应主请求时本专利技术工具为了管理高速缓存而典 型执行的步骤的流程图。图5是示出了本专利技术工具典型执行的步骤的流程图,这些步骤作 为图4中调用的发起次请求例程部分。图6是示出了本专利技术工具典型执行的步骤的流程图,这些步骤作 为图4中调用的更新高速缓存例程部分。图7是示出了本专利技术工具典型执行的步骤的流程图,这些步骤作 为图4中调用的一致性检查合对等协调例程部分。具体实施例方式下面将描述一种用于进行概率高速缓存条目一致性检查的软件 工具(facility)(工具)。该工具允许为每个条目建立两个时间量 最短寿命,指定条目存在于高速缓存中并且被认可(honor)的最小时 间量(除非被显式失效);和最长寿命,指定条目被认可(honor)的 最大时间量。如果可以使用高速缓存条目来满足的主数据请求是在该10条目的最短寿命过期之前发起的,则该工具使用该高速缓存条目来满 足主数据请求。如果可以使用高速缓存条目满足的主数据请求是在该 条目的最长寿命过期之后发起的,则该工具向数据源发起次数据请求 来满足主数据请求,并且更新高速缓存以反映次数据请求的结果。但 是,如果可以使用高速缓存条目来满足的主数据请求是在该条目的最 短寿命过期之后而在最长寿命到达之前发起的,则该工具从概率上确 定是使用该高速缓存条目,还是通过发起次数据请求对高速缓存的对 象进行一致性检查。具体而言,该工具生成随机或者伪随机数,并且 把它与针对该对象而确定的概率阈值进行比较。如果随机数在概率阈 值之上,则该工具使用高速缓存条目,反之,如果随机数没有在概率 阈值之上,则该工具向数据源发起次数据请求来满足主数据请求,并 且更新高速缓存以反映次数据请求的结果。在一些实施例中,当工具发起新的次数据请求来满足主数据请求 时,工具对新的次数据结果和高速缓存的结果进行比较。如果不同, 工具通知其他高速缓存的管理器,使它们具有的相应对象的条目失效。 在一些实施例中,工具把新的结果包括在通知中。在一些实施例中, 工具把失效高速缓存条目的摘要包括在通知中,使得接收到通知的高 速缓存管理器可以有效地确定发送方是正在使其高速缓存的对象的值 失效,还使不同的值失效。通过使用上述一些或者全部方法来管理高速缓存,这些工具的实 施例提供了良好的高速缓存性能,而不会消耗过多的资源。图2是示出了典型地合并入至少一些计算机系统以及其上执行本 专利技术工具的其他设备中的一些组件的框图。这些计算机系统和设备200可以包括 一个或者更多个中央处理单元(CPU) 201,用于执行计 算机程序;计算机存储器202,用于存储处于使用中的程序和数据;永 久存储设备203,比如用于永久存储本文档来自技高网
...

【技术保护点】
一种管理高速缓存的方法,包括: 接收针对对象的请求; 如果高速缓存不包含该对象的高速缓存版本, 从与该对象相关联的源获得该对象的当前版本; 如果高速缓存包含该对象的高速缓存版本, 如果赋予该对象的高速缓存版本的最短寿命还未过期,则使用该对象的高速缓存版本来响应接收到的请求; 如果赋予该对象的高速缓存版本的最短寿命已过期,但是赋予该对象的高速缓存版本的最长寿命还未过期,则从概率上确定是获得该对象的当前版本还是使用该对象的高速缓存版本。

【技术特征摘要】
【国外来华专利技术】US 2006-8-21 11/466,0161. 一种管理高速缓存的方法,包括接收针对对象的请求;如果高速缓存不包含该对象的高速缓存版本,从与该对象相关联的源获得该对象的当前版本;如果高速缓存包含该对象的高速缓存版本,如果赋予该对象的高速缓存版本的最短寿命还未过期,则使用该对象的高速缓存版本来响应接收到的请求;如果赋予该对象的高速缓存版本的最短寿命已过期,但是赋予该对象的高速缓存版本的最长寿命还未过期,则从概率上确定是获得该对象的当前版本还是使用该对象的高速缓存版本。2. 根据权利要求l的方法,进一步包括 如果高速缓存不包含该对象的高速缓存版本,在高速缓存中存储获得的该对象的当前版本;基于在高速缓存中存储该对象的当前版本的时间,向该对象 的当前版本赋予最短寿命和最长寿命;并且使用该对象的当前版本来响应接收到的请求。3. 根据权利要求2的方法,其中从概率上确定是获得该对象的当 前版本还是使用该对象的高速缓存版本包括确定一定范围内的随机或者伪随机数;如果所确定的数超过相对于该范围而确定的概率阈值,则使用 该对象的高速缓存版本来响应接收到的请求;如果赋予该对象的高速缓存版本的最长寿命已过期,或者如果 所确定的数没有超过所述概率阈值,对从与该对象相关联的源获得该对象的当前版本作出响应; 在高速缓存中存储该对象的当前版本;基于在高速缓存中存储该对象的当前版本的时间,向该对象的当前版本赋予最短寿命和最长寿命;以及使用该对象的当前版本来响应接收到的请求。4. 根据权利要求3的方法,进一步包括, 如果所确定的数没有超过所述概率阈值确定所获得的该对象的当前版本是否不同于该对象的高速 缓存版本;以及如果所获得的该对象的当前版本不同于该对象的高速缓存 版本,则向一个或多个对等高速缓存的管理器发送失效通知。5. —种用于执行根据权利要求1 4之一的方法的计算机程序。6. —种计算机可读介质,其内容使计算系统执行用于确定是否对 高速缓存条目进行一致性检査的方法,所述方法包括随机或者伪随机地选择一定范围内的值;如果所选值满足该范围内的一致性检查阈值,则对条目进行一 致性检查;以及如果所选值不满足一致性检査阈值,则确定不对条目进行一致 性检査。7. —个或多个计算机存储器,共同包含用于管理高速缓存条目的 高速缓存管理数据结构,所述一个或多个计算机存储器包括用于标识高速缓存条目的最短寿命过期的时间的信息;以及用于标识高速缓存条目的最长寿命过期的时间的信息,使得能够确定对高速缓存条目进行访问的时间是在最短寿命过期之前,在最短寿命过期之后但是在最长寿命过期之前,还是在最长寿命过期之后,并且使得在最短寿命过期之前进行访问时,能够无条件使用高 速缓存条目,在最短寿命过期之后但是在最长寿命过期之前进行访问 时,能够从概率上对高速缓存条目进行一致性检査,以及在最长寿命过期之后进行访问时,能够无条件地使高速缓存条目失效。8. 根据权利要求7的计算机存储器,其中所述数据结构进一步包 括用于指定一致性检査概率值的信息,使得在最短寿命过期之后但是 在最长寿命过期之前访问高速缓存条目时,能够通过如下方式从概率 上对高速缓存条目进行一致性检查生成随机值或者伪随机值;如果生成的值未超过指定的一致性检查概率值,则对高速缓存 条目进行一致性检查;以及如果生成的值超过了指定的一致性检査概率值,则使用高速缓 存条目。9. 一种用于确定是否在第一时间使高速缓存条目失效的设备,所述高速缓存条目的现有内容是在第二时间存储的,所述设备包括用于向第二时间添加第一时间量以获得第三时间的装置;用于向第二时间添加比第一时间量长的第二时间量以获得第四时间的装置;用于在第一时间位于第三时间之前时确定使用高速缓存条目而 不对高速缓存条目进行一致性检查的装置;用于在第一时间位于第四时间之后时使高速缓存条目失效的装置;用于在第一时间位于第三时间和第四...

【专利技术属性】
技术研发人员:赫马特巴努奥兹冈尔多甘托拜厄斯霍格尔斯内文沙阿赖安斯诺德格拉斯
申请(专利权)人:亚马逊技术有限公司
类型:发明
国别省市:US[]

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

1