Hi,

That's exactly what i thought. But even if using ">>=" instead of "<<=", there 
still seems to be some inconsistency with the comment ( According to the 
implementation of REQUEUE_HITS, the "hits" will be set to 1 if the number is 
greater than 1, otherwise it will be set to 0)

I'm not sure if it is a bug or if the comment is too old......

-----邮件原件-----
发件人: Alan M. Carroll [mailto:a...@network-geographics.com] 
发送时间: 2015年1月22日 8:12
收件人: dev@trafficserver.apache.org
主题: Re: Question about the implementation of CLFUS

I wonder if it was meant to be "e->hits >>= 1;" - that would almost make sense 
with the comment.

Tuesday, January 20, 2015, 10:00:40 PM, you wrote:

> Hi all,

> I have a question about the tick function of RamCacheCLFUS, the code is :

> ......
e->>hits <<= 1;
if (e->>hits) {
>    e->hits = REQUEUE_HITS(e->hits);
>    lru[1].enqueue(e);
> } else
>    goto Lfree;
> ......

> I'm confused about the code, it doubles the hit number and then check if the 
> number is zero or not. What's the usage of the doubling ??

> It seems the implementation is not the same as the introduction of history 
> list 
> (http://nottheoilrig.com/trafficserver/201408290/arch/cache/ram-cache.en.html),
>  "Each CLOCK the least recently used entry in the History List is dequeued 
> and if the "hits" field is not greater than 1 (it was hit at least once in 
> the History or Cached List) it is deleted, otherwise the "hits" is set to 
> zero and it is requeued on the History List."


> Am I missing something??


> Regards,

> Huawei Technologies, China
> Haojun Zhou



Reply via email to