CN101401079A - 用于响应输出高速缓存的多高速缓存协作 - Google Patents
用于响应输出高速缓存的多高速缓存协作 Download PDFInfo
- Publication number
- CN101401079A CN101401079A CNA2007800083267A CN200780008326A CN101401079A CN 101401079 A CN101401079 A CN 101401079A CN A2007800083267 A CNA2007800083267 A CN A2007800083267A CN 200780008326 A CN200780008326 A CN 200780008326A CN 101401079 A CN101401079 A CN 101401079A
- Authority
- CN
- China
- Prior art keywords
- speed cache
- data
- speed
- cache
- place
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
Abstract
高速缓存数据。可以例如在包括向客户机系统提供数据的服务器系统的计算环境中实施一种方法。该服务器系统包括用于存储数据的多个高速缓存。该方法允许最廉价的高速缓存首先高速缓存或返回客户机所请求的数据。该方法包括接收将在高速缓存处高速缓存的数据。该方法还包括确定该数据先前没有被高速缓存在在前高速缓存处。如果该数据先前没有被高速缓存在在前高速缓存处,则在该高速缓存处高速缓存该数据。或者,可以在第一高速缓存处接收对数据的请求。如果该数据在该第一高速缓存处,则该第一高速缓存返回该数据。如果该数据不在该第一高速缓存处,则将该数据请求转发至在后高速缓存。
Description
背景
背景和相关技术
计算机和计算系统影响了现代生活的几乎每个方面。计算机通常在工作、消遣、医疗保健、运输、娱乐、家务管理等领域中都有所涉及。计算机的功能也通过其经由各种网络连接来互连的能力而得到加强。
计算系统可以向其他系统请求数据。该数据可以用多种不同的方式来获取。例如,数据可通过从诸如数据库或其他数据存储等存储库中检索该数据来获取。数据也可由提供数据的系统动态地创建。例如,可从华盛顿州雷蒙德市的微软公司获得的asp.NET包括用于动态创建网页数据的各工具。即使是普通的web服务器也包括用于随网页请求一起接收自变量的功能以基于该网页请求中的自变量来提供定制的网页数据。
一种提高计算系统的性能的方式是通过输出高速缓存请求数据。高速缓存涉及将最近所请求的数据存储在当对于相同数据做出后续请求时可快速检索的位置。例如,数据可以在计算机系统的物理存储器中高速缓存以使得能够非常快速地检索到该数据。
已经创建了用于确定如何存储和保留高速缓存数据的各种高速缓存算法。例如,FIFO是先进先出的缩写。在该方案中,数据在高速缓存位置上高速缓存,并且当需要为另外的高速缓存项目创建空间时,从高速缓存中移除最老的项目。其他方案使用预测过滤器来确定什么被高速缓存以及高速缓存多久。
通常,计算机系统的各单独组件各自都将具有其自己的高速缓存组件。例如,在web服务器上下文中,存在栈,且操作系统在该栈的底部,web服务器在操作系统的上方,而应用程序在web服务器的上方。该情形的一个示例是Windows操作系统主存IIS服务器,而IIS服务器主存asp.NET框架,所有这些都可从华盛顿州雷蒙德市的微软公司获得。操作系统、web服务器以及应用程序中的每一个都各自包括其自己的高速缓存。如果这些单独的组件在一起工作以向客户机提供数据时各自都高速缓存数据,则可能执行冗余高速缓存。这可导致资源浪费。例如,通过在物理存储器中保留冗余的高速缓存项目,可用于高速缓存其他项目的物理存储器数量大大减少。
在此要求保护的主题不限于解决任何缺点或仅在诸如下述环境中操作的各个实施例。相反,提供该背景仅用以示出在其中可实践在此描述的部分实施例的一个示例性技术领域。
简要概述
一个实施例涉及一种高速缓存数据的方法。可以在例如包括向客户机系统提供数据的服务器系统的计算环境中实施。该服务器系统包括用于存储数据的多个高速缓存。该方法允许最廉价的高速缓存首先高速缓存客户机所请求的数据。该方法包括接收将在高速缓存处高速缓存的数据。该方法还包括确定该数据先前没有被高速缓存在在前高速缓存处。如果该数据先前没有被高速缓存在在前高速缓存处,,则在该高速缓存处高速缓存该数据。
此处所描述的另一个实施例涉及从高速缓存中检索数据。可以在例如包括向客户机系统提供数据的服务器系统的计算环境中实施。该服务器系统包括用于存储数据的多个高速缓存。该方法允许数据首先从较不昂贵的高速缓存中检索。该方法包括在高速缓存处接收对数据的请求。该方法还包括确定该数据是否可在该高速缓存处获得。如果该数据可在该高速缓存处获得,则返回所请求的数据。如果该数据不能够在该高速缓存处获得,则将该请求转发至在后高速缓存。
此处所描述的另一个实施例涉及一种具有存储在其上的多个数据结构的计算机可读介质。该多个数据结构包括多个高速缓存,这些高速缓存包括具有第一速度的第一高速缓存以及在后耦合到该第一高速缓存的第二高速缓存。该第二高速缓存具有比该第一高速缓存慢的第二速度。由于在后耦合到该第一高速缓存,所以该第一高速缓存在该第二高速缓存之前接收数据和对数据的请求。数据结构还包括一策略对象。策略对象定义用于多个高速缓存的设置。
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
另外的特征和优点将在以下的描述中阐述,并且部分可从该描述中显而易见,或者可以从此处的教示实践中习得。本发明的特征和优点可以通过在所附权利要求中特别指出的手段和组合来认识并获取。本发明的特征将从以下描述和所附权利要求书中变得完全显而易见,或者可通过如下所述对本发明的实践而获知。
附图简述
为了描述能够获得上述和其它优点和特征的方式,将通过参考附图中示出的各具体实施例来呈现对以上简述的主题的更为具体的描述。应该理解这些附图仅描绘了各典型实施例,因此其不应被认为是对范围的限制,通过使用附图,将会用另外的特征和细节来描述并解释各实施例,在附图中:
图1示出了高速缓存的分层组织;
图2示出了用于高速缓存及请求数据的活动的流水线;
图3示出了高速缓存数据的方法;以及
图4示出了检索高速缓存的数据的方法。
详细描述
此处的各实施例可以包括含有各种计算机硬件的专用或通用计算机,这将在以下做出更详细的讨论。
此处所描述的一个实施例包括其中高速缓存以分层的方式彼此连接的高速缓存拓扑结构。在该拓扑结构中,首先访问最快和/或最廉价的高速缓存以高速缓存数据或检索高速缓存的数据。如果特定高速缓存不能够高速缓存给定数据集,或者给定数据集不能够在该高速缓存处获得,则将该数据或对数据的请求传递给在后高速缓存。在后高速缓存可能较慢或较昂贵,但是可能包括用于高速缓存该给定数据集的功能。高速缓存拓扑结构可包括以分层方式连接的任何合适数量的高速缓存,其中较快和/或较便宜的高速缓存在较慢和/或较昂贵的高速缓存之前访问。
在一个实施例中,定义将被高速缓存的数据的策略信息可对分层结构中的高速缓存可用。因此,分层结构中的高速缓存能够参考该策略信息,以及评估高速缓存各自的能力以确定给定数据集是否应被高速缓存在该高速缓存处。
现在参考图1,示出了在其中高速缓存拓扑结构100包括分层排列的多个高速缓存102-1、102-2、以及102-N的说明性示例。在所示示例中,对高速缓存的数据的请求104或要高速缓存的数据106可被发送至第一高速缓存102-1。为了解释简明起见,现在将对数据106被发送至第一高速缓存102-1的情况给出第一示例。当数据106被发送至第一高速缓存102-1时,该第一高速缓存102-1能够确定正在发送什么类型的数据。第一高速缓存102-1然后能够参考策略信息108以确定数据106是否应被高速缓存。如果数据106应被高速缓存,则第一高速缓存102-2然后能够评估其自身用于高速缓存数据的能力。如果数据106是能够被高速缓存在高速缓存102-1处的类型,则数据106将在被高速缓存在第一高速缓存102-1处。
另一方面,如果数据不是能够由高速缓存102-1来高速缓存的类型,则该数据将被转发至第二高速缓存102-2。第二高速缓存102-2将执行与第一高速缓存102-1执行的动作类似的动作,诸如参考策略信息108以确定数据106是否应被高速缓存以及评估其自身的能力以确定其是否能够高速缓存数据106。该过程能够继续至由省略号和102-N表示的其他高速缓存直到一高速缓存已经高速缓存了数据106或在向所有高速缓存呈现了数据106之后没有高速缓存已高速缓存了数据106。
可以执行类似的过程以检索数据。例如,对高速缓存的数据的请求104可被发送至第一高速缓存102-1。如果该第一高速缓存102-1具有该高速缓存的数据,则将从该第一高速缓存102-1返回该高速缓存的数据。如果该第一高速缓存102-1不具有该高速缓存的数据,则该第一高速缓存102-1会将对高速缓存的数据的请求104传递给第二高速缓存102-2。该过程可以继续至由省略号和102-N表示的高速缓存。
如上所述,最快和/或最廉价的高速缓存可以是第一高速缓存102-1,且在后高速缓存是较慢和/或较昂贵的高速缓存。例如,在一个实施例中,第一高速缓存102-1可以是诸如web服务器等的用于较低层次组件的高速缓存。第二高速缓存102-2可以是用于诸如应用层组件,诸如比如可从华盛顿州雷蒙德市的微软公司获得的ASP.net等较高层次组件的高速缓存。在该示例中,第一高速缓存102-1可以是本机高速缓存,而第二高速缓存102-2可以是托管高速缓存。本机高速缓存通常比托管高速缓存更快更便宜。
如上所述,图1示出了高速缓存策略108。在某些实施例中,该高速缓存策略可包括对应于每个高速缓存的策略设置。例如,高速缓存策略可包括对应于高速缓存102-1、102-2、以及102-N的高速缓存策略108-1、108-2、以及108-N。高速缓存策略108-1、108-2、以及108-N可以互连以使得在高速缓存策略108中知晓所有的高速缓存设置。这允许任何有能力的高速缓存来高速缓存数据106。因此,在最快和/或最便宜的高速缓存基于高速缓存能力以及包括对应于每个高速缓存的高速缓存策略的高速缓存策略108能够高速缓存数据时,可以使用它来高速缓存数据。
在各替换实施例中,高速缓存策略108可以是高速缓存102-1、102-2、以及102-N中的每一个都能够参考的通用共享配置。由此,高速缓存策略108所指定的具有存储数据106的能力的第一高速缓存将存储数据106。当高速缓存已存储数据106时,可以标记数据106以使得在后高速缓存将不会试图高速缓存数据106。在一个实施例中,这可以通过简单地将数据106标记为不应被高速缓存的数据来实现。以此方式,高速缓存102-1、102-2、以及102-N不必特别设计为彼此通信。相反,在前高速缓存能够将数据106标记为不应被高速缓存的数据,从而防止在后高速缓存高速缓存该数据。另外,由于能够添加任何数量的在后高速缓存而无需将高速缓存特别设计为彼此通信,所以图1所示的模型是高度可扩展的。
现参考图2,示出了工作流流水线200。工作流流水线200示出正接收请求202。请求202可以是例如来自连接到服务器系统的客户机系统的请求。如果请求202可由输出高速缓存来处理,则可以通过从高速缓存提供对请求202的响应而不是通过更昂贵的计算和/或网络操作来重新生成或重新取得该响应来节省计算资源。另外,即使在高速缓存中无法获得对请求202的响应,在某些情况下,对该请求的响应也可通过此处将在以下更详细描述的各种过程和事件来生成,以使得对该请求的响应然后能够被存储在高速缓存中并且随后在响应中对于请求数据的客户机可用。
当接收到请求202时可以执行解析高速缓存功能204。解析高速缓存功能204允许当在高速缓存206中可获得对请求202的响应时从高速缓存206返回高速缓存的数据。为了获得高速缓存的对请求202的响应,发送对高速缓存的数据104的请求。在图2所示的实施例中,对高速缓存的数据104的请求可被发送至第一高速缓存102-1,该第一高速缓存如上所述可以是较快和/较便宜的高速缓存。如果该第一高速缓存102-1包括对请求202的响应,则该第一高速缓存102-1可返回该响应并防止对高速缓存的数据104的请求继续至诸如102-2以及102-N等在后高速缓存。如果在第一高速缓存102-1中无法获得对请求202的响应,则如上结合图1的描述所述的对高速缓存的数据104的请求可被传递至在后高速缓存。如上所述,在后高速缓存能够继续检查对请求202的响应,直到找到响应或直到检查了每个高速缓存中的响应。
图2示出了判定框208。判定框208指示如果响应被存储在高速缓存之一中,则如在210处所指示的将该响应发送至客户机。如果响应没有被存储在高速缓存之一中,则如在事件212处所示出的可以执行各种动作以从另一个位置生成或检索响应。
如上所述,图2示出了事件212。事件可以是被执行以生成作为对请求202的响应的数据和/或响应于请求202来获取数据的各种活动。例如,事件212可包括由诸如asp.NET等应用层组件执行的各种活动。事件212可包括用于收集存储在数据库中的数据以用作满足请求202的数据的数据库检索功能。某些实施例允许事件在任何合适的层执行。例如,事件212可以在内核层、系统层、和/或应用层执行。
图2还示出了更新高速缓存动作214。当数据已通过事件212生成或检索时,该数据可被存储在高速缓存206之一中。这允许该数据被用作对请求该数据的后续请求的响应。如上所述,数据106可被发送至第一高速缓存102-1。该第一高速缓存102-1参考高速缓存策略108。如果高速缓存策略108指示数据106应被高速缓存并且该第一高速缓存102-1能够高速缓存数据106,则该第一高速缓存102-1高速缓存数据106。然后第一高速缓存102-1向后高速缓存指示数据106不应被高速缓存。在一个实施例中,这可以通过将数据106标记为不应被高速缓存的数据来实现。或者,第一高速缓存102-1可以将不要高速缓存数据106的独立消息发送至诸如高速缓存102-2以及102-N等在后高速缓存。
图2还示出了处理程序216。处理程序216可与在事件212处所表示的计算机硬件和软件相关联。处理程序216能够向高速缓存策略108提供策略信息。具体地,处理程序216可具有定义当由事件212生成时什么特定类型的数据应被高速缓存的可用信息。该信息可由处理程序216传送至高速缓存策略108。
现参考图3,示出了一种用于存储数据的方法300。可以例如在包括向客户机系统提供数据的服务器系统的计算环境中实施。该服务器系统包括用于存储数据的多个高速缓存。方法300包括多个动作。例如,方法300包括接收将在高速缓存处被高速缓存的数据(动作302)。方法300还包括确定该数据先前没有被高速缓存在在前高速缓存处(动作304)。如果该数据先前没有被高速缓存在在前高速缓存处,则方法300示出确定高速缓存策略是否允许该数据被高速缓存在该高速缓存处(动作305)。如果高速缓存策略允许该数据被高速缓存在该高速缓存处,则方法300示出该数据被高速缓存在该高速缓存处(动作306)。否则,该数据不被高速缓存在该高速缓存处(308)。
某些实施例允许该数据被转发至在后高速缓存。可以标记该数据以使得在后高速缓存不高速缓存该数据。例如,该数据可被标记为不要高速缓存的数据以使得在后高速缓存不高速缓存该数据。或者,该高速缓存可向在后高速缓存传达该数据不应被高速缓存。
如上所述,在前高速缓存可以是比该高速缓存成本更低的高速缓存。例如,如图1所示,因为第一高速缓存102-1是较快的高速缓存或需要比第一高速缓存102-2更少的资源,所以它可以成本更低。换言之,在后高速缓存可以是比该高速缓存成本更高的高速缓存。由此,成本较低和/或最快的高速缓存有机会在成本较高和/或较慢的高速缓存之前存储数据。
方法300还包括确定高速缓存是否包括用于高速缓存数据的功能性能力。在一个示例中这可以在动作305处执行。如果该高速缓存包括用于高速缓存数据的功能性能力,则执行在该高速缓存处高速缓存数据(动作306)。例如,并再次参考图1,第一高速缓存102-1能够参考高速缓存策略108以确定应该高速缓存什么类型的数据。第一高速缓存102-1然后能够参考其自身的高速缓存能力以确定其是否具有高速缓存数据的能力。
由此,确定高速缓存是否包括用于高速缓存数据的功能性能力可包括将该高速缓存的功能性能力与诸如适用于多个高速缓存的高速缓存策略108等对象中的一组公共设置相比较。
如上所述,确定高速缓存是否包括用于高速缓存数据的功能性能力可包括将该高速缓存的功能性能力与适用于多个高速缓存的一组经协调的设置相比较。该经协调的设置可以是对应于能够共享信息的多个高速缓存中的每一个高速缓存的各自设置的集合。由此,在前高速缓存可以使用来自在后高速缓存的策略设置来确定该在前高速缓存是否能够高速缓存数据。
方法300可包括通过咨询高速缓存策略来确定数据是否应被高速缓存并且如果高速缓存策略指示该数据应被高速缓存则在该高速缓存处高速缓存该数据(动作306)。这可以例如在动作305处执行。如上所述,高速缓存策略108包括指示什么类型的数据应被高速缓存在多个高速缓存中的高速缓存处的信息。
方法300可以是使得接收将在高速缓存处高速缓存的数据包括从在前高速缓存接收该数据。例如,如果在前高速缓存由于功能限制不能够高速缓存数据,则高速缓存可以从该在前高速缓存接收该数据。
如上所述,高速缓存可具有其中在访问较慢的高速缓存之前访问较快的高速缓存的变化的功能。由此,在一个实施例中,该高速缓存可以是web服务器,而在后高速缓存可以是应用层高速缓存。类似地,该高速缓存可以是本机高速缓存,而在后高速缓存可以是托管高速缓存。
现参考图4,示出了一种方法400。可以例如在包括向客户机系统提供数据的服务器系统的计算环境中实施。该服务器系统包括用于存储数据的多个高速缓存。该方法包括用于提供客户机所请求的高速缓存的数据的各种动作。该方法包括接收对高速缓存处的数据的请求(动作402)。例如,如图2所示,可以接收请求104。
该方法还包括确定该数据是否可在该高速缓存处获得(动作404)。例如,第一高速缓存102-1确定对数据104的请求所请求的数据是否可在该第一高速缓存102-1处获得。如果该数据可在该高速缓存处获得,则返回所请求的数据(动作406)。例如,图2示出了向客户机210发送响应。如果该数据不能够在该高速缓存处获得,则将该请求转发至在后高速缓存(动作408)。例如,可将请求104转发至第二高速缓存102-2。
如此处在其他实施例中所描述的,该高速缓存可以比在后高速缓存更快。
所要求保护的方法400还可包括如果数据不能够在多个高速缓存处获得,则生成该数据或从除了多个高速缓存之外的位置检索该数据。例如,如图2所示,如事件212所示出的可以执行各种动作以生成该数据或诸如从数据库或其他数据源检索该数据。
当已检索或生成了数据时,方法400还可包括用于向高速缓存提供该数据、确定该数据先前没有被高速缓存在多个高速缓存中的在前高速缓存处、以及如果如在确定该数据先前没有被高速缓存过的步骤中所确定的该数据先前没有被高速缓存在多个高速缓存中的在前高速缓存处则在该高速缓存处高速缓存该数据的各种动作。
另外,生成或检索数据可包括向多个高速缓存提供指定数据应被高速缓存在多个高速缓存处的高速缓存策略信息。
各实施例还可以包括用于承载或其上存储有计算机可执行指令或数据结构的计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或可用于承载或存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其它介质。当信息通过网络或另一通信连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为计算机可读介质。因此,任何这样的连接被适当地称为计算机可读介质。以上的组合也应包括在计算机可读介质的范围之内。
计算机可执行指令包括例如,使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所述实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效技术方案的含义和范围内的所有改变应被权利要求书的范围涵盖。
Claims (20)
1.一种在包括向客户机系统提供数据的服务器系统的计算环境中首先在最廉价的高速缓存处高速缓存客户机所请求的数据的方法,所述服务器系统包括用于存储数据的多个高速缓存,所述方法包括以下动作:
接收将被高速缓存在高速缓存处的数据;
确定所述数据先前没有被高速缓存在在前高速缓存处;以及
如果如在所述确定所述数据先前没有被高速缓存的步骤中所确定的所述数据先前没有被高速缓存在在前高速缓存处,则在所述高速缓存处高速缓存所述数据。
2.如权利要求1所述的方法,其特征在于,所述在前高速缓存是比所述高速缓存成本更低的高速缓存。
3.如权利要求1所述的方法,其特征在于,还包括将所述数据转发至在后高速缓存。
4.如权利要求3所述的方法,其特征在于,所述在后高速缓存是比所述高速缓存成本更高的高速缓存。
5.如权利要求1所述的方法,其特征在于,还包括:
确定所述高速缓存是否包括用于高速缓存所述数据的功能性能力;以及
其中如果所述高速缓存包括用于高速缓存所述数据的功能性能力,则执行在所述高速缓存处高速缓存所述数据。
6.如权利要求5所述的方法,其特征在于,确定所述高速缓存是否包括用于高速缓存所述数据的功能性能力包括将所述高速缓存的功能性能力与适用于所述多个高速缓存的对象中的一组公共设置相比较。
7.如权利要求5所述的方法,其特征在于,确定所述高速缓存是否包括用于高速缓存所述数据的功能性能力包括将所述高速缓存的功能性能力与适用于所述多个高速缓存的一组经协调的设置相比较。
8.如权利要求1所述的方法,其特征在于,还包括:
通过咨询高速缓存策略来确定所述数据是否应被高速缓存;以及
其中如果所述高速缓存策略指示所述数据应被高速缓存,则执行在所述高速缓存处高速缓存所述数据。
9.如权利要求1所述的方法,其特征在于,接收将在高速缓存处高速缓存的数据包括从在前高速缓存接收所述数据。
10.如权利要求2所述的方法,其特征在于,所述高速缓存是web服务器高速缓存,而所述在后高速缓存是应用层高速缓存。
11.如权利要求2所述的方法,其特征在于,所述高速缓存是本机高速缓存,而所述在后高速缓存是托管高速缓存。
12.一种在包括向客户机系统提供数据的服务器系统的计算环境中的通过首先从较廉价的高速缓存检索数据来提供客户机所请求的高速缓存的数据的方法,所述服务器系统包括用于存储数据的多个高速缓存,所述方法包括以下动作:
在高速缓存处接收对数据的请求;
确定所述数据是否可在所述高速缓存处获得;
如果所述数据可在所述高速缓存处获得,则返回所请求的数据;以及
如果所述数据不能够在所述高速缓存处获得,则将所述请求转发至在后高速缓存。
13.如权利要求12所述的方法,其特征在于,所述高速缓存比所述在后高速缓存快。
14.如权利要求12所述的方法,其特征在于,还包括如果所述数据不能够在所述多个高速缓存处获得,则生成所述数据或从除了所述多个高速缓存之外的位置检索所述数据。
15.如权利要求14所述的方法,其特征在于,还包括:
向所述高速缓存提供所述数据;
确定所述数据先前没有被高速缓存在所述多个高速缓存中的在前高速缓存处;以及
如果如在所述确定所述数据先前没有被高速缓存过的步骤中所确定的所述数据先前没有被高速缓存在所述多个高速缓存中的所述在前高速缓存处,则在所述高速缓存处高速缓存所述数据。
16.如权利要求14所述的方法,其特征在于,生成或检索所述数据包括向所述多个高速缓存提供指定应被高速缓存在所述多个高速缓存处的数据的高速缓存策略信息。
17.一种具有存储在其上的多个数据结构的计算机可读介质,所述多个数据结构包括:
多个高速缓存,包括:
具有第一速度的第一高速缓存;以及
在后耦合到所述第一高速缓存的第二高速缓存,所述第二高速缓存具有比所述第一高速缓存慢的第二速度,其中因为在后耦合到所述第一高速缓存,所以所述第一高速缓存在所述第二高速缓存之前接收数据以及对数据的请求;以及
策略对象,其中所述策略对象定义对应于所述多个高速缓存的设置。
18.如权利要求17所述的计算机可读介质,其特征在于,还包括用于生成和/或检索数据的计算机可执行指令。
19.如权利要求17所述的计算机可读介质,其特征在于,还包括用于生成将被存储在所述策略对象中的策略信息的计算机可执行指令。
20.如权利要求17所述的计算机可读介质,其特征在于,所述第二高速缓存在后耦合到所述第一高速缓存允许数据和对数据的请求从所述第一高速缓存被发送至所述第二高速缓存。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/370,585 | 2006-03-08 | ||
US11/370,585 US7685367B2 (en) | 2006-03-08 | 2006-03-08 | Multi-cache cooperation for response output caching |
PCT/US2007/003345 WO2007102969A2 (en) | 2006-03-08 | 2007-02-06 | Multi-cache cooperation for response output caching |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101401079A true CN101401079A (zh) | 2009-04-01 |
CN101401079B CN101401079B (zh) | 2011-09-07 |
Family
ID=38475333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800083267A Active CN101401079B (zh) | 2006-03-08 | 2007-02-06 | 用于响应输出高速缓存的多高速缓存协作 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7685367B2 (zh) |
EP (1) | EP2002343B1 (zh) |
JP (1) | JP5006348B2 (zh) |
KR (1) | KR20080104288A (zh) |
CN (1) | CN101401079B (zh) |
WO (1) | WO2007102969A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105306520A (zh) * | 2014-06-05 | 2016-02-03 | 汤姆逊许可公司 | 操作高速缓存器的方法及相应高速缓存器 |
CN105359485A (zh) * | 2013-06-28 | 2016-02-24 | 汤姆逊许可公司 | 由客户终端获得多媒体内容的内容部分的方法 |
CN106710616A (zh) * | 2015-11-13 | 2017-05-24 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8808246B2 (en) | 2009-07-21 | 2014-08-19 | The General Hospital Corporation | Peripheral blood sampling methods and devices |
US8825685B2 (en) * | 2009-11-16 | 2014-09-02 | Symantec Corporation | Selective file system caching based upon a configurable cache map |
EP2388704A1 (en) | 2010-05-17 | 2011-11-23 | Thomson Licensing | Method of optimization of cache memory management and corresponding apparatus |
US9003104B2 (en) | 2011-02-15 | 2015-04-07 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a file-level cache |
US8996807B2 (en) | 2011-02-15 | 2015-03-31 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a multi-level cache |
US8874823B2 (en) | 2011-02-15 | 2014-10-28 | Intellectual Property Holdings 2 Llc | Systems and methods for managing data input/output operations |
US9201677B2 (en) | 2011-05-23 | 2015-12-01 | Intelligent Intellectual Property Holdings 2 Llc | Managing data input/output operations |
US9186100B2 (en) | 2011-04-26 | 2015-11-17 | Velano Vascular, Inc. | Systems and methods for phlebotomy through a peripheral IV catheter |
US8366685B2 (en) | 2011-04-26 | 2013-02-05 | Creative Vascular, Llc | Systems and methods for phlebotomy through a peripheral IV catheter |
US10076272B2 (en) * | 2011-04-26 | 2018-09-18 | Velano Vascular, Inc. | Systems and methods for phlebotomy through a peripheral IV catheter |
KR101351648B1 (ko) * | 2011-10-19 | 2014-01-15 | 한양대학교 산학협력단 | 사용자의 요청을 예측하여 컨텐츠를 관리하는 멀티미디어 서버 및 그 관리 방법 |
US8935476B2 (en) | 2012-01-17 | 2015-01-13 | International Business Machines Corporation | Managing caching of extents of tracks in a first cache, second cache and storage |
US9116812B2 (en) | 2012-01-27 | 2015-08-25 | Intelligent Intellectual Property Holdings 2 Llc | Systems and methods for a de-duplication cache |
US10037279B1 (en) * | 2012-06-20 | 2018-07-31 | EMC IP Holding Company LLC | Host device caching of a business process data |
US9612966B2 (en) | 2012-07-03 | 2017-04-04 | Sandisk Technologies Llc | Systems, methods and apparatus for a virtual machine cache |
US10339056B2 (en) | 2012-07-03 | 2019-07-02 | Sandisk Technologies Llc | Systems, methods and apparatus for cache transfers |
US9842053B2 (en) | 2013-03-15 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for persistent cache logging |
CN103607312B (zh) * | 2013-11-29 | 2017-02-15 | 广州华多网络科技有限公司 | 用于服务器系统的数据请求处理方法及系统 |
US9547553B1 (en) | 2014-03-10 | 2017-01-17 | Parallel Machines Ltd. | Data resiliency in a shared memory pool |
US9781027B1 (en) | 2014-04-06 | 2017-10-03 | Parallel Machines Ltd. | Systems and methods to communicate with external destinations via a memory network |
US9529622B1 (en) | 2014-12-09 | 2016-12-27 | Parallel Machines Ltd. | Systems and methods for automatic generation of task-splitting code |
US9594688B1 (en) | 2014-12-09 | 2017-03-14 | Parallel Machines Ltd. | Systems and methods for executing actions using cached data |
US9690713B1 (en) | 2014-04-22 | 2017-06-27 | Parallel Machines Ltd. | Systems and methods for effectively interacting with a flash memory |
US9639473B1 (en) | 2014-12-09 | 2017-05-02 | Parallel Machines Ltd. | Utilizing a cache mechanism by copying a data set from a cache-disabled memory location to a cache-enabled memory location |
US9632936B1 (en) | 2014-12-09 | 2017-04-25 | Parallel Machines Ltd. | Two-tier distributed memory |
US9781225B1 (en) | 2014-12-09 | 2017-10-03 | Parallel Machines Ltd. | Systems and methods for cache streams |
US9753873B1 (en) | 2014-12-09 | 2017-09-05 | Parallel Machines Ltd. | Systems and methods for key-value transactions |
US10300247B2 (en) | 2016-02-03 | 2019-05-28 | Velano Vascular, Inc. | Devices and methods for fluid transfer through a placed peripheral intravenous catheter |
KR102657586B1 (ko) | 2016-10-28 | 2024-04-15 | 삼성전자주식회사 | 그래픽스 데이터를 관리하는 방법 및 장치 |
EP3600514B1 (en) | 2017-03-21 | 2022-06-08 | Velano Vascular, Inc. | Systems and methods for controlling catheter device size |
CN114470485A (zh) | 2017-03-21 | 2022-05-13 | 威蓝诺血管股份有限公司 | 通过已放置的外周静脉导管进行流体输送的装置和方法 |
JP7225554B2 (ja) * | 2018-04-02 | 2023-02-21 | 富士通株式会社 | 情報処理装置、情報処理システムおよび情報処理プログラム |
KR102025921B1 (ko) | 2018-08-09 | 2019-09-26 | 숭실대학교산학협력단 | 정보 중심 네트워크 기반 지연 허용 네트워크에서의 데이터 캐싱 방법, 이를 수행하기 위한 기록매체 및 장치 |
JP2022545801A (ja) | 2019-08-20 | 2022-10-31 | ベラノ バスキュラー,インコーポレイテッド | 伸長型カテーテルを有する流体移送装置とその使用方法 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5386547A (en) * | 1992-01-21 | 1995-01-31 | Digital Equipment Corporation | System and method for exclusive two-level caching |
US5758119A (en) | 1995-08-23 | 1998-05-26 | International Business Machines Corp. | System and method for indicating that a processor has prefetched data into a primary cache and not into a secondary cache |
US5924116A (en) | 1997-04-02 | 1999-07-13 | International Business Machines Corporation | Collaborative caching of a requested object by a lower level node as a function of the caching status of the object at a higher level node |
WO1999003047A1 (en) | 1997-07-11 | 1999-01-21 | Earle Machardy | Content hosting environment system and cache mechanism |
US6430654B1 (en) | 1998-01-21 | 2002-08-06 | Sun Microsystems, Inc. | Apparatus and method for distributed non-blocking multi-level cache |
US6473401B1 (en) | 1998-04-06 | 2002-10-29 | Iscale, Inc. | Self-scaling method for exploiting cached resources across organizational boundaries to enhance user response time and to reduce server and network load |
US6175869B1 (en) | 1998-04-08 | 2001-01-16 | Lucent Technologies Inc. | Client-side techniques for web server allocation |
SK285280B6 (sk) * | 1998-05-28 | 2006-10-05 | Biogen Idec Ma Inc. | Inhibítor VLA-4, farmaceutická kompozícia a ich použitie na prípravu liečiva |
US6338117B1 (en) | 1998-08-28 | 2002-01-08 | International Business Machines Corporation | System and method for coordinated hierarchical caching and cache replacement |
US6438652B1 (en) | 1998-10-09 | 2002-08-20 | International Business Machines Corporation | Load balancing cooperating cache servers by shifting forwarded request |
US6345292B1 (en) | 1998-12-03 | 2002-02-05 | Microsoft Corporation | Web page rendering architecture |
US6697849B1 (en) | 1999-08-13 | 2004-02-24 | Sun Microsystems, Inc. | System and method for caching JavaServer Pages™ responses |
US6425058B1 (en) | 1999-09-07 | 2002-07-23 | International Business Machines Corporation | Cache management mechanism to enable information-type dependent cache policies |
JP2001125830A (ja) * | 1999-10-29 | 2001-05-11 | Toshiba Corp | キャッシュ管理装置及びネットワークシステム並びにプログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6961750B1 (en) | 2000-05-18 | 2005-11-01 | Microsoft Corp. | Server-side control objects for processing client-side user interface elements |
JP2002044138A (ja) | 2000-07-25 | 2002-02-08 | Nec Corp | ネットワークシステム,キャッシュサーバ,中継サーバ,ルータ,キャッシュサーバ制御方法及び記録媒体 |
US6851024B1 (en) | 2000-08-17 | 2005-02-01 | Hewlett-Packard Development Company, L.P. | Exclusive caching in computer systems |
US6732237B1 (en) * | 2000-08-29 | 2004-05-04 | Oracle International Corporation | Multi-tier caching system |
US20030014461A1 (en) | 2001-01-11 | 2003-01-16 | Axis Software Co., Ltd. | Client control system for routine task |
US7555561B2 (en) | 2001-03-19 | 2009-06-30 | The Aerospace Corporation | Cooperative adaptive web caching routing and forwarding web content data broadcasting method |
US20020184403A1 (en) | 2001-04-06 | 2002-12-05 | Dahlin Michael D. | Methods for near-optimal bandwidth-constrained placement in a wide-area network |
US6973536B1 (en) * | 2001-08-31 | 2005-12-06 | Oracle Corporation | Self-adaptive hybrid cache |
US6678799B2 (en) * | 2001-10-18 | 2004-01-13 | Hewlett-Packard Development Company, Lp. | Aggregation of cache-updates in a multi-processor, shared-memory system |
JP2005010970A (ja) | 2003-06-18 | 2005-01-13 | Hitachi Ltd | 分散キャッシュ制御方法、ネットワークシステムおよび当該ネットワークに用いられる制御サーバないしルータ |
US7124249B1 (en) * | 2003-06-26 | 2006-10-17 | Emc Corporation | Method and apparatus for implementing a software cache |
US7076611B2 (en) * | 2003-08-01 | 2006-07-11 | Microsoft Corporation | System and method for managing objects stored in a cache |
US20050091226A1 (en) | 2003-10-23 | 2005-04-28 | Yun Lin | Persistent caching directory level support |
-
2006
- 2006-03-08 US US11/370,585 patent/US7685367B2/en active Active
-
2007
- 2007-02-06 KR KR1020087021527A patent/KR20080104288A/ko not_active IP Right Cessation
- 2007-02-06 JP JP2008558274A patent/JP5006348B2/ja active Active
- 2007-02-06 WO PCT/US2007/003345 patent/WO2007102969A2/en active Application Filing
- 2007-02-06 EP EP07750202A patent/EP2002343B1/en active Active
- 2007-02-06 CN CN2007800083267A patent/CN101401079B/zh active Active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105359485A (zh) * | 2013-06-28 | 2016-02-24 | 汤姆逊许可公司 | 由客户终端获得多媒体内容的内容部分的方法 |
CN105306520A (zh) * | 2014-06-05 | 2016-02-03 | 汤姆逊许可公司 | 操作高速缓存器的方法及相应高速缓存器 |
US10728295B2 (en) | 2014-06-05 | 2020-07-28 | Interdigital Vc Holdings, Inc. | Method for operating a cache arranged along a transmission path between client terminals and at least one server, and corresponding cache |
CN105306520B (zh) * | 2014-06-05 | 2021-03-16 | 交互数字Vc控股公司 | 操作高速缓存器的方法及相应高速缓存器 |
CN106710616A (zh) * | 2015-11-13 | 2017-05-24 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US7685367B2 (en) | 2010-03-23 |
WO2007102969A2 (en) | 2007-09-13 |
US20070214320A1 (en) | 2007-09-13 |
EP2002343A2 (en) | 2008-12-17 |
JP5006348B2 (ja) | 2012-08-22 |
JP2009529183A (ja) | 2009-08-13 |
EP2002343B1 (en) | 2013-03-27 |
KR20080104288A (ko) | 2008-12-02 |
WO2007102969A3 (en) | 2008-02-21 |
CN101401079B (zh) | 2011-09-07 |
EP2002343A4 (en) | 2009-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101401079B (zh) | 用于响应输出高速缓存的多高速缓存协作 | |
CN103782295B (zh) | 分布式数据管理系统中的查询说明计划 | |
US20190213179A1 (en) | System and method for clustering distributed hash table entries | |
CN100520738C (zh) | 更新无效一致状态的方法、数据处理系统和高速缓存系统 | |
CN102640125B (zh) | 分布式内容存储和取回 | |
JP4856627B2 (ja) | 部分的クエリーキャッシング | |
CN103533058B (zh) | 面向HDFS/Hadoop存储集群的资源监控系统及方法 | |
CN108737534B (zh) | 一种基于区块链的数据传输方法、装置、区块链系统 | |
CN106899681A (zh) | 一种信息推送的方法以及服务器 | |
KR20130115983A (ko) | 분산 데이터 스토리지 | |
CN104704773A (zh) | 云存储环境中基于一致性的服务级协定 | |
CN102201031A (zh) | 基于请求的服务器健康建模 | |
CN103947140A (zh) | 用于位置无关软件的需求驱动的部署的系统和方法 | |
CN104994156A (zh) | 一种集群的负载均衡方法及系统 | |
KR20120139775A (ko) | 상향식 방식의 최적화된 검색 시스템 및 방법 | |
CN106095483A (zh) | 服务的自动化部署方法及装置 | |
CN101957778B (zh) | 软件持续集成的方法、装置和系统 | |
CN114363352A (zh) | 基于区块链的物联网系统跨链交互方法 | |
CN106021284A (zh) | 数据查询方法、数据监测方法及装置 | |
WO2020236250A1 (en) | Efficient freshness crawl scheduling | |
CN106796537A (zh) | 计算集群中的分布式组件 | |
CN107301090A (zh) | 在存储服务器中为应用设置数据处理路径的方法及装置 | |
US8266634B2 (en) | Resource assignment system with recovery notification | |
CN1829988A (zh) | 无共享数据库系统中的单相提交 | |
CN101197753A (zh) | 基于全局最小访问代价的副本选择方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150430 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150430 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |