[
https://issues.apache.org/jira/browse/CASSANDRA-7438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14048443#comment-14048443
]
Vijay commented on CASSANDRA-7438:
----------------------------------
Thanks Robert, Pushed the fix for 1 and 2.
{quote}
Utils.md5sum() should use thread local instances of MessageDigest
{quote}
Md5 is fine since this happens only when initialized for the first time when
the cache is initialized and it should be fine.
{quote}
the mechanism to extract the so/dylib is a bit error prone since all JVM
instances use the same path name.
{quote}
IMHO, Its a safe assumption that we don't support multiple versions on the same
physical box (of the library) on the same machine at the same time.
{quote}
counters/timers in C code to track global locks
{quote}
NOTE: this is only during the hash table expansions. (not during steady state)
Created a ticket to track it in the near future... May want to do something
little fancy like Yammer Metrics
{quote}
"used>highWaterMark", where highWaterMark is for example 80% of max
{quote}
I initially tried with the queue thread, to keep track of usage and expire
proactively, but I had to involves a global lock and we might end up over
committing memory, so may be in the future. (Current implementation works
similar to CLHM)
> 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
>
>
> 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.2#6252)