You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Ben Manes (JIRA)" <ji...@apache.org> on 2015/12/14 08:01:46 UTC

[jira] [Created] (CASSANDRA-10855) Use Caffeine (W-TinyLFU) for on-heap caches

Ben Manes created CASSANDRA-10855:
-------------------------------------

             Summary: Use Caffeine (W-TinyLFU) for on-heap caches
                 Key: CASSANDRA-10855
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10855
             Project: Cassandra
          Issue Type: Improvement
            Reporter: Ben Manes


Cassandra currently uses [ConcurrentLinkedHashMap|https://code.google.com/p/concurrentlinkedhashmap] for performance critical caches (key, counter) and Guava's cache for non-critical (auth, metrics, security). All of these usages have been replaced by [Caffeine|https://github.com/ben-manes/caffeine], written by the author of the previously mentioned libraries.

The primary incentive is to switch from LRU policy to W-TinyLFU, which provides [near optimal|https://github.com/ben-manes/caffeine/wiki/Efficiency] hit rates. It performs particularly well in database and search traces, is scan resistant, and as adds a very small time/space overhead to LRU.

Secondarily, Guava's caches never obtained similar [performance|https://github.com/ben-manes/caffeine/wiki/Benchmarks] to CLHM due to some optimizations not being ported over. This change results in faster reads and not creating garbage as a side-effect.



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