CN104885064B - 用于管理计算机***的数据高速缓存的方法和装置 - Google Patents

用于管理计算机***的数据高速缓存的方法和装置 Download PDF

Info

Publication number
CN104885064B
CN104885064B CN201380043681.3A CN201380043681A CN104885064B CN 104885064 B CN104885064 B CN 104885064B CN 201380043681 A CN201380043681 A CN 201380043681A CN 104885064 B CN104885064 B CN 104885064B
Authority
CN
China
Prior art keywords
request
data resource
response
data
caching
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.)
Active
Application number
CN201380043681.3A
Other languages
English (en)
Other versions
CN104885064A (zh
Inventor
S·J·哈顿
M·柴特鲁尔
Z·A·洛泽斯基
S·P·佩斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104885064A publication Critical patent/CN104885064A/zh
Application granted granted Critical
Publication of CN104885064B publication Critical patent/CN104885064B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种用于管理计算机***的数据高速缓存的方法,所述方法包含以下步骤:为一个客户端过程所请求的一个或多个数据资源维护一个高速缓存;响应于来自客户端过程对一个缓存的数据资源的请求:向服务器过程发送一个对该数据资源的第一请求;以及向服务器过程发送一个对自该数据资源最近被缓存以来该数据资源是否被修改过的指示的第二请求;比较服务器过程对第一或第二请求的响应,以确定对第二请求的响应是否不准确;以及如果确定预定数目的与该数据资源相关联的不准确第二请求,则对该数据资源禁用缓存。

Description

用于管理计算机***的数据高速缓存的方法和装置
技术领域
本发明涉及管理计算机***的数据高速缓存。
背景技术
计算机***通常包含一个或多个高速缓存(caches),其被设置用来加快整个***中数据的供应。在高速缓存中存储来自原始数据源的数据的副本。响应于对该数据的请求,从高速缓存提供被请求的数据,而不是从原始数据源提供该数据。在数据源不是在数据请求者的本地的情况下,请求者本地具有的高速缓存于是能加快相关数据的供应。
有些数据,诸如网页,具有被设置用来防止数据被缓存(cached)的、通常称作指令(directive)的机制。用于以网页形式跨网络传送数据的超文本传输协议(HTTP),包含报头(header)字段。可以利用报头字段来规定这种设置期望的或必需的行为(behaviours)的指令。高速缓存控制报头(control header)就是这样一种报头,网页提供者能用它来规定特定网页是否应当被缓存。然而,这种高速缓存控制(cache controls)常常被过分地规定,因为尽管有这种高速缓存控制,有些数据可能会因为进行缓存(caching)而受益。
因此,现有技术中需要解决上述问题。
发明内容
一方面,本发明提供一种用于管理计算机***的数据高速缓存的方法,所述方法包含以下步骤:为一个客户端过程(client process)所请求的一个或多个数据资源维护一个高速缓存;响应于来自客户端过程对一个缓存的数据资源(cached data resource)的请求,向服务器过程发送一个对该数据资源的第一请求;并且向服务器 过程发送一个对自该数据资源最近被缓存以来该数据资源是否被修改过的指示的第二请求;比较服务器过程对第一或第二请求的响应与缓存的数据资源,以确定对第二请求的响应是否不准确,该比较步骤包含:响应于对第二请求的响应包含该数据资源未改变的指示,比较该数据资源的缓存副本(cached copy)与响应于第一请求而返回的数据资源的副本,以确定对第二请求的响应是否不准确;以及响应于对第二请求的响应包含该数据资源的一个副本,将所述数据资源的缓存副本与响应于第二请求而返回的数据资源的副本比较,以确定对第二请求的响应是否不准确;如果确定预定数目的与该数据资源相关联的不准确第二请求,则对该数据资源禁用缓存(disabling caching)。
可以在一个与缓存的数据资源相关联的预定初始化阶段(initialisationphase),响应于对缓存的数据资源的请求而将第一和第二请求发送到服务器过程;如果在初始化阶段后,已经确定了少于预定数目的与数据资源相关联的不准确第二请求,则可以对该数据资源启用缓存(enable caching)。如果对该数据资源是禁用缓存的,则在初始化阶段后,响应于后继的对缓存的数据资源的请求,可以只将第一请求发送到服务器过程;如果对该数据资源是启用缓存的,则在初始化阶段后,响应于后继的对缓存的数据资源的请求,可以只将第二请求发送到服务器过程。
初始化阶段的持续时间(duration),可能取决于预定的时期(time period)。初始化阶段的持续时间,可能取决于对相关联的数据资源的预定数量的请求。初始化阶段可以响应于预定数量的与数据资源相关联的不准确第二请求的确定而结束。第二请求可以包括HTTP“是否-修改过”(“if-modified-since”或IMS)请求。
另一方面,本发明提供一种用于管理计算机***的数据高速缓存的装置,所述装置可操作用以:为一个客户端过程所请求的一个或多个数据资源维护一个高速缓存;响应于来自客户端过程对一个缓存的数据资源的请求:向服务器过程发送一个对该数据资源的第一请求;并且向服务器过程发送一个对自该数据资源最近被缓存(cached)以来该数据资源是否被修改过的指示的第二请求;比较服务器过程对第一或第二请求的响应与缓存的数据资源,以确定对第二请求的响应是否不准确,该比较步骤包含:响应于对第二请求的响应包含该数据资源未改变的指示,比较该数据资源的缓存副本与响应于第一请求而返回的数据资源的副本,以确定对第二请求的响应是否不准确; 以及响应于对第二请求的响应包含该数据资源的一个副本,将所述数据资源的缓存副本与响应于第二请求而返回的数据资源的副本比较,以确定对第二请求的响应是否不准确;如果确定预定数目的与该数据资源相关联的不准确第二请求,则对该数据资源禁用缓存。
另一个实施例提供一种用于管理计算机***的数据高速缓存的计算机程序产品,所述计算机程序产品体现有计算机可读程序代码的计算机可读存储介质,计算机可读程序代码被配置得用以:为一个客户端过程所请求的一个或多个数据资源维护一个高速缓存;响应于来自客户端过程对一个缓存的数据资源的请求:向服务器过程发送一个对该数据资源的第一请求;并且向服务器过程发送一个对自该数据资源最近被缓存(cached)以来该数据资源是否被修改过的指示的第二请求;比较服务器过程对第一或第二请求的响应与缓存的数据资源,以确定对第二请求的响应是否不准确,该比较步骤包含:响应于对第二请求的响应包含该数据资源未改变的指示,比较该数据资源的缓存副本与响应于第一请求而返回的数据资源的副本,以确定对第二请求的响应是否不准确;以及响应于对第二请求的响应包含该数据资源的一个副本,将所述数据资源的缓存副本与响应于第二请求而返回的数据资源的副本比较,以确定对第二请求的响应是否不准确;如果确定预定数目的与该数据资源相关联的不准确第二请求,则对该数据资源禁用缓存。
另一方面,本发明提供一种用于管理计算机***的数据高速缓存的计算机程序产品,所述计算机程序产品包含:处理电路可读的、存储用于由处理电路执行以执行执行本发明的各步骤的方法的计算机可读存储介质。
另一方面,本发明提供一种存储在计算机可读存储介质上、并可解加载到数字计算机的内存中的计算机程序,所述计算机程序包含用于—在所述程序在计算机上运行时——执行本发明的各步骤的代码部分。
本发明各实施例使得能够自动确定对特定数据资源进行缓存是否有益。本发明各实施例可以被设置得与不缓存指令(no-cache directives)背道而驰,以便有益地对本来属于非缓存对象的数据资源进行缓存。本发明的各实施例可以应用于这样的情形,即,一个或多个数据资源包含动态内容且是否-修改过(IMS)响应可能不准确。
附图说明
现在将参照以下附图,仅通过举例,说明本发明的优选实施例。附图中:
图1是本发明的优选实施例可以在其中实现的、现有技术的包含提供数据高速缓存的代理服务器的计算机***的示意图;
图2是按照本发明优选实施例的、包含用于由图1的代理服务器管理高速缓存的数据的表;
图3是表示按照本发明优选实施例的、在为图1的计算机***中的数据初始化高速缓存时在图1的代理服务器中执行的处理的流程图;和
图4是表示按照本发明优选实施例的、在管理图1的计算机***中的数据请求时在图1的代理服务器中执行的处理的流程图。
具体实施方式
参看图1,计算机***100包含第一、第二和第三计算机101、102、103,每个计算机装有一个设置用来为运行一个或多个应用程序提供处理平台或环境的相应的操作***104。第一计算机101运行一个客户端应用程序,其形式是设置用来使用户能加载和查看网页的web浏览器应用程序105。第二计算机102运行一个代理服务器应用程序106形式的服务器应用程序。第三计算机103运行一个Web服务器应用程序107的形式的服务器应用程序。第二和第三计算机102、103通过网络108连接。第一计算机101具有通过第二计算机102提供的代理服务器106到网络108连接。第三计算机103连接到存储装置109,后者存储网页(webpages)110形式的数据、或其他数据文件或它们的组合。在本发明的一个优选实施方案中,客户端、代理服务器和Web服务器应用程序105,106,107使用超文本传输协议(HTTP)进行数据通讯。
在本发明的一个优选实施例中,代理服务器106包括高速缓存管理模块111,其被设置为自动地建立和维护一个存储诸如网页110的被请求数据的高速缓存112。来自Web浏览器应用程序105的任何查看给定网页110的请求,都通过代理服务器106经网络108被传送到Web服务器107。代理服务器106被设置得缓存(cache)在响应中 提供的网页110的副本。给定网页110的缓存副本然后在预定的条件下被用于服务来自Web浏览器105的对该给定网页110的后续请求。
参考图2,高速缓存管理模块111包括缓存候选(cache candidate)记录201、高速缓存初始化数据202和高速缓存性能指标(performance measure)203。缓存候选记录包括代表每个可以被缓存的、网页110形式的数据集合的条目。每个条目204包括代表相关网页110的统一资源***(URL)和指示网页110的当前缓存副本形成的时间的时间戳206。每个条目204进一步包括缓存状态(cache candidate)207,其用来指示—对相关网页—缓存(caching)在被初始化(I)、被启用(Y)还是被禁用(N)。
缓存初始化数据202包括管理每个缓存候选201的初始化阶段的预定数据—在初始化阶段期间,进行一次或多次检查,以确定是否要对该缓存候选201启用缓存。在初始化阶段,该条目的缓存状态207被相应地设置为“I”。缓存初始化数据202为初始化阶段定义两个限度(limits)。第一个限度包括一个预定的时期。第二个限度包括预定的请求次数(request count),即,对该条目所标识的数据资源的请求次数。在达到无论第一限度还是第二限度时,初始化阶段结束。
在某给定条目204的初始化阶段,高速缓存管理器(cache manager)111被设置得重复(duplicate)其向Web服务器107对一个给定网页110的请求—一是通过就好像网页110未被缓存过那样地请求网页110,二是通过就好像网页110被缓存过那样地请求Web服务器107给出自网页110最近被高速缓存管理器111接收以来网页110是否变化过的指示。将“就像缓存过”(as-if-cached)请求和“就像未缓存过”(as-if-not-cached)请求的结果进行对比,以确定对网页110进行缓存是否有益。在本发明的一个优选实施例中,进行缓存的好处是通过Web服务器107对要求Web服务器107给出网页110是否变化过的指示的响应的准确性确定的。在HTTP中,这样的一个向Web服务器107的请求是通过一个对网页110的“是否修改过”(if-modified-since,IMS)请求提供的。响应于这样一个IMS请求,Web服务器107将返回一个以代码“304”为形式的否定(negative)响应,以表明网页110是不变的,或者返回一个形式为网页110的更新版本的肯定(positive)响应。
如上所述,将缓存管理器111设置得能比较并行的、对网页110的IMS(就像缓存过)请求和标准的(就像未缓存过)请求,以确定一个给定的IMS请求是否是准确 的。如果缓存管理器111收到一个对该IMS请求的“304”响应,则将响应于该并行的标准请求而接收到的网页110的版本与网页100的缓存副本相比。如果相应的副本是相同的,则该IMS响应被视为是准确的。如果相应的副本都不相同,则该IMS响应被视为是不准确的。如果缓存管理器111响应于该IMS请求而接收到网页110的一个更新版(updated version),则将该更新版与网页100的缓存副本相比。在这种情况下,如果相应的副本是相同的,则该IMS响应被视为是不准确的。如果相应的副本都不相同,则该IMS响应被视为是准确的。
高速缓存初始化数据202进一步为在初始化阶段内针对某给定网页110而接收的不准确IMS响应的发生率(incidence)定义一个阈值。如果达到该阈值,则对于该给定网页110而言该IMS响应机制被视为是不准确,缓存因此被禁用,缓存状态207从“I”被更新到“N”。如果不准确IMS响应的发生率达不到阈值,在对该给定的网页启用缓存,缓存状态207从“I”被更新到“Y”。在本发明的一个优选实施例中,将初始化阶段的定义为五十次网页请求的时期或者自第一个网页请求起持续500秒的时期—以较早发生的为准。所属技术领域的技术人员知道,可以为初始化阶段作出其他定义。在本发明的一个优选实施例中,不准确IMS响应的发生率阈值(threshold incidence)为零。换言之,如果在初始化期间记录到任何不准确IMS响应记录,则对有关缓存候选禁用缓存。
在针对某给定缓存候选的初始化阶段后,缓存管理器111被设置得能按照在初始化阶段确定的缓存状态而继续其处理。在本发明的一个优选实施例中,缓存管理器111具有性能指标203,用于与已对其启用缓存的网页100一起使用。性能指标203被设置用来确定,在进行缓存不符合性能指标时,是否要禁用对诸如网页110的某给定数据集进行缓存。换言之,缓存管理器111被设置用来测量从高速缓存器对相关数据的供应,并且,如果这种缓存与直接从其源提取数据相比没有性能优势,则对相关数据禁用缓存。
在本发明的一个优选实施例中,性能指标203包括一个预定的源数据变化频率阈值。换句话说,如果Web服务器107提供的原始网页110在一定时间内的变化次数超过该阈值,则禁用对该网页进行缓存。在本发明的一个优选实施例中,变化频率是一分钟一次。也可以将性能指标203表述为:由于Web服务器107提供的网页110的变 化,在预定时期内,从Web服务器107提供替代缓存副本的网页110的频率。因此,缓存管理模块111被设置得响应于对给定的初始化了的缓存条目(cache entry)204的每个请求,先通过向服务器107的一个IMS请求,确定源网页110是否已经改变。如果在任何时刻非304响应的频率超过阈值,则对缓存条目204禁用缓存,并将它的缓存状态相应地更新为“N”。
现在将参考图3的流程图,进一步描述由缓存管理模块111响应于Web浏览器105的数据请求而进行的处理。处理在步骤301响应于接收到一个URL形式的页面请求(pagerequest)而启动,该请求来自诸如客户端应用程序105的请求者,然后,处理前进到步骤302。在步骤302,将所请求的URL与当前的缓存候选201比对,如果不在缓存候选之列,处理前进到步骤303。将新请求的URL添加到缓存候选,然后,处理前进到步骤304。在步骤304,将该新条目的缓存状态设置为“I”,然后,处理前进到步骤305。在步骤305,将该页面请求传递到服务器107,将返回的被请求页面进行缓存并传递给发出请求的客户端应用程序105。处理然后前进到步骤306,在此结束。
如果在步骤302,所请求的URL是一个当前的缓存候选201,则处理前进到步骤307。在步骤307,检查相关条目的缓存状态,如果缓存状态被设置为“I”,处理前进到步骤308。在步骤308,将一个基于上次访问时间206的IMS请求,与一个对该URL的标准请求并行地发送到服务器107。然后,处理前进到步骤309。在步骤309,将响应于标准请求而接收的页面转发给发出请求的客户机应用程序105,然后,处理前进到步骤310。
在步骤310,如果响应于IMS请求而接收到一个“304”响应—其表明所请求的页面自上一个访问时间206以来没有变化,则处理前进到步骤311。在步骤311,将响应于标准的页面请求而接收的页面与缓存副本相比,然后,处理前进到步骤312。在步骤312,如果所接收的页面与缓存的页面(cached pages)相同,则处理前进到步骤313。如果在步骤312,所接收的页面与缓存的页面不同,则处理前进到步骤314。在步骤314,记录该不准确的IMS请求,然后,处理前进到步骤313。
如果在步骤310,对IMS请求的响应包括一个更新的页面,则处理前进到步骤315。在步骤315,将响应于IMS请求而接收的页面与缓存副本相比,然后,处理前进 到步骤316。如果在步骤316,所接收的页面与缓存的页面相同,则处理前进到步骤314,如上所述地继续进行。如果在步骤316,所接收的页面与缓存的页面不同,则处理前进到步骤317。在步骤317,缓存更新的页面,并相应地更新高速缓存记录。处理然后前进到步骤313。
在步骤313,如果初始化时期届满(expired)—要么由于自首次缓存相关页面以来的期限(time limit)已过,要么由于页面请求限度(page request limit)已经达到,则处理前进到步骤318。在步骤318,将初始化时期记录的不准确的IMS请求的次数与阈值比较,然后处理前进到步骤319。在步骤319,如果尚未达到阈值,则处理前进到步骤320。在步骤320,将缓存状态207设置为“Y”,以便对相关条目204启用缓存,然后,处理前进到步骤306并结束。如果在步骤319判定已经达到阈值,则然后处理前进到步骤321。在步骤321,将缓存状态207设置为“N”以对相关条目204禁用缓存,然后,处理前进到步骤306并结束。
如果在步骤307,相关条目的缓存状态没有被设置为“I”,则处理前进到图4的步骤401。在步骤401,如果所确定的条目204的缓存状态207表明对条目204启用缓存,则处理前进到步骤402。在步骤402,将一个包含表示时间戳206的数据的IMS请求发送到服务器107,然后处理前进到步骤403。在步骤403,等待来自服务器的响应,如果接收到表明网页110没有变化的“304”响应,则处理前进到步骤404。在步骤404,将网页110的缓存副本的返回给发出请求的Web浏览器105,然后,处理前进到步骤405并结束。
如果在步骤403收到的响应包含一个更新的网页,从而表明该网页在高速缓存112中的副本已经过时,则处理前进到步骤406。在步骤406,根据时间戳206确定在高速缓存中对该数据的副本进行缓存以来经过的时间,如果该时间小于预定的时期—在本发明的一个优选实施例中,预定的时期是1分钟—则处理前进到步骤407。在步骤407,通过缓存候选表201中的缓存状态207,对该URL禁用缓存,然后处理前进到步骤408。在步骤408,将网页110的更新副本转发给发出请求的Web浏览器105。处理然后前进到步骤405并结束。如果在步骤406,自该数据的缓存副本被保存以来的时间大于预定的时期,则处理前进到步骤409。在步骤409,将网页110的更新副 本存储在缓存112中,替换掉旧的副本,并相应地更新缓存候选记录201中相关条目204的时间戳206,处理然后前进到步骤408,如上所述地继续进行。
如果在步骤401,所请求的URL的相关条目204的缓存状态207表明禁用缓存,则处理前进到步骤410,按对服务器107的非缓存请求(non-cached request)处理该请求,并将服务器响应直接返回给发出请求的Web浏览器105。处理然后前进到步骤405并结束。
在另一个实施例中,在初始化时期届满之前检查不准确IMS响应的发生率,如果超过阈值,则禁用缓存,并停止相关数据资源的初始化过程(initialisation process)。可以在相关数据每次被请求时,对照阈值检查不准确IMS响应的发生率。
在另一个实施例中,可以手动地修改缓存候选集合。在另一个实施例中,只选择符合一个或多个预定标准的数据资源作为缓存候选。在另一个实施例中,将初始化阶段应用到被指定为不可缓存的数据资源,即与非缓存指令(directive)或政策(policy)相关联的数据资源。
在另一个实施例中,只按时期管理初始化阶段。在另一个实施例中,只按对数据资源的请求次数阈值管理初始化阶段。在另一个实施例中,不准确IMS响应的发生率阈值与对相关数据资源的请求总数成正比。在另一个实施例中,不准确IMS响应发生率阈值包括针对相关数据资源的不准确IMS响应率(rate)。
在另一个实施例中,缓存管理器被设置得响应于达到预定的性能指标而重新启用(re-enable)对先前被禁用的数据资源的缓存。用于重新启用缓存的性能指标可以与禁用缓存所用的性能指标相同。例如,如果某数据保持不变的时间超过一分钟,则可以对该给定数据资源启用缓存。被重新启用的缓存候选可能要经受另一个初始化阶段。
在另一个实施例中,预定的性能指标包含在给定的时期内给定的数据资源的变化相对于对该资源的请求总数的比率(ratio)。
所属技术领域的熟练人员应当明白,可以规定适合于本发明的任何特定应用的性能指标。可以在性能指标中规定任何时期,包括几乎无限的时期。换句话说,性能指 标可以包括某资源的总变化次数、或者自设置了高速缓存以来某资源的变化次数与对该资源的请求次数的比率。
在另一个实施例中,缓存管理器被设置得能测量对数据资源中的数据的请求的大小或速度,对比检查(checking with)数据资源、如果数据保持不变则随后从高速缓存中检索(retrieving)数据的请求的大小和速度。如果与检索(retrieval)缓存数据相比,所请求的数据集比较小,以及/或者来自数据资源的响应速度比较快,则可以对相关数据资源禁用缓存。这样的检查,可以在设置高速缓存时进行,或在高速缓存运行期间定期进行。
所属技术领域的熟练人员应当明白,可以采用任何其它适当的机制来确定某数据资源是否已被修改。这种其它机制可以在给定的数据通信协议中设置,也可以独立于任何此类协议。
所属技术领域的熟练人员应当明白,可以用任何合适的手段—如URL或统一资源标识符(URI或任何其它合适的标识符、定位符、文件名或文件路径),引用或标识数据资源。。
所属技术领域的熟练人员应当明白,高速缓存可用于存储任何类型的数据,只要存储该数据的本地副本与从其原始的源访问这种数据相比是有益的。高速缓存的用途,不限于网页数据。
所属技术领域的熟练人员应当明白,实现本发明各实施例时,可以采用应用层、传输层、网络层或其它层的任何其它适当的通信协议,诸如文件传输协议(FTP)、即时消息访问协议(IMAP)或传输控制协议(TCP)。
所属技术领域的熟练人员应当明白,代理服务器应用程序和其相关的高速缓存器(cache)可以位于网络中客户端计算机与服务器计算机之间的任何位置,也可以位于客户端计算机或服务器计算机上。
本发明的各实施例使得能够自动确定对一个给定的数据资源进行缓存是否是有益的。可以将各实施例安排得与不缓存指令(no-cache directives)背道而驰,以便有益地对本来属于非缓存对象的数据资源进行缓存。本发明的各实施例可以应用于这样的情形,即,一个或多个数据资源包含动态内容且IMS响应可能不准确。
所属技术领域的熟练人员应当明白,体现本发明的局部或全部的装置,可以是具有被设置用来提供本发明实施例的局部或全部的软件的通用设备。设备可以是单个设备,也可以是一组设备;软件可以是单个程序,也可以是一套程序。此外,用于实现本发明的任何或所有的软件,均可以通过任何合适的传输或存储装置被传送,使得软件可以被加载到一个或多个设备上。
尽管通过对本发明各实施方式的描述说明了本发明,尽管已经相当详尽地描述了各实施例,申请人并非是要以任何方式将后附权利要求的范围限制在这种细节。其它优点和修改对于所述技术领域的熟练人员来说将是显而易见的。因此,本发明的更广泛的方面并不局限于所示出和所说明的代表性的装置和方法、以及示意性的例子。因此,在不偏离申请人的总的发明构思的范围的情况下可以偏离这些细节。
所属技术领域技术人员将明白,本发明的各方面可以体现为一个***、方法、计算机程序产品或计算机程序。因此,本发明的各方面可以采取完全硬件的体现形式、完全软件的体现形式(包括固件、常驻软件、微代码,等等)或者软件方面和与硬件方面相结合的、一般称为“电路”、“模块”或“***”的体现形式。此外,本发明的各方面可以体现为在一个或多个具有计算机可读的程序代码的计算机可读介质中体现的计算机程序产品。
可以采用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是,例如—但不限于—电、磁、光、电磁、红外或半导体***、装置或设备,或上述的任何合适的组合。计算机可读存储介质的更具体的例子可以包括(非穷举列表):具有一个或多个导线的电连接,便携式计算机软盘、硬盘,随机存取存储器(RAM),只读存储器(ROM),可擦除可编程只读存储器(EPROM或闪存),光纤,便携式光盘只读存储器(CD-ROM),光学存储装置,磁存储设备,或上述的任何合适的组合。在本文的上下文中,计算机可读存储介质可以是任何有形介质,其可以包含或储存可由指令执行***、装置或设备使用或与指令执行***、装置或设备联结的程序。
计算机可读信号介质可包括例如在基带中传播的或作为载波的一部分的、其中具有计算机可读的程序代码的数据信号。这样一个传播信号可以采取多种形式,包括—但不限于—电磁形式、光学形式,或它们的任何合适的组合。计算机可读信号介质可 以是除计算机可读存储介质以外的任何计算机可读介质—其能传送沟通、传播或输送用可由指令执行***、装置或设备使用或与指令执行***、装置或设备联结的程序。
在计算机可读介质上体现的程序代码可以使用任何适当的介质传输,包括—但不限于—无线的、有线的、光纤电缆、射频等,或上述的任何合适的组合的介质。
用于执行本发明的各方面的计算机程序代码可以以一个或多个编程语言的任何组合进行编写,编程语言包括面向对象的编程语言—如Smalltalk、C++等,传统的过程化编程语言—如C编程语言或类似的编程语言。程序代码可以完全地在用户的计算机上执行,部分地在用户的计算机上执行,作为一个独立的软件包执行,部分地在用户的计算机上执行以及部分地在远程计算机上执行或完全地在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络—包括局域网(LAN)或广域网(WAN)—连接到用户的计算机,或者(例如,利用互联网服务供应商而通过互联网)作出与外部计算机的连接。Java和所有基于Java的商标和标识是Oracle公司和/或其子公司的的商标或注册商标。
以上参照按照根据本发明实施例的的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本发明的各方面。应当明白,流程图和/或框图中的每个方框,以及流程图和/或框图中的方框的组合,都可以通过计算机程序指令实现。可以将这些计算机程序指令提供给通用计算机处理器、专用计算机或其它可编程数据处理设备以生成机器,使得这样的指令通过计算机的处理器或其它可编程数据处理设备执行,创造用于实施在流程图和/或框图的方框中规定的功能/行为的手段。
也可以将这些计算机程序指令存储在一个计算机可读介质上,能控制计算机、其它可编程数据处理装置或其它设备以特定的方式的工作,使得存储在计算机可读介质中的指令产生包括实施在流程图和/或框图的方框中规定的功能/行为的指令的制造品。
计算机程序指令也可以被加载到计算机、其它可编程数据处理装置或其他设备,以使在计算机、其他可编程装置或其他设备上执行一系列的操作步骤,以产生计算机实现的过程,使得在计算机或其他可编程装置上执行的指令提供实现流程图和/或框图的方框中规定的功能/行为的过程。
附图中的流程图和方框图,例示按照本发明各种实施例的***、方法和计算机程序产品的各种可能实现的结构、功能和操作。在这方面,流程图或框图中的每个方框可以代表包含实现特定逻辑功能的一个或多个可执行指令的代码的一个模块、片段或部分。还应该指出,在一些可替换的实现中,方框中记载的功能可以不按照所记载的顺序发生。例如,两个连续表示的方框,实际上可以基本上同时被执行,或者有时可以以相反的顺序执行,这取决于所涉及的功能。还要注意的是,框图和/或流程图中的每个方框,以及框图和/或流程图中的各方框的组合,可以通过执行特定的功能或行为的、基于硬件的专用***实施,或通过专用硬件和计算机指令的组合实例。为避免疑义,术语“包括”,说明书和权利要求书中所采用的用语“包含”和“包括”,不应被解释为意味着“仅仅由…组成”。

Claims (24)

1.一种用于管理计算机***的数据高速缓存的方法,所述方法包含以下步骤:
为一个客户端过程所请求的一个或多个数据资源维护一个高速缓存;
响应于来自客户端过程对一个缓存的数据资源的请求:
向服务器过程发送一个对该数据资源的第一请求;和
向服务器过程发送一个对自该数据资源最近被缓存以来该数据资源是否被修改过的指示的第二请求;
比较服务器过程对第一或第二请求的响应与缓存的数据资源,以确定对第二请求的响应是否不准确,该比较步骤包含:
响应于对第二请求的响应包含该数据资源未改变的指示,比较该数据资源的缓存副本与响应于第一请求而返回的数据资源的副本,以确定对第二请求的响应是否不准确;和
响应于对第二请求的响应包含该数据资源的一个副本,将所述数据资源的缓存副本与响应于第二请求而返回的数据资源的副本比较,以确定对第二请求的响应是否不准确;和
如果确定预定数目的与该数据资源相关联的不准确第二请求,则对该数据资源禁用缓存。
2.按照权利要求1的方法,其中:
在一个与缓存的数据资源相关联的预定初始化阶段,响应于对缓存的数据资源的请求而将第一和第二请求发送到服务器过程;和
如果在初始化阶段后,已经确定了少于预定数目的与数据资源相关联的不准确第二请求,则对该数据资源启用缓存。
3.按照权利要求2的方法,其中:
如果对该数据资源是禁用缓存的,则在初始化阶段后,响应于后继的对缓存的数据资源的请求,只将第一请求发送到服务器过程;
如果对该数据资源是启用缓存的,则在初始化阶段后,响应于后继的对缓存的数据资源的请求,只将第二请求发送到服务器过程。
4.按照权利要求2或3的方法,其中,初始化阶段的持续时间,取决于预定的时期。
5.按照权利要求2或3的方法,其中,初始化阶段的持续时间,取决于对相关联的数据资源的预定数量的请求。
6.按照权利要求4的方法,其中,初始化阶段的持续时间,取决于对相关联的数据资源的预定数量的请求。
7.按照权利要求2或3的方法,其中,初始化阶段响应于预定数量的与数据资源相关联的不准确第二请求的确定而结束。
8.按照权利要求4的方法,其中,初始化阶段响应于预定数量的与数据资源相关联的不准确第二请求的确定而结束。
9.按照权利要求5的方法,其中,初始化阶段响应于预定数量的与数据资源相关联的不准确第二请求的确定而结束。
10.按照权利要求2或3的方法,其中,第二请求包括HTTP“是否-修改过”(IMS)请求。
11.一种用于管理计算机***的数据高速缓存的装置,所述装置可操作用于:
为一个客户端过程所请求的一个或多个数据资源维护一个高速缓存;
响应于来自客户端过程对一个缓存的数据资源的请求:
向服务器过程发送一个对该数据资源的第一请求;和
向服务器过程发送一个对自该数据资源最近被缓存以来该数据资源是否被修改过的指示的第二请求;
比较服务器过程对第一或第二请求的响应与缓存的数据资源,以确定对第二请求的响应是否不准确,该比较步骤包含:
响应于对第二请求的响应包含该数据资源未改变的指示,比较该数据资源的缓存副本与响应于第一请求而返回的数据资源的副本,以确定对第二请求的响应是否不准确;和
响应于对第二请求的响应包含该数据资源的一个副本,将所述数据资源的缓存副本与响应于第二请求而返回的数据资源的副本比较,以确定对第二请求的响应是否不准确;和
如果确定预定数目的与该数据资源相关联的不准确第二请求,则对该数据资源禁用缓存。
12.按照权利要求11的装置,进一步可操作用于:
在一个与缓存的数据资源相关联的预定初始化阶段,响应于对缓存的数据资源的请求而将第一和第二请求发送到服务器过程;和
如果在初始化阶段后,已经确定了少于预定数目的与数据资源相关联的不准确第二请求,则对该数据资源启用缓存。
13.按照权利要求12的装置,进一步可操作用于:
响应于对该数据资源是禁用缓存的,在初始化阶段后,响应于后继的对缓存的数据资源的请求,只将第一请求发送到服务器过程;和
响应于对该数据资源是启用缓存的,在初始化阶段后,响应于后继的对缓存的数据资源的请求,只将第二请求发送到服务器过程。
14.按照权利要求12或13的装置,其中,初始化阶段的持续时间,取决于预定的时期。
15.按照权利要求12或13的装置,其中,初始化阶段的持续时间,取决于对相关联的数据资源的预定数量的请求。
16.按照权利要求14的装置,其中,初始化阶段的持续时间,取决于对相关联的数据资源的预定数量的请求。
17.按照权利要求13的装置,其中,初始化阶段响应于预定数量的与数据资源相关联的不准确第二请求的确定而结束。
18.按照权利要求14的装置,其中,初始化阶段响应于预定数量的与数据资源相关联的不准确第二请求的确定而结束。
19.按照权利要求15的装置,其中,初始化阶段响应于预定数量的与数据资源相关联的不准确第二请求的确定而结束。
20.按照权利要求11至13任何之一的装置,其中,第二请求包括HTTP“是否-修改过”(IMS)请求。
21.按照权利要求14的装置,其中,第二请求包括HTTP“是否-修改过”(IMS)请求。
22.按照权利要求15的装置,其中,第二请求包括HTTP“是否-修改过”(IMS)请求。
23.按照权利要求16的装置,其中,第二请求包括HTTP“是否-修改过”(IMS)请求。
24.按照权利要求17的装置,其中,第二请求包括HTTP“是否-修改过”(IMS)请求。
CN201380043681.3A 2012-08-20 2013-08-06 用于管理计算机***的数据高速缓存的方法和装置 Active CN104885064B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1214824.3A GB2505179A (en) 2012-08-20 2012-08-20 Managing a data cache for a computer system
GB1214824.3 2012-08-20
PCT/IB2013/056442 WO2014030088A1 (en) 2012-08-20 2013-08-06 Managing a data cache for a computer system

Publications (2)

Publication Number Publication Date
CN104885064A CN104885064A (zh) 2015-09-02
CN104885064B true CN104885064B (zh) 2017-11-24

Family

ID=47017039

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380043681.3A Active CN104885064B (zh) 2012-08-20 2013-08-06 用于管理计算机***的数据高速缓存的方法和装置

Country Status (6)

Country Link
US (1) US9787791B2 (zh)
JP (1) JP5980430B2 (zh)
CN (1) CN104885064B (zh)
DE (1) DE112013004098B4 (zh)
GB (2) GB2505179A (zh)
WO (1) WO2014030088A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10142385B2 (en) * 2015-03-10 2018-11-27 Qualcomm Incorporated Multi-service initialization for adaptive media streaming
US10642657B2 (en) * 2018-06-27 2020-05-05 The Hong Kong Polytechnic University Client-server architecture for multicore computer system to realize single-core-equivalent view
CN110928944B (zh) * 2018-08-30 2024-04-02 阿里巴巴集团控股有限公司 一种数据处理方法及其装置
CN111666516A (zh) * 2020-04-24 2020-09-15 北京奇艺世纪科技有限公司 页面加载方法、装置、电子设备及存储介质
US11960773B2 (en) * 2020-07-31 2024-04-16 Hewlett Packard Enterprise Development Lp Modifying virtual persistent volumes based on analysis of performance metrics
CN112765507B (zh) * 2021-01-27 2023-12-26 上海淇玥信息技术有限公司 一种页面首屏渲染与资源加载方法、装置和电子设备
US11941151B2 (en) * 2021-07-16 2024-03-26 International Business Machines Corporation Dynamic data masking for immutable datastores
CN114064724A (zh) * 2021-11-16 2022-02-18 瀚云科技有限公司 报表数据处理***、方法、服务器、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1351729A (zh) * 1999-03-31 2002-05-29 美国在线服务公司 处理关于网站所提供信息的请求
CN101196912A (zh) * 2006-12-04 2008-06-11 Sap股份公司 用于应用程序状态同步的方法和设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4464717A (en) * 1982-03-31 1984-08-07 Honeywell Information Systems Inc. Multilevel cache system with graceful degradation capability
US6253234B1 (en) 1997-10-17 2001-06-26 International Business Machines Corporation Shared web page caching at browsers for an intranet
US6185608B1 (en) 1998-06-12 2001-02-06 International Business Machines Corporation Caching dynamic web pages
AU8244398A (en) 1998-07-21 2000-02-14 Athena Telecom Lab, Inc. Method of managing change history of web information, management device, and recording medium
US6557076B1 (en) 1999-07-22 2003-04-29 International Business Machines Corporation Method and apparatus for aggressively rendering data in a data processing system
US7240100B1 (en) 2000-04-14 2007-07-03 Akamai Technologies, Inc. Content delivery network (CDN) content server request handling mechanism with metadata framework support
US6990526B1 (en) 2000-05-22 2006-01-24 Pointred Technologies, Inc. Method and apparatus for web caching
US7035911B2 (en) 2001-01-12 2006-04-25 Epicrealm, Licensing Llc Method and system for community data caching
US20040236824A1 (en) 2003-05-23 2004-11-25 Millington Bradley D. Post-cache substitution
US7076500B2 (en) 2003-06-30 2006-07-11 David Gallant Selective file caching method
WO2007097026A1 (ja) * 2006-02-27 2007-08-30 Fujitsu Limited キャッシュ制御装置およびキャッシュ制御プログラム
JP5068071B2 (ja) * 2006-12-27 2012-11-07 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバ上のデータを、クライアントのキャッシュを利用してバックアップする装置および方法。
US8065275B2 (en) * 2007-02-15 2011-11-22 Google Inc. Systems and methods for cache optimization
US9460229B2 (en) * 2007-10-15 2016-10-04 Viasat, Inc. Methods and systems for implementing a cache model in a prefetching system
US10257016B2 (en) * 2009-06-08 2019-04-09 Wsou Investments, Llc Virtual leased line address resolution protocol cache for customer edge internet protocol addresses
WO2011045885A1 (ja) 2009-10-16 2011-04-21 日本電気株式会社 通信システム、通信装置、通信制御方法及び非一次的なコンピュータ可読媒体
US20120089700A1 (en) * 2010-10-10 2012-04-12 Contendo, Inc. Proxy server configured for hierarchical caching and dynamic site acceleration and custom object and associated method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1351729A (zh) * 1999-03-31 2002-05-29 美国在线服务公司 处理关于网站所提供信息的请求
CN101196912A (zh) * 2006-12-04 2008-06-11 Sap股份公司 用于应用程序状态同步的方法和设备

Also Published As

Publication number Publication date
GB2519688A (en) 2015-04-29
JP2015527674A (ja) 2015-09-17
GB201214824D0 (en) 2012-10-03
US20150215417A1 (en) 2015-07-30
GB201500722D0 (en) 2015-03-04
GB2505179A (en) 2014-02-26
DE112013004098T5 (de) 2015-05-07
CN104885064A (zh) 2015-09-02
JP5980430B2 (ja) 2016-08-31
US9787791B2 (en) 2017-10-10
WO2014030088A1 (en) 2014-02-27
DE112013004098B4 (de) 2022-08-11

Similar Documents

Publication Publication Date Title
CN104885064B (zh) 用于管理计算机***的数据高速缓存的方法和装置
JP6517263B2 (ja) 検索結果へのアクセスを改良するシステム、方法及び記憶媒体
CN103765419B (zh) 用于在主机文档服务中提供离线访问的***和方法
US8805672B2 (en) Translation cache prediction
US10079907B2 (en) Cached data detection
US8799576B1 (en) System for caching data
US20140325011A1 (en) Rdma-optimized high-performance distributed cache
US8495166B2 (en) Optimized caching for large data requests
RU2017106890A (ru) Способ доступа к веб-узлам, устройство и система веб-узла
KR20090073181A (ko) 자주 문의되는 질문 리스트를 자동으로 생성하기 위한 컴퓨터 구현 방법 및 컴퓨터 판독가능 매체
KR20130107280A (ko) 디렉토리 리싱
CN103152367A (zh) 一种缓存的动态维护更新方法及***
US9703705B2 (en) Performing efficient cache invalidation
JP5272428B2 (ja) アクセス頻度の高い情報を事前にキャッシュする予測型キャッシュ方法、そのシステム及びそのプログラム
CN114785858B (zh) 应用于互感器在线监测***的资源主动缓存方法及装置
US20140032590A1 (en) Windowed mid-tier data cache
US20220043880A1 (en) Systems and methods for predictive caching
CN114371969A (zh) 一种页面性能测试方法、装置、电子设备及存储介质
CN110019362A (zh) 一种访问数据库的方法及装置
CN117194827B (zh) Cdn目录刷新的方法及电子设备
Kolhar et al. A proposal to detect the double submission of a manuscript sent for review
CN111988195A (zh) 用于分组测试的应答方案确定方法、装置、设备及介质
JP5006471B2 (ja) Webサービス連携管理システムおよびその方法
JP2023069701A (ja) データ制御装置、ストレージシステム、及びデータ制御方法
Macgregor Repository optimisation & techniques to improve discoverability and web impact: an evaluation

Legal Events

Date Code Title Description
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant