[ 
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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to