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

sankalp kohli commented on CASSANDRA-5839:
------------------------------------------

I eyeballed the diff and have following suggestions. 
1) As mentioned by [~jbellis], this CF is used to store the end state of 
repair. Why are we updating this CF as the repair is progressing? I think 
tracing should be used for that. 
2) Each RepairJob creates multiple Differencer objects. From each object, we 
are updating the state of the same repair to "streaming" multiple times. You 
can keep the present state in RepairProgressPersister and not update the CF if 
it is the same.
3) You can add a new field to determine failed/in-progress/success repairs in 
the CF. The most used query here will be to show all failed/success repairs in 
the past. This will make the query simple as you will not need to know all the 
states. Also you might want to convert your states into enums rather than plain 
strings. 
4) While storing validation/syn failed state, it will be useful to also add 
which host caused this failure. This will help in finding repeated repair 
failures. Like sometimes, a bad sstable on a single node causes repairs to 
fail. 
5) Since this CF is replicated and will be used to analyze results of past 
repairs, storing IP addresses of nodes involved might not help after host 
replacement. We might not be able to use token here due to v-nodes. So I don't 
have a better alternative :)
6) CASSANDRA-5483 will introduce tracing. If it make sense, we can add trace 
sessionId here.
7) All the CF names of system keyspace are in SystemKeyspace class. You have 
put it in RepairProgressPersister. Don't know whether it make sense to move 
this into SystemKeyspace since this is a CF of system_distributed!!
8) You might want to change the CF name to repair_history from repair. 

> Save repair data to system table
> --------------------------------
>
>                 Key: CASSANDRA-5839
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5839
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core, Tools
>            Reporter: Jonathan Ellis
>            Assignee: Jimmy MÃ¥rdell
>            Priority: Minor
>             Fix For: 2.0.6
>
>         Attachments: 2.0.4-5839-draft.patch, 2.0.6-5839-v2.patch
>
>
> As noted in CASSANDRA-2405, it would be useful to store repair results, 
> particularly with sub-range repair available (CASSANDRA-5280).



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to