For the create/update/deleteColumn/deleteRow test case, for Quorum
consistency level, 6 nodes, replicate factor 3, for one thread around 1/100
round, I can have this reproduced.

And if I have 20 client threads to run the test client, the ratio is bigger.

And the test group will be executed by one thread, and the client time
stamp is unique and sequenced, guaranteed by Hector.

And client only access the data from local Cassandra.

And the query only use the row key which is unique. The column name is not
unique, in my case, eg, "status".

And the row have around 7 columns, which are all not big, eg "status:true",
"userName:Jason" ...

BRs
//Ares

2012/7/1 Jonathan Ellis <jbel...@gmail.com>

> Is this Cassandra 1.1.1?
>
> How often do you observe this?  How many columns are in the row?  Can
> you reproduce when querying by column name, or only when "slicing" the
> row?
>
> On Thu, Jun 28, 2012 at 7:24 AM, Jason Tang <ares.t...@gmail.com> wrote:
> > Hi
> >
> >    First I delete one column, then I delete one row. Then try to read all
> > columns from the same row, all operations from same client app.
> >
> >    The consistency level is read/write quorum.
> >
> >    Check the Cassandra log, the local node don't perform the delete
> > operation but send the mutation to other nodes (192.168.0.6, 192.168.0.1)
> >
> >    After delete, I try to read all columns from the row, I found the node
> > found "Digest mismatch" due to Quorum consistency configuration, but the
> > result is not correct.
> >
> >    From the log, I can see the delete mutation already accepted
> > by 192.168.0.6, 192.168.0.1,  but when 192.168.0.5 read response from 0.6
> > and 0.1, and then it merge the data, but finally 0.5 shows the result
> which
> > is the dirty data.
> >
> >    Following logs shows the change of column "737461747573" , 192.168.0.5
> > try to read from 0.1 and 0.6, it should be deleted, but finally it shows
> it
> > has the data.
> >
> > log:
> > 192.168.0.5
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,198 StorageProxy.java (line 653)
> > Command/ConsistencyLevel is SliceByNamesReadCommand(table='drc',
> > key=7878323239537570657254616e67307878,
> > columnParent='QueryPath(columnFamilyName='queue', superColumnName='null',
> > columnName='null')',
> >
> columns=[6578656375746554696d65,6669726554696d65,67726f75705f6964,696e517565756554696d65,6c6f67526f6f744964,6d6f54797065,706172746974696f6e,7265636569766554696d65,72657175657374,7265747279,7365727669636550726f7669646572,737461747573,757365724e616d65,])/QUORUM
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,198 ReadCallback.java (line 79)
> > Blockfor is 2; setting up requests to /192.168.0.6,/192.168.0.1
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,198 StorageProxy.java (line 674)
> > reading data from /192.168.0.6
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,198 StorageProxy.java (line 694)
> > reading digest from /192.168.0.1
> > DEBUG [RequestResponseStage:2] 2012-06-28 15:59:42,199
> > ResponseVerbHandler.java (line 44) Processing response on a callback from
> > 6556@/192.168.0.6
> > DEBUG [RequestResponseStage:2] 2012-06-28 15:59:42,199
> > AbstractRowResolver.java (line 66) Preprocessed data response
> > DEBUG [RequestResponseStage:6] 2012-06-28 15:59:42,199
> > ResponseVerbHandler.java (line 44) Processing response on a callback from
> > 6557@/192.168.0.1
> > DEBUG [RequestResponseStage:6] 2012-06-28 15:59:42,199
> > AbstractRowResolver.java (line 66) Preprocessed digest response
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,199 RowDigestResolver.java (line
> 65)
> > resolving 2 responses
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,200 StorageProxy.java (line 733)
> > Digest mismatch: org.apache.cassandra.service.DigestMismatchException:
> > Mismatch for key DecoratedKey(100572974179274741747356988451225858264,
> > 7878323239537570657254616e67307878) (b725ab25696111be49aaa7c4b7afa52d vs
> > d41d8cd98f00b204e9800998ecf8427e)
> > DEBUG [RequestResponseStage:9] 2012-06-28 15:59:42,201
> > ResponseVerbHandler.java (line 44) Processing response on a callback from
> > 6558@/192.168.0.6
> > DEBUG [RequestResponseStage:7] 2012-06-28 15:59:42,201
> > ResponseVerbHandler.java (line 44) Processing response on a callback from
> > 6559@/192.168.0.1
> > DEBUG [RequestResponseStage:9] 2012-06-28 15:59:42,201
> > AbstractRowResolver.java (line 66) Preprocessed data response
> > DEBUG [RequestResponseStage:7] 2012-06-28 15:59:42,201
> > AbstractRowResolver.java (line 66) Preprocessed data response
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,201 RowRepairResolver.java (line
> 63)
> > resolving 2 responses
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,201 SliceQueryFilter.java (line
> 123)
> > collecting 0 of 2147483647: 6669726554696d65:false:13@1340870382109004
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,201 SliceQueryFilter.java (line
> 123)
> > collecting 1 of 2147483647: 67726f75705f6964:false:10@1340870382109014
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,201 SliceQueryFilter.java (line
> 123)
> > collecting 2 of 2147483647:
> 696e517565756554696d65:false:13@1340870382109005
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,201 SliceQueryFilter.java (line
> 123)
> > collecting 3 of 2147483647: 6c6f67526f6f744964:false:7@1340870382109015
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,202 SliceQueryFilter.java (line
> 123)
> > collecting 4 of 2147483647: 6d6f54797065:false:6@1340870382109009
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,202 SliceQueryFilter.java (line
> 123)
> > collecting 5 of 2147483647: 706172746974696f6e:false:2@1340870382109001
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,202 SliceQueryFilter.java (line
> 123)
> > collecting 6 of 2147483647:
> 7265636569766554696d65:false:13@1340870382109003
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,202 SliceQueryFilter.java (line
> 123)
> > collecting 7 of 2147483647: 72657175657374:false:300@1340870382109013
> > DEBUG [RequestResponseStage:5] 2012-06-28 15:59:42,202
> > ResponseVerbHandler.java (line 44) Processing response on a callback from
> > 6552@/192.168.0.1
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,202 SliceQueryFilter.java (line
> 123)
> > collecting 8 of 2147483647: 7265747279:false:1@1340870382109006
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,202 SliceQueryFilter.java (line
> 123)
> > collecting 9 of 2147483647:
> > 7365727669636550726f7669646572:false:4@1340870382109007
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,203 SliceQueryFilter.java (line
> 123)
> > collecting 10 of 2147483647: 737461747573:false:8@1340870382152000
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,203 SliceQueryFilter.java (line
> 123)
> > collecting 11 of 2147483647: 757365724e616d65:false:4@1340870382109000
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,203 RowRepairResolver.java (line
> 89)
> > versions merged
> > DEBUG [Thrift:17] 2012-06-28 15:59:42,203 RowRepairResolver.java (line
> 102)
> > resolve: 2 ms.
> > DEBUG [Thrift:18] 2012-06-28 15:59:42,204 ClientState.java (line 123)
> logged
> > in: #<User casadm groups=[]>
> > DEBUG [Thrift:18] 2012-06-28 15:59:42,204 CassandraServer.java (line 305)
> > get_slice
> >
> > 192.168.0.1:
> > DEBUG [MutationStage:21] 2012-06-28 15:59:42,177
> RowMutationVerbHandler.java
> > (line 44) Applying RowMutation(keyspace='drc',
> > key='7878323239537570657254616e67307878',
> modifications=[ColumnFamily(queue
> > [737461747573:true:4@1340870382175000,])])
> > DEBUG [MutationStage:21] 2012-06-28 15:59:42,178 Table.java (line 391)
> > applying mutation of row 7878323239537570657254616e67307878
> > DEBUG [MutationStage:23] 2012-06-28 15:59:42,187
> RowMutationVerbHandler.java
> > (line 44) Applying RowMutation(keyspace='drc',
> > key='7878323239537570657254616e67307878',
> modifications=[ColumnFamily(queue
> > -deleted at 1340870382185000- [])])
> > DEBUG [MutationStage:23] 2012-06-28 15:59:42,187 Table.java (line 391)
> > applying mutation of row 7878323239537570657254616e67307878
> > DEBUG [MutationStage:20] 2012-06-28 15:59:42,189 Table.java (line 425)
> > mutating indexed column 737461747573 value 4445515545554544
> > DEBUG [MutationStage:20] 2012-06-28 15:59:42,189 CollationController.java
> > (line 77) collectTimeOrderedData
> > DEBUG [MutationStage:20] 2012-06-28 15:59:42,190 Table.java (line 449)
> > Pre-mutation index row is ColumnFamily(queue
> > [737461747573:false:8@1340870382152000,])
> > DEBUG [MutationStage:20] 2012-06-28 15:59:42,190 Table.java (line 500)
> > skipping index update for obsolete mutation of 737461747573
> > DEBUG [ReadStage:5] 2012-06-28 15:59:42,199 CollationController.java
> (line
> > 77) collectTimeOrderedData
> > DEBUG [ReadStage:5] 2012-06-28 15:59:42,199 ReadVerbHandler.java (line
> 73)
> > digest is b725ab25696111be49aaa7c4b7afa52d
> > DEBUG [ReadStage:5] 2012-06-28 15:59:42,199 ReadVerbHandler.java (line
> 58)
> > Read key 7878323239537570657254616e67307878; sending response to
> > 6557@/192.168.0.3
> > DEBUG [ReadStage:6] 2012-06-28 15:59:42,200 CollationController.java
> (line
> > 77) collectTimeOrderedData
> > DEBUG [ReadStage:6] 2012-06-28 15:59:42,201 ReadVerbHandler.java (line
> 58)
> > Read key 7878323239537570657254616e67307878; sending response to
> > 6559@/192.168.0.3
> > DEBUG [MutationStage:23] 2012-06-28 15:59:42,201 Table.java (line 425)
> > mutating indexed column 6669726554696d65 value null
> > DEBUG [MutationStage:21] 2012-06-28 15:59:42,201 Table.java (line 425)
> > mutating indexed column 737461747573 value 4fec0eee
> > DEBUG [MutationStage:23] 2012-06-28 15:59:42,201 Table.java (line 425)
> > mutating indexed column 6669726554696d65536c696365 value null
> > DEBUG [MutationStage:21] 2012-06-28 15:59:42,201 CollationController.java
> > (line 77) collectTimeOrderedData
> > DEBUG [MutationStage:23] 2012-06-28 15:59:42,202 Table.java (line 425)
> > mutating indexed column 696e517565756554696d65 value null
> > DEBUG [MutationStage:21] 2012-06-28 15:59:42,202 Table.java (line 449)
> > Pre-mutation index row is ColumnFamily(queue
> > [737461747573:false:8@1340870382152000,])
> > DEBUG [MutationStage:23] 2012-06-28 15:59:42,202 Table.java (line 425)
> > mutating indexed column 696e517565756554696d65536c696365 value null
> > DEBUG [MutationStage:23] 2012-06-28 15:59:42,202 Table.java (line 425)
> > mutating indexed column 6d6f54797065 value null
> > DEBUG [MutationStage:21] 2012-06-28 15:59:42,202 KeysIndex.java (line
> 103)
> > removed index entry for cleaned-up value DecoratedKey(DEQUEUED,
> > 4445515545554544):ColumnFamily(queue.idxStatus
> > [7878323239537570657254616e67307878:true:4@1340870382152000,])
> > DEBUG [MutationStage:23] 2012-06-28 15:59:42,202 Table.java (line 425)
> > mutating indexed column 706172746974696f6e value null
> > DEBUG [MutationStage:21] 2012-06-28 15:59:42,202
> RowMutationVerbHandler.java
> > (line 56) RowMutation(keyspace='drc',
> > key='7878323239537570657254616e67307878',
> modifications=[ColumnFamily(queue
> > [737461747573:true:4@1340870382175000,])]) applied.  Sending response to
> > 6552@/192.168.0.3
> >
> > 192.168.0.6:
> > DEBUG [MutationStage:6] 2012-06-28 15:59:42,177
> RowMutationVerbHandler.java
> > (line 44) Applying RowMutation(keyspace='drc',
> > key='7878323239537570657254616e67307878',
> modifications=[ColumnFamily(queue
> > [737461747573:true:4@1340870382175000,])])
> > DEBUG [MutationStage:6] 2012-06-28 15:59:42,177 Table.java (line 391)
> > applying mutation of row 7878323239537570657254616e67307878
> > DEBUG [MutationStage:6] 2012-06-28 15:59:42,184 Table.java (line 425)
> > mutating indexed column 737461747573 value 4fec0eee
> > DEBUG [MutationStage:6] 2012-06-28 15:59:42,184 CollationController.java
> > (line 77) collectTimeOrderedData
> > DEBUG [MutationStage:6] 2012-06-28 15:59:42,184 Table.java (line 449)
> > Pre-mutation index row is ColumnFamily(queue
> > [737461747573:false:8@1340870382152000,])
> > DEBUG [MutationStage:6] 2012-06-28 15:59:42,184 KeysIndex.java (line 103)
> > removed index entry for cleaned-up value DecoratedKey(DEQUEUED,
> > 4445515545554544):ColumnFamily(queue.idxStatus
> > [7878323239537570657254616e67307878:true:4@1340870382152000,])
> > DEBUG [MutationStage:6] 2012-06-28 15:59:42,184
> RowMutationVerbHandler.java
> > (line 56) RowMutation(keyspace='drc',
> > key='7878323239537570657254616e67307878',
> modifications=[ColumnFamily(queue
> > [737461747573:true:4@1340870382175000,])]) applied.  Sending response to
> > 6550@/192.168.0.3
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,187
> RowMutationVerbHandler.java
> > (line 44) Applying RowMutation(keyspace='drc',
> > key='7878323239537570657254616e67307878',
> modifications=[ColumnFamily(queue
> > -deleted at 1340870382185000- [])])
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,187 Table.java (line 391)
> > applying mutation of row 7878323239537570657254616e67307878
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,190 Table.java (line 425)
> > mutating indexed column 6669726554696d65 value null
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,190 Table.java (line 425)
> > mutating indexed column 6669726554696d65536c696365 value null
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,190 Table.java (line 425)
> > mutating indexed column 696e517565756554696d65 value null
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,190 Table.java (line 425)
> > mutating indexed column 696e517565756554696d65536c696365 value null
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,190 Table.java (line 425)
> > mutating indexed column 6d6f54797065 value null
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,190 Table.java (line 425)
> > mutating indexed column 706172746974696f6e value null
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,190 Table.java (line 425)
> > mutating indexed column 7265636569766554696d65 value null
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,190 Table.java (line 425)
> > mutating indexed column 7265636569766554696d65536c696365 value null
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,191 Table.java (line 425)
> > mutating indexed column 7365727669636550726f7669646572 value null
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,191 Table.java (line 425)
> > mutating indexed column 737461747573 value null
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,191 CollationController.java
> > (line 77) collectTimeOrderedData
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,191 Table.java (line 449)
> > Pre-mutation index row is ColumnFamily(queue
> > [6669726554696d65:false:13@1340870382109004
> ,6669726554696d65536c696365:false:13@1340870382109011
> ,696e517565756554696d65:false:13@1340870382109005
> ,696e517565756554696d65536c696365:false:13@1340870382109012
> ,6d6f54797065:false:6@1340870382109009
> ,706172746974696f6e:false:2@1340870382109001
> ,7265636569766554696d65:false:13@1340870382109003
> ,7265636569766554696d65536c696365:false:13@1340870382109010
> ,7365727669636550726f7669646572:false:4@1340870382109007
> ,737461747573:true:4@1340870382175000,])
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,191 Table.java (line 500)
> > skipping index update for obsolete mutation of 737461747573
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,191 KeysIndex.java (line
> 103)
> > removed index entry for cleaned-up value
> > DecoratedKey(3898026790553046681950927403065,
> > 31333430383730333531373839):ColumnFamily(queue.idxFireTime
> > [7878323239537570657254616e67307878:true:4@1340870382109004,])
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,192 KeysIndex.java (line
> 103)
> > removed index entry for cleaned-up value
> > DecoratedKey(3898026790552830793920833138736,
> > 31333430383431363030303030):ColumnFamily(queue.idxFireTimeRange
> > [7878323239537570657254616e67307878:true:4@1340870382109011,])
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,192 KeysIndex.java (line
> 103)
> > removed index entry for cleaned-up value
> > DecoratedKey(3898026790553046681950927403065,
> > 31333430383730333531373839):ColumnFamily(queue.idxInQueueTime
> > [7878323239537570657254616e67307878:true:4@1340870382109005,])
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,192 KeysIndex.java (line
> 103)
> > removed index entry for cleaned-up value
> > DecoratedKey(3898026790552830793920833138736,
> > 31333430383431363030303030):ColumnFamily(queue.idxInQueueTimeRange
> > [7878323239537570657254616e67307878:true:4@1340870382109012,])
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,192 KeysIndex.java (line
> 103)
> > removed index entry for cleaned-up value DecoratedKey(TestMo,
> > 546573744d6f):ColumnFamily(queue.idxMoType
> > [7878323239537570657254616e67307878:true:4@1340870382109009,])
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,193 KeysIndex.java (line
> 103)
> > removed index entry for cleaned-up value DecoratedKey(32,
> > 3332):ColumnFamily(queue.idxPartitionId
> > [7878323239537570657254616e67307878:true:4@1340870382109001,])
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,193 KeysIndex.java (line
> 103)
> > removed index entry for cleaned-up value
> > DecoratedKey(3898026790553046681950927403065,
> > 31333430383730333531373839):ColumnFamily(queue.idxRecvTime
> > [7878323239537570657254616e67307878:true:4@1340870382109003,])
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,193 KeysIndex.java (line
> 103)
> > removed index entry for cleaned-up value
> > DecoratedKey(3898026790552830793920833138736,
> > 31333430383431363030303030):ColumnFamily(queue.idxRecvTimeRange
> > [7878323239537570657254616e67307878:true:4@1340870382109010,])
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,193 KeysIndex.java (line
> 103)
> > removed index entry for cleaned-up value DecoratedKey(test,
> > 74657374):ColumnFamily(queue.idxServiceProvider
> > [7878323239537570657254616e67307878:true:4@1340870382109007,])
> > DEBUG [MutationStage:10] 2012-06-28 15:59:42,193
> RowMutationVerbHandler.java
> > (line 56) RowMutation(keyspace='drc',
> > key='7878323239537570657254616e67307878',
> modifications=[ColumnFamily(queue
> > -deleted at 1340870382185000- [])]) applied.  Sending response to
> > 6553@/192.168.0.3
> > DEBUG [ReadStage:17] 2012-06-28 15:59:42,198 CollationController.java
> (line
> > 77) collectTimeOrderedData
> > DEBUG [ReadStage:17] 2012-06-28 15:59:42,199 ReadVerbHandler.java (line
> 58)
> > Read key 7878323239537570657254616e67307878; sending response to
> > 6556@/192.168.0.3
> >
> > BRs
> > //Ares
>
>
>
> --
> Jonathan Ellis
> Project Chair, Apache Cassandra
> co-founder of DataStax, the source for professional Cassandra support
> http://www.datastax.com
>

Reply via email to