Return-Path: X-Original-To: apmail-cassandra-user-archive@www.apache.org Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9ECF299BD for ; Wed, 2 Nov 2011 16:19:04 +0000 (UTC) Received: (qmail 13182 invoked by uid 500); 2 Nov 2011 16:19:02 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 13120 invoked by uid 500); 2 Nov 2011 16:19:02 -0000 Mailing-List: contact user-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@cassandra.apache.org Delivered-To: mailing list user@cassandra.apache.org Received: (qmail 13112 invoked by uid 99); 2 Nov 2011 16:19:02 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 02 Nov 2011 16:19:02 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of mike@mailchannels.com designates 74.125.82.42 as permitted sender) Received: from [74.125.82.42] (HELO mail-ww0-f42.google.com) (74.125.82.42) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 02 Nov 2011 16:18:55 +0000 Received: by wwf22 with SMTP id 22so4802005wwf.1 for ; Wed, 02 Nov 2011 09:18:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.com; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; bh=5hB7BuVlVy9/UdbJtoJQXB85lvmq1qOHd9qJKZr9q7Q=; b=Si7yVefgtkHQtxKj0teRk6n/Kv0mEApmGb7lE610quZdKFbrAQBABv9Bu9A15G5Xbe IajL1kYxeECiNbw8TNnl/qtWxqaIU4BrFqMZ/QZfdU+tva3lyoIQhsE0+CehxERgzP10 B9/8vu97fIi1HrUI7BpjFsuQ3OjQaXAbkPxJ8= Received: by 10.216.14.206 with SMTP id d56mr3069330wed.33.1320250714198; Wed, 02 Nov 2011 09:18:34 -0700 (PDT) Received: from mail-wy0-f172.google.com (mail-wy0-f172.google.com [74.125.82.172]) by mx.google.com with ESMTPS id b6sm4958995wbo.20.2011.11.02.09.18.32 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 02 Nov 2011 09:18:33 -0700 (PDT) Received: by wyg30 with SMTP id 30so374739wyg.31 for ; Wed, 02 Nov 2011 09:18:32 -0700 (PDT) Received: by 10.216.221.80 with SMTP id q58mr1599401wep.36.1320250712197; Wed, 02 Nov 2011 09:18:32 -0700 (PDT) MIME-Version: 1.0 Received: by 10.216.160.132 with HTTP; Wed, 2 Nov 2011 09:18:12 -0700 (PDT) In-Reply-To: References: From: Mike Smith Date: Wed, 2 Nov 2011 09:18:12 -0700 Message-ID: Subject: Re: Problem SliceByNamesReadCommand on super column family after flush operation To: user@cassandra.apache.org Content-Type: multipart/alternative; boundary=0016e65a0a02b70a0204b0c2d2d1 X-Virus-Checked: Checked by ClamAV on apache.org --0016e65a0a02b70a0204b0c2d2d1 Content-Type: text/plain; charset=ISO-8859-1 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 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 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 > --0016e65a0a02b70a0204b0c2d2d1 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Hi Jonathan,

Jira ticket:=A0CASSANDRA-3446

The problem is not apparent for standard column families.

Thanks,
Mike

On Tue, Nov 1, 2011 at 7:14 PM, Jonathan Ellis <<= a href=3D"mailto:jbellis@gmail.com">jbellis@gmail.com> wrote:=
Can you file a Jira ticket? =A0And, 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;<= br> > 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<= br> > following command/consistency level:
> SliceByNamesReadCommand(table=3D'test_cassandra', key=3D666f6f= ,
> columnParent=3D'QueryPath(columnFamilyName=3D'test', super= ColumnName=3D'null',
> columnName=3D'null')', columns=3D[foo,])/QUORUM.
> Cassandra-cli uses the following command/consistency level for a get_s= lice:
> SliceFromReadCommand(table=3D'test_cassandra', key=3D'666f= 6f',
> column_parent=3D'QueryPath(columnFamilyName=3D'test', supe= rColumnName=3D'null',
> columnName=3D'null')', start=3D'', finish=3D'&= #39;, reversed=3Dfalse,
> count=3D1000000)/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, ac= k 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 25= 6,
> 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, ac= k 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, a= ck 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 25= 6,
> 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.c= om

--0016e65a0a02b70a0204b0c2d2d1--