You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jonathan Ellis (JIRA)" <ji...@apache.org> on 2012/04/25 22:32:18 UTC

[jira] [Assigned] (CASSANDRA-4190) Apparent data loss using super columns and row cache via ConcurrentLinkedHashCacheProvider

     [ https://issues.apache.org/jira/browse/CASSANDRA-4190?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis reassigned CASSANDRA-4190:
-----------------------------------------

    Assignee: Sylvain Lebresne
    
> Apparent data loss using super columns and row cache via ConcurrentLinkedHashCacheProvider
> ------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-4190
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4190
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 1.0.9
>         Environment: Linux 2.6.27
>            Reporter: Mina Naguib
>            Assignee: Sylvain Lebresne
>              Labels: ConcurrentLinkedHashCacheProvider, cache, supercolumns
>
> Tested on a vanilla single-node cassandra 1.0.9 installation.
> When using super columns along with row caching via ConcurrentLinkedHashCacheProvider (default if no JNA available, or explicitly configured even if JNA available), there's what appears as transient data loss.
> Given this script executed in cassandra-cli:
> {quote}
> create keyspace Test;
> use Test;
> create column family Users with column_type='Super' and key_validation_class='UTF8Type' and comparator='UTF8Type' and subcomparator='UTF8Type' and default_validation_class='UTF8Type' and rows_cached=75000 and row_cache_provider='ConcurrentLinkedHashCacheProvider';
> set Users['mina']['attrs']['name'] = 'Mina';
> get Users['mina'];
> set Users['mina']['attrs']['country'] = 'Canada';
> get Users['mina'];
> set Users['mina']['attrs']['region'] = 'Quebec';
> get Users['mina'];
> {quote}
> The output from the 3 gets above is as follows:
> {quote}
> => (super_column=attrs,
>      (column=name, value=Mina, timestamp=1335377788441000))
> Returned 1 results.
> {quote}
> {quote}
> => (super_column=attrs,
>      (column=name, value=Mina, timestamp=1335377788441000))
> Returned 1 results.
> {quote}
> {quote}
> => (super_column=attrs,
>      (column=name, value=Mina, timestamp=1335377788441000))
> Returned 1 results.
> {quote}
> It's clear that the second and third set commands (country, region) are missing in the returned results.
> If the row cache is explicitly invalidated (in a second terminal, via `nodetool -h localhost invalidaterowcache Test Users`), the missing data springs to life on next 'get':
> {quote}
> [default@Test] get Users['mina'];
> => (super_column=attrs,
>      (column=country, value=Canada, timestamp=1335377839592000)
>      (column=name, value=Mina, timestamp=1335377788441000)
>      (column=region, value=Quebec, timestamp=1335377871353000))
> Returned 1 results.
> {quote}
> From cursory checks, this does not to appear to happen with regular columns, nor with JNA enabled + SerializingCacheProvider.

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