Page 345 - 《软件学报》2021年第9期
P. 345

刘嘉琦  等:一种基于两级缓存的协同缓存机制                                                           2969


                                            . xhit =  . x hit ρ×  t cur t−  last  +  1        (1)
         其中,ρ(0<ρ<1)决定了内容命中次数随时间衰减的快慢,t cur 指当前时间,t last 指上次表项更新时间.与周期性进行
         热度衰减的方法不同,我们采用基于命中的时间衰减方法,这种方法不需要周期性地更新内容热度,只需要在有
         数据包到来的时候进行衰减操作,降低了更新的开销.当数据包到达时,首先利用时间衰变参数对历史的命中数
         进行衰减,再将衰减操作后的值加 1,表示当前内容在节点中的热度,当前时间与上次表项更新时间间隔越久,历
         史命中数对当前内容热度的影响越小.


















                                     Fig.2    Local hit table and popularity table
                                       图 2   本地命中列表与热度统计表

             当缓存内容在 RawCache 中发生替换时,首先根据 LHT 表中 hit 项判断其命中次数是否大于所设阈值,若满
         足要求,则认为该内容应该被缓存至域内 HashCache 中,此时节点会将内容本身以及该内容在 LHT 表中的相关
         信息一并发送至哈希映射所得节点.对应节点收到内容以后,除了存储内容本身以外,还会更新自身 PT 表项.更
         新规则如下:若 PT 表中没有该项内容,则直接将内容的单节点命中次数作为内容热度,即 x.popularity=x.hit;若
         PT 表中已存在该项内容,则使用下面的公式更新表项:
                                . x popularity θ  =×  . x hit +  (1 θ  −  ) x×  .popularity ρ  ×  t cur t−  last  (2)
         其中,θ(0<θ<1)是单节点内容命中次数在域内内容热度上的权重参数,ρ(0<ρ<1)决定了内容热度随时间衰减的
         快慢,t cur 指当前时间,t last 指上次表项更新时间.为与 LHT 表的时间衰减保持一致,我们在 PT 表的热度更新中同
         样引入时间衰减.通过哈希映射机制,域内各节点 RawCache 中替换出的同一内容会被发送到同一节点,目标节
         点通过域内各个节点的局部命中次数不断更新该内容的 popularity,最终得到的 popularity 实际上是域内所有
         节点命中次数共同作用的整体结果.PT 表中内容按照 popularity 由大到小排序,用以指导 HashCache 缓存哪些
         内容.节点会记录 HashCache 中已缓存内容的 popularity 最小值,当要缓存新内容时,首先比较二者的 popularity:
         若要缓存的内容的 popularity 大于该值,则进行缓存,并替换掉 popularity 最小的内容;否则不做缓存处理.
         2.3   CSTC路由策略

             本节假设我们提出的 CSTC 缓存机制运行在典型的 ICN 网络 NDN                  [12] 中,NDN 中共有两种数据类型:兴趣
         分组(interest packet)和数据分组(data packet).用户发起的请求称为 Interest,响应请求返回的内容数据称为
         Data.需要说明的是:HashCache 上采用的哈希映射机制的详细过程并不是 CSTC 关注的主要内容,就像我们并
         不限制 RawCache 上必须采用某种 On-path 缓存策略一样.
             表 1 中,当节点收到 Interest 请求时,首先会查找自身内容存储表(content store,CS)与待定请求表(pending
         interest table,简称 PIT),看是否有内容命中.若都没有命中,则根据哈希映射得到目标节点,并向其转发(第 5 行).
         若 Interest 到达目标节点后仍没有命中,则将 Interest 转发至内容源(第 3 行).
   340   341   342   343   344   345   346   347   348   349   350