Mina Naguib created CASSANDRA-4190:
--------------------------------------
Summary: 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
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