Bringing together the Apache Cassandra experts from the community and DataStax.

Want to learn? Have a question? Want to share your expertise? You are in the right place!

Not sure where to begin? Getting Started

 

question

MrSandman avatar image
MrSandman asked ·

Handling network topology with a split cluster

Question about installing C* in two DCs, where the two DCs can't access each other directly: there's a proxy between the DCs to allow communication. Is there a way to configure the cluster such that nodes in DC1 can replicate to nodes in DC2 and vice-versa? My understanding is that port mappings in a proxy won't work because the one proxy has one IP address, and I think system tables will not allow multiple nodes to have the same ip address. (Is that right?) Assuming we need unique ip addresses for each node, let's say we can expose multiple ip addresses on the proxy. Can we configure nodes to advertise themselves with an ip address belonging to the proxy? But I think the problem there is that nodes within the DC would try to talk to each other via the proxy...not ideal. Sigh. Thoughts?

Drivers have an address-translator mechanism that you can plug in; does C* itself have such a facility?

disconnected dcs
10 |1000 characters needed characters left characters exceeded

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

MrSandman avatar image
MrSandman answered ·

Ahh, the snitch...hadn't thought of that. Will play with that and see where it leads. Thanks a ton for the quick response.

Share
10 |1000 characters needed characters left characters exceeded

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.

Erick Ramirez avatar image
Erick Ramirez answered ·

@MrSandman I can't see it working unless you implement a custom snitch which would do the translations similar to the way Ec2MultiRegionSnitch uses a public IP when a node has to talk to nodes in another region. How will the nodes gossip with each other if they can't see each other? You'll simply end up with 2 distinct clusters unless they have seeds in common. Only other way I could think is to use a public IP in broadcast_address. Cheers!

Share
10 |1000 characters needed characters left characters exceeded

Up to 8 attachments (including images) can be used with a maximum of 1.0 MiB each and 10.0 MiB total.