[ 
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)

Reply via email to