You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Benedict Elliott Smith (Jira)" <ji...@apache.org> on 2019/10/24 14:22:00 UTC

[jira] [Commented] (CASSANDRA-15365) Add primary key liveness info when skipping illegal cells

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

Benedict Elliott Smith commented on CASSANDRA-15365:
----------------------------------------------------

I've pushed a branch [here|https://github.com/belliottsmith/cassandra/tree/15365-suggest] with a suggested comment.

Patch LGTM, however there's a remaining edge case that I don't know if we care to address or not.  Specifically, the case where we _currently_ have data in the row but _will not_ in future, but where the invalid data would have remained at that future point in time.

For instance, either TTL'd data or tombstones that have not yet been dropped.  If the invalid data is not TTL'd, or is TTL'd for a later date, then we would later stop returning the empty row in our CQL results.

I think we have three options:
# Carry on without worrying about this - it's already unclear what the correct response is to this invalid data after all
# Always update the row liveness info with the invalid cell liveness we collect, if it supersedes any other liveness info
# Ignore tombstone cells (and perhaps TTL'd cells) when deciding if the row is empty before adding our invalid cell liveness info, if it supersedes

I think any of these options is acceptable in this weird edge case, where we are presumably repairing data that has been erroneously written by the user via external tooling.

> Add primary key liveness info when skipping illegal cells
> ---------------------------------------------------------
>
>                 Key: CASSANDRA-15365
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-15365
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Local/SSTable
>            Reporter: Marcus Eriksson
>            Assignee: Marcus Eriksson
>            Priority: Normal
>             Fix For: 3.0.x, 3.11.x
>
>
> In CASSANDRA-15086/CASSANDRA-15178 we started skipping the illegal legacy cells, problem is that if the row only contains illegal cells, we return a totally empty row which breaks stats collection: https://github.com/apache/cassandra/blob/93815db9853cb592edf13d82e91dc2e9d172f01f/src/java/org/apache/cassandra/db/rows/Rows.java#L70
> If the row only has these invalid cells, we should add a primary key liveness info to it to match the 2.1 behaviour.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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