[ https://issues.apache.org/jira/browse/CASSANDRA-7438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14189224#comment-14189224 ]
Robert Stupp commented on CASSANDRA-7438: ----------------------------------------- LGTM - but some comments: * the comments in cassandra.yaml could be more fleshy (see below) * the version of lruc.jar should not be a SNAPSHOT version and a bit higher than 0.0.1 (although it's "just a number", people usually don't trust something with a '0' in front :) ) - [lruc repo|https://github.com/Vijay2win/lruc/commits/master] shows v0.7 as current version - recommend to use the latest lruc release in C* * would be very nice to have these released on maven central * after lruc-0.7 is used for this ticket, we should run a stress test against a cluster using OffheapCacheProvider as some kind of "smoke test" {code} # Number of keys from the row cache to save. # Disabled by default, meaning all keys are going to be saved. # row_cache_keys_to_save: 100 # Row cache provider to use. # Possible values are SerializingCacheProvider and OffheapCacheProvider. # Default is no row cache. # # SerializingCacheProvider is the one used in previous versions of Cassandra. # It is available on all platforms and uses offheap memory for the rows but # structures on the Java heap to manage the offheap row data. # # OffheapCacheProvider is new in Cassandra 3.0 and only available on # Unix platforms (Linux and OSX). # It uses a native code library to manage the whole row cache including # management information in native memory thus reducing heap # pressure compared to SerializingCacheProvider. # # row_cache_provider: SerializingCacheProvider {code} > Serializing Row cache alternative (Fully off heap) > -------------------------------------------------- > > Key: CASSANDRA-7438 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7438 > Project: Cassandra > Issue Type: Improvement > Components: Core > Environment: Linux > Reporter: Vijay > Assignee: Vijay > Labels: performance > Fix For: 3.0 > > Attachments: 0001-CASSANDRA-7438.patch > > > Currently SerializingCache is partially off heap, keys are still stored in > JVM heap as BB, > * There is a higher GC costs for a reasonably big cache. > * Some users have used the row cache efficiently in production for better > results, but this requires careful tunning. > * Overhead in Memory for the cache entries are relatively high. > So the proposal for this ticket is to move the LRU cache logic completely off > heap and use JNI to interact with cache. We might want to ensure that the new > implementation match the existing API's (ICache), and the implementation > needs to have safe memory access, low overhead in memory and less memcpy's > (As much as possible). > We might also want to make this cache configurable. -- This message was sent by Atlassian JIRA (v6.3.4#6332)