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.
|00_snitch_topology||00_snitch_topology.patch||Adds some functionality to TokenMetadata to track which endpoints and racks exist in a DC.|
|01_calc_natural_endpoints||01_calc_natural_endpoints.patch||Rewritten O(logN) implementation of calculateNaturalEndpoints using the topology information from the tokenMetadata.|
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).