用于代理缓存智能对象淘汰的方法和系统与流程

文档序号:12512755阅读:198来源:国知局
用于代理缓存智能对象淘汰的方法和系统与流程

本发明要求于2015年2月27日递交的发明名称为“一种用于代理缓存智能对象淘汰的方法和系统”的第14/634,149号美国非临时专利申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文。

技术领域

本发明实施例涉及包括广域网(wide area network,简称WAN)的通信网络,特别地,涉及位于远离后端数据服务器的本地站点中代理缓存的对象的淘汰。



背景技术:

当今,业务不再位于单一的位置,而是分散在世界各地的许多办公室。通过WAN,远端办公室从其位于总部位置的“数据中心”或云端访问数据。即,远端办公室的用户会对存储在数据中心的数据进行操作。这需要远端办公室的用户和数据中心之间进行多次往返事务处理,以执行单次操作。

然而,WAN具有时延和带宽问题,从而在对位于数据中心的数据进行操作时,为用户体验造成不利影响。例如,WAN通常并不可靠,且带宽较小。为解决这些时延和带宽问题,许多存储企业利用被配置为具有缓存能力的代理。这样,当远端办公室的用户正在对数据进行操作时,对传递至本地代理的数据执行这些操作。

特别地,一些应用使用了文件共享协议,这些文件共享协议起初用于本地访问(例如,通过局域网(local area network,简称LAN)),而现在用于WAN环境中。为了规避性能问题,在缓存对象中安装了中间缓存设备。例如,这些缓存可以同时是“读”和“写”缓存,所述“读”和“写”缓存可缓存数据以提升用户体验并提供更佳的数据一致性和数据连贯性。

这些中间缓存的存储空间有限,通常比后端数据中心要小得多。久而久之,这些中间缓存没有充足的存储空间以接受新数据。因此,淘汰算法得以实施,以在中间缓存中创建空间。例如,基于现有的熟知淘汰算法,淘汰不再使用的数据。然而,这些算法可能会不适当地管理淘汰过程。例如,这些淘汰算法可能会主动淘汰数据,这在从后端数据中心重复传输相同文件时,造成高网络占用率的不利影响。



技术实现要素:

在本发明一些实施例中,公开了一种管理本地缓存的方法。所述方法包括:在本地缓存从后端服务器中接收对象,以供本地站点的一个或多个用户访问。所述方法包括:为所述对象赋予淘汰策略参数值。所述方法包括:将所述对象存储至所述本地缓存中。所述方法包括:在所述本地缓存中估算所述淘汰策略参数值。所述方法包括:基于淘汰策略参数值,从所述本地缓存中淘汰所述对象。

在一实施例中,公开了另一种管理本地缓存中存储的方法。所述方法包括:监控存储在本地缓存中的多个对象。所述多个对象可由本地站点的用户访问。所述方法包括:检测淘汰触发事件。所述方法包括:应用第一淘汰策略至存储在所述本地缓存的多个对象,以确定用以淘汰的选定对象。所述方法包括:淘汰所述选定对象。

在另一实施例中,公开了一种计算机系统。所述计算机系统包括处理器,用于在本地缓存从后端服务器中接收对象,以供本地站点的一个或多个用户访问。所述处理器用于为所述对象赋予淘汰策略参数值。所述处理器用于将所述对象存储至所述本地缓存中。所述处理器用于在所述本地缓存中估算所述淘汰策略参数值,并基于淘汰策略参数值,从所述本地缓存中淘汰所述对象。

在阅读多个示图描述的下面实施例的具体细节后,本领域普通技术人员将意识到本发明多个实施例的这些以及其他目的和优势。

附图说明

附图包含在并且构成本说明书的一部分,其中相同的数字描绘相同的元件,附图说明本发明的实施例,并且与描述内容一起用于解释本发明的原理。

图1为本发明实施例提供的一种包括通过WAN以通信的方式耦合至本地站点的后端数据中心的通信网络的图,其中,所述本地站点用于提供本地缓存的自动缓存利用和缓存管理。

图2为本发明实施例提供的一种在本地缓存实施淘汰过程时所使用的各种信息的图。

图3为本发明实施例提供的一种在本地缓存实施淘汰过程的消息流程图。

图4A、4B、4C和4D为本发明实施例提供的用于实现本地缓存对象淘汰的计算机控制方法的流程图。

具体实施方式

现将详细地对本发明的各种实施例、附图示出的示例做出参考。虽然会结合这些实施例进行描述,但可以理解的是它们并不用于将本发明限制于这些实施例。相反,本发明公开旨在覆盖可以包括在由所附权利要求书限定的本发明公开的精神和范围内的替代物、修改和等同物。另外,在以下本发明的详细描述中,阐述了许多特定细节以便提供对本发明的透彻理解。然而,可以理解的是,实际应用中,可以不包括本发明的这些特定细节。在其它实例中没有详细描述众所周知的方法、流程、部件和电路,以免对本发明的各方面造成不必要地模糊。

相应地,本发明实施例提供了自动缓存利用和缓存管理。本实施例为用户/管理员提供更多控制,以确定哪一个对象集群将被淘汰,以及基于信息以何种顺序进行淘汰。即,通过将淘汰元数据信息置于存储在本地缓存中的对象中来促进淘汰策略。例如,扩展对象属性包括有效期和优先级权重。另外,可以基于每个对象的淘汰历史调整该对象的有效期。由于缓存可通过具有各种网络带宽的通信路径与多个后端文件服务器进行通信,所以在进行淘汰时,也可以考虑网络带宽。所有这些淘汰策能改善缓存管理。

下面详细描述的一些部分按照程序、步骤、逻辑块、处理、以及能够在计算机存储器中执行的数据位的操作的其他符号表现呈现。这些描述和表示是数据处理领域技术人员向该领域其他技术人员有效传达工作实质内容使用的方法。将程序、计算机产生的步骤、逻辑块、过程等一般设想为首尾一致的步骤或指令序列,以产生期望的结果。步骤是物理量需要的那些物理操作,是指计算系统(例如,处理器)的动作和程序等,该计算系统用于将表示为计算机系统的寄存器和存储器中的物理(电子)量的数据操作并转换为类似地表示为计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备内的物理量的其他数据。

根据本发明实施例的缓存管理方法的示例流程图包括:根据一个或多个淘汰策略连续淘汰对象。虽然在公开了流程图中具体步骤,但这些步骤是示例性的。即,本发明实施例非常适合执行各种其他步骤或流程图中列举的步骤的变形。而且,此处所述的实施例可以在计算机可执行指令的一般语境中进行讨论,所述指令驻留在某种形式的诸如程序模块等计算机可读存储介质上,由一个或多个计算机或其他设备执行。以举例的方式,而不是限制,软件产品可以存储在一个非易失性或非瞬时性计算机可读存储介质中,该计算机可读存储介质可以包括非瞬时性计算机存储介质和通信介质。

图1为本发明实施例提供的一种包括通过WAN 150以通信的方式耦合至本地站点120的后端数据中心110的通信网络100的图,其中,所述本地站点120用于提供本地缓存130的自动缓存利用和缓存管理。

特别地,通信网络100示出了企业数据存储解决方案,其中,数据中心110为企业解决方案中所有可访问的对象提供了主存储设备。即,数据中心110为一个或多个本地站点120的客户端设备所访问的多个对象提供了统一位置。另外,一个或多个数据中心110可同步提供多个用以访问数据的访问点,或扩展存储平台以存储更大范围的对象。为解决WAN 150的时延和带宽下降问题,将中间缓存设备置于本地站点120中。例如,本地缓存130用于临时存储本地站点(例如,远离后端数据中心110的本地办公室)的多个客户端设备121所打开和访问的对象。

如图1所述,后端数据中心110包括足够大的存储设备112,以容纳一个或多个本地站点。例如,在企业存储系统中,数据中心110可具有100太字节以上的存储空间。数据中心100包括WAN优化和核心缓存盒113,该核心缓存盒113用于存储被存储到存储设备112并从存储设备112中访问的对象,以提升数据中心110的性能。防火墙114通过控制网络传入流量和网络传出流量提供网络安全。例如,防火墙114提供了壁垒,该壁垒在满足安全规则集时允许通信流入和流出防火墙114。路由器115包含在数据中心110中,以提供位于不同网络(例如,通过多个LAN或WAN)中设备间的报文转发。

后端数据中心110通过例如WAN 150等通信网络以通信的方式耦合至本地站点120。例如,网络150用于在后端数据中心110和本地站点120之间传递对象。这样,当客户端设备的用户在本地站点120打开对象以执行操作(例如,读或写)时,将该对象传递至本地缓存130。因此,由于对象进行了局部化,而且现在可通过更高效的LAN访问该对象,所以通过WAN150所进行的往返导致的性能问题显著减少。

本地站点包括路由器125,以接收和转发报文。例如,路由器125用于通过WAN 150从数据中心110接收传入对象,并通过WAN 150向数据中心110转发传出对象。防火墙114为本地站点120提供安全,同时提供了允许通信流入和流出防火墙124的壁垒。本地缓存130用于存储多个客户端设备121在本地访问的对象。在一种实现方式中,客户端设备121为瘦客户端,这些瘦客户端的存储空间较小,且依赖后端存储设备以存储通过客户端设备121访问和/或修改的对象。

本地缓存130用于实现自动缓存利用和缓存管理。例如,本地缓存130可用于在连续性基础上,对多个存储对象实施一个或多个缓存淘汰策略,而不是等到缓存太满而无法接受新对象。

本地缓存130可包括处理器133和存储器135,其中,处理器133用于执行存储在存储器135中的计算机可执行指令,例如,缓存控制器(未示出)所提供的指令。处理器133和存储器135也可以远离本地缓存130。处理器133用于实施缓存淘汰策略,以在连续性基础上淘汰对象。通过将淘汰元数据信息置于存储在本地缓存中的对象中来促进淘汰策略。例如,扩展对象属性包括有效期和优先级权重。另外,可以基于每个对象的淘汰历史调整该对象的有效期。而且,由于缓存可通过具有各种网络带宽的通信路径与多个后端文件服务器进行通信,所以在进行淘汰时,也可以考虑网络带宽。进一步地,处理器133可用于提供接口,该接口为用户/管理员提供更多控制,以确定哪一个对象集群将被淘汰,以及基于信息以何种顺序进行淘汰。

在一实施例中,处理器133用于执行此处所述和/或所示的一个或多个示例实施例的功能,例如,缓存淘汰策略。进一步地,处理器133可以包含在能够执行计算机可读指令的单或多处理器计算设备或系统中。在其最基本的形式中,计算设备可以包括至少一个处理器和系统存储器。系统存储器耦合至处理器,通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。例如,系统存储器包括但不限于随机存取存储器(random access memory,简称RAM)、只读存储器(read only memory,简称ROM)、闪存或任何其他合适的存储设备。

图2为本发明实施例提供的一种在本地缓存实施淘汰过程时所使用的各种信息的示意图200。特别地,本地缓存的处理器进行成本计算,从而为了进行本地缓存中对象淘汰实施所使用的一个或多个淘汰策略以及以何种顺序实施。在一实施例中,用户/管理员能够提供输入,该输入是关于相比其他淘汰策略使用了哪些淘汰策略以及以何种优先级进行使用。

本地缓存130接收各种信息,每种信息可适用于一个或多个淘汰策略。例如,本地缓存130可接收信息,包括新近度信息251、频率信息252和文档大小253,以及现有淘汰技术250可使用的其他信息。为了进行说明,出于淘汰目的,最近最少使用(least recently used,简称LRU)技术利用新近度信息251确定访问时间最久远的文件。出于淘汰目的,最近最少使用(least recently used,简称LRU)技术利用频率信息252确定最不经常访问的文件。文档大小253信息可用于淘汰最大对象。其他信息包括上一次访问至今的时间、访问次数、文件成本、膨胀值和老化参考数目等。

在进行淘汰成本计算时,本地缓存130接收对象到期信息210。特别地,到期信息提供了存储在本地缓存中的每个对象的有效期。不管对象格式(例如,该对象如何通过WAN进行传递)和/或不管用于获取该对象的协议,将有效期作为扩展附加给该对象。在对象对应的有效期到期时,期满淘汰策略会淘汰这些对象。

在进行淘汰成本计算时,本地缓存130接收附加权重/等级信息220。特别地,为对象所赋的权重或等级提供了关于该对象重要性优先级的指示。例如,权重或等级越高的对象可能比权重或等级越低的对象更重要。例如,用户或管理员能够选择对象并根据其类型赋予相关权重(例如,取值为5为可缓存性最大,而取值为1为可缓存性最小)。*.mp3文件(例如,音乐文件)的对象可能不如文档文件重要。另外,可为例如文件或文件夹等对象赋予权重。通过各种技术可实现这些权重或等级。这样,可以为每个对象赋予重要性等级。权重/等级策略会在淘汰重要性更高的对象之前,淘汰重要性最低(例如,可缓存性最小)的对象。

在进行淘汰成本计算时,本地缓存130记录最近淘汰信息230。即,在滑动窗口内记录被淘汰对象的历史。因此,最近被淘汰但之后在滑动窗口(例如,3周)内从后端数据中心重新访问的对象比在滑动窗口内不再重新访问的被淘汰文件可具有更高重要性等级。即,在文件当前有效期到期后,该文件是不进行淘汰的主要候选。因此,可以调整该对象的有效期或重要性优先级(例如,权重)以反映对象提升的重要性。在考虑是否调整对象的有效期时,滑动窗口策略将最近被淘汰对象的访问模式的历史配置文件用作反馈。

在进行淘汰成本计算时,本地缓存130计算或确定带宽信息240。即,本地站点可以通信的方式耦合至一个或多个数据中心。通过本地站点和每个数据中心之间的通信路径,连续计算或确定本地缓存和每个后端服务器之间的网络带宽。在确定哪一个对象最适于从本地缓存中淘汰时,对该网络带宽加以考虑。即,保持持续测量至每个后端服务器的带宽,并在进行缓存淘汰时将其加以考虑。例如,可考虑淘汰两个对象,其中,这两个对象的大小相对相同,但来自不同的后端数据中心。在这种情况下,通过带宽更高的通信路径来自一个数据中心的对象在通过带宽更低的另一通信路径来自另一数据中心的对象之前淘汰。这是由于通过带宽更低的路径能够更容易访问选定对象,且重新访问选定文件的成本比重新访问另一文件的成本更低。

如图2所示,在确定应该从本地缓存中淘汰哪一对象或哪些对象时,本发明实施例能够使用对象到期信息210、附加权重/等级信息220、最近淘汰信息230和带宽信息240,以及来自现有淘汰技术250的信息。

图3为本发明实施例提供的一种在本地缓存实施淘汰过程的消息流程图300。在位于本地站点的客户端设备、也位于本地站点的本地缓存设备以及位于后端数据中心的文件服务器之间传递图3所示的消息。本地缓存设备充当中间缓存以存储用户通过局部化的客户端设备进行访问的对象。这样,通过访问存储在中间缓存而不是后端文件服务器中的对象,用户感知性能得到大大提升。

特别地,客户端设备接收和/或生成打开对象(以下简称“A.doc.”)的请求。在310处,该请求传递至本地缓存设备,并在310处确定是否在本地存储A.doc。如果不在本地存储A.doc,则在315处,打开A.doc的请求传递至后端文件服务器。此时,在320处,文件服务器将A.doc返回至本地缓存。

本地缓存应用一个或多个淘汰策略参数值(例如,有效期和优先级值等)至该对象。另外,也可以包含其他缓存策略信息,以助于确定在多个淘汰策略中使用了哪一个或哪些淘汰策略以及以何种顺序进行使用。因此,在325处,A.doc对象传递回至客户端设备。

在330处,客户端设备打开A.doc,以供用户访问和操作。通过将A.doc置于本地缓存中,用户能够高效访问和操作该对象,不会造成在本地站点和后端文件服务器之间来回发送事务处理指令时所遇到的时延和降低带宽问题。

在390处,图3示出了本地缓存不断实施一个或多个淘汰策略。特别地,连续监控本地缓存,以确定淘汰触发事件发生的时间。例如,监控有效期,以确定在到期——触发事件后,应该淘汰哪些对象。同样,监控本地缓存中的可用空间以确定到达水位线的时间,该水位线是标记执行一个或多个淘汰策略以增加可用空间的。

在一段时间后,在335处,可以由本地站点的同一用户或其他用户重新访问该对象A.doc。特别地,客户端设备接收和/或生成打开A.doc的请求。在340处,该请求传递至本地缓存设备,并在340处确定是否在本地存储A.doc。由于该对象存储在本地缓存中,所以可以从本地缓存中访问A.doc的内容,并将其传递回给客户端设备,无需返回到文件服务器获取该对象。因为无需经由WAN获取该对象,这减小了时延问题。在350处,客户端设备用于打开A.doc,以供用户访问和操作。

为了进行说明,一段时间后,在355处,可在客户端设备生成打开对象“B.doc”的请求。即,用户想要访问B.doc。在360处,该请求传递至本地缓存设备,并在360处确定是否在本地存储B.doc。此时,将B.doc存储在本地缓存中。由于该对象存储在本地,所以可以从本地缓存中访问B.doc的内容,并将其传递回给客户端设备,无需返回到文件服务器获取该对象。

值得注意的是,在客户端设备打开一个或多个对象的同时,连续执行390处所述的淘汰过程。即,连续监控本地缓存,以确定是否已经发生任何触发事件,需要淘汰对象或者执行一个或多个淘汰策略,以淘汰存储本地缓存中的一个或多个对象。

图4A为本发明实施例提供的一种用于实现本地缓存对象淘汰的方法的流程图400A。在一实施例中,流程图400A示出了计算机实现方法,以实现本地缓存对象淘汰。在另一实施例中,在计算机系统中实现流程图400A,该计算机系统包括处理器和耦合至该处理器并存储有指令的存储器,如果由计算机系统执行,该指令使得该系统执行一种实现本地缓存对象淘汰的方法。在又一实施例中,用以执行该方法的指令存储在包含计算机可读指令的非瞬时性计算机可读存储介质中,该计算机可读指令使得计算机系统执行一种实现本地缓存对象淘汰的方法。在本发明的一些实施例中,在图1和图2中的本地缓存130(例如,控制器内)内实现流程图400A的操作。

如图4A所示,所述方法包括:在405处,在本地缓存从后端服务器(例如,数据中心)接收对象。该对象可由本地站点的一个或多个用户访问。如上所述,通过允许用户访问和操作存储在本地缓存中的对象,用户体验得到极大提升。随后,将该对象存储回数据中心以进行永久存储。

所述方法包括:在410处,为该对象赋予淘汰策略参数值。例如,在一种实现方式中,该参数值是有效期。在接收到该对象后,为存储在本地缓存中的该对象赋予第一时间段的有效期。即,为该对象引入扩展,以包含该有效期。不管以何种格式生成文件,将该扩展应用至该对象,例如,以通过WAN进行传递。更具体地,对象有效期不是协议特定属性。

在另一种实现方式中,淘汰策略参数值是优先级值。即,该优先级值提供了关于针对该对象重要性等级的指示。如上所述,该优先级值可包括优先级权重。为了进行说明,优先级权重越大的对象比优先级权重越小的对象更重要。还可以为该对象赋予其他类型的淘汰策略值。

在415处,所述方法包括:将该对象存储至所述本地缓存中。这是为了避免会困扰依赖于仅在后端数据中心存储对象的企业存储系统的任何时延和带宽问题。

在417处,所述方法包括:估算淘汰参数值。例如,经过连续监控本地缓存中的对象实施淘汰策略。

在420处,所述方法包括:基于淘汰策略参数值,从本地缓存中淘汰该对象。例如,连续监控本地缓存以及缓存中所包含的对象,以确定何时淘汰一个或多个文件。通过执行一个或多个淘汰策略,在考虑了为存储在本地缓存中的每个对象所赋的淘汰策略参数值后,淘汰对象。

图4B为本发明实施例提供的一种用于基于为存储在本地缓存的每个对象所赋的有效期进行淘汰的方法的流程图400B。在本实施例中,流程图400B示出了计算机实现方法、用以执行方法的计算机系统以及存储在非瞬时性计算机可读存储介质中用以执行方法的指令,其中,所述方法基于为存储在本地缓存的每个对象所赋的有效期进行淘汰。在本发明的一些实施例中,在图1和图2中的本地缓存130(例如,控制器内)内实现流程图400B的操作。

在430处,启动本地缓存。即,本地缓存经历启动过程。在435处,创建低优先级线程,并在后台不断运行该线程。例如,该低优先级线程连续监控本地缓存,以实施特定淘汰策略。

特别地,在440处,所述方法包括:连续监控对象。例如,所述方法包括:爬行穿过对象空间,以确定淘汰哪一个对象。更具体地,440处执行的操作允许监控存储在本地缓存的一个或多个对象,以确定哪些对象是用于淘汰的候选。图4B所示的过程集中在一个选定对象,以确定是否淘汰该对象。

在决策步骤445处,所述方法确定该对象是否到期。特别地,确定该对象的有效期是否已经到期。如果有效期还没有到期,则所述方法返回至440处。

另一方面,如果有效期已经到期,则所述方法继续到450处,在450处从本地缓存中删除或淘汰该对象。例如,如果有效期为第一时间段,则经过设置第一时间段后即过期。另外,出于追踪被淘汰文件的历史的目的,存储与文件淘汰相关的信息。例如,记录并存储淘汰时间。另外,可存储其他信息,例如,识别对象的信息、淘汰策略参数值和其他淘汰策略信息,以及其他相关信息。使用存储在淘汰追踪历史中的信息可用于实施未来淘汰策略,图4C将做进一步描述。

图4C为本发明实施例提供的一种用于通过考虑淘汰追踪历史信息,为存储在本地缓存的对象调整淘汰策略参数值的方法的流程图400C。在本实施例中,流程图400C示出了计算机实现方法、包括用以实现方法的处理器和存储器的计算机系统以及存储在非瞬时性计算机可读介质中用以执行方法的指令,其中,所述方法通过考虑淘汰追踪历史信息,为存储在本地缓存的对象调整淘汰参数。在本发明的一些实施例中,在图1和图2中的本地缓存130(例如,控制器内)内实现流程图400C的操作。

在460处,所述方法包括:打开对象(例如,文件),对该对象发起操作。例如,该操作可以是“读”或“写”操作。特别地,在客户端设备处提出打开该对象的请求。打开并在本地存储该对象,使得用户可访问和操作该对象。

在提出该请求时,可将该对象存储或不存储在本地缓存中。在463处,所述方法确定该文件是否为新对象。即,所述方法确定该文件是否存储在本地缓存中。当所述方法确定出该对象不是新对象,确切的说,存储在本地缓存中时,所述方法前进到465处。特别地,在本地缓存中访问和/或获取该对象,并更新先前所赋的值中的淘汰策略参数值。例如,重设有效期。即,重设先前存储该对象时先前所使用的有效期。例如,该有效期为30天的缺省值,则将有效期设置为30天,始于最近一次访问。在467处,对存储在本地缓存的该对象发起操作(例如,读或写),在485处,将对该对象所做的任何修改或更新存储至永久性本地缓存中。

另一方面,如果该对象是新对象,确切的说,没有存储在本地缓存中,则所述方法前进到470处,在470处,从后端数据中心或文件服务器处预获取该对象。具体地,将针对该对象的请求传递至数据中心。在473处,所述方法包括:为所述对象赋予淘汰策略参数值。例如,在一种实现方式中,该参数值是如上所述的有效期。在另一种实现方式中,该参数值是提供关于针对该对象重要性等级的指示的优先级值(例如,权重)。在一实施例中,将该对象的扩展用于应用一个或多个参数值。

在决策步骤475处,所述方法包括:确定该对象最近是否被淘汰。这是通过访问淘汰追踪历史信息完成的。特别地,可将滑动窗口应用至被淘汰文件,并在475处将其加以考虑。例如,最近没有被淘汰的对象指示该对象为新对象(例如,从未存储在本地缓存中),或者该对象在滑动窗口间隔之前已被淘汰。对于先前被淘汰对象,自该对象上一次被淘汰时的滑动窗口(例如,30天时间)内,当前不访问该对象。此时,所述方法继续到477处,更新先前所赋的值中淘汰策略参数值。例如,重设有效期。即,重设先前存储该对象时先前所使用的有效期。之后,在485处,将该对象存储在永久性本地缓存中。

另一方面,如果该对象最近已被淘汰,则所述方法前进到480处。特别地,如果在滑动窗口内重新获取到该对象,则将该对象的有效期延长一定量。特别地,所述方法确定该对象先前已从本地缓存中被淘汰,以及从本地缓存中淘汰后的时间段(例如,滑动窗口)内打开该对象的最近一次请求。

在一种实现方式中,在480处,设置淘汰策略参数值。例如,将先前为该对象所赋的有效期延长一定量。这样,将该参数值设置为有效期加该延长量。之后,将该对象存储至本地缓存中。

在另一种实现方式中,在480处,调整针对淘汰策略参数值的优先级值,以反映更高优先级。即,由于在滑动窗口内重新访问该对象,所以相比其他较少访问的对象,该对象可以由本地站点的一个或多个用户进行赋予更大的值。在这种情况下,将淘汰策略参数值设置为调整后的优先级值。之后,将该对象存储至本地缓存中。

另外,在淘汰任何对象之前,将最后测量到的网络带宽考虑在内。例如,从与低网络带宽相关联的后端文件服务器中重新获取第一对象将会比从与更高网络带宽相关联的后端文件服务器中重新获取第二对象需要更长时间。因此,由于从第二文件服务器中获取第二对象需要更少时间,所以选择第二对象而不是第一对象进行淘汰。这在打开没有存储在本地缓存中的对象时,提供了最佳用户体验。

图4D为本发明实施例提供的一种用于检测到事件后执行淘汰策略的方法。在本实施例中,流程图400D示出了计算机实现方法、包括用以实现方法的处理器和存储器的计算机系统以及存储在非瞬时性计算机可读介质中用以执行方法的指令,其中,所述方法在检测到事件后,调整淘汰策略参数值以执行淘汰策略。在本发明的一些实施例中,在图1和图2中的本地缓存130(例如,控制器内)内实现流程图400D的操作。

在490处,所述方法包括:连续监控本地缓存的使用情况以及本地缓存的可用空间。特别地,所述方法监控本地缓存以检测淘汰触发事件。在一种实现方式中,该触发时间是如上所述的对象的有效期到期,但可以为任何触发事件。在另一种实现方式中,该触发事件是达到存储阈值。在又一种实现方式中,该触发事件包括确定本地存储设备的可用容量无法容纳传入对象。所述方法包括:应用第一淘汰策略至存储在本地缓存中的多个对象,确定用以淘汰的选定对象。之后,淘汰该对象。

例如,如图4D所示,在决策步骤492处,所述方法确定是否达到本地缓存的存储容量阈值。例如,在一种情况中,该阈值是高水位线(例如,95%)。在另一种情况中,该阈值是低水位线(例如,75%),用以在本地缓存完全满载前提供充足时间淘汰对象。如果还没有达到该阈值,则所述方法返回至490。

另一方面,如果已经达到该阈值,则所述方法前进至494处,其中,选择并淘汰可缓存性最低的对象。例如,该可缓存性最低的对象包括具有以下一个或多个特性的对象:有效期到期,或者选定对象具有最低优先级值,或者选定对象位于如上所述的通过带宽最大的连接与本地缓存连接的相关联后端服务器中。

在496处,将被淘汰对象添加至最近淘汰列表中。这样,存储并追踪这些对象的淘汰信息。在任何被淘汰对象淘汰后的滑动窗口内重新访问的该对象可能具有更高重要性,这反映在如上所述的调整后的有效期或者调整后的优先级权重值中。

在498处,所述方法淘汰对象,直至达到低阈值(例如,低水位线)。一旦达到低阈值,所述方法返回至490。另一方面,如果还没有达到低低阈值,则所述方法返回至494,并继续淘汰对象。

因此,根据本发明实施例,描述了自动缓存利用和缓存管理的系统和方法,包括实现本地缓存的对象淘汰。

虽然以上披露使用具体的方框图、流程图以及示例阐明各种实施例,本文中所述和/或图示的每个方框图组件、流程图步骤、操作和/或组件都可以通过各种硬件、软件或固件(或者它们的任意组合)配置单独地和/或共同地实施。另外,对其它组件之中包括的任意组件的披露应该看作为示例,因为可以实施许多其它架构来达到同样的功能。

本文中所述和/或图示的进程参数和步骤顺序仅仅是是为了举例并且可以按需要更改。例如,虽然本文中所图示和/或描述的步骤可以按照特定顺序来示出或讨论,但这些步骤并非必须按照所图示或所讨论的顺序来执行。本文中所述和/或所图示的各种示例方法还可以省略本文中所述和/或所图示的一个或多个步骤或还可以包括除披露的那些步骤之外的额外步骤。

虽然本文已经在全功能性计算系统的背景下对不同的实施例进行了描述和/或图示,这些示例实施例中的一个或多个能够以多种方式作为一个程序产品来分发,而不管用于实际进行该分发的计算机可读介质的具体形式如何。本文中所披露的实施例还可以通过使用执行一些特定任务的软件模块来实施。这些软件模块可以包括脚本、成批文件或其它可执行文件,其中这些可以存储在一种计算机可读介质上或者一种计算机系统中。这些软件模块可以配置一个计算机系统以用于执行本文中所披露的一个或多个示例实施例。本文中所披露的一个或多个软件模块可以在云计算环境中实施。云计算环境可以通过互联网提供各种业务和应用程序。这些基于云的业务(例如,软件即服务、平台即服务、基础设施即服务等等)可以通过网络浏览器或其它远程接口进行访问。此处所述的各种功能可以通过远程桌面环境或任意其它基于云的计算环境来提供。

虽然已详细地描述了本发明及其优点,但是应理解,可以在不脱离如所附权利要求书所界定的本发明的精神和范围的情况下对本发明做出各种改变、替代和更改。根据上述教导,许多修改和变更是可能的。选出和描述的各个实施例的目的是为了更好地解释本发明的原理和其实际应用,因而使本领域技术人员能够更好利用本发明各个实施例和适合预期特定用途的各种变更。

此外,本发明的范围并不局限于说明书中所述的过程、机器、制造、物质组分、构件、方法和步骤的具体实施例。所属领域的一般技术人员可从本发明中轻易地了解,可根据本发明使用现有的或即将开发出的,具有与本文所描述的相应实施例实质相同的功能,或能够取得与所述实施例实质相同的结果的过程、机器、制造、物质组分、构件、方法或步骤。相应地,所附权利要求范围包括这些流程、机器、制造、物质组分,构件、方法及步骤。

根据本发明的实施例如此处所述。虽然本发明已经在特定实施例中进行了描述,但是应理解,本发明不应该被解释为这些实施例的限制,而是根据以下权利要求书进行解释。

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