cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Whang (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CASSANDRA-13632) Digest mismatch if (non-static) column is null
Date Thu, 22 Jun 2017 23:49:00 GMT

     [ https://issues.apache.org/jira/browse/CASSANDRA-13632?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Andrew Whang updated CASSANDRA-13632:
-------------------------------------
    Description: 
This issue is similar to CASSANDRA-12090. Quorum read queries that include a column selector
(non-wildcard) result in digest mismatch when the column value is null. 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.

Our use case involves frequent deletion of partition columns, so 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.

  was:
This issue is similar to CASSANDRA-12090. Quorum read queries that include a column selector
(non-wildcard) result in digest mismatch when the column value is null. 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.

Our use case involves frequent deletion of partition columns, so 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.

As with CASSANDRA-12090, fixing the digest seems sensible.


> Digest mismatch if (non-static) column is null
> ----------------------------------------------
>
>                 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
>
> This issue is similar to CASSANDRA-12090. Quorum read queries that include a column selector
(non-wildcard) result in digest mismatch when the column value is null. 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.
> Our use case involves frequent deletion of partition columns, so 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-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org


Mime
View raw message