[ 
https://issues.apache.org/jira/browse/CASSANDRA-2506?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sylvain Lebresne updated CASSANDRA-2506:
----------------------------------------

    Attachment: 2506-v2.patch

In the following code:
{noformat}
if (cfmd.getDcLocalReadRepair() > chance)
{
    List<InetAddress> address = localEndpoints(ep);
    // check if blockfor more than we have localep's
    return address.size() >= blockfor ? address : ep;
}
{noformat}
we should default to all the endpoints if we don't have enough in the current 
DC to satisfy blockfor. What we should do is include all local endpoint and 
adds enough other endpoints to satisfy blockfor, but not more. Attaching 
2506_v2 patch that does this (note that it would almost work to return 
{{ep.subList(0, Math.min(ep.size(), blockfor))}} since ep are sorted by 
proximity but but the patch don't use that since it could be possible in theory 
that some node from other DC sort before local endpoint if the snitch happens 
to say so)

The rebase was also missing the CQL code for the new option, v2 includes it 
(for CQL 2 & 3).

Otherwise, this lgtm.
                
> Push read repair setting down to the DC-level
> ---------------------------------------------
>
>                 Key: CASSANDRA-2506
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2506
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Brandon Williams
>            Assignee: Vijay
>            Priority: Minor
>             Fix For: 1.1.1
>
>         Attachments: 0001-avro-and-Thrift-2506.patch, 
> 0001-dc-localized-read-repair-v2.patch, 0001-dc-localized-read-repair.patch, 
> 0001-documentation-for-read_repair-v4.patch, 
> 0001-thrift-and-avro-changes-v3.patch, 0002-dc-local-read-repair-2506.patch, 
> 0002-dc-localized-read-repair-v3.patch, 0002-thrift-and-avro-v2.patch, 
> 0002-thrift-and-avro-v4.patch, 0002-thrift-and-avro.patch, 
> 0003-dc-localized-read-repair-v4.patch, 
> 0003-documentation-for-read_repair-v3.patch, 
> 0003-documentation-for-read_repair_options-v2.patch, 
> 0003-documentation-for-read_repair_options.patch, 2506-v2.patch
>
>
> Currently, read repair is a global setting.  However, when you have two DCs 
> and use one for analytics, it would be nice to turn it off only for that DC 
> so the live DC serving the application can still benefit from it.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to