CN1288193A - 应用导纳控制的用于高速缓存管理的方法、系统与计算机程序产品 - Google Patents

应用导纳控制的用于高速缓存管理的方法、系统与计算机程序产品 Download PDF

Info

Publication number
CN1288193A
CN1288193A CN00118998A CN00118998A CN1288193A CN 1288193 A CN1288193 A CN 1288193A CN 00118998 A CN00118998 A CN 00118998A CN 00118998 A CN00118998 A CN 00118998A CN 1288193 A CN1288193 A CN 1288193A
Authority
CN
China
Prior art keywords
address
candidate target
hash
cache device
computer
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
Application number
CN00118998A
Other languages
English (en)
Other versions
CN1174322C (zh
Inventor
M·普雷斯勒-马歇尔
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 CN1288193A publication Critical patent/CN1288193A/zh
Application granted granted Critical
Publication of CN1174322C publication Critical patent/CN1174322C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • H04L61/301Name conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/58Caching of addresses or names
    • 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
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供方法、系统和计算机程序产品,其基于与已经被提出请求的一条信息(候选对象)相关的地址应用高速缓存导纳协议,例如与特定文件相关的URL,提供用于包含要被高速缓存的信息的对象高速缓存器和用于确定是否特定的接收到的那条信息应被存储在对象高速缓存器中的地址高速缓存器。地址高速缓存器利用从与该条信息相关的地址产生的散列的地址。通过基于比实际地址有较短长度的散列地址而提供地址高速缓存器,地址高速缓存器要求的存储量可被降低。

Description

应用导纳控制的用于高速缓存管理的 方法、系统与计算机程序产品
本发明涉及通信,尤其涉及用于支持通信的高速缓存管理。
互联网是具有相互通信能力的计算机的全球分散型网络。作为一种用来进行跨多个网络的通信和交互作用的可实施媒体,互联网已经得到广泛地认可。万维网(Web)诞生于二十世纪九十年代初期,并且是由连接于互联网的服务器计算机(网络服务器)构成的,互联网具有存储其中的超文本文件(称为网页)。网页是可由客户程序(如网络浏览器)应用超文本传输协议(HTTP)经客户主机设备与服务器主机设备之间的传输控制协议/互联网协议(TCP/IP)连接而被访问的。尽管HTTP和超文本文件是万维网的主流形式,万维网自身以很多种协议为参考,这些协议包括安全超文本传输协议(HTTPS)、文件传输协议(FTP)和它们的增强型,内容格式包括纯文本、扩充标示语言(XML)以及诸如可交换的图像文件格式(GIF)和联合图像专家组(JPEG)的图像格式。
内联网是通常包含在企业内部的私人计算机网络,其通常包括一个或多个与多个用户计算机通信的服务器。内联网可由互相连接的本地网构成,并且也可使用广域网中的租用线路。内联网可包括或不包括对外部互联网的连接。通常内联网使用不同的互联网协议,并且,一般地常常看起来象互联网的私人版本。内联网用户通常经在他/她的计算机上本机运行的网络浏览器访问内联网服务器。
熟悉本领域的人员都知道,网页通常经标准页面描述语言如超文本连接标示语言(HTML)被格式化,该语言通常包括文本并能包括图形、声音、动画和视频数据。HTML提供基本的文件格式化并允许网页内容提供者指定对其它网络服务器和文件的起锚(anchor)或超文本链接(通常是突出显示的正文)。当用户选择了特定的超文本链接时,网络浏览器阅读并解释一个地址,这一过程称为与链接相关的均匀资源定位器(URL),在那一地址连接网络浏览器与网络服务器,并对在链接中识别出的文件提出请求(例如HTTP请求)。然后网络服务器发送请求的文件到网络客户,该网络浏览器对用户解释并显示所请求的文件。
在客户与服务器之间的诸如通过互联网的通信中,并且在涉及大量信息经通信信道的传送的其它应用中,通常要求通过降低必须被传送的数据量而提高通信信道的性能。一种公知的方法利用这一事实:一些通信包含冗余的信息,换言之,原来在客户与服务器之间被通信的该信息在开始传送的原来的请求与对同一信息的随后的新的请求之间的时间里没有发生变化。例如,在多种场合下,网络浏览器可以特定的相关URL地址请求一个文件。已经提出了使用高速缓存的各种方法,这些方法意在识别何时被请求的信息对于请求设备已经在本地高速缓存中而是可使用的。然后网络浏览器从本地高速缓存器被提供给要求的信息的本地可利用的部分,仅新的信息经通信信道被传送到提出请求的客户。
这种提供高速缓存内容的管理以控制支持该高速缓存器所需的存储量的高速缓存管理系统的示例在1999年的1月/2月的出版的杂志IEEETransactions on Knowledge and Data Engineering中Charu Aggarwal等人的题目为“Caching on the World Wide Web”的文章中描述。如该篇文章所述,HTTP高速缓存器承受这样一个事实:它们所服务的大量请求是针对那些在过期前从来未被请求过的对象的。该文章提出的方案是高速缓存导纳协议,其使用仅包含已经被请求过的URLs的第二高速缓存器。然后当高速缓存已经监测到对该对象的某参考频率时,实际的目标将被高速缓存。
Aggarwal描述的方法中的一个问题是要求的存储量的数量。URLs通常大约占用实际对象的大小的0.3%。而且,已经暗示出URL高速缓存器应具有用于实际对象的高速缓存器的2倍大的容量(以对象的数目算)-即大约是总的高速缓存器大小的0.6%。作为用于现代HTTP高速缓存器的对象高速缓存器,容量通常是100千兆字节的数量级,这将要求有大约600兆字节的存储量用于URL高速缓存。使用这种方法和给出的通常是现有的设备的当前硬件的性能,结果得到的URL高速缓存通常必须被存储在与主存储器存储相对的次存储设备中。这通常在URL高速缓存被频繁访问和更新时产生性能恶化。在通常的应用中,希望大约50-70%的请求不是来自对象高速缓存器提供的服务,而是要求访问和更新URL高速缓存。Aggarwal建议的协议的另一个问题来自一般万维网通信的特性。用于HTTP通信的通信信道的大百分比的带宽,通常是至少40%,是用于与小对象相比更频繁被访问的大对象(100千字节或更大)的。作为对大对象的更低频率的访问的结果,Aggarwal高速缓存导纳协议将更不可能用于那些要被高速缓存的对象,通过在更大的对象预定占据大百分比的通信信道的带宽来用于传输时不以要求的电平提供高速缓存支持而进一步降低高速缓存的有效性。为对于诸如Aggarwal描述的高速缓存管理系统作进一步讨论,以美国专利US No.5,924,116为参考,其题目为“CollaborativeCaching of a Requested Object by a Lower Level Node as a Functionof the Caching Status of the Object at a Higher Level Node”,并且在这里引用它全文来作为参考。
在美国专利US No.5,864,852中也提出使用散列法来压缩URLs为它们长度的一个分数,该篇专利的题目为“Proxy Server CachingMechanism That Provides a File Directory Structure and a MappingMechanism within the File Directory Structure”(‘852专利)。然后已压缩的地址被用作用于取回相关的对象的密钥。但是,’852专利的建议仍存储整个URL来作冲突检查,以试图避免在建议涉及对象取回时而不是涉及高速缓存器的导纳控制时出现错误。
根据上述讨论,有一种改善高速缓存管理协议的需要。
考虑上述讨论,本发明的一个目的是提供方法、系统和计算机程序产品,其可对于高速缓存管理提供更小的存储器要求来支持高速缓存管理协议,同时仍提供所支持的通信信道的改善的性能。
本发明的另一个目的是提供这样的方法、系统和计算机程序产品,其提供对次存储设备的较少的使用,以支持高速缓存管理。
本发明的这些和其它的目的可通过这样的方法、系统和计算机程序产品来提供,其利用一个这样的事实:高速缓存的整体性能决定高速缓存的有效性,并且从而高速缓存导纳协议不需要完善的信息,它仅需要有充足的时间来提供所支持的通信信道的性能中的重要的优点。本发明的各个实施例还利用网络上通信业务的特性。
第一方面,本发明基于与已经被提出请求的一条信息(候选对象)相关的地址应用高速缓存导纳协议,例如与特定文件相关的URL。提供或用于包含要被高速缓存的信息的对象高速缓存器和/或用于确定是否特定的接受到的那条信息应被存储在对象高速缓存器中的地址高速缓存器。地址高速缓存器,不象上述已有技术的方法,而是利用从与该条信息相关的地址产生的散列的地址。通过基于比实际地址有更短长度的散列地址而提供地址高速缓存器,地址高速缓存器的存储要求可被降低。优选地,散列地址的长度被选择来允许地址高速缓存器驻留在主存储器中,而非次存储设备中,从而提供已改进的系统性能。
在另一方面,本发明仅对相对小的对象使用高速缓存导纳协议。因为最容易通过消除对大型文件大小传送的需要来提供改进的通信信道性能的效果,其中大型文件大小的传送通常是冗余信息(如提供给网络浏览器的屏幕布局、格式和图形特征),不管导纳协议如何,大的信息单元被放置在对象高速缓存器中。导纳协议然后被仅应用于较小的信息单元,其可通过降低跟踪地址的数目降低地址高速缓存器的存储要求。
在本发明的一个实施例中,提供一种用于高速缓存管理的方法,包括接收用于放置在对象高速缓存器中的候选对象,该候选对象具有第一长度的相关的地址。相关的地址被散列来提供具有比第一长度短的第二长度的散列的地址。散列的地址被存储在地址高速缓存器中,其被用于控制对对象高速缓存器的导纳。而且,响应于地址高速缓存器中的散列的地址信息,候选对象可被选择性地导入对象高速缓存器中。
在另一个实施例中,散列的地址被存储来提供与散列的地址相关的地址参考计数,并且如果与候选对象的散列的地址相关的地址参考计数满足选择标准的话,则候选对象可被选择性地导入对象高速缓存器中。对象高速缓存器可以是超文本传输协议(HTTP)对象高速缓存器并且相关地址可以是通用资源定位器(URL)。散列地址的第二长度可以被选择来允许地址高速缓存器被维持在执行高速缓存管理的设备的主存储器中。第一长度可以在大约40字节到大约50字节之间,第二长度可以是大约4字节。
在本发明的另一个实施例中,如果候选对象的大小超出了预定标准,选择性地导入的步骤在把候选对象导入对象高速缓存器的步骤之前。如果候选对象的大小不大于预定标准,那仅执行选择性地导入的步骤。
在本发明的另一个实施例中,提供一种用于高速缓存管理的方法,包括接收用于放置在对象高速缓存器中的候选对象,该候选对象具有相关的大小。然后高速缓存管理协议确定是否候选对象的大小超出预定标准,其中预定标准与要被候选对象替代的对象无关。如果大小超出预定标准,响应于确定步骤,候选对象被导入对象高速缓存器中;如果大小小于预定标准,响应于确定步骤,候选对象被提交给受控的导纳测试。在一个实施例中,对象高速缓存器是超文本传输协议(HTTP)对象高速缓存器,并且预定标准是至少大约100kb,优选地,是大约100kb。如果大小小于预定标准,候选对象优选地仅被提交给受控的导纳测试。
熟悉本领域的人员将进一步理解,同时参考在上面所述的该方法的各方面,本发明可体现为方法、装置/系统和/或计算机产品。
图1是图示基于通信信道的客户服务器的框图,其中包括根据本发明的一个实施例的高速缓存管理;
图2是图示根据本发明的支持高速缓存管理的客户或服务器的实施例的框图;
图3是图示根据本发明的一个实施例的用于高速缓存管理的操作的流程图。
现在参考附图更全面地在后面描述本发明,其中表示出本发明的优选的实施例。但是,本发明可以以不同的形式来体现,并且不应被限定于这里提出的实施例那样来构造,相反这些实施例被提供来使得本次公开是彻底和全面的,对熟悉本领域的人员而言是完全覆盖本发明的范围的。全篇文章中,相同的序号表示相同的元件。
本发明可被体现为用于高速缓存管理的系统、方法或计算机程序产品,其基于地址高速缓存器而使用选择的对象导入,该地址高速缓存器利用散列的地址来提供更小的地址高速缓存大小并对于超出预定标准的对象绕过选择的导入。熟悉本领域的人员可以理解,本发明可采用整体硬件实施例、整体软件(包括固件、驻留软件、微代码等)实施例或包含软件和硬件的实施例的形式。而且,本发明可采用在计算机可用或计算机可读的存储媒体上的计算机程序产品形式,该产品具有嵌入在媒体中的用于由指令执行系统或联系指令执行系统来使用的计算机可用或计算机可读的程序代码装置。在该文本的上下文中,计算机可用或计算机可读的媒体可以是任何包含、存储、通信、传送或传输由指令执行系统、装置或设备或联系指令执行系统、装置或设备来使用的程序的装置。
计算机可用或计算机可读的媒体可以是但并不限于电子、磁性、光学、电磁、红外或半导体系统、装置、设备或传送媒体。计算机可用或计算机可读的媒体的更特定的例子(非穷举)包括如下:具有一个或多个导线的电连接、便携计算机软盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦除的可编程的只读存储器(EPROM或闪存)、光纤和便携致密盘只读存储器(CD-ROM)。注意计算机可用或计算机可读的媒体甚至可以是纸张或其上面可打印程序的另外的适当媒体,因为程序可经过例如纸张或其它媒体的光学扫描被电子获取,然后被编纂、解释,或者是如果需要的话,被以适当方式处理,然后被存储在计算机存储器中。
现在参考图1,图示出根据本发明的一个实施例的组装了高速缓存管理的客户服务器通信环境。如图1所示,客户10与服务器20经通信信道30交互作用和通信。客户10包括应用软件,如浏览器32,其经通信信道30与服务器20通信。例如,浏览器32可以是任何数目的已知浏览器应用软件,如Netscape NavigatorTM或Microsoft InternetExplorerTM。浏览器32可与服务器20经通信信道30通信,其应用HTTP协议被承载在互联网上,通过URL地址标识器的使用对来自服务器20的文件对象的传送作出请求。
如图1所示,客户10还包括高速缓存导纳逻辑电路34。应理解尽管在图1中示出为一个独立的应用软件,高速缓存导纳逻辑电路34还可选择地在浏览器32中执行,从而支持经浏览器32的通信。而且,高速缓存导纳逻辑电路34的操作优选地通过在客户10上执行的软件代码来提供,但是也可整体地或部分地在诸如用户定制芯片的硬件中实施。高速缓存导纳逻辑电路34支持各种高速缓存管理功能,尤其控制对象导纳进入被浏览器32使用来支持客户10与服务器20之间的经通信信道30的通信的对象高速缓存器38。由于本发明指向的高速缓存管理功能涉及高速缓存导纳协议,用于支持通信的对象高速缓存器38的操作的其它方面在这里将不进行进一步地描述。但是,对于联系客户10经通信信道30的通信的对象高速缓存器38的操作的附加的细节和描述,将以美国专利US No.5,924,116为参考,其中更加全面地描述了与本发明的高速缓存导纳方法、系统和计算机程序产品有益结合使用的高速缓存操作的特定实施例。
如参考图3更全面描述地那样,高速缓存导纳逻辑电路34还包括地址高速缓存器36。地址高速缓存器36被用来支持链接于对特定对象的参考频率的高速缓存导纳的操作。尽管本发明一方面指向地址高速缓存器36的格式,但并不限制于使用协议细节的任何特定实施例来联系支持经通信信道30的向前通信的高速缓存导纳逻辑电路34的应用对于特定对象的参考频率进行评估。因此,在这里将仅讨论地址高速缓存器36的使用细节,并且仅讨论到直接与本发明的高速缓存管理操作相关的程度上。但是,联系根据已有技术实施例的高速缓存管理的地址高速缓存器的使用细节的附加的描述在美国专利US No.5,924,116中作了说明,尤其以该专利的图10和说明书中的相关的部分为参考,对于该已有技术的实施例,可应用本发明来获得改进的性能。
而且,如图1所示的是服务器20上的网络服务器40,其支持与客户10的浏览器32的经通信信道30的通信。另外,可选择的高速缓存导纳逻辑电路42被图示为包括在服务器20中。尽管高速缓存导纳逻辑电路42在这里不被进一步描述,应理解各种高速缓存管理协议提供高速缓存器的使用不仅降低了从服务器20向客户10的通信流,而且也降低了从客户10向服务器20传送的数据量。因此,对于高速缓存管理被应用于经通信信道30的双向业务的实施例,应理解这里提供的高速缓存导纳逻辑电路34的操作的描述可进一步被应用于高速缓存导纳逻辑电路42。而且,应理解,例如网络服务器40可以是代理服务器,从而表现为客户上行服务器。从而响应于来自浏览器32的请求,服务器20中的高速缓存导纳逻辑电路42可高速缓存由服务器20接收到的响应。高速缓存响应可随后被提供给浏览器32而不要求网络服务器40向前对上行系统提出请求。
图1所示的实施例标识特定的环境,其中本发明可被有效地采用。尤其,图1中的实施例的对象高速缓存器38是HTTP对象高速缓存器。而且,对于要被在通信信道30上传送的对象的相关的地址是URL,其通常具有在大约40到大约50字节之间的期望的URL相关长度。注意对于URL的参考长度指的是存储在诸如在美国专利US No.5,924,116中描述的地址高速缓存器中的可高速缓存的URL的长度。
现在参考图2,示出了根据本发明适合于用作客户10或服务器20的计算机系统50的例示实施例。计算机系统50可包括输入设备54,诸如键盘或键区52和/或话筒64。计算机系统50还优选包括与处理器60通信的显示器56和主存储器58。计算机系统50还包括也与处理器60通信的扬声器66和I/O数据端口68。I/O数据端口68对如前所述的客户10与服务器20之间的经通信信道30的通信提供物理层支持。
图2还示出了计算机系统50可包括次存储设备62,其与主存储器58和处理器60通信。这种次存储设备可以是如前所述的除主存储器之外的任何类型的数据存储设备。这些组件被包括在适合于作为客户10或服务器20操作的多个传统的计算机系统中(例如,桌上型、膝上型或手持计算机)并且它们的功能通常是熟悉本领域的人员所共知的。
处理器60执行浏览器应用软件30并还可支持用于客户10的高速缓存导纳逻辑电路34功能或支持对于参考图1上面描述的服务器20的相应操作。对象高速缓存器38通常具有足够的大小,它被存储在次存储设备62中。优选地,与地址高速缓存器36一起应用的散列地址长度被选择来提供用于地址高速缓存器36的大小,其允许地址高速缓存器36被存储在主存储器58中,而不是存储在次存储设备62中。而且,单一计算机系统50对于不同的通信分段可作为客户10和服务器20操作。
尽管本发明相对于计算机系统50进行了描述,熟悉本领域的人员应理解,本发明可被组装到需要高速缓存管理的多个其它设备中,从而在多个其它设备中可包括嵌入的功能。从而,本发明应不被构造成限制于诸如图2所示的在计算机系统中使用,而是可被组装到具有足够的处理能力的以执行下面描述的操作的任何设备中。这种设备的示例包括诸如个人数字助理(PDAs)的计算设备、膝上型和便携式计算机、基于触笔的便携计算机、无线电话、灵巧电话机、屏幕电话机、复印机和其它的办公设备、应用软件、工厂控制器等。
下面参考图3的流程图描述本发明。图3示出了根据本发明操作的一个实施例。应理解流程图和/或方框图中的各个方框,以及流程图和/或方框图中的方框的组合可由计算机指令来实施。这些程序指令可被提供给处理器来形成一个机器,从而在处理器上执行的指令生成用于实施在流程图或方框图的方框中指定的功能的装置。计算机程序指令可被处理器执行以使得一系列的操作步骤被处理器执行,产生计算机执行的处理,从而在处理器上执行的指令提供用于实施在流程图或方框图的方框中指定的功能的步骤。
因此,方框图和/或流程图中的方框支持用于执行特定功能的装置的组合、用于执行特定功能的步骤与用于执行特定功能的程序指令装置的组合。还应理解方框图和/或流程图中的各个方框以及方框图和/或流程图中的方框组合,可被特定目的的硬件基的系统实施,其执行特定的功能或步骤,或者由特定目的的硬件与计算机指令的组合实施。
图3图示出本发明的一个实施例,其基于对链接地址高速缓存器36的散列地址的参考提供选择的高速缓存导入,并且还提供超出预定大小标准的任何接收到的对象的高速缓存导纳协议的绕过和其在对象高速缓存器38中的存储。当客户10接收用于放置在对象高速缓存器38中的候选对象(信息单元)时,操作在块100开始。接收到的候选对象具有第一长度的相关的地址。尤其,在一个实施例中,用于候选对象的相关地址是URL地址。高速缓存导纳逻辑电路34然后确定是否候选对象的大小超出预定标准(块102)。响应于在块102的确定操作,如果大小超出预定标准(块110),则候选对象被导入对象高速缓存器38中。换言之,如果在块102确定候选对象的大小小于预定标准,则特定的候选对象仅进行块104到块108的高速缓存导纳操作。在本发明的一个实施例中在块102使用的预定标准至少是大约100kb,并且优选地是大约100kb,其中对象高速缓存器38是HTTP对象高速缓存器。而且,尽管可使用固定的预定标准,也可基于历史的对象大小使用动态的预定标准。例如,预定标准可基于历史的对象大小被建立为相应于请求的对象的固定百分数诸如10%的对象大小。从而对象大小标准可基于历史数据被调整来提高高速缓存导入过程的效率,或者以确保地址高速缓存器可驻留在主存储器58中,而不产生不可接受的散列冲突的电平。
如果候选对象不超出它的预定标准(块102),用于候选对象的相关的地址被散列来提供具有短于候选对象的相关地址的长度的第二相关长度的散列的地址(块104)。在本发明的一个实施例中,其中对象高速缓存器是HTTP高速缓存器,并且接收候选对象的相关的地址是URL地址,优选的散列协议是“hashpjw”协议,如在Alfred V Aho,Ravi Sethi和Jeffrey D.Ullman,Addison-Wesley的1987年的参考文献“Compilers Principles,Techniques,and Tools”中第435-438页所描述的那样,该文献在这里全文引入作为参考。
在这个实施例中,其中期望URL地址大约是40-50字节,散列的地址优选提供有大约4字节的长度。尤其,散列的地址的长度优选地被选择来允许地址高速缓存器36被维持在主存储器58中,而不是被放置在次存储设备62中,从而允许客户10的操作中的潜在性能提高。
然后散列的地址被存储在地址高速缓存器36中,用于控制对于对象高速缓存器38的导纳。尤其,散列的地址以一种方式被存储来提供与散列的地址相关的地址参考计数(频率)。应理解存储散列的地址的各种方法可根据本发明被实施,其通常被称为提供“地址参考计数”。例如,地址高速缓存器36可包含项,项包括完全散列的地址。另一种情况是,地址高速缓存器36可被构造有地址位置,其提供与特定的散列的地址相关的储存器,并且接着可通过增加储存器计数或提供用于确定地址高速缓存器36的适当的地址位置内的参考频率的时间标记而提供存储散列的地址。用于在适合于与本发明一起使用的地址高速缓存器中进行记录存储和更新的一种方法在美国专利US No.5,924,116中联系地址高速缓存器的结构进行了描述,其不同于本发明的是在本发明中使用散列的地址,相反在该专利中使用的是URL地址。优选地,散列的地址成为密钥,其与参考集数相关(相关值)。存储适合于与本发明一起使用的密钥值对的各种方法对于本领域的普通技术人员是已知的,并且不需要再描述。
除如上所述参考块106更新地址高速缓存器36外,根据图3所示的本发明的实施例的高速缓存管理操作还包括确定与地址高速缓存器36中的散列的地址信息相关的地址参考计数是否满足选择标准(块108),以及如果选择标准被满足了(块110),则选择性地允许候选对象进入对象高速缓存器38。控制对象向对象高速缓存器的增加的各种方法对于本领域的普通技术人员是已知的,这些方法适合于与本发明一起使用。但是,这类方法这里不再进一步描述,因为本发明指向的是导纳操作而不是对象从对象高速缓存器中的取回。在任何情况下,在本发明的任何实施中,优选对适当的高速缓存管理作除这里描述的导入之外的其它方面的准备,以确保正确的检索操作可与这里描述的导纳操作无关地来执行。
如上所述,本发明可基于散列的地址而不是与地址高速缓存器36相联系的实际URL地址的应用,而提供高速缓存导纳操作中的改进的性能。例如,在特定的实施例中,其中可高速缓存的URL通常是大约40-50字节长,并且使用32位的散列,该散列稍大于用于地址高速缓存器36的数据大小所提供的幅度降低的数量级。但是,地址大小的减小引起冲突发生的机会是无声的,即,不被检测为已经发生冲突。在这种散列冲突的情况下,即,当URLs(URL-1和URL-2)各自具有相同的散列值时,URLs(URL-1和URL-2)将各自被允许进入高速缓存器,否则当时它们将不会具有没有冲突的完善的实施。但是,使用高质量的如上面推荐的散列协议,可期望这些冲突很少,足以通过降低的地址高速缓存器36大小和整个系统性能改进的优点来抵消掉对象高速缓存器中的不希望的存储带来的缺点。在高速缓存自身是进行关于将来的预测的尝试时高速缓存自身不可避免地是不确切的情况下,这一点尤其是真实的,因此考虑本发明的优点,小的不准确是可接受的性能折衷。
在附图和说明书中,已经公开了本发明的通常的优选实施例,尽管使用了特定的术语,它们可在一般的和描述性的意义上使用,并且它们的使用不是为限制的目的,本发明的范围由后附权利要求提出。

Claims (31)

1.一种用于高速缓存管理的方法,包括步骤:
接收用于放置在对象高速缓存器中的候选对象,该候选对象具有第一长度的相关的地址;
散列相关的地址以提供具有比第一长度短的第二长度的散列的地址;及
存储散列的地址在地址高速缓存器中,其被用于控制对于对象高速缓存器的导纳。
2.根据权利要求1的方法,其特征在于接收步骤跟随有响应于地址高速缓存器中的散列的地址信息,选择性地导入候选对象于对象高速缓存器中的步骤。
3.根据权利要求2的方法,其特征在于存储散列的地址的步骤包括存储散列的地址来提供与散列的地址相关的地址参考计数的步骤,其中选择性地导入步骤包括如果与候选对象的散列的地址相关的地址参考计数满足选择标准,则选择性地把候选对象导入对象高速缓存器中的步骤。
4.根据权利要求3的方法,其特征在于如果候选对象的大小超出了预定标准,则选择性地导入的步骤在把候选对象导入对象高速缓存器的步骤之前,其中如果候选对象的大小不大于预定标准,那仅执行选择性地导入的步骤。
5.根据权利要求3的方法,其特征在于选择性地导入的步骤在下列步骤之前:
确定候选对象的大小是否超出预定标准;及
如果候选对象的大小超出预定标准,响应于确定步骤,候选对象被导入对象高速缓存器中;
如果候选对象的大小小于预定标准,其中响应于确定步骤,执行选择性地导入的步骤。
6.根据权利要求3的方法,其特征在于对象高速缓存器是超文本传输协议(HTTP)对象高速缓存器,并且其中相关地址是通用资源定位器(URL)。
7.根据权利要求6的方法,其特征在于散列相关的地址的步骤包括散列相关的地址以提供散列的地址的步骤,其中第二长度被选择来允许地址高速缓存器被维持在执行高速缓存管理的方法的设备的主存储器中。
8.根据权利要求6的方法,其特征在于第一长度在大约40到大约50字节之间,其中第二长度是大约4字节。
9.一种用于高速缓存管理的方法,包括步骤:
接收用于放置在对象高速缓存器中的候选对象,该候选对象具有相关的大小;
确定候选对象的大小是否超出预定标准,其中预定标准与要被候选对象替代的对象无关;
如果大小超出预定标准,响应于确定步骤,导入候选对象于对象高速缓存器中;并且
如果大小小于预定标准,响应于确定步骤,把候选对象提交给受控的导纳测试。
10.根据权利要求9的方法,其特征在于对象高速缓存器是超文本传输协议(HTTP)对象高速缓存器,并且其中预定标准是至少大约100kb。
11.根据权利要求10的方法,其特征在于预定标准大约是100kb。
12.根据权利要求9的方法,其特征在于候选对象具有第一长度的相关地址,其中提交步骤包括步骤:
散列相关地址以提供具有短于第一长度的第二长度的散列的地址;
在地址高速缓存器中存储散列的地址,其被用于控制向对象高速缓存器中的导入,以提供与散列的地址相关的地址参考计数;及
如果与候选对象的散列的地址相关的地址参考计数满足选择标准,则选择性地导入候选对象于对象高速缓存器中。
13.根据权利要求9的方法,其特征在于提交步骤包括如果大小小于预定标准,仅提交候选对象给受控的对纳测试的步骤。
14.一种用于高速缓存管理的系统,包括:
用于接收放置在对象高速缓存器中的候选对象的装置,该候选对象具有第一长度的相关的地址;
用于散列相关的地址以提供具有比第一长度短的第二长度的散列的地址的装置;及
存储散列的地址在地址高速缓存器中的装置,其被用于控制对对象高速缓存器的导纳。
15.根据权利要求14的系统,还包括响应于地址高速缓存器中的散列的地址信息,选择性地导入候选对象于对象高速缓存器中的装置。
16.根据权利要求15的系统,其特征在于存储散列的地址的装置包括存储散列的地址来提供与散列的地址相关的地址参考计数的装置,以及其中选择性地导入装置包括如果与候选对象的散列的地址相关的地址参考计数满足选择标准,则选择性地把候选对象导入对象高速缓存器中的装置。
17.根据权利要求16的系统,其特征在于选择性地导入装置包括:
确定候选对象的大小是否超出预定标准的装置;及
如果候选对象的大小超出预定标准,响应于确定装置,把候选对象导入对象高速缓存器中的装置。
18.根据权利要求16的系统,其特征在于对象高速缓存器是超文本传输协议(HTTP)对象高速缓存器,并且其中相关地址是通用资源定位器(URL)。
19.根据权利要求18的系统,其特征在于散列相关的地址的装置包括散列相关的地址以提供散列的地址的装置,其中第二长度被选择来允许地址高速缓存器被维持在高速缓存管理系统的主存储器中。
20.根据权利要求19的系统,其特征在于第一长度在大约40到大约50字节之间,其中第二长度是大约4字节。
21.一种用于高速缓存管理的系统,包括:
用于接收放置在对象高速缓存器中的候选对象的装置,该候选对象具有相关的大小;
确定候选对象的大小是否超出预定标准的装置,其中预定标准与要被候选对象替代的对象无关;
当大小超出预定标准,响应于确定装置,导入候选对象于对象高速缓存器中的装置;并且
当大小小于预定标准,响应于确定装置,把候选对象提交给受控的导纳测试的装置。
22.根据权利要求21的系统,其特征在于对象高速缓存器是超文本传输协议(HTTP)对象高速缓存器,并且其中预定标准是至少大约100kb。
23.一种用于高速缓存管理的计算机程序产品,包括:
一种计算机可读存储媒体,具有嵌入在所述媒体中的计算机可读程序代码,所述计算机可读程序代码包括:
计算机可读代码,其接收用于放置在对象高速缓存器中的候选对象,该候选对象具有第一长度的相关的地址;
计算机可读代码,其散列相关的地址以提供具有比第一长度短的第二长度的散列的地址;及
计算机可读代码,其存储散列的地址在地址高速缓存器中,其被用于控制对对象高速缓存器的导纳。
24.根据权利要求23的计算机程序产品,还包括计算机可读代码,其响应于地址高速缓存器中的散列的地址信息,选择性地把候选对象导入对象高速缓存器中。
25.根据权利要求24的计算机程序产品,其特征在于存储散列的地址的计算机可读代码包括计算机可读代码,其存储散列的地址来提供与散列的地址相关的地址参考计数,以及其中选择性地导入的计算机可读代码包括计算机可读代码,如果与候选对象的散列的地址相关的地址参考计数满足选择标准,则其选择性地把候选对象导入对象高速缓存器中。
26.根据权利要求25的计算机程序产品,其特征在于选择性地导入的计算机可读代码包括:
计算机可读代码,确定候选对象的大小是否超出预定标准;及
计算机可读代码,响应于确定候选对象的大小是否超出预定标准的计算机可读代码,把候选对象导入对象高速缓存器中。
27.根据权利要求25的计算机程序产品,其特征在于对象高速缓存器是超文本传输协议(HTTP)对象高速缓存器,并且其中相关地址是通用资源定位器(URL)。
28.根据权利要求27的计算机程序产品,其特征在于散列相关的地址的计算机可读代码包括散列相关的地址以提供散列的地址的计算机可读代码,其中第二长度被选择来允许地址高速缓存器被维持在高速缓存管理系统的主存储器中。
29.根据权利要求28的计算机程序产品,其特征在于第一长度在大约40到大约50字节之间,其中第二长度是大约4字节。
30.一种用于高速缓存管理的计算机程序产品,包括:
一种计算机可读存储媒体,具有嵌入在所述媒体中的计算机可读程序代码,所述计算机可读程序代码包括:
计算机可读代码,其接收放置在对象高速缓存器中的候选对象,该候选对象具有相关大小;
计算机可读代码,其确定候选对象的大小是否超出预定标准,其中预定标准与要被候选对象替代的对象无关;
计算机可读代码,其响应于确定当大小超出预定标准时的计算机可读代码,将候选对象导入对象高速缓存器中;并且
计算机可读代码,响应于确定当大小小于预定标准时的计算机可读代码,把候选对象提交给受控的导纳测试。
31.根据权利要求30的计算机程序产品,其特征在于对象高速缓存器是超文本传输协议(HTTP)对象高速缓存器,并且其中预定标准是至少大约100kb。
CNB001189980A 1999-09-15 2000-09-12 应用导纳控制的高速缓存管理方法和系统 Expired - Lifetime CN1174322C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/397,358 1999-09-15
US09/397358 1999-09-15
US09/397,358 US6532492B1 (en) 1999-09-15 1999-09-15 Methods, systems and computer program products for cache management using admittance control

Publications (2)

Publication Number Publication Date
CN1288193A true CN1288193A (zh) 2001-03-21
CN1174322C CN1174322C (zh) 2004-11-03

Family

ID=23570876

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB001189980A Expired - Lifetime CN1174322C (zh) 1999-09-15 2000-09-12 应用导纳控制的高速缓存管理方法和系统

Country Status (2)

Country Link
US (1) US6532492B1 (zh)
CN (1) CN1174322C (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6823377B1 (en) * 2000-01-28 2004-11-23 International Business Machines Corporation Arrangements and methods for latency-sensitive hashing for collaborative web caching
US6804700B1 (en) * 2000-10-04 2004-10-12 Microsoft Corporation Methods and systems for assigning human-readable and unique uniform resource locators to objects
US7349867B2 (en) * 2000-12-22 2008-03-25 Invenda Corporation Tracking transactions by using addresses in a communications network
US7363248B2 (en) * 2000-12-22 2008-04-22 Invenda Corporation Pre-filling order forms for transactions over a communications network
US7415429B2 (en) 2000-12-22 2008-08-19 Invenda Corporation Providing navigation objects for communications over a network
US7555561B2 (en) * 2001-03-19 2009-06-30 The Aerospace Corporation Cooperative adaptive web caching routing and forwarding web content data broadcasting method
JP4410467B2 (ja) * 2001-03-19 2010-02-03 インターナショナル・ビジネス・マシーンズ・コーポレーション キャッシュ入力の選択方法および装置
JP3778136B2 (ja) * 2002-06-13 2006-05-24 ブラザー工業株式会社 印刷制御装置、印刷装置、及びプログラム
US7051161B2 (en) * 2002-09-17 2006-05-23 Nokia Corporation Memory admission control based on object size or request frequency
JP4515319B2 (ja) * 2005-04-27 2010-07-28 株式会社日立製作所 コンピュータシステム
US7698269B2 (en) * 2005-11-29 2010-04-13 Yahoo! Inc. URL shortening and authentication with reverse hash lookup
US7853598B2 (en) * 2007-10-01 2010-12-14 Sap Ag Compressed storage of documents using inverted indexes
US8386715B2 (en) * 2009-11-30 2013-02-26 Nokia Corporation Method and apparatus for tile mapping techniques
US8984048B1 (en) 2010-04-18 2015-03-17 Viasat, Inc. Selective prefetch scanning
US8527518B2 (en) 2010-12-16 2013-09-03 Sap Ag Inverted indexes with multiple language support
US8498972B2 (en) 2010-12-16 2013-07-30 Sap Ag String and sub-string searching using inverted indexes
US9117502B2 (en) * 2013-02-06 2015-08-25 Fixnetix Ltd. System and method for memory management of unique alpha-numeric order identifiers subjected to hashing and truncation for mapping to limited memory space
US9405686B2 (en) 2013-03-13 2016-08-02 Cloud Physics, Inc Cache allocation system and method using a sampled cache utility curve in constant space
WO2015200771A1 (en) * 2014-06-26 2015-12-30 Cloud Physics, Inc. Cache allocation system and method using a sampled cache utility curve in constant space

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4695949A (en) 1984-07-19 1987-09-22 Texas Instruments Incorporated Method for efficient support for reference counting
US5381539A (en) 1992-06-04 1995-01-10 Emc Corporation System and method for dynamically controlling cache management
JPH0821003B2 (ja) * 1992-08-07 1996-03-04 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ・キャッシュ・システム用の加算器/ハッシュ回路
US5812817A (en) 1994-10-17 1998-09-22 International Business Machines Corporation Compression architecture for system memory application
US5651136A (en) * 1995-06-06 1997-07-22 International Business Machines Corporation System and method for increasing cache efficiency through optimized data allocation
JPH0944315A (ja) 1995-07-25 1997-02-14 Canon Inc 記憶装置及びその方法
US5751962A (en) * 1995-12-13 1998-05-12 Ncr Corporation Object-based systems management of computer networks
US5778430A (en) 1996-04-19 1998-07-07 Eccs, Inc. Method and apparatus for computer disk cache management
US5864852A (en) 1996-04-26 1999-01-26 Netscape Communications Corporation Proxy server caching mechanism that provides a file directory structure and a mapping mechanism within the file directory structure
US5774660A (en) 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
US6012126A (en) * 1996-10-29 2000-01-04 International Business Machines Corporation System and method for caching objects of non-uniform size using multiple LRU stacks partitions into a range of sizes
US6098096A (en) * 1996-12-09 2000-08-01 Sun Microsystems, Inc. Method and apparatus for dynamic cache preloading across a network
US5862338A (en) * 1996-12-30 1999-01-19 Compaq Computer Corporation Polling system that determines the status of network ports and that stores values indicative thereof
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
US5933849A (en) * 1997-04-10 1999-08-03 At&T Corp Scalable distributed caching system and method
US5892919A (en) 1997-06-23 1999-04-06 Sun Microsystems, Inc. Spell checking universal resource locator (URL) by comparing the URL against a cache containing entries relating incorrect URLs submitted by users to corresponding correct URLs
US6345313B1 (en) * 1997-08-22 2002-02-05 Sun Microsystems, Inc. Recovery of synchronization constructs

Also Published As

Publication number Publication date
CN1174322C (zh) 2004-11-03
US6532492B1 (en) 2003-03-11

Similar Documents

Publication Publication Date Title
CN1174322C (zh) 应用导纳控制的高速缓存管理方法和系统
CN1091277C (zh) 保持服务器计算机的各处理器上的负载平衡
US6993590B1 (en) Method of creating data streams for user-specific usage data gathering systems
US6598048B2 (en) Distributed system and method for prefetching objects
EP1886470B1 (en) Method and system for object prediction
US6959318B1 (en) Method of proxy-assisted predictive pre-fetching with transcoding
EP2266043B1 (en) Cache optimzation
US6983318B2 (en) Cache management method and system for storing dynamic contents
US8060613B2 (en) Resource invalidation in a content delivery network
US7802014B2 (en) Method and system for class-based management of dynamic content in a networked environment
US20060059246A1 (en) System and method for connection optimization
CN1605079A (zh) 对抢先和预测的页面进行缓存以提高站点导航的方法和系统
CN1620012A (zh) 更新/重装在网络上浏览过的页面内容的方法和系统
US6672775B1 (en) Cross-machine web page download and storage
CN1234086C (zh) 用于高速缓存文件信息的系统和方法
US7069297B2 (en) Data transfer scheme using re-direct response message for reducing network load
CN1475927A (zh) 保证服务供应商所推荐的服务的可用性的方法和系统
US7539776B1 (en) Dynamic uniform resource locator compression
US6968396B1 (en) Reloading of hypermedia pages by sending only changes
JP2006113745A (ja) インターネット広告システム
EP2164231A1 (en) Mobile phone optimized online communication
KR100463836B1 (ko) 무선 단말기 특성의 그룹화를 통한 컨텐츠 변환 및 캐슁시스템과 방법
KR100959759B1 (ko) 모바일 인터넷의 서버 지원형 웹가속 서비스 시스템 및 그방법
KR100313847B1 (ko) 북마크정보를이용한인터네트서비스장치및방법
KR20020092858A (ko) 압축/캐시 중계서버 및 그 중계서버를 이용한 웹 가속서비스 시스템 및 그 방법

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20041103