CN108989373B - 访问数据的方法和装置 - Google Patents
访问数据的方法和装置 Download PDFInfo
- Publication number
- CN108989373B CN108989373B CN201710409582.2A CN201710409582A CN108989373B CN 108989373 B CN108989373 B CN 108989373B CN 201710409582 A CN201710409582 A CN 201710409582A CN 108989373 B CN108989373 B CN 108989373B
- Authority
- CN
- China
- Prior art keywords
- data
- access frequency
- server
- cache
- cache server
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 87
- 230000011664 signaling Effects 0.000 claims description 34
- 238000012545 processing Methods 0.000 claims description 20
- 239000002699 waste material Substances 0.000 abstract description 10
- 230000015654 memory Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 235000019633 pungent taste Nutrition 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
- H04L47/6235—Variable service order
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6245—Modifications to standard FIFO or LIFO
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种访问数据的方法和装置,能够减少存储资源的浪费。该方法包括:第一缓存服务器向第二缓存服务器发送第一访问请求,第一访问请求用于请求第一数据,第一访问请求来自第一边缘服务器;第一缓存服务器接收第二缓存服务器返回的第一数据的副本和第一访问频率,第一访问频率是第二缓存服务器记录的第一边缘服务器对第一数据的访问频率;第一缓存服务器确定是否存在低于第一访问频率的第二访问频率,第二访问频率是第一缓存服务器记录的第一边缘服务器对第二数据的访问频率,其中,第二数据缓存在第一缓存服务器的本地;若存在第二访问频率,第一缓存服务器缓存所述第一数据的副本。
Description
技术领域
本申请涉及数据缓存领域,并且更具体地,涉及一种访问数据的方法和装置。
背景技术
内容分发网络由数据服务器和地理位置上分散的缓存服务器组成。数据服务器和这些缓存服务器是以层次状结构组织的。其中,数据服务器位于最上层,缓存服务器分布在数据服务器之下的各个层上。数据服务器上存储有数据,缓存服务器为数据服务器中存储的数据提供缓存服务。用户请求数据时,会首先向地理位置邻近的缓存服务器(称作边缘缓存服务器)发起访问请求。边缘缓存服务器检查本地是否缓存了用户所请求的数据。若缓存有用户请求的数据,则直接返回用户。若未缓存,则重定向至上一层缓存服务器。直至找到缓存有用户所请求的数据的缓存服务器,再沿请求路径原路返回数据给用户。
在沿请求路径原路返回数据的过程中,请求路径上的各层缓存服务器独立决定是否对返回的数据进行缓存。这样就会导致该数据很可能被重复缓存在不同的缓存服务器中,增加了网络资源的开销,造成存储资源的浪费。
发明内容
本申请提供一种访问数据的方法的装置,能够减少存储资源的浪费。
第一方面,本申请提供一种访问数据的方法,该方法包括:第一缓存服务器向第二缓存服务器发送第一访问请求,第一访问请求用于请求第一数据,第一访问请求来自第一边缘服务器;第一缓存服务器接收第二缓存服务器返回的第一数据的副本和第一访问频率,第一访问频率是第二缓存服务器记录的第一边缘服务器对第一数据的访问频率;第一缓存服务器确定是否存在低于第一访问频率的第二访问频率,第二访问频率是第一缓存服务器记录所述第一边缘服务器对第二数据的访问频率,其中,第二数据缓存在第一缓存服务器的本地;若存在第二访问频率,第一缓存服务器缓存所述第一数据的副本。
在一种可能的实现方式中,该方法还包括:第一缓存服务器向第二缓存服务器请求互换第一数据与所述第二数据的缓存位置。
在一种可能的实现方式中,第一缓存服务器向第二缓存服务器请求互换第一数据与第二数据的缓存位置,包括:第一缓存服务器向第二缓存服务器发送互换信令,互换信令中携带第二数据的副本和指示第二访问频率的信息,以便于第二缓存服务器删除针对所第一边缘服务器缓存的第一数据,并缓存第二数据;第一缓存服务器缓存第一数据,并删除本地针对第一边缘服务器缓存的第二数据。
在一种可能的实现方式中,该方法还包括:第一缓存服务器记录第一访问频率。
在一种可能的实现方式中,第一缓存服务器上存储有缓存队列,缓存队列中存储了本地缓存的各数据的访问频率,缓存队列是按照各数据的访问频率的高低顺序排列的,以及,第一缓存服务器确定是否存在低于第一访问频率的第二访问频率,包括:第一缓存服务器确定所述缓存队列中最低的访问频率是否低于第一访问频率;若缓存队列中最低的访问频率高于第一访问频率,第一缓存服务器确定不存在第二访问频率,或者,若缓存队列中最低的访问频率低于第一访问频率,第一缓存服务器确定存在第二访问频率。
在一种可能的实现方式中,第一访问请求中携带第一边缘服务器的标识信息,以标识第一访问请求来自第一边缘服务器。
第二方面,本申请提供了一种访问数据的方法,第二缓存服务器接收第一缓存服务器发送的第一访问请求,第一访问请求用于请求第一数据,第一访问请求来自第一边缘服务器;第二缓存服务器确定本地缓存有第一数据的情况下,向第一缓存服务器返回第一数据的副本和第一访问频率,其中,第一访问频率是第二缓存服务器记录的第一边缘服务器对第一数据的访问频率。
在一种可能的实现方式中,该方法还包括:第二缓存服务器接收第一缓存服务器发送的互换信令,互换信令中携带第二数据的副本和指示第二访问频率的信息,互换信令是第一缓存服务器在确定本地存在第二访问频率的情况下发送给第二缓存服务器的,第二访问频率低于第一访问频率,其中,第二访问频率是第一缓存服务器记录的第一边缘服务器对第二数据的访问频率,第二数据缓存在第一缓存服务器的本地;第二缓存服务器基于互换信令,删除本地针对第一边缘服务器缓存的第一数据,并在本地缓存第二数据。
这里需要说明的是,第二缓存服务器删除本地针对第一边缘服务器缓存的第一数据,是指从逻辑上进行删除。若对于第二缓存服务器下层的其它边缘服务器而言,第一数据也不要缓存在第二缓存服务器的情况下,那么,第二缓存服务器删除针对第一边缘服务器的第一数据,不仅从逻辑上进行了删除,实际上,也从物理上也进行了删除。若对于第二缓存服务器下层的某个边缘服务器(例如,记作边缘服务器#A)而言,第一数据需要缓存在第二缓存服务器上,那么,这里所说的删除针对第一边缘服务器的第一数据就仅是逻辑上的删除。在物理上,第二缓存服务器上依然存储有第一数据的副本,此时,第一数据的副本不是针对第一边缘服务器缓存的,而是针对边缘服务器#A缓存的。
在一种可能的实现方式中,该方法还包括:第二缓存服务器记录第二访问频率。
在一种可能的实现方式中,第一访问请求中携带第一边缘服务器的标识信息,以标识第一访问请求来自第一边缘服务器。
在一种可能的实现方式中,第二缓存服务器基于互换信令,删除本地针对第一边缘服务器的缓存的第一数据之前,该方法还包括:第二缓存服务器接收第三缓存服务器发送的第二访问请求,第二访问请求用于请求第一数据,第二访问请求来自第二边缘服务器;第二缓存服务器向第三缓存服务器返回第一数据的副本和第三访问频率,其中,第三访问频率是第二缓存服务器记录的第二缓存边缘服务器对第一数据的访问频率。
这里的第三缓存服务器为第二缓存服务器的下层服务器。可以与第一缓存服务器位于同一层,或者也可以位于不同的层。
第二访问请求中携带第二边缘服务器的标识信息,以标识第二访问请求来自第二边缘服务器。
在一种可能的实现方式中,第二缓存服务器在向第一缓存服务器返回第一数据的副本和第一访问频率之前,该方法还包括:第二缓存服务器对记录的第一边缘服务器对第一数据的历史访问频率进行更新,得到第一访问频率,其中,第一访问频率是将第一访问请求统计在内的第一边缘服务器对第一数据的访问频率。
这里的历史访问频率是指第二缓存服务器在接收到来自第一边缘服务器的第一访问请求之前,第二缓存服务器记录的第一边缘服务器对第一数据的访问次数。
第三方面,本申请提供一种访问数据的装置,用于执行第一方面或第一方面的任意可能的实现方式中的方法。具体地,该装置包括执行第一方面或第一方面的任意可能的实现方式中的方法的单元。
第四方面,本申请提供了一种访问数据的装置,用于执行第二方面或第二方面的任意可能的实现方式中的方法。具体地,该装置包括执行第二方面或第二方面的任意可能的实现方式中的方法的单元。
第五方面,本申请提供一种服务器,该服务器包括一个或多个处理器,一个或多个存储器,一个或多个收发器(每个收发器包括发射机和接收机)。发射机或接收机通过天线收发信号。存储器用于存储计算机程序指令(或者说,代码)。处理器用于执行存储器中存储的指令,当指令被执行时,处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
第六方面,本申请提供一种服务器,该接收设备包括一个或多个处理器,一个或多个存储器,一个或多个收发器(每个收发器包括发射机和接收机)。发射机或接收机通过天线收发信号。存储器用于存储计算机程序指令(或者说,代码)。处理器用于执行存储器中存储的指令,当指令被执行时,处理器执行第二方面或第二方面的任意可能的实现方式中的方法。
第七方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任意可能的实现方式中的方法。
第八方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任意可能的实现方式中的方法。
本申请实施例提供的访问数据的方法,能够减少一个数据被重复缓存于多层缓存服务器而造成中间层缓存服务器存储资源的浪费。
附图说明
图1为内容分发网络的架构示意图。
图2为内容分发网络的数据访问过程的流程图。
图3为本申请实施例提供的缓存数据的架构的示意图。
图4为本申请实施例提供的访问数据的方法200的示意***互图。
图5为调整数据的访问频率在缓存队列中位置的过程示意图。
图6为调整数据缓存位置的一种情况的示例。
图7为本申请实施例提供的访问数据的方法的一个示例。
图8为本申请实施例提供的访问数据的方法的另一个示例。
图9为本申请实施例提供的访问数据的装置500的示意性框图。
图10为本申请实施例提供的访问数据的装置600的示意性框图。
图11为本申请实施例提供的服务器700的示意性结构图。
图12为本申请实施例提供的服务器800的示意性结构图。
图13为处理器与存储器的一种结构示意图。
图14为处理器与存储器的另一种结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
首先,对申请实施例中涉及的相关概念作简单介绍。
内容分发网络是内容分发的重要组成部分。内容分发网络中主要包括数据服务器和地理上分散在各处的缓存服务器。数据服务器上存储所有数据。缓存服务器为数据服务器中存储的数据提供缓存服务。
其中,与终端设备直接连接的缓存服务器也称为边缘服务器。用户请求数据时,会首先向边缘服务器发起数据访问请求。边缘服务器接收到数据访问请求之后,会检查自己是否缓存了所请求的数据。如果缓存了用户请求的数据,则直接返回至用户。若未缓存,则边缘服务器会向中间层的缓存服务器请求用户请求的数据。
内容分发网络一般都是以层次状结构进行组织的。参见图1,图1为内容分发网络的架构示意图。其中,数据服务器位于层次状结构的最上层,边缘服务器位于层状结构的最底层,位于数据服务器和边缘服务器之间的是中间层的缓存服务器(以下我们称作中间层服务器)。
下面结合图2说明现有技术中内容分发网络中数据的访问过程。参见图2,图2为内容分发网络的数据访问过程的流程图。
101、边缘服务器接收到用户的访问请求。
假定该数据请求用于请求内容A。
102、边缘服务器确定是否命中。
边缘服务器确定本地是否缓存了内容A。若缓存有内容A,即为命中。则执行步骤103。若未缓存,即为未命中。则执行步骤104。
103、沿请求路径原路返回内容。
这里,若边缘服务器缓存有内容A,则直接返回至用户。
104、边缘服务器重定向至上层服务器。
在边缘服务器未缓存内容A的情况下,访问请求重定向至边缘服务器的上一层服务器(中间层服务器)。并返回步骤102。
即,中间层服务器确定是否命中内容A。若命中内容A,则向边缘服务器返回内容A的副本,再由边缘服务器将内容A的副本返回至用户。
这里的请求路径为从边缘服务器到边缘服务器的上一层服务器。因此,沿请求路径原路返回则为从边缘服务器的上一层服务器返回至边缘服务器。
若边缘服务器的上一层服务器未缓存内容A,则重定向至更上一层的中间层服务器。更上一层的中间服务器继续确定是否命中内容A,以此类推。
105、请求路径中的各缓存服务器独立决定是否缓存命中内容。
即是说,请求路径中的每个中间层服务器和边缘服务器独自决定是否缓存内容A。
由于请求路径中的各个缓存服务器(包括中间层服务器和边缘服务器)都是独立决定是否对内容A进行缓存,因而内容A很可能会被重复缓存多个不同的缓存服务器中,缓存服务器的缓存效率较低,造成缓存资源的浪费。
为此,本申请提供一种访问数据的方法,有助于减少缓存资源的浪费。
下面结合图3至图,对本申请提供的访问数据的方法作详细说明。
本申请实施例提供的访问数据的方法是在一种不同于现有技术的缓存数据的架构的基础上提出的。因此,首先需要对本申请实施例提供的缓存数据的架构进行说明。
图3为本申请实施例提供的缓存数据的架构的示意图。参见图3,内容分发网络中包括数据服务器、中间层缓存服务器和边缘服务器。所有的数据都存储在数据服务器中。缓存服务器(包括中间层缓存服务器和边缘服务器)为数据服务器中的数据提供缓存服务。缓存服务器采用层次状的组织结构,每个上层的缓存服务器为其下层的各个缓存服务器提供独占的缓存空间。其中,各服务器之间可以直接通过无线、光纤、电缆等连接。
从一个特定的边缘服务器的角度而言,各中间层的缓存服务器为其提供的独占缓存空间与自身的物理缓存空间一起组成了一块连续的缓存队列。其中,缓存队列的头部靠近用户,缓存队列的尾部靠近数据服务器,或者说,尾部远离用户。
可以理解的是,每一个边缘服务器的独占缓存空间组成的缓存队列是一个逻辑上的概念。实际上,这个缓存队列包括的各个缓存空间分布在各层的中间层缓存服务器上。
这里所说的独占的缓存空间,是逻辑上独占的概念。即是说,一个上层缓存服务器为其下层的某个边缘服务器提供的独占的缓存空间,在物理上可能是被该上层缓存服务器的多个下层边缘服务器共用的。
通过这样的方式,可以将一个边缘服务器的逻辑上的缓存队列进行统一管理。从逻辑上讲,一个边缘服务器的缓存队列中存储的数据,对于这个边缘服务器而言仅有一份副本。这样,就可以避免同一个数据被缓存在多个不同的缓存服务器中。从而可以降低存储资源和网络资源的浪费。
如图3所示,缓存服务器分布在L1至LH层,其中,边缘服务器位于L1层,L2至LH为中间层缓存服务器。对于边缘服务器#1来说,L1至LH层的各缓存服务器为其提供的缓存空间组成了一个连续的缓存队列。队列头靠近用户,队列尾远离用户。在图3中,队列头为C1标记的缓存空间,队列尾为CH标记的缓存空间。
基于这样的缓存架构,本申请进一步提出了一种访问数据的方法。下面对本申请提供的方法数据的方法进行说明。
参见图4,图4为本申请实施例提供的访问数据的方法200的示意***互图。如图4所示,方法200由第一缓存服务器和第二缓存服务器执行。
210、第一缓存服务器向第二缓存服务器发送第一访问请求,第二缓存服务器接收第一访问请求。
其中,第一访问请求用于请求第一数据,第一访问请求来自第一边缘服务器。
本申请实施例中所说的数据,在内容分发网络中,也可以称作“内容”。
本申请实施例中所说的第一缓存服务器与第二缓存服务器为相邻两个层的缓存服务器,并且第一缓存服务器为下层服务器,第二缓存服务器为上层服务器。
这里,第一访问请求来自第一边缘服务器,因此,可以认为第一访问请求是从第一边缘服务器重定向至第一缓存服务器的。即是说,第一访问请求用于请求第一数据,但是第一边缘服务器和第一缓存服务器的下层服务器均未缓存第一数据,因此,第一访问请求重定向至第一缓存服务器。例如,第一缓存服务器可以为第一边缘服务器的上一层服务器,或者,也可以为更高层的中间层服务器。
第二缓存服务器为与第一缓存服务器直接相连的中间层服务器。
这里,第一缓存服务器和第二缓存服务器可以对应上述图3中第Li层与第Li+1层互相连接的两个缓存服务器,其中,i≥1且为整数。例如,图3中A标记的缓存服务器与B标记的缓存服务器分别为第二缓存服务器和第一缓存服务器的示例。
可选地,第一访问请求中携带第一边缘服务器的标识信息。
这样,接收到第一访问请求的第二缓存服务器能够获知该第一访问请求来自第一边缘服务器。第一访问请求是重定向至第一缓存服务器的,因此,第一缓存服务器也可以根据第一边缘服务器的标识信息,知道第一访问请求来自第一边缘服务器。
220、第二缓存服务器在缓存有第一数据的情况下,向第一缓存服务器发送第一数据的副本和第一访问频率,第一缓存服务器接收第一数据的副本和第一访问频率。
其中,第一访问频率是第二缓存服务器记录的第一边缘服务器对第一数据的访问频率。
第二缓存服务器基于第一访问请求,确定本地是否缓存有第一数据。
若本地缓存有第一数据,第二缓存服务器则将缓存的第一数据(即,第一数据的副本)返回给第一缓存服务器。
在本申请实施例中,边缘服务器和每个缓存服务器上记录了所缓存的数据的访问频率。例如,某个缓存服务器上缓存了数据A、B、C和D。那么,这个缓存服务器上同时会记录数据A、B、C和D的访问频率。每个数据的访问频率用于表征该数据被用户访问的历史次数。换句话说,一个数据的访问频率可以反映这个数据的“热度”。访问频率越高的数据,历史访问次数越多。
因此,在本申请实施例中,第二缓存服务器若缓存了第一数据,则第二缓存服务器上就会记录第一数据的访问频率。
这里需要说明是,第一访问频率为第二缓存服务器接收到第一访问请求后,返回给第一缓存服务器的。因此,第一访问频率是将第一访问请求统计在内的第一边缘服务器针对第一数据的访问频率。也可以认为,第二缓存服务器接收到用于请求第一数据的访问请求后,首先更新第一数据的访问频率。将本地记录的第一边缘服务器访问第一数据的历史次数加一,即得到第一访问频率。再将更新后的第一边缘服务器对第一数据的访问频率(即,第一访问频率)返回给第一缓存服务器。
需要注意的是,在本申请实施例中,这里所说的第一访问频率是第一边缘服务器针对第一数据的访问频率。也就是说,一个中间层的缓存服务器在记录本地缓存的某个内容的访问频率时,是针对边缘缓存服务器进行记录的。
例如,某个中间层的缓存服务器的本地缓存了数据A,若是边缘服务器#1请求数据A时,重定向至该中间层的缓存服务器,则该中间层的缓存服务器返回访问频率#1。访问频率#1是该中间层服务器记录的边缘服务器#1访问数据A的历史次数。若是边缘服务器#2请求数据A时,重定向该中间层的缓存服务器,则该中间层的缓存服务器返回访问频率#2。访问频率#2是该中间层服务器记录的边缘服务器#2访问数据A的历史次数。换句话说,中间层的缓存服务器记录的访问频率是针对边缘服务器的。
230、第一缓存服务器确定是否存在低于第一访问频率的第二访问频率。
第二访问频率是第一缓存服务器记录的第一边缘服务器对第二数据的访问频率。其中,第二数据缓存在第一缓存服务器的本地。
在步骤220中,第一缓存服务器接收到第二缓存服务器返回的第一数据的副本和第一访问频率。在步骤230中,第一缓存服务器确定本地缓存的数据的访问频率中是否存在低于第一访问频率的第二访问频率。
第二访问频率是第一边缘服务器对缓存在第一缓存服务器的第二数据的访问频率。例如,第一缓存服务器上缓存有数据E、F、G,第一边缘服务器对数据E、F、G的访问频率分别为f1、f2和f3。第一缓存服务器确定f1、f2和f3中是否有低于第一访问频率。可以理解,可能会出现两种情况。
情况1
不存在低于第一访问频率的第二访问频率。
以上面的示例来说,则f1、f2和f3均大于第一访问频率。
在这种情况下,第一缓存服务器将第一数据的副本返回至下一层的缓存服务器,使得第一数据的副本经过各中间层的缓存服务器的转发,到达第一边缘服务器,并最终由第一边缘服务器返回给用户。本次对于第一数据的访问流程结束。
可选地,第一缓存服务器上存储有缓存队列,缓存队列中存储了第一缓存服务器的本地缓存的各数据的访问频率,缓存队列是按照各数据的访问频率的高低顺序排列的,
以及,第一缓存服务器确定是否存在低于第一访问频率的第二访问频率,包括:
第一缓存服务器确定缓存队列中最低的访问频率是否低于第一访问频率;
若缓存队列中最低的访问频率高于第一访问频率,第一缓存服务器确定不存在第二访问频率,或者,
若缓存队列中最低的访问频率低于第一访问频率,第一缓存服务器确定存在第二访问频率。
在本实施例中,每个缓存服务器(包括边缘服务器和中间层缓存服务器)上都存储一个缓存队列。缓存队列是由这个缓存服务器上缓存的各数据的访问频率组成的。并且,缓存队列中的元素是按照访问频率的高低顺序排列的。例如,缓存队列可以按照各数据的访问频率从高到低排序,最高的访问频率排在队列头,最低的访问频率排在队列尾。或者,缓存队列按照从低到高的顺序进行排序,最低的访问频率排在队列头,最高的访问频率排在队列尾。
中间层缓存服务器上维持缓存队列,可以提高步骤230的执行效率。
继续以上述示例来说,假定f1、f2和f3按照由高到低的顺序排列,得到的缓存队列为(f1、f2、f3)。则f3的访问频率最低。第一缓存服务器在确定是否存在低于第一访问频率的第二访问频率时,直接将缓存队列的队尾元素f3和第一访问频率进行比较,若f3大于第一访问频率,则缓存队列中肯定不存在低于第一访问频率的第二访问频率。
相反,若f3低于第一访问频率,则缓存队列中存在低于第一访问频率的第二访问频率。这种情况下,第一缓存服务器可以比较缓存队列中的倒数第二个位置的访问频率(例如,上述示例中的f2)与第一访问频率的大小。若f2大于第一访问频率,则缓存队列中仅f3小于第一访问频率,则将f3作为本申请实施例中所说的第二访问频率。同时,将f3对应的数据G确定为第二数据。
若f2小于第一访问频率,第一缓存服务器进一步比较缓存队列中的倒数第三个位置的访问频率(例如,上述示例中的f1)与第一访问频率的大小。若f1大于第一访问频率,则缓存队列中的f2、f3均小于第一访问频率,第一缓存服务器将这些访问频率中的最大访问频率(例如,上述示例中的f2)作为上述的第二访问频率。同时,f2对应的数据F即为第二数据。
当缓存队列中包括更多的元素时,确定是否存在第二访问频率和第二数据的过程是类似的,这里不再赘述。
基于各缓存服务器上存储有缓存队列的方案,第一缓存服务器确定不存在第二访问频率的情况下,向第二缓存服务器返回第一数据的副本之后,第一缓存服务器更新第一数据的访问频率。假定第一缓服务器在接收第一访问请求之前,第一缓存服务器上维持的第一边缘服务器对第一数据的访问频率m。在接收到来自第一边缘服务器的第一访问请求之后,第一缓存服务器将维持的第一边缘服务器对第一数据的访问频率加1,即更新为m+1。同时,调整第一数据在缓存队列中的位置。
并且,前文所说的第一缓存服务器向第二缓存服务器返回的第一访问频率为更新后的访问频率。换句话说,第一访问频率是将第一访问请求统计在内的访问次数。
下面结合图5,对上述更新访问频率、并调整数据的访问频率在缓存队列中位置的过程举例说明。
参见图5,图5为调整数据的访问频率在缓存队列中位置的过程示意图。
(1)缓存服务器#A接收到下层缓存服务器发送的请求数据F的访问请求。
这里,缓存服务器#A接收到下层缓存服务器图5中未示出。
(2)缓存服务器#A确定本地未缓存数据F,重定向至上一层的缓存服务器#B。
(3)缓存服务器#B缓存有数据F,则向缓存服务器#A返回数据F的副本。
在接收到请求数据F的访问请求之前,数据F的历史访问次数为3。缓存服务器#B上维持的缓存队列为(D、E、F),数据F的访问次数最低。更新数据F的访问次数之后,数据F的访问次数变为4,高于数据E和数据D的访问次数。因此,缓存服务器#B将缓存队列中数据F和数据D在缓存队列中的位置互换。更新后的缓存队列为(F、D、E)。即,始终保持缓存队列中的元素按照访问频率的高低顺序排列。
进一步地,缓存服务器#B将更新后的数据F的访问频率返回给缓存服务器#A。
(4)缓存服务器#A向下层缓存服务器返回数据F的副本。
情况2
存在低于第一访问频率的第二访问频率。
对于这种情况,则执行步骤240。
240、若存在第二访问频率,第一缓存服务器缓存所述第一数据的副本。
在本申请提供的技术方案中,第一缓存服务器接收到第二缓存服务器返回的第一数据的副本和第一访问频率后,如果本地存在低于第一访问频率的第二访问频率,表明第一数据对于第一边缘服务器而言是更“热门”的,因此,第一缓存服务器可以将第一数据的副本进行缓存,以便于在下一次接收到边缘服务器用于请求第一数据的访问请求时,就可以直接向第一数据的副本返回至边缘服务器,进而返回至用户,而不再需要重定向至上层缓存服务器,减少了用户请求数据的响应时间,提高了缓存效率。
进一步地,与前文介绍的现有技术中各层缓存服务器独立决定是否缓存某个数据的副本的技术方案相比,本申请实施例中的上层缓存服务器与下层缓存服务器通过交互数据的访问频率,再决定是否对一个数据进行缓存,有助于改善现有技术中因各层缓存服务器独立决定是否缓存一个数据而带来的问题,例如,浪费网络存储资源、中间层缓存服务器的缓存效率较低、用户请求数据的响应时间较长等。
可选地,进一步地,该方法还包括:第一缓存服务器向第二缓存服务器请求互换第一数据与第二数据的缓存位置。
可以理解的是,第二缓存服务器已经缓存了第一数据的副本。若第一缓存服务器也缓存第一数据的副本,就会增加网络资源的开销。为了避免这个问题,本申请实施例中,一个数据在各层服务器上缓存的副本应当尽可能的少。因此,不需要第一缓存服务器和第二缓存服务器同时缓存第一数据的副本,因此,只需要将第一数据的副本保存到更下层的第一缓存服务器,同时,将访问频率低于第一数据的第二数据的副本从第一缓存服务器移动至更高层的第二缓存服务器,即,进行第一数据和第二数据的缓存位置的互换。这样,就可以避免网络资源的浪费。
下面详细说明第一缓存服务器和第二缓存服务器如何互换第一数据和第二数据的缓存位置。
继续以上述的示例进行说明。例如,f3的频率低于第一访问频率。
在这种情况下,与上述情况1不同的是,第一缓存服务器除了将第一数据的副本返回至下一层的缓存服务器,第一缓存服务器会向第二缓存服务器请求互换第一数据和第二数据的缓存位置。或者稍后,互换第一数据的副本和第二数据的副本在缓存服务器上的位置。
下面说明,互换第一数据和第二数据的缓存位置的过程。
第一缓存服务器向第二缓存服务器请求互换第一数据与第二数据的缓存位置,包括:
第一缓存服务器向第二缓存服务器发送互换信令,互换信令中携带第二数据的副本和指示第二访问频率的信息,以便于第二缓存服务器删除针对第一边缘服务器缓存的第一数据,并缓存第二数据;
第一缓存服务器缓存第一数据,并删除本地针对第一边缘服务器缓存的第二数据。
即,第一缓存服务器首先向第二缓存服务器发送互换信令,互换信令用于请求互换第一数据和第二数据的缓存位置。其中,互换信令中携带第二数据的副本和指示第二访问频率的信息。
可以理解的是,第二缓存服务器接收到互换信令,也就获取到第二数据的副本,并获知第二访问频率。基于互换信令,第二缓存服务器删除针对第一边缘服务器缓存的第一数据,同时缓存接收到的第二数据的副本。
第一缓存服务器删除针对第一边缘服务器缓存的第二数据,同时缓存接收到的第一数据的副本。
这样,原来缓存在第一缓存服务器的第二数据的副本缓存在了第二缓存服务器,同时原来缓存在第二缓存服务器的第一数据的副本缓存在了第一缓存服务器。可见,第一缓存服务器和第二缓存服务器实现了第一数据和第二数据的缓存位置的互换。
可以理解的是,将访问频率较高的数据缓存在更下层的服务器上,可以减少用户请求数据的响应时间。
再以上述图5为例。缓存服务器#B将更新后的数据F的访问频率(即,4)返回给缓存服务器#A。数据F的访问频率高于缓存服务器#A本地缓存的数据C的访问频率,则缓存服务器#A与缓存服务器#B互换数据C与数据F的缓存位置。对于缓存服务器#B而言,删除数据F的副本,缓存数据C。对于缓存服务器#A而言,删除数据C,缓存数据F。
假定请求数据F的访问请求来自边缘服务#C,那么,边缘服务器#C的缓存队列由(A,B,C,D,E,F,H,I,J)变更为(A,B,F,C,D,E,H,I,J)。
需要注意的是,这里我们需要区分存储在缓存服务器上的缓存队列和边缘服务器的缓存队列。前文已经结合图3作了说明,边缘服务器的缓存队列,我们指的是逻辑的缓存队列,是指各中间层服务器为某个边缘服务器分配的物理缓存空间,以及该边缘服务器自身的物理缓存空间。而图5中所示的缓存服务器#B上存储的缓存队列是维持在缓存服务器上的一块物理缓存队列。
可以理解的是,由于第一缓存服务器为第二缓存服务器的下一层服务器,且第一边缘服务器对第一数据的访问频率高于对第二数据的访问频率。因此,将第一数据的副本从第二缓存服务换至第一缓存服务器,即是将访问频率较高的数据缓存在更靠近用户的位置。这样可以提高用于对第一数据的访问效率,缩短时延。也即,当一个数据对于一个边缘服务器而言变得“热门”时,这个数据在该边缘服务器的缓存队列中会向前移动,在物理位置上更靠近下层的缓存服务器,从而更靠近用户。
可选地,第一数据和第二数据的缓存位置互换,相对应地,第一访问频率和第二访问频率的记录位置也进行互换。换句话说,一个数据缓存在哪个缓存服务器上,即由该缓存服务器记录这个数据的访问频率。
在本申请实施例中,针对一个边缘服务器而言,将访问频率较高的数据缓存在更靠近用户的位置的过程中,可能会出现如下一种情况。
参见图6,图6为调整数据缓存位置的一种情况的示例。
例如,一个上层缓存服务器缓存的数据A对于边缘服务器#1而言比较“热门”,需要缓存在更下层的服务器,数据#A对于边缘服务器#1而言比较“冷门”,需要缓存在更上层的服务器。那么,下层缓存服务器#1对数据A进行缓存。同时,上层缓存服务器将缓存的数据A与边缘服务器#2的标识信息关联,以表示上层缓存服务器缓存的数据A是针对边缘服务器#2的。这样,对于边缘服务器#1而言,其缓存队列中数据A的副本依然视作只有一份。同样地,对于边缘服务器#2而言,其缓存队列中数据A的副本也只有一份。
可选地,第二缓存服务器基于互换信令,删除本地缓存的针对第一边缘服务器的第一数据之前,该方法还包括:
第二缓存服务器接收第三缓存服务器发送的第二访问请求,第二访问请求用于请求第一数据,第二访问请求来自第二边缘服务器;
第二缓存服务器向第三缓存服务器返回第一数据的副本和第三访问频率,其中,第三访问频率是第二缓存服务器记录的第二缓存边缘服务器对第一数据的访问频率。
换句话说,第二缓存服务器针对来自第一边缘服务器的请求第一数据的第一访问请求,返回第一访问频率。针对来自第二边缘服务器的请求第一数据的第二访问请求,返回第三访问频率。
类似地,第二访问请求中可以携带第二边缘服务器的标识信息,以标识第二访问请求来自第二边缘服务器。
下面结合图7和图8,对本申请实施例提供的访问数据的方法进行举例说明。
图7为本申请实施例的访问数据的方法的一个示例。
首先,假定下层服务器上缓存的数据为A,B,C,其访问频率依次为7,6,5。上层服务器上缓存的数据为D,E,F,其访问频率依次为5,3,3。
301、下层服务器接收请求数据F的访问请求。
302、下层服务器未命中,重定向至上层服务器。
303、上层服务器命中,更新数据F的访问频率。
即,数据F的访问频率更新由3更新为4。
304、上层服务器向下层服务器返回数据F的副本,和更新后的数据F的访问频率。
305、下层服务器向更下层服务器返回数据F的副本。
或者,还可以返回更新后的数据F的访问频率。
306、下层服务器确定更新后的数据F的访问频率小于缓存队列中队尾元素的访问频率,确定不需要调整数据F的缓存位置。
根据前文可知,下层服务器上队尾元素的访问频率是最低的。因此,这里直接和队尾元素的访问频率进行比较。这里的队尾元素为数据C,访问频率为5。
至此,访问流程结束。
上层服务器未接收到互换信令默认为不需要互换数据的缓存位置。或者,也可以执行步骤307。
307、下层服务器向上层服务器发送互换信令。
互换信令中指示false,以向上层服务器表明不需要执行互换操作。
图8为本申请实施例的访问数据的方法的另一个示例。
与上文图7中的假定条件相同。
401-405、与上文步骤401-405类似,这里不再赘述。唯一不同的是,此次访问请求,请求的是数据D。
406、下层服务器确定更新后的数据D的访问频率(即,等于6)大于队尾元素数据C的访问频率(即,等于5),因此,需要互换数据D和数据C的缓存位置。
407、下层服务器向上层服务器发送互换信令。
互换信令中指示true,以向上层服务器表明需要执行互换操作。
408、下层服务器向上层服务器发送数据C的副本和数据C的访问频率。
或者,也可以不执行步骤508,在步骤507中的互换信令中携带数据C的副本和指示数据C的访问频率的信息,以减少信令开销。
409、上层服务器接收到数据C的副本和数据C的访问频率后,删除数据D,缓存数据C的副本。
410、下层服务器删除数据C的副本,缓存步骤404中接收到的数据D的副本。
进一步,下层服务器保存更新后的数据D的访问频率。上层服务器保存数据C的访问频率。
至此,访问流程结束。
本申请实施例提供的访问数据的方法,可以避免一个数据被重复缓存于多层缓存服务器而造成中间层缓存服务器存储资源浪费的问题。进一步地,数据的缓存位置更新采用了分布式的方式实现,避免出现性能瓶颈。
实验表明,本申请提供的访问数据的方法和传统的方案(例如,近期最少使用(Least Recently Used,LRU))相比,考虑四层缓存,每层缓存服务器可缓存10份内容。数据服务器存储100份内容,一共生成10000次访问请求,请求服从齐夫(Zipf)分布。用户至命中缓存服务器的跳数减少15.7%。缓存命中率从84.2%提升到88.7%。尤其是有效提高了“热门”数据(或者说,内容)的命中率。同时,数据服务器的负载降低了28.7%,有效提高了数据服务器的可扩展性。
本申请实施例提供的访问数据的方法,根据用户对数据的访问情况,通过上下层缓存服务器的交互,不断地将访问频率较高的数据与访问频率较低的数据的缓存位置进行调整,使得访问频率较高的数据的缓存位置向更下层的缓存服务器移动,可以减少用户请求数据的响应时间,增加Cache(缓存)命中率。同时,还可以降低存储资源和网络资源的浪费,降低数据服务器的负载,提升缓存效率。
以上结合图3至图8,对本申请实施例提供的访问数据的方法作了详细说明。下面结合图9至图12,对本申请实施例提供的访问数据的装置和服务器进行说明。
图9为本申请实施例提供的访问数据的装置500的示意性框图。装置500可对应上述方法实施例中的第一缓存服务器。如图9所示,装置500包括:
发送单元510,用于向第二缓存服务器发送第一访问请求,第一访问请求用于请求第一数据,第一访问请求来自第一边缘服务器;
接收单元520,用于接收第二缓存服务器返回的第一数据的副本和第一访问频率,第一访问频率是第二缓存服务器记录的第一边缘服务器对所第一数据的访问频率;
处理单元530,用于确定是否存在低于第一访问频率的第二访问频率,第二访问频率是第一缓存服务器记录的第一边缘服务器对第二数据的访问频率,其中,第二数据缓存在第一缓存服务器的本地;
处理单元530,还用于在存在第二访问频率的情况下,缓存所述第一数据的副本。
本申请实施例提供的装置500中的各单元和上述其它操作或功能分别为了实现本申请提供的访问数据的方法各实施例中由第一缓存服务器执行的相应流程。为了简洁,此处不再赘述。
图10为本申请实施例提供的访问数据的装置600的示意性框图。装置600可对应上述方法实施例中的第二缓存服务器。如图10所示,装置600包括:
接收单元610,用于接收第一缓存服务器发送的第一访问请求,第一访问请求用于请求第一数据,第一访问请求来自第一边缘服务器;
处理单元620,用于确定本地是否缓存有第一数据;
发送单元630,用于在确定本地缓存有第一数据的情况下,向第一缓存服务器返回第一数据的副本和第一访问频率,其中,第一访问频率是第二缓存服务器记录的第一边缘服务器对第一数据的访问频率。
本申请实施例提供的装置600中的各单元和上述其它操作或功能分别为了实现本申请提供的访问数据的方法各实施例中由第二缓存服务器执行的相应流程。为了简洁,此处不再赘述。
图11为本申请实施例提供的服务器700的示意性结构图。如图11所示,服务器700包括:一个或多个处理器701,一个或多个存储器702,一个或多个收发器(每个收发器包括发射机703和接收机704)。发射机703或接收机704通过天线收发信号。存储器702中存储计算机程序指令(或者说,代码)。处理器701执行存储在存储器702中的计算机程序指令,以实现本申请提供的访问数据的方法的各实施例中由第一缓存服务器执行的相应流程和/或操作。为了简洁,此处不再赘述。
需要说明的是,图9中所示的装置500可以通过图11中所示的服务器700来实现。例如,图9中所示的发送单元510可以由图11中所示的发射机703实现,接收单元520由接收机704实现,处理单元530可以由处理器701实现等。
图12为本申请实施例提供的服务器800的示意性结构图。如图12所示,服务器800包括:一个或多个处理器801,一个或多个存储器802,一个或多个收发器(每个收发器包括发射机803和接收机804)。发射机803或接收机804通过天线收发信号。存储器802中存储计算机程序指令(或者说,代码)。处理器801执行存储在存储器802中的计算机程序指令,以实现本申请提供的访问数据的方法的各实施例中由第二缓存服务器执行的相应流程和/或操作。为了简洁,此处不再赘述。
同样地,图10中所示的装置600可以通过图12中所示的服务器800来实现。例如,图10中所示的接收单元610可以由图12中所示的接收机804实现,处理单元620可以由处理器801实现,发送单元630可以由发射机803实现。
以上实施例中,处理器可以为中央处理器(Central Processing Unit,CPU)、微处理器、特定应用集成电路(Application-Specific Integrated Circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路等。例如,处理器可以包括数字信号处理器设备、微处理器设备、模数转换器、数模转换器等。处理器可以根据这些设备各自的功能而在这些设备之间分配移动设备的控制和信号处理的功能。此外,处理器可以包括操作一个或多个软件程序的功能,软件程序可以存储在存储器中。
处理器的所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
存储器可以是只读存储器(Read-Only Memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(Random Access Memory,RAM)或者可存储信息和指令的其他类型的动态存储设备。也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,上述图11和图12中所示的存储器与存储器可以是物理上相互独立的单元,如图13所示,图13为处理器与存储器的一种结构示意图。或者,存储器也可以和处理器集成在一起。如图14所示,图14为处理器与存储器的另一种结构示意图。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (22)
1.一种访问数据的方法,其特征在于,所述方法包括:
第一缓存服务器向第二缓存服务器发送第一访问请求,所述第一访问请求用于请求第一数据,所述第一访问请求来自第一边缘服务器;
所述第一缓存服务器接收所述第二缓存服务器返回的所述第一数据的副本和第一访问频率,所述第一访问频率是所述第二缓存服务器记录的所述第一边缘服务器对所述第一数据的访问频率;
所述第一缓存服务器确定是否存在低于所述第一访问频率的第二访问频率,所述第二访问频率是所述第一缓存服务器记录的所述第一边缘服务器对第二数据的访问频率,其中,所述第二数据缓存在所述第一缓存服务器的本地;
若存在所述第二访问频率,所述第一缓存服务器缓存所述第一数据的副本。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一缓存服务器向所述第二缓存服务器请求互换所述第一数据与所述第二数据的缓存位置。
3.根据权利要求2所述的方法,其特征在于,所述第一缓存服务器向所述第二缓存服务器请求互换所述第一数据与所述第二数据的缓存位置,包括:
所述第一缓存服务器向所述第二缓存服务器发送互换信令,所述互换信令中携带所述第二数据的副本和指示所述第二访问频率的信息,以便于所述第二缓存服务器删除针对所述第一边缘服务器缓存的所述第一数据,并缓存所述第二数据;
所述第一缓存服务器缓存所述第一数据,并删除本地针对所述第一边缘服务器缓存的所述第二数据。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
所述第一缓存服务器记录所述第一访问频率。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一缓存服务器上存储有缓存队列,所述缓存队列中存储了本地缓存的各数据的访问频率,所述缓存队列是按照所述各数据的访问频率的高低顺序排列的,
以及,所述第一缓存服务器确定是否存在低于所述第一访问频率的第二访问频率,包括:
所述第一缓存服务器确定所述缓存队列中最低的访问频率是否低于所述第一访问频率;
若所述缓存队列中最低的访问频率高于所述第一访问频率,所述第一缓存服务器确定不存在所述第二访问频率,或者,
若所述缓存队列中最低的访问频率低于所述第一访问频率,所述第一缓存服务器确定存在所述第二访问频率。
6.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一访问请求中携带所述第一边缘服务器的标识信息,以标识所述第一访问请求来自所述第一边缘服务器。
7.一种访问数据的方法,其特征在于,所述方法包括:
第二缓存服务器接收第一缓存服务器发送的第一访问请求,所述第一访问请求用于请求第一数据,所述第一访问请求来自第一边缘服务器;
所述第二缓存服务器确定本地缓存有所述第一数据的情况下,向所述第一缓存服务器返回所述第一数据的副本和第一访问频率,其中,所述第一访问频率是所述第二缓存服务器记录的所述第一边缘服务器对所述第一数据的访问频率;
所述方法还包括:
所述第二缓存服务器接收所述第一缓存服务器发送的互换信令,所述互换信令中携带第二数据的副本和指示第二访问频率的信息,所述互换信令是所述第一缓存服务器在确定本地存在第二访问频率的情况下发送给所述第二缓存服务器的,所述第二访问频率低于所述第一访问频率,其中,所述第二访问频率是所述第一缓存服务器记录的所述第一边缘服务器对所述第二数据的访问频率,所述第二数据缓存在所述第一缓存服务器的本地;
所述第二缓存服务器基于所述互换信令,删除本地针对所述第一边缘服务器的缓存的所述第一数据,并在本地缓存所述第二数据。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述第二缓存服务器记录所述第二访问频率。
9.根据权利要求7或8所述的方法,其特征在于,所述第一访问请求中携带所述第一边缘服务器的标识信息,以标识所述第一访问请求来自所述第一边缘服务器。
10.根据权利要求7或8所述的方法,其特征在于,所述第二缓存服务器基于所述互换信令,删除本地针对所述第一边缘服务器的缓存的所述第一数据之前,所述方法还包括:
所述第二缓存服务器接收第三缓存服务器发送的第二访问请求,所述第二访问请求用于请求所述第一数据,所述第二访问请求来自第二边缘服务器;
所述第二缓存服务器向所述第三缓存服务器返回所述第一数据的副本和第三访问频率,其中,所述第三访问频率是所述第二缓存服务器记录的所述第二缓存边缘服务器对所述第一数据的访问频率。
11.根据权利要求7或8所述的方法,其特征在于,所述第二缓存服务器在向所述第一缓存服务器返回所述第一数据的副本和第一访问频率之前,所述方法还包括:
所述第二缓存服务器对记录的所述第一边缘服务器对所述第一数据的历史访问频率进行更新,得到所述第一访问频率,其中,所述第一访问频率是将所述第一访问请求统计在内的所述第一边缘服务器对所述第一数据的访问频率。
12.一种访问数据的装置,其特征在于,包括:
发送单元,用于向第二缓存服务器发送第一访问请求,所述第一访问请求用于请求第一数据,所述第一访问请求来自第一边缘服务器;
接收单元,用于接收所述第二缓存服务器返回的所述第一数据的副本和第一访问频率,所述第一访问频率是所述第二缓存服务器记录的所述第一边缘服务器对所述第一数据的访问频率;
处理单元,用于确定是否存在低于所述第一访问频率的第二访问频率,所述第二访问频率是所述访问数据的装置记录的所述第一边缘服务器对第二数据的访问频率,其中,所述第二数据缓存在所述访问数据的装置的本地;
所述处理单元,还用于在确定存在所述第二访问频率的情况下,缓存所述第一数据的副本。
13.根据权利要求12所述的装置,其特征在于,所述处理单元还用于向所述第二缓存服务器请求互换所述第一数据与所述第二数据的缓存位置。
14.根据权利要求13所述的装置,其特征在于,所述发送单元具体用于向所述第二缓存服务器发送互换信令,所述互换信令中携带所述第二数据的副本和指示所述第二访问频率的信息,以便于所述第二缓存服务器删除针对所述第一边缘服务器缓存的所述第一数据,并缓存所述第二数据;
所述处理单元,具体用于缓存所述第一数据,并删除本地针对所述第一边缘服务器缓存的所述第二数据。
15.根据权利要求12至14中任一项所述的装置,其特征在于,所述处理单元还用于记录所述第一访问频率。
16.根据权利要求12至14中任一项所述的装置,其特征在于,所述装置上存储有缓存队列,所述缓存队列中存储了本地缓存的各数据的访问频率,所述缓存队列是按照所述各数据的访问频率的高低顺序排列的,
以及,所述处理单元具体用于:
确定所述缓存队列中最低的访问频率是否低于所述第一访问频率;
若所述缓存队列中最低的访问频率高于所述第一访问频率,所述处理单元确定不存在所述第二访问频率,或者,
若所述缓存队列中最低的访问频率低于所述第一访问频率,所述处理单元确定存在所述第二访问频率。
17.根据权利要求12至14中任一项所述的装置,其特征在于,所述第一访问请求中携带所述第一边缘服务器的标识信息,以标识所述第一访问请求来自所述第一边缘服务器。
18.一种访问数据的装置,其特征在于,包括:
接收单元,用于接收第一缓存服务器发送的第一访问请求,所述第一访问请求用于请求第一数据,所述第一访问请求来自第一边缘服务器;
发送单元,在处理单元确定本地缓存有所述第一数据的情况下,向所述第一缓存服务器返回所述第一数据的副本和第一访问频率,其中,所述第一访问频率是所述访问数据的装置记录的所述第一边缘服务器对所述第一数据的访问频率;
所述接收单元还用于:
接收所述第一缓存服务器发送的互换信令,所述互换信令中携带第二数据的副本和指示第二访问频率的信息,所述互换信令是所述第一缓存服务器在确定本地存在第二访问频率的情况下发送给所述访问数据的装置的,所述第二访问频率低于所述第一访问频率,其中,所述第二访问频率是所述第一缓存服务器记录的所述第一边缘服务器对所述第二数据的访问频率,所述第二数据缓存在所述第一缓存服务器的本地;
以及,所述处理单元还用于基于所述互换信令,删除本地针对所述第一边缘服务器的缓存的所述第一数据,并在本地缓存所述第二数据。
19.根据权利要求18所述的装置,其特征在于,所述处理单元还用于记录所述第二访问频率。
20.根据权利要求18或19所述的装置,其特征在于,所述第一访问请求中携带所述第一边缘服务器的标识信息,以标识所述第一访问请求来自所述第一边缘服务器。
21.根据权利要求18或19所述的装置,其特征在于,所述接收单元还用于接收第三缓存服务器发送的第二访问请求,所述第二访问请求用于请求所述第一数据,所述第二访问请求来自第二边缘服务器;
以及,所述发送单元还用于向所述第三缓存服务器返回所述第一数据的副本和第三访问频率,其中,所述第三访问频率是所述访问数据的装置记录的所述第二缓存边缘服务器对所述第一数据的访问频率。
22.根据权利要求18或19所述的装置,其特征在于,在所述发送单元在向所述第一缓存服务器返回所述第一数据的副本和第一访问频率之前,所述处理单元还用于:
对记录的所述第一边缘服务器对所述第一数据的历史访问频率进行更新,得到所述第一访问频率,其中,所述第一访问频率是将所述第一访问请求统计在内的所述第一边缘服务器对所述第一数据的访问频率。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710409582.2A CN108989373B (zh) | 2017-06-02 | 2017-06-02 | 访问数据的方法和装置 |
EP18810856.7A EP3585033B1 (en) | 2017-06-02 | 2018-05-30 | Accessing data method and device |
KR1020197038420A KR102288024B1 (ko) | 2017-06-02 | 2018-05-30 | 데이터 액세스 방법 및 장치 |
JP2019566676A JP6866509B2 (ja) | 2017-06-02 | 2018-05-30 | データアクセス方法および装置 |
PCT/CN2018/089000 WO2018219289A1 (zh) | 2017-06-02 | 2018-05-30 | 访问数据的方法和装置 |
US16/587,889 US10868884B2 (en) | 2017-06-02 | 2019-09-30 | System for determining whether to cache data locally at cache server based on access frequency of edge server |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710409582.2A CN108989373B (zh) | 2017-06-02 | 2017-06-02 | 访问数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108989373A CN108989373A (zh) | 2018-12-11 |
CN108989373B true CN108989373B (zh) | 2020-12-04 |
Family
ID=64455225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710409582.2A Active CN108989373B (zh) | 2017-06-02 | 2017-06-02 | 访问数据的方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10868884B2 (zh) |
EP (1) | EP3585033B1 (zh) |
JP (1) | JP6866509B2 (zh) |
KR (1) | KR102288024B1 (zh) |
CN (1) | CN108989373B (zh) |
WO (1) | WO2018219289A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3075541A1 (fr) * | 2017-12-20 | 2019-06-21 | Orange | Procede de distribution d'un contenu dans un reseau de distribution de contenus, entite d'origine et entites de distribution correspondantes |
US10931778B2 (en) * | 2019-01-09 | 2021-02-23 | Margo Networks Pvt. Ltd. | Content delivery network system and method |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139301A (zh) * | 2013-02-05 | 2013-06-05 | 华南师范大学 | 应用于内容分发网络***中的互联网访问加速方法及装置 |
CN103150347A (zh) * | 2013-02-07 | 2013-06-12 | 浙江大学 | 基于文件热度的动态副本管理方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020092026A1 (en) * | 2001-01-09 | 2002-07-11 | International Business Machines Corporation | Method and apparatus for broadcast delivery of content to a client-side cache based on user preferences |
JP2003085032A (ja) * | 2001-09-10 | 2003-03-20 | Kanazawa Inst Of Technology | 自己組織化キャッシュ方法およびその方法を利用可能なキャッシュサーバ |
US7769823B2 (en) * | 2001-09-28 | 2010-08-03 | F5 Networks, Inc. | Method and system for distributing requests for content |
US20030115421A1 (en) * | 2001-12-13 | 2003-06-19 | Mchenry Stephen T. | Centralized bounded domain caching control system for network edge servers |
JP2004264956A (ja) * | 2003-02-28 | 2004-09-24 | Kanazawa Inst Of Technology | キャッシュ管理方法、およびその方法を利用可能なキャッシュサーバ |
US9489456B1 (en) * | 2006-11-17 | 2016-11-08 | Blue Coat Systems, Inc. | Previewing file information over a network |
US7734733B1 (en) * | 2007-06-15 | 2010-06-08 | Packeteer, Inc. | WAFS disconnected-mode read-write access |
US8782236B1 (en) * | 2009-06-16 | 2014-07-15 | Amazon Technologies, Inc. | Managing resources using resource expiration data |
US9058402B2 (en) * | 2012-05-29 | 2015-06-16 | Limelight Networks, Inc. | Chronological-progression access prioritization |
JP4995296B2 (ja) | 2010-03-11 | 2012-08-08 | 株式会社日立製作所 | 計算機システムおよびキャッシュ制御方法 |
US9185341B2 (en) * | 2010-09-03 | 2015-11-10 | Time Warner Cable Enterprises Llc | Digital domain content processing and distribution apparatus and methods |
JP5850057B2 (ja) * | 2011-09-07 | 2016-02-03 | 日本電気株式会社 | コンテンツ配信システム、制御装置およびコンテンツ配信方法 |
CN103795770B (zh) * | 2012-10-26 | 2017-07-04 | 伊姆西公司 | 在网络基础设施中提供高速缓存服务的方法和装置 |
CN103716254A (zh) * | 2013-12-27 | 2014-04-09 | 中国科学院声学研究所 | 内容中心网络中自集结协同缓存方法 |
US10366137B2 (en) * | 2014-08-15 | 2019-07-30 | Interdigital Patent Holdings, Inc. | Methods and apparatus for content delivery via browser cache extension |
CN105138587B (zh) * | 2015-07-31 | 2019-09-10 | 小米科技有限责任公司 | 数据访问方法、装置和*** |
US20180359335A1 (en) * | 2015-12-04 | 2018-12-13 | Idac Holdings, Inc. | Cooperative policy-driven content placement in backhaul-limited caching network |
WO2017124083A1 (en) * | 2016-01-15 | 2017-07-20 | Vid Scale, Inc. | Scalable coding based video distribution |
CN106572168A (zh) * | 2016-10-27 | 2017-04-19 | 中国科学院信息工程研究所 | 基于内容价值缓存的内容中心网络协同缓存方法及*** |
-
2017
- 2017-06-02 CN CN201710409582.2A patent/CN108989373B/zh active Active
-
2018
- 2018-05-30 EP EP18810856.7A patent/EP3585033B1/en active Active
- 2018-05-30 WO PCT/CN2018/089000 patent/WO2018219289A1/zh unknown
- 2018-05-30 KR KR1020197038420A patent/KR102288024B1/ko active IP Right Grant
- 2018-05-30 JP JP2019566676A patent/JP6866509B2/ja active Active
-
2019
- 2019-09-30 US US16/587,889 patent/US10868884B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139301A (zh) * | 2013-02-05 | 2013-06-05 | 华南师范大学 | 应用于内容分发网络***中的互联网访问加速方法及装置 |
CN103150347A (zh) * | 2013-02-07 | 2013-06-12 | 浙江大学 | 基于文件热度的动态副本管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108989373A (zh) | 2018-12-11 |
JP2020522078A (ja) | 2020-07-27 |
WO2018219289A1 (zh) | 2018-12-06 |
KR102288024B1 (ko) | 2021-08-09 |
US20200028933A1 (en) | 2020-01-23 |
EP3585033A1 (en) | 2019-12-25 |
EP3585033A4 (en) | 2019-12-25 |
JP6866509B2 (ja) | 2021-04-28 |
KR20200012931A (ko) | 2020-02-05 |
EP3585033B1 (en) | 2021-02-03 |
US10868884B2 (en) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9692849B2 (en) | Method and node entity for enhancing content delivery network | |
US8745334B2 (en) | Sectored cache replacement algorithm for reducing memory writebacks | |
US9386117B2 (en) | Server side data cache system | |
CN104145252B (zh) | 两级高速缓存***中的自适应高速缓存提升 | |
TWI684099B (zh) | 剖析快取替代 | |
US7908236B2 (en) | Using multiple data structures to manage data in cache | |
US20160048476A1 (en) | Data managing system, data managing method, and computer-readable, non-transitory medium storing a data managing program | |
US11093410B2 (en) | Cache management method, storage system and computer program product | |
US20140115252A1 (en) | Block storage-based data processing methods, apparatus, and systems | |
CN102164160A (zh) | 支持大并发量文件下载的方法、装置及*** | |
EP3115904B1 (en) | Method for managing a distributed cache | |
JP2017072982A (ja) | 情報処理装置、キャッシュ制御方法およびキャッシュ制御プログラム | |
US11593268B2 (en) | Method, electronic device and computer program product for managing cache | |
CN108989373B (zh) | 访问数据的方法和装置 | |
CN107341114A (zh) | 一种目录管理的方法、节点控制器和*** | |
US9851925B2 (en) | Data allocation control apparatus and data allocation control method | |
CN109582233A (zh) | 一种数据的缓存方法和装置 | |
JP2017072981A (ja) | 情報処理装置、キャッシュ制御方法およびキャッシュ制御プログラム | |
CN111124302B (zh) | 一种san共享文件存储和归档方法和*** | |
CN116028389A (zh) | 热点数据缓存方法、装置、设备及介质 | |
JP2007334752A (ja) | Raid装置、raid制御プログラムおよびキャッシュ管理方法 | |
CN111859225B (zh) | 程序文件的访问方法、装置、计算设备和介质 | |
US11899642B2 (en) | System and method using hash table with a set of frequently-accessed buckets and a set of less frequently-accessed buckets | |
US20240273027A1 (en) | Proactive caching of data for accelerator cores in a storage device | |
EP4261712A1 (en) | Data elimination method and apparatus, cache node, and cache system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |