Hi Jonathan,

Jira ticket: CASSANDRA-3446

The problem is not apparent for standard column families.

Thanks,
Mike

On Tue, Nov 1, 2011 at 7:14 PM, Jonathan Ellis <jbellis@gmail.com> wrote:
Can you file a Jira ticket?  And, can you reproduce using normal columns?

On Tue, Nov 1, 2011 at 7:06 PM, Mike Smith <mike@mailchannels.com> wrote:
> Hi,
> I'm having a problem with doing a multiget_slice on a super column family
> after its first flush. Updates to the column values work properly, but
> trying to retrieve the updated values using a multiget_slice operation fail
> to get the updated values. Instead they return the values from before the
> flush. I've seen this problem in Cassandra v1.0.0 and v1.0.1. The problem is
> not present in Cassandra v0.7.6.
> Steps to reproduce:
>
> Create one or more super column entries
> Verify the sub column values can be updated and that you can retrieve the
> new values
> Use nodetool to flush the column family or restart cassandra
> Update the sub column values
> Verify they have been updated using cassandra-cli
> Verify you DO NOT get the updated values when doing a multiget_slice;
> instead you get the old values from before the flush
>
> You can get the most recent value by doing a flush followed by a major
> compaction. However, future updates are not retrieved properly either.
> With debug turned on, it looks like the multiget_slice query uses the
> following command/consistency level:
> SliceByNamesReadCommand(table='test_cassandra', key=666f6f,
> columnParent='QueryPath(columnFamilyName='test', superColumnName='null',
> columnName='null')', columns=[foo,])/QUORUM.
> Cassandra-cli uses the following command/consistency level for a get_slice:
> SliceFromReadCommand(table='test_cassandra', key='666f6f',
> column_parent='QueryPath(columnFamilyName='test', superColumnName='null',
> columnName='null')', start='', finish='', reversed=false,
> count=1000000)/QUORUM
> Notice the test program gets 'bar2' for the column values and cassandra-cli
> gets 'bar3' for the column values:
> tcpdump from test program using hector-core:1.0-1
> 16:46:07.424562 IP iam.47158 > iam.9160: Flags [P.], seq 55:138, ack 30, win
> 257, options [nop,nop,TS val 27474096 ecr 27474095], length 83
> E....#@.@.PK.........6#.....].8......{.....
> ..8...8.........multiget_slice................foo..........test................foo.........
> 16:46:07.424575 IP iam.9160 > iam.47158: Flags [.], ack 138, win 256,
> options [nop,nop,TS val 27474096 ecr 27474096], length 0
> E..4..@.@.<.........#..6].8..........(.....
> ..8...8.
> 16:46:07.428771 IP iam.9160 > iam.47158: Flags [P.], seq 30:173, ack 138,
> win 256, options [nop,nop,TS val 27474097 ecr 27474096], length 143
> @.@.<&........#..6].8................
> ............foo...............foo...............foo1.......bar2
> ........6h........foo2.......bar2
> ........I.....
>
> tcpdump of cassandra-cli:
> 16:30:55.945123 IP iam.47134 > iam.9160: Flags [P.], seq 370:479, ack 5310,
> win 387, options [nop,nop,TS val 27246226 ecr 27241207], length 109
> E.....@.@.9q..........#..n.X\
> .............
> ................get_range_slices..............test.........................................................d.........
> 16:30:55.945152 IP iam.9160 > iam.47134: Flags [.], ack 479, win 256,
> options [nop,nop,TS val 27246226 ecr 27246226], length 0
> E..4..@.@.".........#...\
> ...n.......(.....
> ........
> 16:30:55.949245 IP iam.9160 > iam.47134: Flags [P.], seq 5310:5461, ack 479,
> win 256, options [nop,nop,TS val 27246227 ecr 27246226], length 151
> E.....@.@."V........#...\
> ...n.............
> ....................get_range_slices...................foo..................foo...............foo1.......bar3
> ........&.........foo2.......bar3
> ........: .....
>
>



--
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of DataStax, the source for professional Cassandra support
http://www.datastax.com