[Lemei Huang-Notes] Temporal locality

2017-10-10

Posted by 黄乐玫

做了什么事

提出了一个生成人工的,内容请求trace的方法SNM。

为什么要做这个

与IRM相比

IRM:Independent reference model。N个内容(1,…,n),这N个内容有个热度分布q(i),而下一个请求请求的内容为i的概率与q(i)成正比。通常情况下分布q(i)为Zipf分布。

用IRM来生成人工模拟trace,有局限性,甚至可能是错误的。
在它的假设里,q(n)一直是固定的,已经出现的请求影响不到下一个请求是谁的概率。而这不符合实际情况。

与使用真实trace相比

  1. 真实trace的质量对结果有重要影响
  2. 首先需要它足够大,不够大不行
  3. 其实,它不能模拟某些特殊情况

使用模拟trace的好处是:对于难以取trace的场合(规模大、还没出现这种应用场景等),使用模拟trace更能有效评估scheme的作用。
当然,既然是模拟trace,就存在与现实情况有出入的可能。

IDEA

证明IRM偏差大

把真实trace按时间分成k个时间片,每个时间片里的请求打乱。

这里打乱的动机是对于很多cache策略来说,请求序列才是最终决定性能的,与请求间间隔无关。
是不是策略里考虑了时间因素的话,除了请求序列之外,请求间间隔也会决定呢?

  • k越小,打乱得越均匀,越接近IRM,局部性越小
  • k越大,时间局部性保留得越多,越接近真实trace。

!不论打不打乱,分不分块,这一段trace的popularity分布是固定的。

结果是k小和k大之间有相当的差距,说明同一个热度分布下,IRM模型模拟的结果与真实情况有出入。

这里也有一个结论,时间片小到一定程度的时候,时间片里的请求可以视作IRM。
之前我们讨论过,取一个间隔T,使得在这个间隔里同一个用户尽量不出现两个请求。上述时间片和这里的间隔T,是不是相似的东西呢?

SNM

每个内容的请求由一个非齐次泊松分布模拟,拥有一个寿命。
具体参数从样本trace里分析得出。

为什么要分class?
寿命长度为固定的几个数字,而不是一个内容一个长度