We're trying to set up a Cassandra 0.8.0beta1 cluster across Amazon East &
West regions. It does not work out of the box with the binaries and the
nodes in different regions end up setting this own clusters.

The problem is with Cassandra's Listening Address as described by Rui:
"Using external IP causes Binding exception, because Cassandra, and java
socket, cannot listen on the external IP, which does not belong to this
node.  Using private IP prevents nodes in other region from connecting back
to this node with the private IP, which has been sent to other nodes for
cluster establishing."

In Feb 2011, Peter Fales posted: "... the trick is that you have must use
the "external" addresses in your storage-conf.xml, but since you don't have
a NIC that can actually bind to those addresses, you need to listen on the
"internal" addresses (or, more simply, all interfaces). At the time, I was
not able to get the cross-region cluster to work without making changes to
the Cassandra code. Perhaps things have evolved so that there are other ways
to do it now."

Does anyone know if Cassandra 0.8 can be configured to run in multiple
Amazon regions without modifying the source code? And if not, has anybody
successfully done this with the 0.8 source code and shared the technique?


After some research we found that other people have also ran into this issue
with versions 0.6.x and 0.7.x of Cassandra:

Fix for 0.6.5 by Peter Fales in Sept 2010:
http://www.mail-archive.com/dev@cassandra.apache.org/msg01832.html
http://www.mail-archive.com/user@cassandra.apache.org/msg05692.html


Fix for 0.7 by Rui:
http://rliu09.wordpress.com/2011/04/23/cassandra-across-ec2-regions/


- Sameer
Accenture Technology Labs

Reply via email to