You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Joel Knighton (JIRA)" <ji...@apache.org> on 2016/12/22 18:53:58 UTC

[jira] [Updated] (CASSANDRA-13074) DynamicEndpointSnitch frequently no-ops through early exit in multi-datacenter situations

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

Joel Knighton updated CASSANDRA-13074:
--------------------------------------
    Status: Patch Available  (was: Open)

||branch||testall||dtest||
|[des-snitch-changes-2.2|https://github.com/jkni/cassandra/tree/des-snitch-changes-2.2]|[testall|http://cassci.datastax.com/view/Dev/view/jkni/job/jkni-des-snitch-changes-2.2-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/jkni/job/jkni-des-snitch-changes-2.2-dtest]|
|[des-changes-3.0|https://github.com/jkni/cassandra/tree/des-changes-3.0]|[testall|http://cassci.datastax.com/view/Dev/view/jkni/job/jkni-des-changes-3.0-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/jkni/job/jkni-des-changes-3.0-dtest]|
|[des-changes-3.11|https://github.com/jkni/cassandra/tree/des-changes-3.11]|[testall|http://cassci.datastax.com/view/Dev/view/jkni/job/jkni-des-changes-3.11-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/jkni/job/jkni-des-changes-3.11-dtest]|
|[des-changes-3.X|https://github.com/jkni/cassandra/tree/des-changes-3.X]|[testall|http://cassci.datastax.com/view/Dev/view/jkni/job/jkni-des-changes-3.X-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/jkni/job/jkni-des-changes-3.X-dtest]|
|[des-changes-trunk|https://github.com/jkni/cassandra/tree/des-changes-trunk]|[testall|http://cassci.datastax.com/view/Dev/view/jkni/job/jkni-des-changes-trunk-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/jkni/job/jkni-des-changes-trunk-dtest]|

I've attached all branches, but the merge forward from 2.2 is clean except for a trivial to resolve merge conflict in 3.0 -> 3.11. CI looks clean.

Although the patch is small, there's a fair amount of nuance here. We no longer want to seed with a latency of zero - in this case, if you're doing lots of local_quorum reads or something similar, populating with zero would mean that we no longer get any benefits from stickiness. With this patch, we only populate with real latencies.

> DynamicEndpointSnitch frequently no-ops through early exit in multi-datacenter situations
> -----------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-13074
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13074
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Coordination
>            Reporter: Joel Knighton
>            Assignee: Joel Knighton
>             Fix For: 2.2.x, 3.0.x, 3.x, 4.x
>
>
> The DynamicEndpointSnitch attempts to use timings from nodes to route reads to better performing nodes.
> In a multi-datacenter situation, timings will likely be empty for nodes outside of the local datacenter, as you'll frequently only be doing local_quorum reads (or a lower consistency level). In this case, the DES exits early and returns the subsnitch ordering. This means poorly performing replicas will never be avoided, no matter how degraded they are.



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