cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Ellis (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-5400) Allow multiple ports to gossip from a single IP address
Date Fri, 05 Apr 2013 15:01:22 GMT


Jonathan Ellis commented on CASSANDRA-5400:

bq. all existing client drivers and tools that were identifying node with just the ip addresses
will have to be fixed

To be fair, it only means that you can't run your cluster in multi-port mode until you've
upgraded your client.

bq. none of the describe_* thrift calls include the port currently, and there is no easy way
to return it without breaking the thrift API

We'd have to add new describe_multiport_* calls, again with an eye towards making it "opt-in."

bq. it seems to me too much trouble for little benefit to change it now

I'm on the fence.  Does this solve any other problem than "I don't have to create IP aliases?"
 (Which I have done, with non-local addresses, so yes, it's quite possible.)

While not a critical downside, I will also note that this gives people quite a lot of rope
to make troubleshooting "why won't node X talk to node Y" very difficult.
> Allow multiple ports to gossip from a single IP address
> -------------------------------------------------------
>                 Key: CASSANDRA-5400
>                 URL:
>             Project: Cassandra
>          Issue Type: New Feature
>    Affects Versions: 2.0
>            Reporter: Carl Yeksigian
>            Assignee: Carl Yeksigian
>             Fix For: 2.0
>         Attachments: 5400.txt, 5400-v2.txt, 5400-v3.patch, 5400-v4.patch
> If a fat client is running on the same machine as a Cassandra node, the fat client must
be allocated a new IP address. However, since the node is now a part of the gossip, the other
nodes in the ring must be able to talk to it. This means that a local only address (127.0.0.n)
won't actually work for the rest of the ring.
> This also would allow for multiple Cassandra service instances to run on a single machine,
or from a group of machines behind a NAT.
> The change is simple in concept: instead of using an InetAddress, use a different class.
Instead of using an InetSocketAddress, which would still tie us to using InetAddress, I've
added a new class, "CassandraInstanceEndpoint". The serializer allows for reading a serialized
Inet4Address or Inet6Address; also, the message service can still communicate with non-CassandraInstanceEndpoint
aware code.

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

View raw message