You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cassandra.apache.org by al...@ceid.upatras.gr on 2010/07/29 18:36:47 UTC

Creating two instances in code

Hello,

I'd like to make some changes to cassandra so that when starting up a node
in a cluster, another node starts in another cluster. That requires that
the two nodes have different configurations, but DatabaseDescriptor (where
I think all the config reading is done) seems to load everything
statically when the class is loaded. The configuration path seems to
reside in System.getProperties(). Can you suggest a way for me to build a
second node with a different configuration path in the same code?

Unfortunately, I cannot simply launch two different cassandra instances on
the same computer, as I want the second node to have access to information
from the first node, such as node load for the first cluster and such
(plus even running two separate cassandra instances on the same node seems
to require workarounds and hacks).

Alexander Altanis

Re: Creating two instances in code

Posted by Gary Dusbabek <gd...@gmail.com>.
The resource file (cassandra.yaml) is statically defined that is
brought in from the classpath. To do what you desire will require
changing the code.

You could modify DatabaseDescriptor.getStorageConfigPath() to accept
some kind of variable to indicate the instance and then load a
different file.

But that's the least of your problems, as you're probably noticing.
The heavy use of singletons will prevent you from isolating some of
the services, and the fact that DatabaseDescriptor loads its
configuration in a static block into static members will be very
problematic.

Gary.

On Thu, Jul 29, 2010 at 11:36,  <al...@ceid.upatras.gr> wrote:
> Hello,
>
> I'd like to make some changes to cassandra so that when starting up a node
> in a cluster, another node starts in another cluster. That requires that
> the two nodes have different configurations, but DatabaseDescriptor (where
> I think all the config reading is done) seems to load everything
> statically when the class is loaded. The configuration path seems to
> reside in System.getProperties(). Can you suggest a way for me to build a
> second node with a different configuration path in the same code?
>
> Unfortunately, I cannot simply launch two different cassandra instances on
> the same computer, as I want the second node to have access to information
> from the first node, such as node load for the first cluster and such
> (plus even running two separate cassandra instances on the same node seems
> to require workarounds and hacks).
>
> Alexander Altanis
>