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

Sylvain Lebresne commented on CASSANDRA-6434:
---------------------------------------------

Ok, so as I said above, I'm not really a fan of keeping for every tombstone if 
it's from a repaired or unrepaired sstable. Tombstones do not necessarily 
originate from a sstable, and so putting this information everywhere is 
confusing and more complex/widely impactful than it should be.

Now, as you said, the only problem is the read path. Couldn't we use a 
non-optimal (but much simpler and hopefully good enough) solution for that? 
Typically, unrepaired sstables should, by design, be fairly recent. So what if 
we said that we only purge tombstone if it's older than gcGrace *and* its 
{{localDeletionTime}} is older than then oldest {{localDeletion}} in the 
unrepaired sstables used by the query? We'll be guaranteed to only purge 
tombstone from repaired sstables, and while we might include a few tombstones 
from repaired sstables that we shouldn't, that's unlikely to be a whole lot 
(and it's technically ok to do so anyway), and is probably not a big price to 
pay for the extra safety.


> Repair-aware gc grace period 
> -----------------------------
>
>                 Key: CASSANDRA-6434
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6434
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: sankalp kohli
>            Assignee: Marcus Eriksson
>             Fix For: 3.0 beta 1
>
>
> Since the reason for gcgs is to ensure that we don't purge tombstones until 
> every replica has been notified, it's redundant in a world where we're 
> tracking repair times per sstable (and repairing frequentily), i.e., a world 
> where we default to incremental repair a la CASSANDRA-5351.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to