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

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


         概率为:
                                                     1
                                               p =  N  k ⎛  ⎜∑  α 1 ⎞                         (3)
                                                k
                                                   i= 1 i ⎝  α ⎟  ⎠
             实验中,缓存默认替换算法采用 LRU(least recently used),每次替换掉最近最少使用的内容.仿真过程中,首
         先等待每个节点的缓存空间被占满,然后等待每个节点处于稳定状态(即节点收到的请求数上下波动处于较小
         范围)后,开始数据收集与统计.仿真实验中,各项参数见表 3.下文未特别说明实验参数的情形下,均采用表 3 中默
         认值.
                                       Table 3  Parameters of experiments
                                               表 3   实验参数
                                           参数         默认值     变动范围
                                         Zipf 参数α      0.8    0.6~1.4
                                         缓存大小          500   500~7 000
                                      内容源距离域跳数         10
                                         内容数量        1 000 000
                                        缓存替换算法         LRU
                                       时间权重参数ρ         0.9

         3.2   对比方案与性能指标
             仿真实验中采用的缓存方案包括如下几种.
             •   CSTC:即本文提出的基于两级缓存的缓存机制.实验中,每个缓存节点的 RawCache 与 HashCache 各占
                一半,RawCache 上采用 Prob(0.05)的 On-path 策略,设置的命中阈值为 1,热度权重参数θ为 0.6,时间权
                重参数ρ为 0.9;
             •   OH:我们实现了文献[15]中的哈希映射机制,将其应用到仿真实验中,以代表现有各种基于哈希的缓存
                策略,我们将这类策略简称为 OH(only Hash);
             •   LCE:多数 ICN 默认缓存策略,即节点无差别的缓存所有内容                [12] ;
             •   Prob(p):每个节点以固定概率 p 缓存经过的所有内容,我们设置的 p=0.05;
             •   ProbCache:一种基于加权概率的缓存策略,距离请求者越近、存储空间越大的节点,缓存该内容的概率
                越大;
             •   BidCache:我们实现了文献[9]中的 BidCache 缓存机制,这是一种近年来较为典型的 On-path 协作式缓
                存策略,它利用较少的代价进行路径上节点的通信,结合网络的拓扑实现缓存决策.
             本文主要从两个方面评判缓存方案的优劣.
             (1)  请求命中率
             内容请求在域内总的命中率反映了域内整体缓存状态(包括缓存多样性、缓存可用性、缓存冗余度等)的
         好坏,命中率越高,说明缓存效果越好,带来的网络性能提升也越明显.请求命中率的计算公式如下:
                                                    ||V
                                                    ∑  Num hit
                                            HitRate =  i= 1                                   (4)
                                                     Num total
         其中,Num hit 表示请求在该节点的命中次数,Num total 表示请求总数,i 表示第 i 个节点.
             (2)  平均传输跳数
             平均传输跳数不仅反映了缓存内容的好坏,还体现了缓存位置是否合理.当请求命中率较高时,多数请求在
         域内命中,避免了出域的跳数代价,跳数也就越小.同时,缓存内容位置越合理,平均传输跳数也就越小,用户访问
         延时越低.其计算公式如下:
   342   343   344   345   346   347   348   349   350   351   352