cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Stupp (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CASSANDRA-7438) Serializing Row cache alternative (Fully off heap)
Date Tue, 23 Sep 2014 20:01:34 GMT

    [ https://issues.apache.org/jira/browse/CASSANDRA-7438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14145338#comment-14145338
] 

Robert Stupp edited comment on CASSANDRA-7438 at 9/23/14 8:01 PM:
------------------------------------------------------------------

(note: [~vijay2win@yahoo.com], please use the other nick)

Some quick notes:
* Can you add the assertion for {{capacity <= 0}} to {{OffheapCacheProvider.create}} -
the current error message if {{row_cache_size_in_mb}} is not set (or invalid) "capacity should
be set" could be more fleshy
* Additionally the {{capacity}} check should also check for negative values (it starts with
a negative value - don't know what happens if it is negative...)
* {{org.apache.cassandra.db.RowCacheTest#testRowCacheCleanup}} fails at the last assertion
- all other unit tests seem to work
* Documentation in cassandra.yaml for row_cache_provider could be a bit more verbose - just
some abstract about the characteristics and limitation (e.g. Offheap does only work on Linux
+ OSX) of both implementations
* IMO it would be fine to have a general unit test for {{com.lruc.api.LRUCache}} in C* code,
too
* Please add an adopted copy of {{RowCacheTest}} for OffheapCacheProvider
* unit tests using OffheapCacheProvider must not start on Windows builds - please add an assertion
in OffHeapCacheProvider to assert that it runs on Linux or OSX

Sorry for the late reply


was (Author: snazy):
(note: [~vijay2win@gmail.com], please use the other nick)

Some quick notes:
* Can you add the assertion for {{capacity <= 0}} to {{OffheapCacheProvider.create}} -
the current error message if {{row_cache_size_in_mb}} is not set (or invalid) "capacity should
be set" could be more fleshy
* Additionally the {{capacity}} check should also check for negative values (it starts with
a negative value - don't know what happens if it is negative...)
* {{org.apache.cassandra.db.RowCacheTest#testRowCacheCleanup}} fails at the last assertion
- all other unit tests seem to work
* Documentation in cassandra.yaml for row_cache_provider could be a bit more verbose - just
some abstract about the characteristics and limitation (e.g. Offheap does only work on Linux
+ OSX) of both implementations
* IMO it would be fine to have a general unit test for {{com.lruc.api.LRUCache}} in C* code,
too
* Please add an adopted copy of {{RowCacheTest}} for OffheapCacheProvider
* unit tests using OffheapCacheProvider must not start on Windows builds - please add an assertion
in OffHeapCacheProvider to assert that it runs on Linux or OSX

Sorry for the late reply

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

Mime
View raw message