I am planning to upgrade Apache Cassandra 2.1.9 to Apache Cassandra-3.0.9. I came up with the version based on . I followed upgrade steps as in . I was testing the same in the lab and encountered issues (streaming just fails and hangs for ever) with bootstrapping a 3.0.9 node on a partially upgraded cluster. [50% of nodes on 2.1.9 and 50% on 3.0.9]. The production cluster that I am supporting is pretty large and I am anticipating to end up in a situation like this (Hope not) and would like to be prepared.
1) How do deal with decommissioning a 2.1.9 node in a partially upgraded cluster?
2) How to bootstrap a 3.x node to a partially upgraded cluster?
3) Is there an alternative approach to the upgrade large clusters. i.e instead of going through nodetool upgradesstables on each node in rolling fashion
As per  the general restriction is to avoid decommissioning or adding nodes but in reality there can be failures or maintenance that warrants us to do so.
Please point me in the right direction.