cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lyuben Todorov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-6218) Reduce WAN traffic while doing repairs
Date Thu, 28 Nov 2013 23:03:35 GMT

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

Lyuben Todorov commented on CASSANDRA-6218:
-------------------------------------------

If the local DC's name is missed out in the csv list supplied as a param then an IllegalArgumentException
is thrown, but to save us having to throw the IllegalArgumentException n number of times (based
on how many ranges the dc has) we could cancel the repair. 

A few  tiny nits: 
There are a few cases where the parenthesis are on the same line as the code (should be on
the next line)
{code}
// ActiveRepairService#getNeighbors
for (String dc : dataCenters) {

// StorageService#forceRepairAsync (overload 1)
public int forceRepairAsync(final String keyspace, final boolean isSequential, final Collection<String>
dataCenters, final boolean primaryRange, final String... columnFamilies) {

// StorageService#forceRepairAsync (overload 2)
public int forceRepairAsync(final String keyspace, final boolean isSequential, final Collection<String>
dataCenters, final Collection<Range<Token>> ranges, final String... columnFamilies)
{

// StorageService#createRepairTask
if (isLocal) {
{code}

Also resources.o.a.c.cli.CliHelp.yaml should be updated to show the new *in_dc* / *in* param.

> Reduce WAN traffic while doing repairs
> --------------------------------------
>
>                 Key: CASSANDRA-6218
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6218
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core, Tools
>            Reporter: sankalp kohli
>            Priority: Minor
>             Fix For: 2.0.4
>
>         Attachments: trunk-6218.txt
>
>
> The way we send out data that does not match over WAN can be improved. 
> Example: Say there are four nodes(A,B,C,D) which are replica of a range we are repairing.
A, B is in DC1 and C,D is in DC2. If A does not have the data which other replicas have, then
we will have following streams
> 1) A to B and back
> 2) A to C and back(Goes over WAN)
> 3) A to D and back(Goes over WAN)
> One of the ways of doing it to reduce WAN traffic is this.
> 1) Repair A and B only with each other and C and D with each other starting at same time
t. 
> 2) Once these repairs have finished, A,B and C,D are in sync with respect to time t.

> 3) Now run a repair between A and C, the streams which are exchanged as a result of the
diff will also be streamed to B and D via A and C(C and D behaves like a proxy to the streams).
> For a replication of DC1:2,DC2:2, the WAN traffic will get reduced by 50% and even more
for higher replication factors. 
>  



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Mime
View raw message