CN1679004A - 高速缓存设备、高速缓存数据管理方法和计算机程序 - Google Patents

高速缓存设备、高速缓存数据管理方法和计算机程序 Download PDF

Info

Publication number
CN1679004A
CN1679004A CNA038208652A CN03820865A CN1679004A CN 1679004 A CN1679004 A CN 1679004A CN A038208652 A CNA038208652 A CN A038208652A CN 03820865 A CN03820865 A CN 03820865A CN 1679004 A CN1679004 A CN 1679004A
Authority
CN
China
Prior art keywords
cache
data
data block
cache device
content
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
CNA038208652A
Other languages
English (en)
Other versions
CN100383758C (zh
Inventor
官内教
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Publication of CN1679004A publication Critical patent/CN1679004A/zh
Application granted granted Critical
Publication of CN100383758C publication Critical patent/CN100383758C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种高速缓存设备与高速缓存数据管理方法,能够有效地使用存储区域,并且能够提供命中率。在连接到网络的高速缓存设备的高速缓存替换处理中,对于高速缓存组中的每个高速缓存设备,维护删除未决块列表,并且不同的数据块设置为删除未决,从而通过使用删除未决列表来进行数据管理。与使用单一高速缓存设备的高速缓存替换管理相比,使用该配置可能有效地利用存储区域。另外,响应于来自终端的数据请求,可能收集在多个高速缓存设备中存储的数据块并且发送它们,由此减少网络流量并且提高高速缓存设备的命中率。

Description

高速缓存设备、高速缓存数据管理方法和计算机程序
技术领域
本发明涉及一种高速缓存设备、以及用于控制被高速缓存的数据的方法与计算机程序,具体地讲,涉及一种高速缓存设备以及用于控制被高速缓存的数据的计算机程序与方法,其能够高效地利用高速缓存设备中的数据存储区域,并且提高通过网络发送与接收的高速缓存数据的命中率(hit ratio)。
背景技术
最近,人们通过诸如互联网等网络发送大量的图像与语音数据、各种类型的程序等等。通过网络发送的内容类型包含文本与静止图像,已经扩展到多媒体内容,例如运动图像与语音,因此,内容量与种类已经大大增加了。
通过宽带网络的大量内容传送已经得到迅速增长。因此,通过网络传送的内容量已经得到迅速增长。不利的是,当内容的种类增加以及大量内容增加时,数据通信量也增加,即网络数据流量增加。
一种解决网络数据流量增加问题的方法为高速缓存***。高速缓存***包括从内容传送站点延伸至接收该内容的用户的网络路径上作为数据存储部件的高速缓存。当用户请求的数据(内容)在高速缓存中存储时,不从内容传送站点发送数据(内容),而是从高速缓存检索(retrieve)数据并且将其发送给用户。
例如,当用户通过网络检索内容并且该内容存储在网络上的暂时存储设备(高速缓存)时,高速缓存根据预定的规则存储并删除内容。例如,每次最新的内容输入高速缓存达到高速缓存的存储容量时,都替换不被经常访问的内容。一般地讲,用于控制高速缓存内容的规则实际上独立于内容传送方与用户方的直接控制。
在以这种方式控制互联网高速缓存的数据区域的过程中,当数据占据该数据区域的全部空间时,检测该数据区域的非活动区域,并且删除该非活动区域中的数据,并且替换为最新的数据。该处理称为高速缓存替换。
在公知的互联网高速缓存替换中,当在诸如互联网等网络中存在多个高速缓存时,一般在每个高速缓存设备中都进行独立的数据控制。最常见的高速缓存替换方法为使用最近最少使用(LRU)算法的数据控制方法。
LRU算法为以下控制方法:在LRU列表的结尾处注册最近未使用的数据块,并且在LRU列表的开头处注册最近使用的数据块。在这种方法中,当删除旧数据以高速缓存新数据时,通过删除在LRU列表的结尾处注册的数据块来获得新的数据存储区域。
参照图1,现在解释使用LRU算法的数据控制方法。在该控制中使用的数据为:LRU列表(a),具有按照使用频率顺序的、相应于各个数据块的项;以及空闲块列表(b),指示高速缓存中的空闲区域块。新近高速缓存的数据在作为存储区域的、由在空闲块列表(b)每项中指示的指针指向的数据存储块中存储。存储数据存储块的块信息的项作为头项101注册在LRU列表(a)中。
当由于通过输入(高速缓存)新数据完全占据高速缓存的数据存储区域而删除某些先前高速缓存的数据时,删除最近未使用的、相应于在LRU列表(a)结尾处的项102的数据块。通过在空闲块列表(b)中注册指示已删除的数据块的指针信息的项,将特定数据存储块注册为空闲区域。
通过使用单一高速缓存设备的信息,来应用以上控制高速缓存的数据块的方法。作为互联网高速缓存协议(Internet Cache Protocol,ICP:Requestsfor Comments RFC-2186,RFC-2187),人们已经提出了向多个邻近的高速缓存设备请求未在进行请求的高速缓存设备中驻留的数据的方法。在该方法中,通过为每个URL指定作为内容文件的资源信息的统一资源定位符(URL),执行数据请求处理;并且没有细致地调节删除或保持多个高速缓存的哪些数据的功能。由此,当作为其它高速缓存设备各自操作的结果、所请求的数据恰巧保留在这些高速缓存设备中时,所请求的数据简单地从这些其它高速缓存设备中检索,而不是从服务器下载。
发明内容
为解决上述高速缓存控制中的问题,本发明提供了一种高速缓存设备、以及用于控制被高速缓存的数据的方法与计算机程序,其能够高效地利用包含多个连接到网络的高速缓存的***中的数据存储区域。
例如,通过使用暂时搁置(suspend)数据删除的删除未决(pending)列表,来控制连接到网络的高速缓存设备的数据区域;并且通过引入高速缓存组的概念,实现适合于高速缓存大量内容,例如视频内容的数据控制方法。
高速缓存组包含多个连接到网络的高速缓存设备,并且在该组内多个盘片的每一个中控制相同的内容数据。使用删除未决列表,以包含特定数目的数据单元的块为单位控制内容数据,并且控制处于删除未决状态的、在盘片中存储的部分内容数据,使之相互不同。通过采用这种结构,当通过高速缓存替换删除内容数据的许多部分时,通过从高速缓存组中邻近高速缓存盘片收集部分内容数据,可以迅速恢复原始的内容数据。当内容数据小时,通过进行在每个盘片中存储设置至删除未决状态的不同的内容的安排,可以执行相同的控制。
本发明的第一方面提供了一种高速缓存设备,用于存储通过网络接收的数据作为被高速缓存的数据,并且响应于来自终端的数据请求、检索被高速缓存的数据,以向该终端发送被高速缓存的数据,该高速缓存设备包含:
高速缓存组表,包含有关于由该高速缓存设备与连接到网络的其它高速缓存设备组成的高速缓存组的组配置信息,对于该高速缓存组执行协同的内容控制;以及
控制部件,用于根据在高速缓存组表中包含的信息,在构成内容的数据块中,确定哪些数据块处于删除未决状态,所述数据块为在高速缓存设备中存储的数据,并且用于根据由包含相应于处于删除未决状态的数据块的信息的项构成的删除未决列表,控制处于删除未决状态的数据块。
根据本发明的高速缓存设备的一个实施例提供了一种高速缓存设备,其中高速缓存组表包含由高速缓存组协同控制的内容的标识符、高速缓存组的高速缓存设备数目N、以及分配给各个高速缓存设备的组成员号m;以及
控制部件确定在构成被协同控制的内容的数据块中,哪些数据块处于删除未决状态,所述数据块存储在高速缓存设备中,即,
控制部件根据要进行确定的数据块的、作为偏移(offset)信息的块偏移号C,从数据块所属的内容的起始数据块开始执行以下过程:
计算C mod N;
当C mod N=0时,V=N,以及
当C mod N≠0时,V=(C mod N);以及
判断是否V=m,以及
当V=m时,判定当前数据块为处于删除未决状态的数据块之一。
根据本发明的高速缓存设备的一个实施例提供了一种高速缓存设备,其中
控制部件通过在高速缓存设备之间交换消息来判断由高速缓存组进行协同控制是否适用于相应于要从LRU列表中去除的项的数据块,所述LRU列表作为用于控制在存储部件中存储的数据块的列表;以及
当判定协同控制适用时,控制部件生成高速缓存组表。
根据本发明的高速缓存设备的一个实施例提供了一种高速缓存设备,其中,
对于相应于要从作为用于控制在存储部件中存储的数据块的列表的LRU列表中去除的项的数据块,
控制部件根据在高速缓存组表中包含的信息,在构成内容的数据块中,确定哪些数据块处于删除未决状态,所述数据块为在高速缓存设备中存储的数据;并且控制部件控制空闲块列表中不同于处于删除未决状态的数据块的数据块,所述空闲块列表作为用于控制可以删除的数据块的列表。
根据本发明的高速缓存设备的一个实施例提供了一种高速缓存设备,其中删除未决列表包含相应于优先级的多个删除未决列表,所述数据块按优先级顺序存储;以及
控制部件判断存储每个数据块的优先级,并且根据该判断在从多个删除未决列表中选择的一个列表中注册相应于要受到控制的数据块的项。
根据本发明的高速缓存设备的一个实施例提供了一种高速缓存设备,其中,当来自终端的数据请求是用于获取在由高速缓存组协同控制的内容中包含的数据块时,
控制部件判断高速缓存组的哪个高速缓存设备存储所请求的数据块,并且根据该判断,从该高速缓存设备自身或者高速缓存组的其它高速缓存设备检索该数据块。
根据本发明的高速缓存设备的一个实施例提供了一种高速缓存设备,其中高速缓存组表包含由高速缓存组协同控制的内容的标识符、高速缓存组的高速缓存设备数目N、以及分配给各个高速缓存设备的组成员号m;以及
控制部件根据所请求的数据块的、作为偏移信息的块偏移号C,从数据块所属的内容的起始数据块开始执行以下过程:
计算C mod N;
当C mod N=0时,V=N,以及
当C mod N≠0时,V=(C mod N);以及
V=m,以及
从具有所求得的组成员号m的高速缓存设备检索数据块。
本发明的第二方面提供了一种控制高速缓存设备中被高速缓存的数据的方法,所述高速缓存设备用于存储通过网络接收的数据作为被高速缓存的数据,并且响应于来自终端的数据请求、检索被高速缓存的数据,以向该终端发送被高速缓存的数据,该方法包含以下步骤:
根据在高速缓存组表中存储的组配置信息,在构成内容的数据块中,确定哪些数据块处于删除未决状态,所述数据块为在高速缓存设备中存储的数据,所述组配置信息有关于由该高速缓存设备与连接到网络的其它高速缓存设备组成的高速缓存组,对于该高速缓存组执行协同的内容控制;
根据由包含相应于处于删除未决状态的数据块的信息的项构成的删除未决列表,控制处于删除未决状态的数据块。
根据本发明的控制被高速缓存的数据的方法的一个实施例提供了一种方法,其中高速缓存组表包含由高速缓存组协同控制的内容的标识符、高速缓存组的高速缓存设备数目N、以及分配给各个高速缓存设备的组成员号m;以及
在确定哪些数据块处于删除未决状态的步骤中,在构成被协同控制的内容的数据块中,确定处于删除未决状态的数据块,所述数据块存储在高速缓存设备中,即,
根据要进行确定的数据块的、作为偏移信息的块偏移号C,从数据块所属的内容的起始数据块开始执行以下过程:
计算C mod N;
当C mod N=0时,V=N,以及
当C mod N≠0时,V=(C mod N);以及
判断是否V=m,以及
当V=m时,判定当前数据块为处于删除未决状态的数据块之一。
根据本发明的控制被高速缓存的数据的方法的一个实施例提供了一种方法,还包含以下步骤:
通过在高速缓存设备之间交换消息来判断由高速缓存组进行协同控制是否适用于相应于要从LRU列表中去除的项的数据块,所述LRU列表作为用于控制在存储部件中存储的数据块的列表;以及当判定协同控制适用时,生成高速缓存组表。
根据本发明的控制被高速缓存的数据的方法的一个实施例提供了一种方法,还包含以下步骤:
对于相应于要从作为用于控制在存储部件中存储的数据块的列表的LRU列表中去除的项的数据块,根据在高速缓存组表中包含的信息,在构成内容的数据块中,确定哪些数据块处于删除未决状态,所述数据块为在高速缓存设备中存储的数据;并且控制空闲块列表中不同于处于删除未决状态的数据块的数据块,所述空闲块列表作为用于控制可以删除的数据块的列表。
根据本发明的控制被高速缓存的数据的方法的一个实施例提供了一种方法,其中删除未决列表包含相应于优先级的多个删除未决列表,所述数据块按优先级顺序存储;并且该方法还包含以下步骤:
判断存储每个数据块的优先级,并且根据该判断在从多个删除未决列表中选择的一个列表中注册相应于要受到控制的数据块的项。
根据本发明的控制被高速缓存的数据的方法的一个实施例提供了一种方法,还包含以下步骤:
当来自终端的数据请求是用于获取在由高速缓存组协同控制的内容中包含的数据块时,判断高速缓存组的哪个高速缓存设备存储所请求的数据块,并且根据该判断,从该高速缓存设备自身或者高速缓存组的其它高速缓存设备检索该数据块。
根据本发明的控制被高速缓存的数据的方法的一个实施例提供了一种方法,其中高速缓存组表包含由高速缓存组协同控制的内容的标识符、高速缓存组的高速缓存设备数目N、以及分配给各个高速缓存设备的组成员号m;以及
在检索数据块的步骤中,根据所请求的数据块的、作为偏移信息的块偏移号C,从数据块所属的内容的起始数据块开始执行以下过程:
计算C mod N;
当C mod N=0时,V=N,以及
当C mod N≠0时,V=(C mod N);以及
V=m,以及
从具有所求得的组成员号m的高速缓存设备检索数据块。
本发明的第三方面提供了一种控制高速缓存设备中被高速缓存的数据的计算机程序,所述高速缓存设备用于存储通过网络接收的数据作为被高速缓存的数据,并且响应于来自终端的数据请求、检索被高速缓存的数据,以向该终端发送被高速缓存的数据,该计算机程序包含以下步骤:
根据在高速缓存组表中存储的组配置信息,在构成内容的数据块中,确定哪些数据块处于删除未决状态,所述数据块为在高速缓存设备中存储的数据,所述组配置信息有关于由该高速缓存设备与连接到网络的其它高速缓存设备组成的高速缓存组,对于该高速缓存组执行协同的内容控制;
根据由包含相应于处于删除未决状态的数据块的信息的项构成的删除未决列表,控制处于删除未决状态的数据块。
根据本发明的***,当在通过网络相互连接的高速缓存设备中执行高速缓存替换时,进行数据控制,使得高速缓存组中每个高速缓存设备(其包含有关于设置为删除未决状态的数据块的列表)中设置为删除未决状态的数据块与高速缓存组中其它高速缓存设备中的不同。由此,与每个高速缓存独立地控制高速缓存替换的情况相比,可以高效地使用存储区域,并且响应于来自终端的数据获取请求,收集在多个高速缓存设备中存储的数据块以发送到终端,由此有利于网络流量,并且提高了高速缓存设备的命中率。
另外,当根据本发明高速缓存设备包含多级删除未决列表时,以高优先级存储的数据未被删除而是保持的可能性较高,由此进一步提高了高速缓存命中率。
可以使用计算机可读的存储介质,诸如密致盘(CD)、软盘(FD)、以及磁光盘(MO)盘片,以及诸如网络的通信介质,将根据本发明的计算机程序分发给执行各种计算机代码的通用计算机***。通过以计算机可读格式分发该程序,在计算机***上进行相应于该程序的处理。
从以下给出的参照附图的、本发明的实施例以及详细描述可以看出本发明的其它目的、特征与优点。名词“***”指逻辑组合的多个设备,并且这些设备不一定装在同一外壳内。
附图说明
图1显示使用LRU列表与空闲块列表的公知高速缓存数据控制。
图2显示适用根据本发明的高速缓存设备的网络配置。
图3显示根据本发明的高速缓存设备中的数据控制。
图4显示根据本发明的高速缓存设备中的数据控制。
图5显示根据本发明的高速缓存设备之间发送/接收消息的典型格式。
图6显示根据本发明的高速缓存设备中邻近高速缓存设备列表的数据布局。
图7显示作为根据本发明的高速缓存设备之间的发送/接收消息的组配置信息消息的典型格式。
图8显示在根据本发明的高速缓存设备中存储的高速缓存组表的典型数据。
图9显示在根据本发明的高速缓存设备中用于控制数据的列表。
图10显示在根据本发明的高速缓存设备中用于控制数据的LUR列表。
图11显示在根据本发明的高速缓存设备中用于控制数据的删除未决列表。
图12显示在根据本发明的高速缓存设备中用于控制数据的空闲块列表。
图13为显示在根据本发明的高速缓存设备中组信息与数据控制的流程图。
图14为显示在根据本发明的高速缓存设备中的组信息与数据控制中使用的发送/接收消息的序列图。
图15为显示在根据本发明的高速缓存设备中检索与发送数据的过程的流程图。
图16为显示在根据本发明的高速缓存设备中通过重定向处理来检索与发送数据的过程的流程图。
图17为显示在根据本发明的高速缓存设备中的检索与发送数据的过程中使用的发送/接收消息的序列图。
图18显示在根据本发明的高速缓存设备中包含多级删除未决列表的配置。
图19显示在根据本发明的高速缓存设备中包含多级删除未决列表的配置。
图20显示在根据本发明的高速缓存设备中组信息与数据控制的流程图,该高速缓存设备包含多级删除未决列表。
图21显示根据本发明的高速缓存设备的典型硬件配置。
具体实施方式
参照附图,现在将详细描述根据本发明的高速缓存设备和用于控制被高速缓存的数据的方法。
[高速缓存设备和高速缓存设备中的处理]
图2显示可以使用根据本发明的高速缓存设备的典型网络的总体配置。图2所示的配置类似于包含普通互联网高速缓存设备、服务器设备、以及终端设备的***的配置。根据本发明的高速缓存设备可以用于已知的网络***配置。在该网络中,设立多个高速缓存设备作为组,并且控制该组内的被高速缓存的数据。
高速缓存设备1(211)至4(214)通过网络相互连接,并且暂时存储从内容服务器201发送来的数据(内容)。诸如用户个人计算机(PC)与移动通信终端等接收内容的终端可以在高速缓存设备211至214的下游连接到网络。
接收内容的终端221a、221b、221c等等连接到高速缓存设备1(211)。终端231a、231b、231c等等连接到高速缓存设备2(212)。终端241a、241b、241c等等连接到高速缓存设备3(213)。终端251a、251b、251c等等连接到高速缓存设备4(214)。
当终端提交请求以获取内容数据时,从内容服务器201或者从终端与服务器之间的高速缓存设备读取数据。例如,通过发送内容获取请求的消息(该消息指定作为内容文件资源信息的URL),执行来自终端的内容获取请求。
当相应于从终端请求的内容的URL的数据存储在高速缓存中时,数据从高速缓存中读取。当数据从高速缓存中读取时,可以省略内容服务器201与高速缓存设备之间的数据传送,由此有利于网络中的数据流量。
在根据本发明的配置中,通过网络相互连接的多个高速缓存设备,例如图2所示的高速缓存设备1(211)至4(214)编组为高速缓存组。在高速缓存设备1(211)至4(214)之间协同控制内容,即内容分散存储在高速缓存设备1(211)至4(214)之间。现在描述本发明中的高速缓存控制的组件以及用于控制高速缓存的方法。
如图3所示,例如,假定在属于图2的高速缓存组的四个高速缓存设备1(211)至4(214)的每一个中都存储着同样的内容数据。内容由数据块1至7构成。如图3所示,高速缓存设备1(211)至4(214)的每一个都存储着相同数据块1至7。高速缓存设备1(211)至4(214)的每一个响应于来自连接到每个高速缓存设备的终端的请求从内容服务器201接收这些数据块1至7,并且将其暂时存储,即这些数据块为被高速缓存的数据。
当如在现有技术中一样在每个高速缓存设备中独立地进行高速缓存替换时,每个高速缓存设备删除受到来自终端的低频率获取请求的数据块,以在存储部件中存储或者高速缓存新的数据。当重新分发该被删除的数据时,从内容服务器201检索该数据,这是因为该数据没有驻留在高速缓存设备中。
根据本发明的高速缓存设备,在包含高速缓存设备1(211)至4(214)的高速缓存组中协同地控制数据。
在根据本发明的控制被高速缓存的数据的方法中,借助使用多个具有相同内容数据的高速缓存设备的高速缓存组来控制待被高速缓存的数据。对于包含高速缓存设备1(211)至4(214)的每个高速缓存组,执行根据本发明的高速缓存设备中的高速缓存替换。
控制数据删除以使得未被删除并保留在高速缓存组的高速缓存设备中的数据相互不同,由此使之能够高效地利用高速缓存设备中的数据存储区域。另外,响应于来自终端的数据请求,可以将所存储的数据从高速缓存组的多个高速缓存设备发送到并输出到终端。由此,可以提高高速缓存设备的总体命中率。
参照附图,现在描述一个实施例。当相同的内容数据块1至7存储在高速缓存组的每个高速缓存设备1(211)至4(214)中时,如图3所示,通过高速缓存组控制数据,执行数据删除,即高速缓存替换,以使得未被删除的保留在高速缓存设备中的数据相互不同。
如图4所示,高速缓存组高速缓存替换的结果如下:高速缓存设备1(211)存储数据块1与5作为被高速缓存的数据,并且在空闲列表中注册数据块2、3、4、6、7(相应于已删除的数据块);高速缓存设备2(212)存储数据块2与6作为被高速缓存的数据,并且在空闲列表中注册数据块1、3、4、5、7;高速缓存设备3(213)存储数据块3与7作为被高速缓存的数据,并且在空闲列表中注册数据块1、2、4、5、6;高速缓存设备4(214)存储数据块4作为被高速缓存的数据,并且在空闲列表中注册数据块1、2、3、5、6、7。
通过这种方式,由包含高速缓存设备1(211)至4(214)的高速缓存组执行高速缓存替换以进行协同内容控制。现在描述高速缓存组的高速缓存替换的实施例。
以预定的时间间隔,按照块不久将被高速缓存替换删除的可能性的顺序,每个高速缓存设备扫描每个高速缓存设备所拥有的LRU列表中的块(参照图1);查询具有相应于要被删除的块的内容的高速缓存设备是否在附近;并且当被查询的高速缓存设备具有要被删除的内容时,确认被查询的高速缓存设备是否能够与进行查询的高速缓存设备形成高速缓存组。
应用于该类型的查询的发送/接收消息可以由例如ICP覆盖,ICP被定义为用于发送并接收通过网络相互连接的高速缓存之间的消息的协议。在IPC的公知规范中没有定义确认高速缓存设备是否能够参加高速缓存组的功能,但是可以(例如)通过扩展定义为ICP中操作码(opcode)的IP_OP_QUERY消息中的选项标志来发送并接收用于确认高速缓存设备是否能够参加高速缓存组的消息。
图5(a)显示ICP的格式,其被定义为用于发送并接收通过网络相互连接的高速缓存之间的消息的协议。图5(b)显示定义为ICP中操作码的IP_OP_QUERY消息的格式。如图5(a)所示,ICP格式具有以下数据字段:操作码、版本、消息长度、请求号、选项、选项数据、发送方主机地址、以及有效负荷。
为了查询邻近高速缓存设备是否具有特定内容以及是否能够参加高速缓存组,向邻近高速缓存设备发送指定作为内容文件的资源信息的URL的查询消息。该查询消息的一个实施例为ICP_OP_QUERY消息,该消息指定作为内容文件的资源信息的URL,并且通过扩展ICP中的选项标志而具有用于确认邻近高速缓存设备是否能够就该内容作为成员参加高速缓存组的附加标志(例如,0X20000000(ICP_FLAG_GROUP_REQ))。该查询消息也可以由不同与该技术的格式与协议实现。
进行查询的高速缓存设备通过多播可以一次向多个邻近高速缓存设备发送关于高速缓存设备是否持有内容文件的该查询。
在本发明中,邻近高速缓存设备为可能与特定高速缓存设备形成高速缓存组的候选高速缓存设备,并且例如设立为可以在预定的许可时间内发送并接收数据的高速缓存设备。
在邻近高速缓存设备配置的实施例中,预先在高速缓存设备的配置文件中注册可能形成高速缓存组的多个高速缓存设备。然后,通过向这些注册的高速缓存设备发送报文分组网络探索命令(Packet Internet Groper,PING),测量高速缓存设备之间的往返时间(RTT),并且设立许可RTT内的多个高速缓存设备作为邻近高速缓存设备。
设立高速缓存组的高速缓存设备持有邻近高速缓存设备的列表。该列表保存主机地址、IP地址、以及ICP端口号,作为有关于目标高速缓存设备的数据。
图6显示典型的高速缓存设备列表。如图6所示,该高速缓存设备列表保存主机地址、IP地址、以及ICP端口号,作为有关于被设立为邻近高速缓存设备的高速缓存设备的数据。
例如,高速缓存设备通过广播或多播使用指定相应于特定内容数据的URL的ICP_OP_QUERY的查询消息来查询邻近高速缓存设备是否持有特定内容以及是否能够参加组。进行查询的高速缓存设备等待对于查询消息的响应。
进行查询的高速缓存设备不会无限期等待,并且当多播查询时,不会确切了解返回多少响应。因此,对于预定时间,进行查询的高速缓存设备检查哪些被查询的高速缓存设备发送了命中响应,即,指示被查询的高速缓存设备持有相应于被查询的URL的内容数据的响应,并且计数命中响应的数目。结果保存在内部高速缓存组表(在列表中的目标内容数据的标识符(例如URL或者内容标识符(ID))、组成员的数目、组ID、以及构成高速缓存组的成员的成员号码以及相应的IP地址)中。
可以将以下ICP消息用做响应消息,例如:ICP_OP_HIT,用于指示被查询的高速缓存设备具有相应于所查询的URL的内容数据的响应,或者ICP_OP_MISS,用于指示被查询的高速缓存设备不具有内容数据的响应。
当高速缓存同意成为与进行查询的高速缓存设备一起的高速缓存组的成员并且具有存储相应于被查询的内容的数据块的能力时,收到上述查询消息的每个高速缓存设备发送回命中响应,直到形成高速缓存组。
由发送查询消息的高速缓存设备与至少一个发送回命中响应的高速缓存设备形成有关于由查询消息指定的内容的高速缓存组。
当发送查询消息并且收到响应消息的高速缓存设备在收到至少一个命中响应时设立高速缓存组时,该高速缓存设备通知形成高速缓存组的每个高速缓存设备组配置信息,例如构成高速缓存组的高速缓存设备数目(N),作为构成高速缓存组的高速缓存设备(成员)的标识符的组成员号(m),以及在高速缓存组中处理的内容数据的内容数据标识符(CID)。
相应于高速缓存设备的IP地址设置作为高速缓存设备(成员)标识符的组成员号(m)。构成高速缓存组的每个高速缓存设备(成员)获取作为所有其它构成高速缓存组的高速缓存设备(成员)的高速缓存设备(成员)标识符的组成员号(m)、以及相应于各个组成员号(m)的IP地址。
与在上述查询消息中一样,ICP可以用于通知组配置信息。例如,在ICP中添加用于信息通知的唯一操作码ICP_OP_NOTIFY,以在ICP_OP_NOTIFY的有效负载字段中存储高速缓存设备(成员)的组成员号以及IP地址,如图7所示,并且向构成高速缓存组的每个高速缓存设备发送以给出该信息。图7显示包含根据互联网协议版本4(IPv4)的IP地址的ICP_OP_NOTIFY的例子。
如图7所示,在有效负载字段中存储构成高速缓存组的所有(N)高速缓存设备(成员)的组成员号(高速缓存成员#1至#N)以及IP地址。通过接收该信息,构成高速缓存组的每个高速缓存设备(成员)就被通知了构成高速缓存组的所有其它高速缓存设备(成员)的组成员号以及相应的IP地址。
如图8所示,每个发送组配置信息的高速缓存设备与接收组配置信息的高速缓存设备(这些高速缓存设备属于高速缓存组)在存储器中存储具有组配置信息的高速缓存组表,作为其自身的控制信息。
高速缓存组表在高速缓存组成员列表中存储根据上述组配置信息获得的信息,即,内容的标识符,所述内容的每一个都在每个所设立的高速缓存组中协同地被控制;构成每个高速缓存组的高速缓存设备数目(N);高速缓存组标识符(ID)以及成员号码与相应的IP地址。
内容数据不是由以这种方式设立的高速缓存组的每个高速缓存设备独立地控制,而是由整个组控制。现在描述控制高速缓存组中每个高速缓存设备中的内容的方法。
如图9所示,高速缓存组中每个高速缓存设备包含:LRU列表(a),按使用频率的顺序列出数据块;删除未决列表(b);以及空闲块列表(c),具有高速缓存中空闲区域块的指针信息。
删除未决列表用于控制在从LRU列表去除的数据块中被暂时设置为删除未决状态的数据块,例如要删除的数据块。通过以下过程判定相应于从LRU列表去除的项的数据块是在空闲块列表中作为要删除的数据块控制还是在删除未决列表中作为删除未决状态数据块控制:
以下为判定每个数据块是否设置为删除未决状态的过程:
(1)计算C mod N;
(2)当C mod N=0时,V=N,以及
   当C mod N≠0时,V=(C mod N),以及;
(3)当V=m时,将数据块设置为删除未决状态,以及
   当V≠m时,不将数据块设置为删除未决状态,
其中C为距离进行判定的内容的头部的数据块偏移号,N为高速缓存组高速缓存设备的数目,m为分配给高速缓存组中当前高速缓存设备的组成员号码。
通过在高速缓存组的每个高速缓存设备中重复以上过程,在没有复制的情况下,在高速缓存设备之间存储数据块,如上参照图4所述。
即,在该安排下,具有m=1的高速缓存设备1(211)存储删除未决状态下的数据块1与5,并且在删除未决列表中控制这些块,并且在空闲块列表中控制数据块2、3、4、6、7作为要删除的数据块;具有m=2的高速缓存设备2(212)存储删除未决状态下的数据块2与6,并且在删除未决列表中控制这些块,并且在空闲块列表中控制数据块1、3、4、5、7;具有m=3的高速缓存设备3(213)存储删除未决状态下的数据块3与7,并且在删除未决列表中控制这些块,并且在空闲块列表中控制数据块1、2、4、5、6;具有m=4的高速缓存设备4(214)存储删除未决状态下的数据块4,并且在删除未决列表中控制该块,并且在空闲块列表中控制数据块1、2、3、5、6、7。
现在参照高速缓存组中每个高速缓存设备所拥有的LRU列表、删除未决列表、空闲块列表的内部结构描述以上过程的细节。
参照图10,现在描述LRU列表的结构。如图10所示,每个高速缓存设备包含:数据存储部件320,作为存储其自身的被高速缓存的数据的存储部件;以及LRU列表310,用于在数据存储区域中存储的数据。
相应于每个数据块生成LRU列表310。在这种情况下,相应于各自的数据块保持列表数据记录(项)(a)至(p)。图10显示LRU列表的内部结构,LRU列表的每一项都包含:指向数据块的指针311、内容标识符312、块偏移313、指向同一LRU列表中前一个列表数据记录(项)的指针314、以及指向同一LRU列表中后一个列表数据记录(项)的指针315。
指向数据块的指针311指示数据存储区域320中实际内容数据块的存储地址,所述数据块相应于每个列表数据记录。内容标识符312包含(例如)每个数据块的URL或者标识符数据。块偏移313指示每个内容数据块距离内容头部的偏移。
例如,可以使用数据存储区域中的差异地址作为偏移,但是此处使用将数据分割为预定大小的部分的块作为控制单位,并且偏移具有距离内容头部的块偏移号C。对于具有N块的内容数据,在列表数据记录(a)中设置的块偏移为1,在列表数据记录(b)中设置的块偏移为2,在列表数据记录(p)中设置的块偏移为N。通过这种方式,块偏移被设置为块偏移号C,其为用于标识距离每个内容的头部的位移的数据。
指向前一个列表数据记录(项)的指针341以及指向同一LRU列表中后一个列表数据记录(项)的指针315分别为对于同一列表中前一项与后一项的指针数据。由此,在列表头部的列表数据记录(a)中指向前一列表数据记录的指针设置为NULL(空),在列表尾部的列表数据记录(p)中指向后一列表数据记录的指针也设置为NULL。
通过读取每项中的数据,可以容易地获得LRU列表每一项中相应于指向数据块的指针的、标识符与距离内容头部的块偏移号C。
现在参照图11解释删除未决列表的结构。如上所述,删除未决列表用于控制在LRU列表中那些要删除的数据块中暂时设置为删除未决状态的数据块。
如图11所示,相应于设置为删除未决状态的数据块生成高速缓存设备所拥有的删除未决列表330。相应于设置为删除未决状态的各个数据块保持列表数据记录(项)(a)至(p)。图11显示删除未决列表的内部结构,删除未决列表的每一项都包含:指向数据块的指针331、内容标识符332、块偏移333、所设立的高速缓存组的组标识符(GP)334、指向同一删除未决列表中前一个列表数据记录(项)的指针335、以及指向同一删除未决列表中后一个列表数据记录(项)的指针336。
在高速缓存设备所拥有的删除未决列表330中数据的结构与LRU列表中的存储数据加上组标识符(GP)334的结构相同。组标识符(GP)334为当设立高速缓存组时设置的组ID,用于标识高速缓存组。设立高速缓存组的高速缓存设备设置组标识符(GP)334,并且利用组配置信息通知构成高速缓存组的其它高速缓存设备组标识符(GP)334。在高速缓存组表中注册组标识符(GP)334(参照图8)。
现在参照图12描述空闲块列表的结构。如上所述,空闲块列表用于控制在LRU列表中那些要删除的数据块中未被设置为删除未决状态而是要直接删除的数据块、以及被暂时设置为删除未决状态且随后删除的数据块。
如图12所示,高速缓存设备所拥有的空闲块列表350的每一项都包含:指向在数据存储区域320的数据存储块中可以被重写且删除的数据块的指针351、指向同一空闲块列表中前一个列表数据记录(项)的指针352、以及指向同一空闲块列表中后一个列表数据记录(项)的指针353。
现在描述以下过程:高速缓存组的每个高速缓存设备接收新的输入数据,从而在删除未决列表或者空闲块列表中控制数据块。
首先,高速缓存设备从LRU列表中选择待处理的项(列表数据记录),并且从选择自LRU列表的每个项中读取块偏移号C(图10中的块偏移313)。
然后,高速缓存设备根据块偏移号C的值执行上述处理:
(1)计算C mod N;
(2)当C mod N=0时,V=N,以及
   当C mod N≠0时,V=(C mod N)。
(3)当V=m时,将数据块设置为删除未决状态。即,将用于控制相应数据块的列表数据记录放入删除未决列表。不删除该数据块,而是存储在数据存储区域中。
(3’)当V≠m时,不将数据块设置为删除未决状态。即,将用于控制相应数据块的列表数据记录放入空闲块列表。在数据存储区域中可以删除并重写该数据块。
当V=m时,高速缓存设备判定所设立的高速缓存组中的高速缓存设备自身需要存储数据块。因此,高速缓存设备从LRU列表中去除待删除的相应项,并且将相应项放入删除未决列表,从而高速缓存设备不删除而是存储存储器中的内容数据块,并且在删除未决列表中控制内容数据块。当V≠m时,所设立的高速缓存组中的高速缓存设备自身不需要存储数据块。即,高速缓存设备判定另一个组成员存储数据块。因此,高速缓存设备从LRU列表中去除待删除的相应项,并且将相应项放入空闲块列表,从而高速缓存设备将相应的数据块设置为可删除状态。另一个高速缓存组成员存储要删除的数据块,并且可以将所存储的数据块发送给终端。以后将描述该过程。
在这些列表中放入项,如图9所示。例如,在高速缓存设备1中,当收到对于写入新的数据块的请求时,相应于在空闲块列表(c)的起始项271中设置的数据块指针,将该新数据块写入数据存储区域中的数据存储区,并且在LRU列表的起始项272中设置所写入的数据块的信息,如图10所示。
当LRU列表的长度因此超过许可长度时,去除LRU列表的结尾项273,并且在删除未决列表或者空闲块列表中放入相应项。通过如上(1)至(3)所述地计算C mod N并且判断值V来确定将相应项放入删除未决列表还是空闲块列表。
作为上述确定的结果,当确定去除LRU列表的结尾项273且在删除未决列表中放入相应项时,去除LRU列表的结尾项273,并且在删除未决列表中放入相应项274,当确定去除LRU列表的结尾项273且在空闲块列表中放入相应项时,去除LRU列表的结尾项273,并且在空闲块列表中放入相应项275。
当由于在删除未决列表中添加新项而使删除未决列表的长度超过预定长度时,在空闲块列表中放入相应于删除未决列表起始项276的项作为结尾项275。
当根据空闲块列表预定的缓冲区容量不足以存储新数据时,通过去除LRU列表或删除未决列表中的项并且在空闲块列表中放入相应项,即通过删除数据块,确保缓冲区容量。
由在放入空闲块列表中的项中指定的数据块指针所指向的存储区可以用于写入新的输入数据,并且可以抛弃该数据块的当前内容。
[生成高速缓存组与控制数据]
现在参照流程图与序列图描述以下过程:生成上述的高速缓存组,并且控制高速缓存组中的数据。
参照图13与14,首先描述生成高速缓存组并且控制数据的过程。
生成高速缓存组用于协同地控制在每个高速缓存设备中存储的内容数据块。从LRU列表中将分别相应于这些数据块的项移除到删除未决列表。参照图13的流程图,现在描述生成高速缓存组的过程。
首先,在准备过程中,连接到网络的特定高速缓存设备注册对于高速缓存组成员的候选设备,即图13的步骤S101至S104。
在步骤S101,注册可能构成高速缓存组的高速缓存设备的信息。该信息包含诸如由例如管理员所选择的至少一个高速缓存设备的主机名称、IP地址、以及ICP端口号等注册信息。
然后,根据这些注册信息,确定确实能够构成高速缓存组的高速缓存设备。即,通过向在步骤S101中注册的每个高速缓存设备发送PING,测量高速缓存设备之间的RTT,并且选择许可RTT内的多个高速缓存设备。在步骤S104,根据在步骤S102的测量值与步骤S103中的判断,设立那些满足预定门限RTT的高速缓存设备作为邻近高速缓存设备。
每个高速缓存设备具有被设置为邻近高速缓存设备的高速缓存设备列表。该列表保存邻近高速缓存设备的主机名称、IP地址、以及ICP端口号,如上参照图6所述。
图14的[过程P]为相应于图13步骤S102至S104的数据通信序列。在图14的序列图中,高速缓存设备A主要执行该过程,高速缓存设备B、C、D相应于在图13所示步骤101中注册的高速缓存设备。
图14的[过程P]相应于测量RTT。高速缓存设备A通过向每个注册的高速缓存设备B、C、D发送PING,测量高速缓存设备之间的RTT,并且选择许可RTT内的多个高速缓存设备。
返回图13的流程图,进行以下描述。当生成图6所示邻近高速缓存设备列表时,每个高速缓存设备按预定间隔执行高速缓存替换,以在步骤S105判断在其自身的LRU列表中是否有需要去除的任何内容数据块。
当高速缓存设备判断有需要从LRU列表去除的数据块时,高速缓存设备行进到步骤S106,并且从LRU列表中抽取待去除的项。然后,在步骤S107,高速缓存设备判断是否在高速缓存组表中注册了相应于该项的内容。
高速缓存组表存储在每个所设立的高速缓存组中被协同控制的内容的标识符、构成每个高速缓存组的高速缓存设备的数目[N]、高速缓存组标识符(ID)、以及在高速缓存组成员列表中的成员号与相应IP地址,如上参照图8所述。在高速缓存组表中注册内容指在所设立的高速缓存组中协同地控制该内容。
当在步骤S107中发现待从LRU列表中去除的内容要在高速缓存组表中注册时,在所设立的高速缓存组中协同地控制该内容。在这种情况下,执行步骤S115与随后的步骤作为协同控制。以后将描述该过程的细节。
当在步骤S107中发现待从LRU列表中去除的内容不要在高速缓存组表中注册时,在步骤S108与随后的步骤中生成相应于待从LRU列表中去除的内容的新的高速缓存组。
在步骤S108,向每个高速缓存设备发送有关在上述步骤S104中设置的、门限RTT内的邻近高速缓存设备列表(参照图6)中的每个高速缓存设备是否能够针对待从LRU列表中去除的内容形成高速缓存组的查询消息。
该查询消息用于查询高速缓存设备是否具有相应于待从LRU列表中去除的项的内容,以及是否能够参加高速缓存组。在图14的序列图中,[过程Q]中的ICP_OP_QUERY相应于该查询消息。
在图13的步骤S109,高速缓存设备等待对于查询消息的响应,在步骤S110,判断响应是否指示可能形成组(命中),在步骤S111,在高速缓存组表(参照图8)中注册发送指示该高速缓存设备能够形成组(命中(HIT))的响应的高速缓存设备的数据,并且在步骤S112,在判定检查了来自所有组成员候选设备(在图6所示的邻近高速缓存设备列表中注册的高速缓存设备)的响应之后,完成暂时高速缓存组设立。
在图14的序列图中,响应于[过程Q]中的ICP_OP_QUERY(查询消息),能够形成组(命中)的高速缓存设备B、C向高速缓存设备A发送作为响应消息的ICP消息ICP_OP_HIT,并且不能够形成组(未命中(MISS))的高速缓存设备D向高速缓存设备A发送作为响应消息的ICP消息ICP_OP_MISS。在这种情况下,高速缓存设备A与高速缓存设备B、C形成高速缓存组。
在图13中处理流程的步骤S113,判断是否收到来自可以形成高速缓存组那么多的高速缓存设备的命中响应。例如,当从一个或多个高速缓存设备收到命中响应时,判定可以设立高速缓存组。当未从可以形成高速缓存组那么多的高速缓存设备收到命中响应时,该过程行进到S118,其中不设立高速缓存组,而是在空闲块列表中放入相应于从LRU列表中去除的项的项。在这种情况下,不在高速缓存组中协同地控制相应于该项的内容。
当在步骤S113判定收到来自可以形成高速缓存组那么多的高速缓存设备的命中响应时,在步骤S114,向那些发送回命中响应并且在高速缓存组表(参照图8)中将该信息注册为高速缓存组成员的高速缓存设备发送组配置信息。
组配置信息包括:构成高速缓存组的高速缓存设备数目(N)、作为构成高速缓存组的高速缓存设备(成员)标识符的组成员号(m)、以及在高速缓存组中处理的内容数据的内容标识符。相应于高速缓存设备的IP地址设置组成员号(m)。构成高速缓存组的每个高速缓存设备(成员)获取构成高速缓存组的所有其它高速缓存设备(成员)的、作为高速缓存设备(成员)标识符的组成员号(m)、以及相应于各个组成员号(m)的IP地址。
在14的序列图中,[过程R]中的ICP_OP_NOTIFY相应于发送组配置信息的过程。发送数据的格式符合以上参照图7描述的格式。如图8所示,每个发送组配置信息的高速缓存设备与接收组配置信息的高速缓存设备(这些高速缓存设备属于高速缓存组)在存储器中存储具有组配置信息的高速缓存组表作为其自身的控制信息。
步骤S115与随后的步骤为从LRU列表中去除内容的过程,该过程作为所设立的高速缓存组中的协同内容控制执行。
在步骤S115中,根据块偏移号C、高速缓存组的高速缓存设备数目N、以及分配给高速缓存组中高速缓存设备的高速缓存成员号m的每个值,每个高速缓存设备针对待从LRU列表中去除的项执行以下处理:
(1)计算C mod N;
(2)当C mod N=0时,V=N,以及
   当C mod N≠0时,V=(C mod N)。
(3)判断是否V=m。
当V=m时,高速缓存设备判定所设立的高速缓存组中的高速缓存设备自身需要存储内容。相应地,在步骤S116,该高速缓存设备从LRU列表中去除待删除的相应项,并且在删除未决列表中放入相应项,即,高速缓存设备不删除内容数据块,而是将其存储在存储器中,并且在删除未决列表中控制内容数据块。
当V≠m时,所设立的高速缓存组中的高速缓存设备自身不需要存储该内容。即,高速缓存设备判定另一个组成员存储数据块。相应地,在步骤S118,高速缓存设备从LRU列表中去除待删除的相应项,并且在空闲块列表中放入相应项。在这种情况下,高速缓存设备删除相应的数据块。虽然删除了数据块,但是另一高速缓存组成员存储该数据块,并且可以将所存储的数据块发送给终端。以后将描述该过程。
当由于在步骤S116中从LRU列表中去除项并且在删除未决列表中放入相应项而使删除未决列表的长度超过许可值(S117中的是)时,在步骤S118去除删除未决列表中的项,并且将相应项放入空闲块列表。
参照图15至17,现在解释当从终端向通过高速缓存组控制内容的高速缓存设备提交内容获取请求时的处理。
当在图5的步骤S201中高速缓存设备收到来自终端的内容获取请求时,在步骤S202,该高速缓存设备判断所请求的内容数据是否在高速缓存组表(参照图8)中注册。当所请求的内容数据未注册时,没有组控制该内容。由此,该高速缓存设备执行普通处理,即,当内容在高速缓存设备中存储时,高速缓存设备检索并发送该内容给终端,并且当内容未在高速缓存设备中存储时,高速缓存设备从内容服务器检索该内容,并且将所检索的内容发送给终端。
当所请求的内容数据在高速缓存组表(参照图8)中注册了时,内容由组控制。由此,在步骤S203,高速缓存设备从高速缓存组表(参照图8)中检索组成员的数目N以及高速缓存设备的成员号m1。
在步骤S204,通过根据来自终端的内容获取请求中的内容的偏移信息计算块偏移来获得块偏移号C。在步骤S205,根据高速缓存组的高速缓存设备数目N以及分配给高速缓存组中高速缓存设备的组成员号m1中的每个值,执行以下处理:
(1)计算C mod N;
(2)当C mod N=0时,V=N,以及
   当C mod N≠0时,V=(C mod N)。
(3)判断是否V=m1。
V=m1指请求内容存储在高速缓存设备中。由此,高速缓存设备行进到步骤S206,其中根据所请求的内容的名称、以及LRU列表或者删除未决列表中项中的块偏移号,高速缓存设备检索高速缓存设备自身中数据存储区域的信息。在步骤S207,高速缓存设备读取数据,验证读取的正常完成(S208),并且在步骤S209判断是否组ID(Gp)=0。
当由于某些成员从所设立的高速缓存组中撤出而不能维持所设立的高速缓存组时,通过更新高速缓存组表中的组ID(Gp),高速缓存设备将组ID(Gp)设置为0。当组ID(Gp)为0时,适用项指示由于多个成员从高速缓存组中撤出而不能形成高速缓存组。在步骤S210,高速缓存设备在LRU列表而非删除未决列表的头部放置项。
当组ID(Gp)不为0时,在步骤S211,高速缓存设备将相应项放置在删除未决列表的头部,这是因为访问了该数据块。
在步骤S212,高速缓存设备将所读取的数据发送给进行请求的终端,并且验证完成了发送指定大小的数据(S213)。当未完成发送时,在步骤S214更新块偏移号C(C=C+1)之后,通过重复步骤S205以及随后的处理,向终端发送内容。
在步骤S205,计算C mod N,并且根据高速缓存组的高速缓存设备数目N以及分配给高速缓存组中高速缓存设备的组成员号m1中的每个值,判断是否V=m1。当V=m1时,所请求的内容不在高速缓存设备自身中存储。由此,高速缓存设备行进到步骤S215,其中高速缓存设备从高速缓存组表(参照图8)中检索相应于求得值V的组成员(称为m2)。
在步骤S216中,高速缓存设备从高速缓存组表(参照图8)中检索相应于求得值V的组成员(称为m2)的IP地址。在步骤S217中,高速缓存设备判断所检索的IP地址是否为0.0.0.0。当所检索的IP地址为0.0.0.0时,该项用于从高速缓存组中撤出的成员。在这种情况下,高速缓存设备将该请求重定向至上游高速缓存设备或者内容服务器(S221)。
在步骤217中,当高速缓存设备判定所检索的IP地址不是0.0.0.0时,该项用于高速缓存组成员。高速缓存设备行进到步骤S218,其中高速缓存设备根据相应于高速缓存组成员(m2)的IP地址提交对于读取内容的请求(重定向请求)。
参照图16,现在描述收到重定向请求的高速缓存设备中的处理。在该处理中,高速缓存组的高速缓存设备响应对于从另一组成员读取内容的请求(重定向请求)。
当在步骤S301中高速缓存设备收到对于读取内容的请求(重定向请求)时,高速缓存设备行进到步骤S302,其中高速缓存设备根据所请求的内容的名称以及LRU列表或者删除未决列表的项中的块偏移号,检索高速缓存设备自身中的数据存储区域的信息。在步骤S303,高速缓存设备判断数据的可用性以及错误状态。当数据被删除或者存在错误状态时,在步骤S306,高速缓存设备向发送了对于读取内容的请求(重定向请求)的其它高速缓存设备发送指示错误的代码。
当在步骤S303判断数据的可用性以及错误状态时判定高速缓存设备存储数据并且可以读取该数据时,高速缓存设备读取步骤S304中所指定大小的数据,并且在步骤S305将所读取的数据与指示正常完成的代码发送给提交了对于读取数据的请求的其它高速缓存设备。
返回图15的处理流程,进行以下描述。当在步骤S219或S222高速缓存设备从重定向请求目的地收到响应时,高速缓存设备在步骤S220或S223判断是否已经正常读取了数据。在是的情况下,高速缓存设备行进到步骤S209,其中高速缓存设备执行随后的处理,例如移动列表中的项,以及向终端发送所检索的内容。当没有正常读取数据时,高速缓存设备终止该处理,从而导致非正常结束。
在高速缓存设备终止处理从而导致非正常结束之前,高速缓存设备可以执行以下处理以获得目标数据:在高速缓存设备收到错误响应之后,当存在作为重定向目的地的上游高速缓存设备(即在至服务器的路径上并且比服务器更接近该高速缓存设备)时,高速缓存设备将该请求重定向到上游高速缓存设备,当没有此类上游高速缓存设备时,将该请求直接重定向到内容服务器。
参照图17,现在描述在上述过程中高速缓存设备之间数据通信序列的大概。图17从左端开始包含:
发送内容获取请求的终端,
从终端接收内容获取请求的高速缓存设备A,
与高速缓存设备A形成高速缓存组的高速缓存设备1,
与高速缓存设备A形成高速缓存组的高速缓存设备2,
对于高速缓存设备A的上游高速缓存设备或者服务器。
[过程S]为当高速缓存设备A从作为高速缓存组成员的高速缓存设备1与2中检索终端请求的内容数据、并且将其发送给终端时的处理序列。在该序列中,接收指定URL的内容获取请求(HTTP GET(URL))的高速缓存设备根据上述的计算C mod N、并且确定是否V=m1、向被认为存储了相应于该内容的数据块的高速缓存设备1与2、发送内容获取请求(HTTP GET(URL)Range:bytes=aa-bb);并且检索该内容的数据块(HTTP 206)。高速缓存设备A向终端发送所检索内容(HTTP OK)。
[过程T]为当高速缓存设备A不能从作为高速缓存组成员的高速缓存设备1与2中检索终端请求的内容数据时的处理序列。在该序列中,接收指定URL的内容获取请求(HTTP GET(URL))的高速缓存设备根据上述的计算C modN、并且确定是否V=m1、向被认为存储了相应于该内容的数据块的高速缓存设备1发送内容获取请求(HTTP GET(URL)Range:bytes=aa-bb);并且收到指示不能检索内容数据块的响应(HTTP 404(Not Found)或者HTTP410(Gone))。
高速缓存设备A向高速缓存设备A的上游高速缓存设备或者服务器发送内容获取请求(HTTP GET(URL)Range:bytes=aa-bb),检索内容数据块(HTTP206),并且向终端发送所检索的内容(HTTP OK以及所检索的内容数据)。
在如[过程T]中那样无法从高速缓存组成员检索到预定内容的情况下,高速缓存设备取消组,这是因为高速缓存设备继续作为高速缓存组成员是无意义的。该过程为[过程U]。
通过向构成组的高速缓存设备1与2发送取消组的通知(ICP_OP_NOTIFY),高速缓存设备A取消组。随后,高速缓存设备A、1、2从高速缓存组表中删除相应的组信息。
在以上实施例中,以超文本传送协议(HTTP)描述了重定向序列。重定向序列也可以其它协议描述,例如文件传送协议(FTP),以及实时流协议(RTSP)。另外,高速缓存设备之间的通信协议不限于ICP,而是可以通过扩展设备之间的普通通信手段来实现。另外,高速缓存设备之间的通信协议不限于ICP。
现在描述以下情况:构成高速缓存组的组成员m(m=1,2,...,N,其中N为组成员数目)从高速缓存组撤出。
在当A mod N=0时V=N且当A mod N≠0时V=(A mod N)的条件下,当m≤V时,S=(A+N-1)/N,并且当m>V时,S=A/N,其中A为针对其形成高速缓存组的内容的数据块的总数,S为作为组成员的高速缓存设备必须存储的数据块(当V=m时的数据块)的数目。
希望高速缓存设备无限地存储S个数据块。但是,在有限存储资源下,通过重复高速缓存替换,某些数据块项可能被从删除未决列表中去除,即使当作为组成员的高速缓存设备必须存储这些数据块时也如此。在这些数据块项被以这种方式从删除未决列表中去除的情况下,即使当作为组成员的高速缓存设备必须存储某些数据块时,也可以采用以下安排:计算作为组成员的高速缓存设备必须存储的数据块中剩余数据块的比例:(S-D)/S×100(%),其中D为作为组成员的高速缓存设备一般必须存储的、要被删除的这些数据块的数目。当剩余数据块的比例与高速缓存设备从组中撤出的门限值T(%)之间的关系由以下表示时:
(S-D)/S×100(%)<T(%)(0≤T<100),
该高速缓存设备向构成针对目标内容的高速缓存组的其它高速缓存成员宣布该高速缓存设备将从该组中撤出。
当高速缓存设备检测到从高速缓存组中撤出时,该高速缓存设备从其自身高速缓存组表中去除相应于目标内容的项,并且发送具有标志(0x10000000(ICP_FLAG_GOUP_DESERTED)作为示范性例子)的指示该状态开的ICP_OP_NOTIFY消息到构成针对目标内容的高速缓存组的所有组成员,如图17的[过程U]所示。
另外,每个被通知的高速缓存设备的高速缓存组表中的相应IP地址更新为0.0.0.0,从而这些高速缓存设备的每一个都识别出该高速缓存设备从该高速缓存组中撤出。
在这种情况下,可以原样存储其它信息,例如成员数目,从而可以保持与没有成员撤出的情况下一样的算法。当组成员需要访问一般在撤出的组成员中存储的数据块时,该组成员访问存储原始数据的服务器或者上游高速缓存设备。
当除撤出的成员之外构成高速缓存组的成员的数目变为1时,无法维持高速缓存组。由此,为了完全去除组,从唯一剩余的高速缓存设备的高速缓存组表中去除相应于目标内容的项,并且初始化(清零)删除未决列表中的项的字段Gp,其每个项指向属于目标内容的每个数据块。
[多级删除未决列表]
现在描述以下实施例:高速缓存设备包含作为数据控制列表生成的多级删除未决列表。
在以上实施例中,高速缓存设备包含LRU列表、指示高速缓存中空闲区域块的空闲块列表、以及删除未决列表,删除未决列表用于控制在LRU列表中要删除的那些数据块中暂时设置为删除未决状态的数据块,如图9所示。这些列表的每一个都包含顺序项。
如图18所示,根据该实施例的高速缓存设备包含多个删除未决列表。高速缓存设备包含:LRU列表(a),具有按照使用频率顺序的项;多个删除未决列表(b1)与(b2),包含相应于针对其形成高速缓存组的各个内容块的项;以及空闲块列表(c),具有空闲区域块的指针信息。
根据存储内容数据块的优先级将内容数据块分为两组,并且将其分别放入删除未决列表(b1)与(b2)中。在以下描述的情况中,删除未决列表(b1)包含相应于以高优先级存储的内容的项,删除未决列表(b2)包含相应于以低优先级存储的内容的项。在这种情况下,设立两个删除未决列表。可替换地,可以根据存储内容数据的优先级设立三个或更多个删除未决列表。
有几种方式根据数据块的重要性来判断存储内容数据的优先级;例如,相应于最后传送的内容的数据块被判定为具有较高优先级,或者在内容数据头部或者在场景变换之后在特定部分的数据块被判定为具有较高优先级。通过现有的软件可以检测内容数据的头部与场景变换。
现在描述在列表中移动项。例如,在高速缓存设备中,当收到对于写入新数据块的请求时,相应于在空闲块列表(c)起始项501中设置的数据块指针,将该新数据块写入数据存储区域内的数据存储区,并且在图10所示LRU列表的起始项502中设置所写入数据块的信息。
当LRU列表的长度因此超过许可长度时,去除LRU列表的结尾项503,并且将相应项放入删除未决列表(b1)或(b2),或者空闲块列表(c)。如上所述,通过根据来自计算C mod N的值V判断是存储还是删除相应于项的内容数据块来确定将相应项放入删除未决列表还是空闲块列表。
当作为以上确定的结果确定要去除LRU列表结尾项503、并且将相应项放入删除未决列表之一时,根据存储数据块的优先级,相应于具有高优先级的数据块的项放入删除未决列表(b1)作为结尾项504,相应于具有低优先级的数据块的项放入删除未决列表(b2)作为结尾项505。
当在向删除未决列表(b1)添加新项时删除未决列表(b1)的长度超过预定长度时,相应于删除未决列表(b1)的起始项511的项放入删除未决列表(b2)作为结尾项505。
类似地,当在向删除未决列表(b2)添加新项时删除未决列表(b2)的长度超过预定长度时,相应于删除未决列表(b2)的起始项512的项输入空闲块列表作为结尾项521。
当根据空闲块列表预定的缓冲区容量不足以存储新数据时,通过去除LRU列表或删除未决列表(b2)中的项并且在空闲块列表中放入相应项,即通过删除数据块来确保缓冲区容量。
由置于空闲块列表中的项指定的数据块指针所指向的存储区可以用于写入新的输入数据,并且可以抛弃该数据块的当前内容。
参照图19,现在描述每个多级删除未决列表的结构。如上所述,删除未决列表用于控制在LRU列表中要删除的那些数据块中暂时设置为删除未决状态的数据块。
图19显示图18所示每个删除未决列表(b1)与(b2)的结构。如图19所示,相应于设置为删除未决状态的数据块生成高速缓存设备所拥有的删除未决列表630。相应于设置为删除未决状态的各个数据块保持列表数据记录(项)(a)至(p)。图19显示删除未决列表的内部结构,删除未决列表的每一项都包含:指向数据块的指针631、内容标识符632、块偏移633、所设立的高速缓存组的组标识符(GP)634、删除未决列表的优先级索引(优先级)635、指向同一删除未决列表中前一个列表数据记录(项)的指针636、以及指向同一删除未决列表中后一个列表数据记录(项)的指针637。即,多级删除未决列表630还包含删除未决列表的优先级索引(优先级)635。
参照图20,将描述以下过程:生成高速缓存组并且控制包含多级删除未决列表的高速缓存设备中的数据。
图20中的步骤S501至S515与上述图13处理流程的步骤S101至S115相同,因此省略这些步骤的描述。
在图20的步骤S515中,根据块偏移号C、高速缓存组的高速缓存设备数目N、以及分配给高速缓存组中高速缓存设备的高速缓存成员号m的每个值,每个高速缓存设备针对待从LRU列表中去除的项执行以下处理:计算C modN;当C mod N=0时,V=N,以及当C mod N≠0时,V=(C mod N);以及判断是否V=m。当V≠m时,高速缓存设备行进到步骤S523,其中在空闲块列表中控制数据块。当V=m时,在高速缓存设备中以删除未决状态控制数据块。
在后一种情况下,在步骤S516,确定存储设置为删除未决状态的数据块的优先级。根据预定标准确定优先级;例如,相应于最后传送的内容的数据块被判定为具有较高优先级,或者在内容数据头部或者在场景变换之后在特定部分的数据块被判定为具有较高优先级。
当判定数据块以高优先级存储时,高速缓存设备行进到步骤S517,其中数据块的相应项放入用于以高优先级存储的内容的删除未决列表(图18中的(b1))。当判定数据块以低优先级存储时,高速缓存设备行进到步骤S520,其中数据块的相应项放入用于以低优先级存储的内容的删除未决列表(图18中的(b2))。
在步骤S518,高速缓存设备判断是否需要将项从用于以高优先级存储的内容的删除未决列表中去除、并且将相应项放入用于以低优先级存储的内容的删除未决列表。当高速缓存设备判定需要如此时,在步骤S519,将项从用于以高优先级存储的内容的删除未决列表中去除、并且将相应项放入用于以低优先级存储的内容的删除未决列表。
在步骤S521,高速缓存设备判断是否需要将项从用于以低优先级存储的内容的删除未决列表中去除、并且将相应项放入空闲块列表。当高速缓存设备判定需要如此时,在步骤S522,将项从用于以低优先级存储的内容的删除未决列表中去除、并且将相应项放入空闲块列表。
根据以上过程执行使用多级删除未决列表的数据控制。
[高速缓存设备的配置]
现在将解释以上实施例中描述的高速缓存设备的典型硬件配置。
图21显示包含作为控制部件的中央处理单元(CPU)的高速缓存设备。图21所示的配置只用于说明目的,高速缓存设备也可以具有与现在描述的配置不同的硬件配置。
现在描述图21所示的配置。CPU 701为运行各种程序与操作***(OS)的处理器。只读存储器(ROM)702存储由CPU 701运行的程序以及作为计算参数的固定数据。随机存取存储器(RAM)703用做由CPU 701运行的程序以及在执行程序过程中变化的参数的存储区域与工作区域,并且作为邻近高速缓存设备列表与高速缓存组表的存储区域。
CPU 701、ROM 702、RAM 703连接到通过其传送数据的CPU总线711,并且通过总线桥704连接到输入/输出(I/O)总线712。盘片接口705与网络接口707与708连接到I/O总线712。
盘片接口705作为诸如硬盘、软盘、密致盘(CD)ROM、数字多用途盘(DVD)、以及磁盘等盘片706的接口。盘片706存储被高速缓存的数据。在CPU 701的控制下,从盘片706中检索必要数据,并且必要数据存储在盘片706中。
网络接口707作为外部网络接口,用于发送并接收去往/来自的连接到网络的服务器以及其它高速缓存设备的数据。网络接口708作为内部网络接口,用于发送并接收去往/来自连接到网络的终端的数据。
在本说明书中描述的处理可以用硬件、软件、或者软硬件结合实现。当处理序列由软件执行时,将构成该软件的程序以以下方式分发到包含专有硬件的、内置该程序的计算机、安装了执行各种功能的各种程序的通用个人计算机等等:可以将该程序记录在可以从其读取程序的记录介质中,例如软盘与CD-ROM,并且分发给这些计算机;或者程序可以通过网络(例如互联网)下载到这些计算机。
具体地讲,可以将程序预先存储在作为记录介质的硬盘或者ROM中。可替换地,可以将程序暂时或者永久存储(记录)在可移动记录介质中,例如软盘、CD-ROM、磁光盘(MO)盘片、DVD、磁盘、或者半导体存储器。可以提供这种可移动记录介质作为所谓的封装软件。
可以从上述可移动记录介质将程序安装在计算机中。可替换地,可以将程序无线地或者通过网络(例如局域网(LAN)或互联网)从下载站点传送到计算机。所传送的程序可以安装在接收该程序的计算机的记录介质,例如内置硬盘中。
说明书中描述的各种处理可以说明书描述的顺序按时间顺序执行,或者可替换地,根据执行这些处理的设备的处理能力或者根据需要,并行或者分别执行。说明书中所指的名词“***”指逻辑组合的多个设备,并且这些设备不一定装在同一外壳内。
以上参照具体实施例描述了本发明。本领域技术人员显然可以在不脱离本发明的精神与范围的前提下修改这些实施例或以替代物替代它们。即,上面公开本发明只为说明目的,而不应被作为限制性的。为了理解本发明的精神,应该参照权利要求。
工业实用性
根据本发明的***,当在通过网络相互连接的高速缓存设备中执行高速缓存替换时,执行数据控制以使得高速缓存组中每个高速缓存设备(其包含有关于设置为删除未决状态的数据块的列表)中设置为删除未决状态的数据块与高速缓存组中其它高速缓存设备中的不同。由此,与每个高速缓存独立地控制高速缓存替换的情况相比,可以高效地使用存储区域,并且响应于来自终端的数据获取请求,收集在多个高速缓存设备中存储的数据块以发送到终端,由此有利于网络流量,并且提高了高速缓存设备的命中率。
另外,当根据本发明高速缓存设备包含多级删除未决列表时,以高优先级存储的数据未被删除而是保持的可能性较高,由此进一步提高了高速缓存命中率。

Claims (15)

1.一种高速缓存设备,用于存储通过网络接收的数据作为被高速缓存的数据,并且响应于来自终端的数据请求、检索被高速缓存的数据,以向该终端发送被高速缓存的数据,该高速缓存设备包含:
高速缓存组表,包含有关于由该高速缓存设备与连接到网络的其它高速缓存设备组成的高速缓存组的组配置信息,对于该高速缓存组执行协同的内容控制;以及
控制部件,用于根据在高速缓存组表中包含的信息,在构成内容的数据块中,确定哪些数据块处于删除未决状态,所述数据块为在高速缓存设备中存储的数据,并且用于根据由包含相应于处于删除未决状态的数据块的信息的项构成的删除未决列表,控制处于删除未决状态的数据块。
2.如权利要求1所述的高速缓存设备,其中所述高速缓存组表包含由高速缓存组协同控制的内容的标识符、高速缓存组的高速缓存设备数目N、以及分配给各个高速缓存设备的组成员号m;以及
所述控制部件确定在构成被协同控制的内容的数据块中,哪些数据块处于删除未决状态,所述数据块存储在高速缓存设备中,即,
所述控制部件根据要进行确定的数据块的、作为偏移信息的块偏移号C,从数据块所属的内容的起始数据块开始执行以下过程:
计算C mod N;
当C mod N=0时,V=N,以及
当C mod N≠0时,V=(C mod N);以及
判断是否V=m,以及
当V=m时,判定当前数据块为处于删除未决状态的数据块之一。
3.如权利要求1所述的高速缓存设备,其中
所述控制部件通过在高速缓存设备之间交换消息来判断由高速缓存组进行协同控制是否适用于相应于要从LRU列表中去除的项的数据块,所述LRU列表作为用于控制在存储部件中存储的数据块的列表;以及
当判定协同控制适用时,所述控制部件生成高速缓存组表。
4.如权利要求1所述的高速缓存设备,其中,
对于相应于要从作为用于控制在存储部件中存储的数据块的列表的LRU列表中去除的项的数据块,
所述控制部件根据在高速缓存组表中包含的信息,在构成内容的数据块中,确定哪些数据块处于删除未决状态,所述数据块为在高速缓存设备中存储的数据;并且所述控制部件控制空闲块列表中不同于处于删除未决状态的数据块的数据块,所述空闲块列表作为用于控制可以删除的数据块的列表。
5.如权利要求1所述的高速缓存设备,其中所述删除未决列表包含相应于优先级的多个删除未决列表,所述数据块按优先级顺序存储;以及
所述控制部件判断存储每个数据块的优先级,并且根据该判断在从多个删除未决列表中选择的一个列表中注册相应于要受到控制的数据块的项。
6.如权利要求1所述的高速缓存设备,其中,当来自终端的数据请求是用于获取在由高速缓存组协同控制的内容中包含的数据块时,
所述控制部件判断高速缓存组的哪个高速缓存设备存储所请求的数据块,并且根据该判断,从该高速缓存设备自身或者高速缓存组的其它高速缓存设备检索该数据块。
7.如权利要求6所述的高速缓存设备,其中所述高速缓存组表包含由高速缓存组协同控制的内容的标识符、高速缓存组的高速缓存设备数目N、以及分配给各个高速缓存设备的组成员号m;以及
所述控制部件根据所请求的数据块的、作为偏移信息的块偏移号C,从数据块所属的内容的起始数据块开始执行以下过程:
计算C mod N;
当C mod N=0时,V=N,以及
当C mod N≠0时,V=(C mod N);以及
V=m,以及
从具有所求得的组成员号m的高速缓存设备检索该数据块。
8.一种控制高速缓存设备中被高速缓存的数据的方法,所述高速缓存设备用于存储通过网络接收的数据作为被高速缓存的数据,并且响应于来自终端的数据请求、检索被高速缓存的数据,以向该终端发送被高速缓存的数据,该方法包含以下步骤:
根据在高速缓存组表中存储的组配置信息,在构成内容的数据块中,确定哪些数据块处于删除未决状态,所述数据块为在高速缓存设备中存储的数据,所述组配置信息有关于由该高速缓存设备与连接到网络的其它高速缓存设备组成的高速缓存组,对于该高速缓存组执行协同的内容控制;
根据由包含相应于处于删除未决状态的数据块的信息的项构成的删除未决列表,控制处于删除未决状态的数据块。
9.如权利要求8所述的方法,其中所述高速缓存组表包含由高速缓存组协同控制的内容的标识符、高速缓存组的高速缓存设备数目N、以及分配给各个高速缓存设备的组成员号m;以及
在确定哪些数据块处于删除未决状态的步骤中,在构成被协同控制的内容的数据块中,确定处于删除未决状态的数据块,所述数据块存储在高速缓存设备中,即,
根据要进行确定的数据块的、作为偏移信息的块偏移号C,从数据块所属的内容的起始数据块开始执行以下过程:
计算C mod N;
当C mod N=0时,V=N,以及
当C mod N≠0时,V=(C mod N);以及
判断是否V=m,以及
当V=m时,判定当前数据块为处于删除未决状态的数据块之一。
10.如权利要求8所述的方法,还包含以下步骤:
通过在高速缓存设备之间交换消息来判断由高速缓存组进行协同控制是否适用于相应于要从LRU列表中去除的项的数据块,所述LRU列表作为用于控制在存储部件中存储的数据块的列表;以及当判定协同控制适用时,生成高速缓存组表。
11.如权利要求8所述的方法,还包含以下步骤:
对于相应于要从作为用于控制在存储部件中存储的数据块的列表的LRU列表中去除的项的数据块,根据在高速缓存组表中包含的信息,在构成内容的数据块中,确定哪些数据块处于删除未决状态,所述数据块为在高速缓存设备中存储的数据;并且控制空闲块列表中不同于处于删除未决状态的数据块的数据块,所述空闲块列表作为用于控制可以删除的数据块的列表。
12.如权利要求8所述的方法,其中所述删除未决列表包含相应于优先级的多个删除未决列表,所述数据块按优先级顺序存储;并且该方法还包含以下步骤:
判断存储每个数据块的优先级,并且根据该判断在从多个删除未决列表中选择的一个列表中注册相应于要受到控制的数据块的项。
13.如权利要求8所述的方法,还包含以下步骤:
当来自终端的数据请求是用于获取在由高速缓存组协同控制的内容中包含的数据块时,判断高速缓存组的哪个高速缓存设备存储所请求的数据块,并且根据该判断,从该高速缓存设备自身或者高速缓存组的其它高速缓存设备检索该数据块。
14.如权利要求13所述的方法,其中所述高速缓存组表包含由高速缓存组协同控制的内容的标识符、高速缓存组的高速缓存设备数目N、以及分配给各个高速缓存设备的组成员号m;以及
在检索该数据块的步骤中,根据所请求的数据块的、作为偏移信息的块偏移号C,从数据块所属的内容的起始数据块开始执行以下过程:
计算C mod N;
当C mod N=0时,V=N,以及
当C mod N≠0时,V=(C mod N);以及
V=m,以及
从具有所求得的组成员号m的高速缓存设备检索数据块。
15.一种控制高速缓存设备中被高速缓存的数据的计算机程序,所述高速缓存设备用于存储通过网络接收的数据作为被高速缓存的数据,并且响应于来自终端的数据请求、检索被高速缓存的数据,以向该终端发送被高速缓存的数据,该计算机程序包含以下步骤:
根据在高速缓存组表中存储的组配置信息,在构成内容的数据块中,确定哪些数据块处于删除未决状态,所述数据块为在高速缓存设备中存储的数据,所述组配置信息有关于由该高速缓存设备与连接到网络的其它高速缓存设备组成的高速缓存组,对于该高速缓存组执行协同的内容控制;
根据由包含相应于处于删除未决状态的数据块的信息的项构成的删除未决列表,控制处于删除未决状态的数据块。
CNB038208652A 2002-07-04 2003-06-24 高速缓存设备和高速缓存数据管理方法 Expired - Fee Related CN100383758C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002195654A JP4244572B2 (ja) 2002-07-04 2002-07-04 キャッシュ装置、およびキャッシュデータ管理方法、並びにコンピュータ・プログラム
JP195654/2002 2002-07-04

Publications (2)

Publication Number Publication Date
CN1679004A true CN1679004A (zh) 2005-10-05
CN100383758C CN100383758C (zh) 2008-04-23

Family

ID=30112345

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038208652A Expired - Fee Related CN100383758C (zh) 2002-07-04 2003-06-24 高速缓存设备和高速缓存数据管理方法

Country Status (4)

Country Link
US (1) US7287136B2 (zh)
JP (1) JP4244572B2 (zh)
CN (1) CN100383758C (zh)
WO (1) WO2004006101A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100396059C (zh) * 2006-03-03 2008-06-18 清华大学 ***式网络处理器控制信息高速缓冲存储器
CN103154910A (zh) * 2010-10-25 2013-06-12 马维尔国际贸易有限公司 群集高速缓冲存储器相干性协议
CN103412884A (zh) * 2013-07-18 2013-11-27 华中科技大学 一种异构存储介质下嵌入式数据库的管理方法
CN104933187A (zh) * 2015-07-06 2015-09-23 张兆琦 一种用于操作***或者应用程序的临时文件管理方法
CN105245562A (zh) * 2014-07-04 2016-01-13 汤姆逊许可公司 操作高速缓存器的方法以及对应的高速缓存器
CN106227679A (zh) * 2016-07-25 2016-12-14 北京邮电大学 一种数据缓存替换方法及装置
CN107079181A (zh) * 2014-11-07 2017-08-18 高通股份有限公司 用于无线显示平台的协作分布式/非结构化服务管理框架
CN107430551A (zh) * 2015-12-01 2017-12-01 华为技术有限公司 数据缓存方法、存储控制装置、及存储设备
CN107506314A (zh) * 2016-06-14 2017-12-22 伊姆西公司 用于管理存储***的方法和装置

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101311836B1 (ko) * 2003-11-04 2013-09-27 톰슨 라이센싱 서비스를 다운로딩하기 위한 핫 스폿에서의 캐시 서버
JP4416603B2 (ja) * 2004-08-20 2010-02-17 キヤノン株式会社 画像処理装置及び画像処理装置の制御方法
US7499996B1 (en) * 2004-12-22 2009-03-03 Google Inc. Systems and methods for detecting a memory condition and providing an alert
US20080126352A1 (en) * 2006-09-27 2008-05-29 Rockwell Automation Technologies, Inc. Client side state cache for industrial control systems
US8615635B2 (en) * 2007-01-05 2013-12-24 Sony Corporation Database management methodology
US8087027B2 (en) * 2007-03-29 2011-12-27 International Business Machines Corporation Computer program product and system for deferring the deletion of control blocks
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8321568B2 (en) * 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8073940B1 (en) 2008-11-17 2011-12-06 Amazon Technologies, Inc. Managing content delivery network service providers
US8782143B2 (en) * 2008-12-17 2014-07-15 Adobe Systems Incorporated Disk management
US20100241726A1 (en) * 2009-03-23 2010-09-23 Riverbed Technology, Inc. Virtualized Data Storage Over Wide-Area Networks
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US9131004B2 (en) * 2009-04-26 2015-09-08 Jeffrey Alan Carley Method and apparatus for network address resolution
US9076239B2 (en) 2009-04-30 2015-07-07 Stmicroelectronics S.R.L. Method and systems for thumbnail generation, and corresponding computer program product
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
CN102025750A (zh) * 2009-09-15 2011-04-20 天津七所信息技术有限公司 网络缓存代理服务***
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
CN101707684B (zh) * 2009-10-14 2014-04-30 北京东方广视科技股份有限公司 一种Cache调度的方法、设备及***
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US8898181B2 (en) * 2010-06-22 2014-11-25 Microsoft Corporation Subscription for integrating external data from external system
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US10097398B1 (en) 2010-09-28 2018-10-09 Amazon Technologies, Inc. Point of presence management in request routing
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
WO2012047551A1 (en) * 2010-10-06 2012-04-12 Marvell World Trade Ltd. Distributed cache coherency protocol
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US9691068B1 (en) * 2011-12-15 2017-06-27 Amazon Technologies, Inc. Public-domain analyzer
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US20140089778A1 (en) * 2012-09-24 2014-03-27 Amazon Technologies, Inc Progressive Image Rendering Utilizing Data URI Enhancements
US9274954B1 (en) * 2012-12-18 2016-03-01 Netapp, Inc. Caching data using multiple cache devices
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US9893971B1 (en) * 2012-12-31 2018-02-13 Juniper Networks, Inc. Variable timeouts for network device management queries
US9384208B2 (en) * 2013-01-22 2016-07-05 Go Daddy Operating Company, LLC Configuring a cached website file removal using a pulled data list
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
CN104252391B (zh) * 2013-06-28 2017-09-12 国际商业机器公司 用于在分布式计算***中管理多个作业的方法和装置
CN104580268A (zh) * 2013-10-09 2015-04-29 南京中兴新软件有限责任公司 文件数据的传输方法及装置
US10033627B1 (en) 2014-12-18 2018-07-24 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10091096B1 (en) 2014-12-18 2018-10-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US12026095B2 (en) * 2014-12-30 2024-07-02 Arteris, Inc. Cache coherent system implementing victim buffers
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US10097566B1 (en) 2015-07-31 2018-10-09 Amazon Technologies, Inc. Identifying targets of network attacks
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10049051B1 (en) 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
KR102610846B1 (ko) * 2016-05-13 2023-12-07 한국전자통신연구원 고속 분산 저장 장치 및 방법
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10469513B2 (en) 2016-10-05 2019-11-05 Amazon Technologies, Inc. Encrypted network addresses
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US10547876B2 (en) * 2017-02-08 2020-01-28 Nanning Fugui Precision Industrial Co., Ltd. Video cache rule generation system and method
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
JP6638145B2 (ja) * 2017-07-14 2020-01-29 国立大学法人電気通信大学 ネットワークシステム、ノード装置、キャッシュ方法及びプログラム
CN107463398B (zh) * 2017-07-21 2018-08-17 腾讯科技(深圳)有限公司 游戏渲染方法、装置、存储设备及终端
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
US10592418B2 (en) * 2017-10-27 2020-03-17 Dell Products, L.P. Cache sharing in virtual clusters
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US20190303037A1 (en) * 2018-03-30 2019-10-03 Ca, Inc. Using sequential read intention to increase data buffer reuse
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
CN112738148B (zh) * 2019-10-28 2024-05-14 中兴通讯股份有限公司 缓存内容的批量删除方法、装置、设备和可读存储介质
JP2023513453A (ja) 2020-01-26 2023-03-31 バルコ・ナムローゼ・フエンノートシャップ 同期ローカルルームとリモート共有
TWI751580B (zh) * 2020-06-10 2022-01-01 財團法人工業技術研究院 儲存空間暫存檔案的管理方法及用於儲存多個暫存檔案的記錄裝置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5848241A (en) * 1996-01-11 1998-12-08 Openframe Corporation Ltd. Resource sharing facility functions as a controller for secondary storage device and is accessible to all computers via inter system links
JPH10222411A (ja) * 1997-02-05 1998-08-21 Nippon Telegr & Teleph Corp <Ntt> プロキシキャッシュサーバ制御方法及びプロキシキャッシュサーバ
US6073129A (en) * 1997-12-29 2000-06-06 Bull Hn Information Systems Inc. Method and apparatus for improving the performance of a database management system through a central cache mechanism
JP3463803B2 (ja) 1999-11-09 2003-11-05 松下電器産業株式会社 クラスタサーバ装置
JP4505977B2 (ja) * 2000-11-10 2010-07-21 ソニー株式会社 データ蓄積装置およびその方法、ならびに記録媒体
US7136885B2 (en) * 2002-12-20 2006-11-14 International Business Machines Corporation Free space management

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100396059C (zh) * 2006-03-03 2008-06-18 清华大学 ***式网络处理器控制信息高速缓冲存储器
CN103154910A (zh) * 2010-10-25 2013-06-12 马维尔国际贸易有限公司 群集高速缓冲存储器相干性协议
CN103412884B (zh) * 2013-07-18 2016-12-28 华中科技大学 一种异构存储介质下嵌入式数据库的管理方法
CN103412884A (zh) * 2013-07-18 2013-11-27 华中科技大学 一种异构存储介质下嵌入式数据库的管理方法
CN105245562A (zh) * 2014-07-04 2016-01-13 汤姆逊许可公司 操作高速缓存器的方法以及对应的高速缓存器
CN107079181A (zh) * 2014-11-07 2017-08-18 高通股份有限公司 用于无线显示平台的协作分布式/非结构化服务管理框架
US10540320B2 (en) 2015-07-06 2020-01-21 Zhaoqi Zhang Temporary file management method for operating system or applications
CN104933187B (zh) * 2015-07-06 2019-02-01 张兆琦 一种用于操作***或者应用程序的临时文件管理方法
CN104933187A (zh) * 2015-07-06 2015-09-23 张兆琦 一种用于操作***或者应用程序的临时文件管理方法
CN107430551A (zh) * 2015-12-01 2017-12-01 华为技术有限公司 数据缓存方法、存储控制装置、及存储设备
CN107430551B (zh) * 2015-12-01 2020-10-23 华为技术有限公司 数据缓存方法、存储控制装置、及存储设备
CN107506314A (zh) * 2016-06-14 2017-12-22 伊姆西公司 用于管理存储***的方法和装置
CN107506314B (zh) * 2016-06-14 2021-05-28 伊姆西Ip控股有限责任公司 用于管理存储***的方法和装置
US11281377B2 (en) 2016-06-14 2022-03-22 EMC IP Holding Company LLC Method and apparatus for managing storage system
CN106227679A (zh) * 2016-07-25 2016-12-14 北京邮电大学 一种数据缓存替换方法及装置
CN106227679B (zh) * 2016-07-25 2018-12-28 北京邮电大学 一种数据缓存替换方法及装置

Also Published As

Publication number Publication date
JP4244572B2 (ja) 2009-03-25
US20050172080A1 (en) 2005-08-04
CN100383758C (zh) 2008-04-23
JP2004038627A (ja) 2004-02-05
WO2004006101A1 (ja) 2004-01-15
US7287136B2 (en) 2007-10-23

Similar Documents

Publication Publication Date Title
CN1679004A (zh) 高速缓存设备、高速缓存数据管理方法和计算机程序
CN100336352C (zh) 内容发布***、描述数据发布设备和内容发布方法
CN1299222C (zh) 存在管理的实现
CN1222902C (zh) 通信网中的方法和设备
CN1268104C (zh) 设置防火墙的方法和设备
CN1450765A (zh) 服务器负载平衡***、装置以及内容管理装置
CN101031918A (zh) 节点设备、共享信息更新方法、共享信息存储方法以及程序
CN1878599A (zh) 游戏装置、游戏方法以及游戏程序
CN1741005A (zh) 信息处理***、信息处理方法和其使用的计算机程序
CN1396568A (zh) 数字作品保护***、记录媒体装置、发送装置和重放装置
CN1928861A (zh) 用于进行项目共享的即时通信客户机和方法
CN1947106A (zh) 通知方法、连接装置、通信方法以及程序
CN1711784A (zh) 用于发送sms以及文本消息的***和方法
CN1756196A (zh) 设置管理***和设置管理程序
CN1291747A (zh) 高速缓存设备及其使用方法
CN1111795C (zh) 利用网络的信息分发***
CN1835505A (zh) 会话中继装置
CN1801727A (zh) 一种网络服务信息处理***及方法
CN1930834A (zh) 通信***、信息处理***、信息处理装置、隧道管理装置、信息处理方法、隧道管理方法及程序
CN1894890A (zh) 在因特网协议网络中的虚拟环上通信的***与方法
CN1416276A (zh) 中间数据接收装置、方法、程序和记录媒体以及发送装置、传输方法
CN1838642A (zh) 利用即时消息***实现问答业务的方法及***
CN1890624A (zh) 电子装置及其控制方法、主机装置及其控制方法
CN1290026C (zh) 信息提供***和信息服务设备
CN1265597C (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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080423