cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Stupp (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-7438) Serializing Row cache alternative (Fully off heap)
Date Wed, 29 Oct 2014 23:07:36 GMT


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|] 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"

# 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

> Serializing Row cache alternative (Fully off heap)
> --------------------------------------------------
>                 Key: CASSANDRA-7438
>                 URL:
>             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
> * 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

View raw message