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

2968                                 Journal of Software  软件学报 Vol.32, No.9,  September 2021

         替换操作;否则,直接执行替换操作.协作域中节点的 HashCache 部分收到从 RawCache 发来的内容时,对其进行
         缓存决策,此时若该节点的 RawCache 中已缓存该内容,则将内容从 RawCache 中删除以避免冗余.当 HashCache
         发生内容替换时,考虑到 HashCache 中多为热门内容,节点将替换内容移动到本节点的 RawCache 中,而不是直
         接丢弃.
             通过这种两级缓存机制,域内的 RawCache 会对网络中的内容进行筛选,被频繁访问的最热门内容会稳定
         地缓存在各个节点的 RawCache 中,降低用户的访问跳数,也减轻了网络核心节点的负载.RawCache 中替换出的
         仍有一定热度的内容会通过哈希映射缓存在 HashCache 中,大幅提高了缓存的多样性,同时避免了过度冗余.



















                                        Fig.1  Two-level cache for CSTC
                                            图 1   CSTC 两级缓存
         2.2   CSTC热度筛选
             内容热度是影响网络缓存性能的关键.相比于常见的利用内容请求次数来表示内容热度,本节设计了基于
         内容命中次数的热度统计方法,主要基于以下考虑.
             1)   由于网络中的内容非常多,统计所有内容的请求数是不现实且不必要的.为了降低时间空间开销,我
                 们只针对已缓存的内容进行请求次数的统计,已缓存内容的请求次数即为内容的命中数;
             2)   在 CSTC 方法中,热度内容首先基于 On-path 策略存入 RawCache,针对 RawCache 中已缓存的内容,
                 再利用其热度信息判断是否存入 HashCache.热度统计只是针对 RawCache 已缓存内容,命中数可以
                 很好地反映已缓存内容的热度.
             为了准确感知内容热度,CSTC 中每个节点需要维护两种数据结构:本地命中列表(local hit table,简称 LHT)
         和热度统计列表(popularity table,简称 PT).如图 2 所示,LHT 用以维护节点已缓存内容在该节点上的命中次数,
         格式为〈name:(hit,time)〉.PT 用以维护内容在协作域内的热度,格式为〈name:(popularity,time)〉.各字段含义如下.
             •   name:目标内容名字;
             •   hit:内容命中次数,非负整数;
             •   popularity:内容在域内的热度,非负整数;
             •   time:列表项上次更新时间.
             当内容在节点的缓存空间(RawCache 或 HashCache)命中时,LHT 对应位置上的 hit 项则加 1.LHT 的列表长
         度与节点的缓存大小一样,当内容从节点缓存空间移除时,对应表项也随之移除.因此,LHT 统计的内容命中次
         数只是单节点局部时间热度,保证了列表较小的空间复杂度.hit 的初始值为对应内容在 PIT 表中记录的返回接
         口数目减 1,表示在内容被缓存到节点的 CS 中之前,内容的热度等于内容的请求数.当内容被缓存在节点的 CS
         中后,内容在该节点的请求可以在 CS 中命中,此时内容的请求数等于内容的命中数.当 Interest 在节点的 CS 中
         命中时,使用下面的公式更新表项:
   339   340   341   342   343   344   345   346   347   348   349