[ 
https://issues.apache.org/jira/browse/CASSANDRA-13632?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16166318#comment-16166318
 ] 

Jason Brown commented on CASSANDRA-13632:
-----------------------------------------

bq. the data serialization path checks if rowIterator.isEmpty() and if so 
ignores column names (by setting IS_EMPTY flag). However, the digest 
serialization path does not perform this check and includes column names. 

This is correct.

bq. The digest comparison results in a mismatch.

This is not correct. In 
[{{DigestResolver}}|https://github.com/apache/cassandra/blob/cassandra-3.0/src/java/org/apache/cassandra/service/DigestResolver.java#L87],
 the coordinator gets the digest from each response, even for the data that 
sent back the full {{DataResponse}}. So, while there is the difference in what 
the data nodes send back to the coordindator, is resolves to the same digest 
value.

[~whangsf] what indications do you have that a DigestMismatch is happening?

> Digest mismatch if row is empty
> -------------------------------
>
>                 Key: CASSANDRA-13632
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13632
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Local Write-Read Paths
>            Reporter: Andrew Whang
>            Assignee: Andrew Whang
>             Fix For: 3.0.x
>
>
> This issue is similar to CASSANDRA-12090. Quorum read queries that include a 
> column selector (non-wildcard) result in digest mismatch when the row is 
> empty (key does not exist). It seems the data serialization path checks if 
> rowIterator.isEmpty() and if so ignores column names (by setting IS_EMPTY 
> flag). However, the digest serialization path does not perform this check and 
> includes column names. The digest comparison results in a mismatch. The 
> mismatch does not end up issuing a read repair mutation since the underlying 
> data is the same.
> The mismatch on the read path ends up doubling our p99 read latency. We 
> discovered this issue while testing a 2.2.5 to 3.0.13 upgrade.
> One thing to note is that we're using thrift, which ends up handling the 
> ColumnFilter differently than the CQL path. 
> As with CASSANDRA-12090, fixing the digest seems sensible.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to