cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Ellis (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-3862) RowCache misses Updates
Date Sat, 11 Feb 2012 00:01:06 GMT

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

Jonathan Ellis commented on CASSANDRA-3862:
-------------------------------------------

Looks to me like we might be able to simplify things by splitting the "initialize row cache"
code (which can assume the cache is empty, and does not need a filter) out from the "look
up a cached row and cache it if it is not present" method.

Nit: although not perfect, IMO "getRawCachedRow" is a better method name than "getCachedRowNoStats"
-- the important thing to convey is that we're only inspecting the cache's contents, not changing
them.
                
> RowCache misses Updates
> -----------------------
>
>                 Key: CASSANDRA-3862
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3862
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.0.7
>            Reporter: Daniel Doubleday
>         Attachments: 3862-v2.patch, 3862.patch, include_memtables_in_rowcache_read.patch
>
>
> While performing stress tests to find any race problems for CASSANDRA-2864 I guess I
(re-)found one for the standard on-heap row cache.
> During my stress test I hava lots of threads running with some of them only reading other
writing and re-reading the value.
> This seems to happen:
> - Reader tries to read row A for the first time doing a getTopLevelColumns
> - Row A which is not in the cache yet is updated by Writer. The row is not eagerly read
during write (because we want fast writes) so the writer cannot perform a cache update
> - Reader puts the row in the cache which is now missing the update
> I already asked this some time ago on the mailing list but unfortunately didn't dig after
I got no answer since I assumed that I just missed something. In a way I still do but haven't
found any locking mechanism that makes sure that this should not happen.
> The problem can be reproduced with every run of my stress test. When I restart the server
the expected column is there. It's just missing from the cache.
> To test I have created a patch that merges memtables with the row cache. With the patch
the problem is gone.
> I can also reproduce in 0.8. Haven't checked 1.1 but I haven't found any relevant change
their either so I assume the same aplies there.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message