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

Sylvain Lebresne commented on CASSANDRA-14874:
----------------------------------------------

bq. Seems like there is a case for an über tombstone with no partition or 
clustering.

Well, that's kind of what I'd qualify as having truncate being timestamp based, 
and that's a much bigger change to Truncate that just this problem. It does 
likely make this problem much easier to solve, or at least easier to solve the 
right way, but it still qualify as a rewrite of truncate, and one that would 
likely not fully preserve existing behavior (typically, you wouldn't be able to 
add data with pre-truncate timstamp after a truncate (unless we do something 
rather funky), while this is possible today; and to be extra clear, I am not 
arguing the current behavior is better, I'm just pointing out that this 
wouldn't be a fully backward compatible change, and that's to be taken into 
account)

In any case, I'm not opposed at all to consider that option in principle, 
because I do think a timestamp-based truncate is likely an overall better fit 
to C* and we should probably have done first to start with, but as this is 
probably a bit longer term (and probably deserve its own ticket), I'll still 
suggest that maybe the trivial solution I've hinted in my previous comment 
might be a good stopgap option to make things behave predictably most of the 
time.

> Read repair can race with truncations
> -------------------------------------
>
>                 Key: CASSANDRA-14874
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14874
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Local Write-Read Paths
>            Reporter: Sylvain Lebresne
>            Priority: Minor
>
> While hint and commit log replay handle truncation alright, we don't have 
> anything to prevent a read/read-repair to race with {{TRUNCATE}}. In other 
> words, you can have a read reading some pre-truncation data, some truncation 
> running and removing that data, and then some read-repair mutation from that 
> previous read that resurrects some data that should have bene truncated.
> Probably not that common in practice, but can lead to seemingly random data 
> surviving truncate. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to