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

Paulo Motta commented on CASSANDRA-10446:
-----------------------------------------

It seems repairedAt field is not being set on remote sync tasks, what will 
cause streamed data to be marked as repaired (see SYNC_REQUEST handling on 
RepairMessageVerbHandler). We could add a repairedAt field to SyncRequest 
message (what would break minor compatibility, so could only go on 4.0), but 
this shows a more fundamental problem with repair failure handling which is 
that if a repair session fails in the middle of sync, streamed sstables will be 
marked as repaired even if not all nodes got the data. In order to solve this 
we could stream sstables with repairedAt=0, and add them to the pool of 
sstables to be anti-compacted, so they will only be marked as repaired at the 
end of the parent repair session.

If we want to add support to -force without fixing the more fundamental problem 
with repair sync failure handling, we could mark a forced ParentRepairSession 
as !isGlobal, what would mark all streamed sstables as *not* repaired as well 
as skip anti-compaction for the whole parent repair session.

> Run repair with down replicas
> -----------------------------
>
>                 Key: CASSANDRA-10446
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-10446
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: sankalp kohli
>            Assignee: Blake Eggleston
>            Priority: Minor
>             Fix For: 4.0
>
>
> We should have an option of running repair when replicas are down. We can 
> call it -force.



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

Reply via email to