Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-13632

Digest mismatch if row is empty

    XMLWordPrintableJSON

Details

    • Normal

    Description

      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.

      Attachments

        Activity

          People

            whangsf Andrew Whang
            whangsf Andrew Whang
            Andrew Whang
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: