cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sam Overton (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-3881) reduce computational complexity of processing topology changes
Date Fri, 25 May 2012 10:28:23 GMT


Sam Overton commented on CASSANDRA-3881:

The original approach was not quite there. The snitch was tracking the topology of nodes in
NORMAL state for the benefit of NTS.calculateNaturalEndpoints, but calculateNaturalEndpoints
is called with modified TokenMetadata (eg, with leaving nodes removed, or a bootstrapped node
added or some other modification) to calculate ranges for some future state of the ring, not
the current state as tracked by the snitch.

The correct solution is to have TokenMetadata track the topology of the nodes which it considers
to be part of the ring, so that when a tokenMetadata is cloned and modified it also updates
its view of the topology. This is also much simpler and cleaner.

Patches above are updated.
> reduce computational complexity of processing topology changes
> --------------------------------------------------------------
>                 Key: CASSANDRA-3881
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Peter Schuller
>            Assignee: Sam Overton
>              Labels: vnodes
> This constitutes follow-up work from CASSANDRA-3831 where a partial improvement was committed,
but the fundamental issue was not fixed. The maximum "practical" cluster size was significantly
improved, but further work is expected to be necessary as cluster sizes grow.
> _Edit0: Appended patch information._
> h3. Patches
> ||Compare||Raw diff||Description||
> |[00_snitch_topology|]|[00_snitch_topology.patch|]|Adds
some functionality to AbstractEndpointSnitch to track which endpoints and racks exist in a
> |[01_calc_natural_endpoints|]|[01_calc_natural_endpoints.patch|]|Rewritten
O(logN) implementation of calculateNaturalEndpoints using the topology information from the
> ----
> _Note: These are branches managed with TopGit. If you are applying the patch output manually,
you will either need to filter the TopGit metadata files (i.e. {{wget -O - <url> | filterdiff
-x*.topdeps -x*.topmsg | patch -p1}}), or remove them afterward ({{rm .topmsg .topdeps}})._

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message