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

Branimir Lambov commented on CASSANDRA-11452:
---------------------------------------------

Work in progress attached 
[here|https://github.com/blambov/cassandra/tree/5863-cache-implementation]: 

Implements caches based on {{ConcurrentHashMap}} using FIFO, LRU and LIRS 
eviction strategies, implemented with lock-free queues. Also has version of the 
LIRS with some locking, as well as EHCache (too slow) for comparison.

LIRS does achieve better hit ratios, very obviously so for smaller 
cache-to-data ratios. Its latencies and throughput are similar to the Guava 
cache.
[Sample hit rates (using the included {{CachingBench}}) and varying the cache 
size)|https://docs.google.com/spreadsheets/d/1FlOFIMidbRXIXbu6wAEDBsyCiFE95XiwVz9aE7iYuh4/edit?usp=sharing]
[cstar_perf|http://cstar.datastax.com/tests/id/a7389154-f756-11e5-82e5-0256e416528f]


Next step: try an alternative for the concurrent hash map.


> 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