CN102780773B - 以内容为中心的网络中保持缓存一致性的方法 - Google Patents
以内容为中心的网络中保持缓存一致性的方法 Download PDFInfo
- Publication number
- CN102780773B CN102780773B CN201210245588.8A CN201210245588A CN102780773B CN 102780773 B CN102780773 B CN 102780773B CN 201210245588 A CN201210245588 A CN 201210245588A CN 102780773 B CN102780773 B CN 102780773B
- Authority
- CN
- China
- Prior art keywords
- content
- version number
- network
- data
- data slice
- 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.)
- Expired - Fee Related
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种以内容为中心的网络中保持缓存一致性的方法,以解决以内容为中心的网络中缓存内容可能与数据源内容不一致的问题。其实现步骤是:在每个内容的属性中加入版本号作为新字段,当内容的版本升级时其版本号随之增加;当用户要获取某内容时,先向存储有该内容的数据源服务器查询其最新版本号,再向网络发出包含有版本号的Interest包;网络结点收到Interest包后,在缓存中查找对应数据片,并将数据片的版本号与Interest包中的版本号比对,当版本号相同时视为缓存查找成功,并返还数据片,反之视为查找失败,继续转发Interest包。本发明具有实现了缓存强一致性的优点,可用于以内容为中心的网络中对数据的缓存。
Description
技术领域
本发明属于网络技术领域,涉及在以内容为中心的网络中保持缓存一致性,可用于以内容为中心的网络中对数据的缓存。
背景技术
以内容为中心的网络,相对于现有的互联网,是一种革命性的演进。现有互联网是以主机为中心的,当用户要访问某一内容时,需指明该内容存储在哪个主机上,然后由用户到该主机去访问该内容。而在以内容为中心的网络中,当用户想访问某一内容时,只需要向网络提交访问该内容的请求,无需指明到哪里去获得该内容,而由网络负责将该内容送交用户。
在施乐Parc提出的以内容为中心的网络架构中,实现了根据名字路由的机制。当用户想获取某内容时,向网络提交一个Interest包,其中包含了该内容的名字。网络结点收到Interest包时,先在本结点的缓存中查找该内容;若该内容已在本结点的缓存中,则直接将数据返回给用户;若该内容不在本结点的缓存中,则根据其名字向网络转发该Interest包,交给下一个网络结点,直到该Interest被响应。网络响应Interest包的方式,是沿原路返回Data包;网络结点收到返回的Data包时,会将其存在本结点的缓存中,以备以后使用。
当数据源服务器的内容发生变化时,网络结点的缓存并不知晓,缓存中的内容保持不变,导致网络结点中的缓存内容与数据源服务器中的内容不一致,这就是以内容为中心的网络中的缓存一致性问题。数据源服务器内容发生变化的原因,可能是内容版本升级,或者内容被删除。
以内容为中心的网络中的缓存一致性问题与传统大规模并行处理***MPP中的缓存一致性问题有很大不同。MPP中缓存的位置是***可掌握的,***可以通知所有缓存更新内容。而在以内容为中心的网络中,由于缓存可能位于全网各处,数据源服务器无法掌握全部缓存的位置,因而无法主动通知所有缓存更新内容。
以内容为中心的网络中的缓存一致性问题与Web缓存中的一致性问题有相似之处,但也有很大不同。相似之处是,Web缓存中的缓存也是分布于全网各处。不同之处在于,Web缓存中的缓存,在缓存一致性模型中以单一结点的形式出现。而在以内容为中心的网络中,从用户结点到数据源服务器的通路上所有结点都有缓存,缓存结点是一条线,而非单点。当数据源服务器的内容更新时,这条线上的所有结点的缓存都应更新。这一不同导致以内容为中心的网络中,保持缓存一致性的策略与Web缓存有所不同,不能直接照搬Web缓存中的一致性算法。例如Web缓存中的TTL机制为每个缓存对象设置一个TTL值,当缓存时间小于TTL值时,认为缓存数据是最新的,把其返回给用户;否则当缓存时间大于TTL值时,就认为数据已过期,要向Web服务器发出一个请求,以确认缓存的副本是否仍然有效。TTL机制的缺点是必须等到缓存时间大于TTL时,才会检查缓存副本与原始服务器的一致性,增加了不一致的概率。Web缓存中的客户端定期轮询机制在用户每次访问Web资源时,缓存都认为数据已过期,要向Web服务器发送IF-Modified-Since的HTTP头来确认数据是否是最新的。客户端定期轮询机制导致资源在没有改变时,服务器要发回很多304NotModified响应,浪费带宽资源与服务器资源。Web缓存的服务器端无效机制是当服务器检测到一个Web资源改变时,就向最近访问过该资源和缓存过该资源的所有客户端发送无效消息。服务器端无效机制需要服务器跟踪最近访问过一个资源的客户端列表,并向列表中的客户端发送无效消息,当客户端很多时,服务器将过载。在以内容为中心的网络中,缓存分布在全网很多地方,数据源服务器不可能记录所有缓存过一个内容的网络结点,因此服务器端无效机制不可能实现。Web缓存的捎带无效机制包括三种:捎带缓存认证PCV、捎带服务器无效认证PSI、PSI与PCV的结合。三种捎带机制都是在缓存结点和服务器间的正常通信中捎带加入资源认证信息。但是在以内容为中心的网络中,从用户结点到数据源服务器结点的传输路径上的每个网络结点里都有缓存,在正常通信时分组流过传输路径上的每个网络结点,不可能把每个网络结点需要的资源认证信息都捎带上,因此三种捎带机制都不可能在以内容为中心的网络中应用。综上,Web缓存策略有些不能在以内容为中心的网络中应用,有些则存在不一致的概率大、或者浪费带宽资源、或者服务器负载大等缺点,需要针对以内容为中心的网络设计一种全新的缓存一致性策略。
发明内容
本发明的目的在于提出一种全新的以内容为中心的网络中保持缓存一致性的方法,以解决以内容为中心的网络中缓存内容可能与数据源内容不一致的问题。
实现本发明目的技术方案包括如下步骤:
(1)在每个内容的属性中加入一个版本号作为新字段,并将该版本号放入内容的每个数据片中;当内容的版本升级时,其版本号随之增加;当内容被删除时,其版本号为零;
(2)当用户要获取某个内容时,先向网络发出一个对该内容的版本号的查询请求Query包;
(3)网络中的中间结点收到版本号查询请求Query包时,由中间结点转发此请求而不响应此请求;
(4)网络中存储有步骤(2)要获取内容的数据源服务器响应版本号查询请求Query包,即在响应Response包中放入该内容的最新版本号后,返还给用户;
(5)用户获取到最新版本号后,开始正式请求数据,不断向网络发出包含有最新版本号的数据请求Interest包;若版本号为零,则向用户反馈内容被删除的消息;
(6)网络中的中间结点收到Interest包时,在缓存中查找Interest包所请求的数据片;当缓存中查找到所请求的数据片时,再将该数据片的版本号与Interest包中的版本号比对;若该数据片的版本号等于Interest包中的版本号,则视为缓存查找成功,将数据片返还给用户;若该数据片的版本号不等于Interest包中的版本号,则视为缓存查找失败,接着转发该Interest包,直到该Interest包被后续的中间结点响应,或者最终被数据源服务器响应。
本发明具有如下优点:
1)用版本号记录内容的更新情况,可适应内容多次更新的情况;
2)用版本号零表示内容被删除的情况,可向用户快速反馈内容被删除;
3)过时的低版本数据由缓存替换算法自动清除,不增加***的时间开销;
4)版本号请求与响应过程只在每个内容正式传输数据前发生一次,增加的网络负载不重,增加的响应延迟不大。
5)理论分析证明,本发明可保证从缓存返还给用户的数据片与数据源服务器中的数据片始终保持一致,实现了缓存的强一致性。
附图说明
图1是本发明的总流程图;
图2是本发明中版本号请求与响应的示意图;
图3是本发明中Query包的格式图;
图4是本发明中Response包的格式图;
图5是本发明中Interest包被网络中间结点响应的示意图;
图6是本发明中Interest包的格式图;
图7是本发明中Interest包被数据源服务器响应的示意图。
具体实施方式
参照图1,本发明以内容为中心的网络中保持缓存一致性的方法,包括以下步骤:
步骤1,在每个内容的属性中加入一个版本号作为新字段,并将该版本号放入内容的每个数据片中;当内容的版本升级时,其版本号随之增加;当内容被删除时,其版本号为零。
例如,将版本号设置为8位,则最多支持256个版本。在每个内容的属性中加入一个版本号作为新字段,是分别为每个内容增加一个版本号属性,各内容的版本号彼此独立。
步骤2,当用户要获取某个内容时,先向网络发出一个对该内容的版本号的查询请求Query包,查询某内容的最新版本号,如图2中用户向网络结点A发出一个Query包。
所述的Query包,其格式如图3所示,其中包括报文长度、报文类型及所要查询的内容的名字。报文长度字段长32位,报文类型字段长8位,内容名字字段长度不定。
步骤3,网络中的中间结点收到版本号查询请求Query包时,由中间结点对该请求进行转发,如图2中的网络中间结点A、B、C、D在收到Query包时,不能返回消息包给用户,而只能向数据源服务器的方向转发Query包,即A将Query包转发给B,B将Query包转发给C,C将Query包转发给D,D再将Query包转发给数据源服务器。
步骤4,网络中存储有步骤2要获取内容的数据源服务器响应版本号查询请求Query包,即在响应Response包中放入该内容的最新版本号后,返还给用户。如图2所示,数据源服务器发出一个Response包给网络结点D,Response包沿原路返回,即Response包经过网络结点D、C、B、A,最终返还给用户。
所述的Response包,其格式如图4所示,其中包括报文长度、报文类型、内容的名字和内容的最新版本号。报文长度字段长32位,报文类型字段长8位,内容版本号字段长8位,内容名字字段长度不定。
上述步骤2到步骤4的版本号请求与响应过程,只在每个内容正式传输数据前发生一次。
步骤5,用户获取到最新版本号后,开始正式请求数据,不断向网络发出包含有最新版本号的数据请求Interest包;若版本号为零,则向用户反馈内容被删除的消息。
如图5所示,用户向网络结点A发出Interest包,该Interest包的格式如图6所示,其中包括报文长度、报文类型、所请求内容的名字、内容最新版本号及所请求数据片的偏移量。报文长度字段长32位,报文类型字段长8位,内容版本号字段长8位,数据片偏移量字段长48位,内容名字字段长度不定。
步骤6,网络中的中间结点收到Interest包时,在缓存中查找Interest包所请求的数据片;当缓存中查找到所请求的数据片时,再将该数据片的版本号与Interest包中的版本号比对;若该数据片的版本号等于Interest包中的版本号,则视为缓存查找成功,将数据片返还给用户;若该数据片的版本号不等于Interest包中的版本号,则视为缓存查找失败,接着转发该Interest包,直到该Interest包被后续的中间结点响应,或者最终被数据源服务器响应。
上述缓存查找、版本号比对与Interest包转发过程如图5所示,网络结点A、B、C在接到Interest包时,都要查找自己的缓存,看是否存储有Interest包所请求的数据片;当网络结点A和B的缓存中没有对应数据片时,则向数据源服务器方向转发Interest包,即A将Interest包转发给B,B将Interest包转发给C;当网络结点C的缓存中有该数据片,则要将该数据片的版本号与Interest包中的版本号进行比对;当网络结点C中的数据片版本号与Interest包中的版本号一致时,则视为缓存查找成功,将该数据片形成的Data包沿原路返还给用户,即Data包由网络结点C发出,经过网络结点B和A到达用户。
图7所示的是网络结点A和B的缓存中没有Interest包所请求的数据片,而网络结点C的缓存中有该数据片,但网络结点C中的数据片版本号与Interest包中的版本号不一致,则视为缓存查找失败,接着将该Interest包转发给网络结点D;网络结点D中也没有所请求的数据片,最终Interest包被转发给数据源服务器,由数据源服务器将数据片放入Data包沿原路返还给用户,即Data包由数据源服务器发出,经过网络结点D、C、B、A到达用户。
在缓存中查找Interest包所请求的数据片,是根据Interest包中所请求内容的名字和数据片的偏移量,使用Trie树查找法或哈希表查找法在缓存中查找对应数据片。
Trie树查找法,是一种用于快速检索的多叉树查找方法,典型应用是用于统计和排序大量的字符串。它的优点是:最大限度地减少无谓的字符串比较,查找效率比哈希表查找法高。由于以内容为中心的网络中,内容名字为字符串,因此容易用Trie树存储与查找。Trie树查找法详见教科书:严蔚敏,吴伟民,数据结构(C语言版),清华大学出版社,1997年4月第一版,9.2.3节,249页。
哈希表查找法,是构造一个哈希表,在哈希表中查找内容的数据片,查找时首先根据内容的名字和数据片的偏移量计算哈希函数值映射到一个存储位置,再到这个存储位置查找相应数据片。哈希表查找法详见教科书:严蔚敏,吴伟民,数据结构(C语言版),清华大学出版社,1997年4月第一版,9.3节,251页。
在一个缓存里允许有同一个内容的高版本的数据片和低版本的数据片共存,高版本内容是版本升级之后的内容,低版本内容是版本升级之前的内容。对低版本内容的数据片不进行主动删除,而是当低版本内容的数据片长时间不被访问后,由缓存替换算法如最近最少使用算法LRU或最不经常使用算法LFU自动将其删除。当缓存已满而又有新的数据片要放入缓存时,LRU算法将近期最少访问的数据片从缓存中删除,而LFU将一段时间里访问次数最少的数据片从缓存中删除。LRU算法和LFU算法详见教科书:白中英主编,戴志涛、张天乐、覃健诚编著,计算机组成与体系结构,科学出版社,2011年12月第五版,3.6.3节,95页。
术语解释
MPP:Massive Parallel Processing,大规模并行处理***。
LRU:Least Recently Used,最近最少使用算法。
LFU:Least Frequently Used,最不经常使用算法。
Claims (9)
1.一种以内容为中心的网络中保持缓存一致性的方法,包括以下步骤:
(1)在每个内容的属性中加入一个版本号作为新字段,并将该版本号放入内容的每个数据片中;当内容的版本升级时,其版本号随之增加;当内容被删除时,其版本号为零;
(2)当用户要获取某个内容时,先向网络发出一个对该内容的版本号的查询请求Query包;
(3)网络中的中间结点收到版本号查询请求Query包时,由中间结点转发此请求而不响应此请求;
(4)网络中存储有步骤(2)要获取内容的数据源服务器响应版本号查询请求Query包,即在响应Response包中放入该内容的最新版本号后,返还给用户;
(5)用户获取到最新版本号后,开始正式请求数据,不断向网络发出包含有最新版本号的数据请求Interest包;若版本号为零,则向用户反馈内容被删除的消息;
(6)网络中的中间结点收到Interest包时,在缓存中查找Interest包所请求的数据片;当缓存中查找到所请求的数据片时,再将该数据片的版本号与Interest包中的版本号比对;若该数据片的版本号等于Interest包中的版本号,则视为缓存查找成功,将数据片返还给用户;若该数据片的版本号不等于Interest包中的版本号,则视为缓存查找失败,接着转发该Interest包,直到该Interest包被后续的中间结点响应,或者最终被数据源服务器响应。
2.根据权利要求1所述的以内容为中心的网络中保持缓存一致性的方法,其特征在于,步骤(1)所述的在每个内容的属性中加入一个版本号作为新字段,是分别为每个内容增加一个版本号属性,各内容的版本号彼此独立。
3.根据权利要求1所述的以内容为中心的网络中保持缓存一致性的方法,其特征在于,所述步骤(2)中查询请求Query包,包括所要查询的内容的名字。
4.根据权利要求1所述的以内容为中心的网络中保持缓存一致性的方法,其特征在于,步骤(3)所述的中间结点转发此请求而不响应此请求,是指网络中间结点不能返回消息包给用户,而只能向数据源服务器的方向转发Query包。
5.根据权利要求1所述的以内容为中心的网络中保持缓存一致性的方法,其特征在于,所述步骤(4)中的Response包,其中包括内容的名字和内容的最新版本号。
6.根据权利要求1所述的以内容为中心的网络中保持缓存一致性的方法,其特征在于,所述步骤(2)到(4)的版本号请求与响应过程,只在每个内容正式传输数据前发生一次。
7.根据权利要求1所述的以内容为中心的网络中保持缓存一致性的方法,其特征在于,所述步骤(5)的数据请求Interest包,其中包括所请求内容的名字、版本号及所请求数据片的偏移量。
8.根据权利要求1所述的以内容为中心的网络中保持缓存一致性的方法,其特征在于,步骤(6)所述的在缓存中查找Interest包所请求的数据片,是根据Interest包中所请求内容的名字和数据片的偏移量,使用Trie树查找法或哈希表查找法在缓存中查找对应数据片。
9.根据权利要求1所述的以内容为中心的网络中保持缓存一致性的方法,其特征在于,在一个缓存里允许有同一个内容的高版本的数据片和低版本的数据片共存,高版本内容是版本升级之后的内容,低版本内容是版本升级之前的内容,对低版本内容的数据片不进行主动删除,而是当低版本内容的数据片长时间不被访问后,由缓存替换算法自动将其删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210245588.8A CN102780773B (zh) | 2012-07-16 | 2012-07-16 | 以内容为中心的网络中保持缓存一致性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210245588.8A CN102780773B (zh) | 2012-07-16 | 2012-07-16 | 以内容为中心的网络中保持缓存一致性的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102780773A CN102780773A (zh) | 2012-11-14 |
CN102780773B true CN102780773B (zh) | 2015-01-07 |
Family
ID=47125525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210245588.8A Expired - Fee Related CN102780773B (zh) | 2012-07-16 | 2012-07-16 | 以内容为中心的网络中保持缓存一致性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102780773B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104301556B (zh) | 2014-09-26 | 2017-12-29 | 小米科技有限责任公司 | 电话交互方法、装置和*** |
CN106487842A (zh) * | 2015-08-28 | 2017-03-08 | 北京国双科技有限公司 | 推送和接收配置信息的方法、服务器及客户端 |
CN105528464B (zh) * | 2016-01-28 | 2019-03-26 | 北京宇航***工程研究所 | 一种自动判断关联数据技术状态一致性的版本管理*** |
CN109656733B (zh) * | 2018-12-27 | 2021-03-12 | 厦门商集网络科技有限责任公司 | 智能调度多ocr识别引擎的方法及设备 |
CN110636121B (zh) * | 2019-09-09 | 2022-07-05 | 苏宁云计算有限公司 | 一种数据获取方法及*** |
CN110830580B (zh) * | 2019-11-12 | 2023-04-18 | 腾讯云计算(北京)有限责任公司 | 一种存储数据同步方法及装置 |
CN114124924A (zh) * | 2020-08-25 | 2022-03-01 | 深圳市欢太科技有限公司 | 一种确定配置信息的方法、设备及*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2381647A1 (en) * | 2010-04-22 | 2011-10-26 | Palo Alto Research Center Incorporated | Session migration over content-centric networks |
CN102546583A (zh) * | 2010-08-06 | 2012-07-04 | 帕洛阿尔托研究中心公司 | 在内容中心网络上的服务虚拟化 |
-
2012
- 2012-07-16 CN CN201210245588.8A patent/CN102780773B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2381647A1 (en) * | 2010-04-22 | 2011-10-26 | Palo Alto Research Center Incorporated | Session migration over content-centric networks |
CN102546583A (zh) * | 2010-08-06 | 2012-07-04 | 帕洛阿尔托研究中心公司 | 在内容中心网络上的服务虚拟化 |
Also Published As
Publication number | Publication date |
---|---|
CN102780773A (zh) | 2012-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102780773B (zh) | 以内容为中心的网络中保持缓存一致性的方法 | |
US10248655B2 (en) | File storage system, cache appliance, and method | |
US7587398B1 (en) | System and method of accessing a document efficiently through multi-tier web caching | |
US8825754B2 (en) | Prioritized preloading of documents to client | |
US7647417B1 (en) | Object cacheability with ICAP | |
US8275790B2 (en) | System and method of accessing a document efficiently through multi-tier web caching | |
US7565423B1 (en) | System and method of accessing a document efficiently through multi-tier web caching | |
US9514243B2 (en) | Intelligent caching for requests with query strings | |
US7228318B2 (en) | System and methods for invalidation to enable caching of dynamically generated content | |
EP2169909B1 (en) | System and method to maintain coherence of cache contents in a multi-tier software system aimed at interfacing large databases | |
EP3832496A1 (en) | Improved proxy server caching of database content | |
JP4579501B2 (ja) | アプリケーションサーバおよびアプリケーションプログラム | |
JPH10254753A (ja) | キャッシュ間情報転送方法 | |
US7739236B2 (en) | System and method for preserving filehandles across file system migrations on a best effort basis | |
US7676553B1 (en) | Incremental web crawler using chunks | |
US20130268831A1 (en) | Method, device, and system for acquiring start page | |
US10936590B2 (en) | Bloom filter series | |
US11829345B2 (en) | Distributed data processing | |
US8364655B2 (en) | Hybrid off-peak and just-in-time integration | |
CN113407639B (zh) | 数据处理方法、装置、***及存储介质 | |
WO2017092356A1 (zh) | 用于提供服务数据的服务器、方法及*** | |
CN117615013B (zh) | 文件查找方法、装置、设备及可读存储介质 | |
US9686228B2 (en) | Integrated just-in-time synchronization | |
US20240214449A1 (en) | Ensuring Coherency Across Responses When Handling A Series Of Client Requests | |
JP5706956B1 (ja) | データベースシステム及びデータベース制御方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150107 Termination date: 20200716 |