You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Yuki Morishita (JIRA)" <ji...@apache.org> on 2013/04/08 20:51:16 UTC

[jira] [Commented] (CASSANDRA-4932) Agree on a gcbefore/expirebefore value for all replica during validation compaction

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

Yuki Morishita commented on CASSANDRA-4932:
-------------------------------------------

Overall, it looks good.
Is it better to calculate gc_before just before sending TreeRequest rather than doing it in RepairJob constructor?
RepairJobs for all given CFs are created at once, but those are executed one by one.
                
> Agree on a gcbefore/expirebefore value for all replica during validation compaction 
> ------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-4932
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4932
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Sylvain Lebresne
>            Assignee: Marcus Eriksson
>            Priority: Minor
>             Fix For: 2.0
>
>         Attachments: 0001-CASSANDRA-4932.patch
>
>
> CASSANDRA-4905 made it so that we don't include gcable tombstones in merkle tree digests because otherwise the fact that a gcable tombstone exists in a given node depends on the local scheduling of compactions, which make the merkle-tree digets depends on that which is bad.
> However, we still depends on a value of gcbefore/expirebefore that is computed locally on the node. This is not a huge deal because each node should compute those value roughly at the same time so the discrepancies shouldn't exceed a few hundreds of milliseconds in general and a few seconds if we're unlucky. Still, it's fairly easy to fix this problem by having the repair coordinator pick the gcbefore/expirebefore and share that with all the replica. It does require sending that info on the wire though, so will require a new messaging version and thus can only be done in a major cycle. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira