>From what I found, I'd say it lies somewhere between pointless and impossible. :-\
Alexander > Several more. Without much thinking there are Gossiper, > MessageService and StorageService. All are singletons that > encapsulate much of the functionality of Cassandra. We've been very > consistent about naming the singleton instances "instance," so if you > search for "public static final [\w]+ instance" and ignore what you > find in db.marshal, you'll have a pretty good idea of what you're in > for. > > Gary. > > > On Fri, Jul 30, 2010 at 12:01, <alta...@ceid.upatras.gr> wrote: > > Thank you for your answer. I know I should change the code. My question > > was mainly on how to change the code to do this. > > > > For example, will making DatabaseDescriptor a non-static class be enough? > > I could have Cassandra build a DatabaseDescriptor instance at startup, > > which could be a class variable of some basic class, and then replace all > > instances of DatabaseDescriptor.someFunction() with method calls on the > > object. Will that be enough or are there many more singletons in the code? > > > > Any different suggestions? > > > > Alexander Altanis > > > >> 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, �<alta...@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 > >> > > >