On Thu, May 10, 2018 at 2:25 AM <vishal1.sha...@ril.com> wrote:

> Dear community,
>
> Is it possible to have a cluster in Cassandra where each of the server is
> running multiple instances of Cassandra(each instance is part of the same
> cluster).
>
> I'm aware that if there's a single server in the cluster, then it's
> possible to run multiple instances of Cassandra on it
> <https://stackoverflow.com/q/22513979/5701173>, but is it also possible
> to have multiple such servers in the cluster. If yes, how will the
> configuration look like(listen address, ports etc)?
>
> Even if it was possible, I understand that there might not be any
> performance benefits at all, just wanted to know if it's theoretically
> possible.
>
We do this.  It's not ideal from an operational POV, but as Jeff points
out, if you have more hardware than it makes sense to give to a single
Cassandra node, it's an option.

Perhaps the biggest/most obvious thing to be aware of is that you need to
use the network-topology strategy, and you need to ensure that all of the
instances on a host are part of the same rack (otherwise you'll end up with
replicas on the same machine, which isn't very redundant).

If you are fluent in Puppet, our setup is here:
https://github.com/wikimedia/puppet (Cassandra module here:
https://github.com/wikimedia/puppet/tree/production/modules/cassandra)

One of the things that Puppet module does, is write per-instance metadata
as YAML files into /etc/cassandra-instances.d/, which we use in support of
some tooling to ease some the operation burden.  As an example, there is a
`c-foreach-nt` script that iteratively issues nodetool commands against all
configured instances (or a `c-any-nt` when you only need one, and don't
care which), and a `c-foreach-restart` that iteratively restarts.  Those
are here: https://github.com/eevans/cassandra-tools-wmf


-- 
Eric Evans
eev...@wikimedia.org

Reply via email to