[ 
https://issues.apache.org/jira/browse/CASSANDRA-11452?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15244465#comment-15244465
 ] 

Benedict edited comment on CASSANDRA-11452 at 4/16/16 11:29 PM:
----------------------------------------------------------------

One more variant for you: instead of random admission, with a similar (or 
slightly higher) rate, walk an LRU order iterator one step and use the next 
key's frequency.  After each step, reset the iterator with a 1% chance.

Basically it's the same as random admission but without its blindness.  Could 
have a bound on frequency, but could be very low, perhaps just 3 to ignore 100% 
no doubt legit rejections.

Not suggesting you go and do it, just wanted to note it for posterity as I 
think it's approximately optimal.  Only risk is if your finger gets referenced 
and bumped to MRU, which could be guarded against.

bq. Thanks a lot for all your help on this =)

My pleasure - this is my idea of fun.

Thanks for putting together an implementation of W-TinyLFU and the trace 
simulators!



was (Author: benedict):
One more variant for you: instead of random admission, with a similar (or 
slightly higher) rate, walk an LRU order iterator one step and use the next 
key's frequency.  After each step, reset the iterator with a 1% chance.

Basically it's the same as random admission but without its blindness.  Could 
have a bound on frequency, but could be very low, perhaps just 3 to ignore 100% 
no doubt legit rejections.

Not suggesting you go and do it, just wanted to note it for posterity as I 
think it's approximately optimal.  Only risk is if your finger gets referenced 
and bumped to MRU, which could be guarded against.

bq. Thanks a lot for all your help on this =)

My pleasure - this is my idea of fun.


> Cache implementation using LIRS eviction for in-process page cache
> ------------------------------------------------------------------
>
>                 Key: CASSANDRA-11452
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-11452
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Local Write-Read Paths
>            Reporter: Branimir Lambov
>            Assignee: Branimir Lambov
>
> Following up from CASSANDRA-5863, to make best use of caching and to avoid 
> having to explicitly marking compaction accesses as non-cacheable, we need a 
> cache implementation that uses an eviction algorithm that can better handle 
> non-recurring accesses.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to