[
https://issues.apache.org/jira/browse/CASSANDRA-7450?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14132996#comment-14132996
]
Yuki Morishita commented on CASSANDRA-7450:
-------------------------------------------
* I think it is better to name {{getPrimaryRangeForEndpointWithinDC}} than
{{getLocalPrimaryRangeForEndpoint}}
* I think you can simplify this to include {{Range}} s that given
{{referenceEndpoint}} is not the primary endpoint but is replica for that
range. That is:
{code}
List<InetAddress> endpoints = strategy.calculateNaturalEndpoints(token,
metadata);
if (endpoints.size() > 0 && !endpoints.get(0).equals(ep) &&
endpoints.contains(ep))
primaryRanges.add(new Range<>(metadata.getPredecessor(token), token));
{code}
* Wrapped range is handled in {{Range}} object so you don't need last {{for}}
loop. (Sorry if I told it wrong.)
* Nice if you can add unit test for {{getLocalPrimaryRangeForEndpoint}} to
StorageServiceServerTest like {{getPrimaryRangeForEndpoint}}.
> Make repair -pr work within a datacenter
> ----------------------------------------
>
> Key: CASSANDRA-7450
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7450
> Project: Cassandra
> Issue Type: Improvement
> Reporter: Sylvain Lebresne
> Assignee: Paulo Motta
> Labels: bootcamp, repair
> Fix For: 2.1.1
>
> Attachments: 2.1-CASSANDRA-7450-v1.txt
>
>
> As was noticed in CASSANDRA-7317, using '-pr' alongside '-local' for repair
> doesn't really work properly, and disabling the combination was definitively
> the right short time fix. However, the main goal of '-pr' is to make it easy
> to repair a full cluster without doing any duplication of work. Doing the
> same only within a data-center is obviously desirable.
> I think a reasonably simple solution would be modify the behavior of '-pr'
> when it's limited to only one DC. If applied to nodeX in dcY, instead of
> repairing only the "primary" range of nodeX for the whole ring, we'll repair
> that range but also all ranges that are "primary" for a node not in dcY and
> for which nodeX is the first node of dcY found in ring order. Basically we'll
> ensure that running 'repair -local -pr' on every nodes of a given DC will
> repair all ranges for the nodes of that DC without repairing the same range
> twice.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)