CASSANDRA-7544 has the goal of allowing you to run multiple Cassandra instances on the same network interface (IP). Instances are disambiguated using the IP and port number.
The client wire protocol already communicated the port number in events. The system peers table has an additional column containing the port which clients need to be aware of if they want to route correctly and connect to a cluster that is configured to use different port numbers at each node.
By default the client won't using the discovered port numbers. When building the client you have to specify allowing port discovery. This nit is necessary for transitioning from a cluster where discovered port numbers are for the non-SSL port. Only the native port that supports both SSL and non-SSL traffic is propagated. In the future people will only use one port for both SSL and non-SSL, but during the transition the client needs to now if it should trust the discovered port number or use the one that is supplied in the client configuration.
The work related to adding a second port to the wire protocol may be unnecessary. See this comment.
A prototype implementation used to test Cassandra is now available.
Apparently I don't currently have a CLA and one is not going to be forthcoming so I won't be able to contribute code for this.
, we'll definitely want to include support for this in an upcoming release before C* 4.0 goes out. In lieu of not being able to sign the CLA yet, we'll work on this from our end. We had already implemented this for the next major version of the driver (4.0, ), so we can follow the work we did there on the 3.x branch.
Great thank you!