[ 
http://jira.amdatu.org/jira/browse/AMDATUCASSANDRA-150?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12561#comment-12561
 ] 

Ivo Ladage - van Doorn commented on AMDATUCASSANDRA-150:
--------------------------------------------------------

The client/server separation is not as straightforward as it seemed. The 
problem is that Cassandra does not provide a real clean separation between 
client (thrift) and server classes. In the old situation Amdatu just included 
the cassandra jars and exported all packages, which were imported by all the 
other bundles.
Now there are two issues when trying to separate between client and server:

- Most Cassandra classes cannot be loaded by two different bundle classloaders 
since they execute some logic in static snippets which will cause conflicts. 
Primary issue is the registration of MBeans, which causes a RuntimeException in 
case the same MBean is registered twice (and Cassandra quits).
- Since there is no clear separation between client and server API, quite soon 
you end up importing server packages in you client code. Even the Hector API 
does so.

So it seems inevitable to depend on server-side Cassandra classes when using a 
Thrift client, and these classes cannot be loaded by more then 1 classloader. 
And so we must create a bundle (as the existing one) that embeds and exports 
all cassandra classes, which is subsequently used by server as well as the 
client. This bundle needs to be deployed both on the client and the server.
Now this doesn't seem to be a real issue right away, but unfortunately 
Cassandra initializes the server mostly in static snippets. So when the 
server-side classes are loaded on the client, it will try to prepare the 
cassandra.yaml, register the endpoint snitch, request scheduler, etc. etc.
                
> Support running Cassandra Daemon separately from Cassandra PM
> -------------------------------------------------------------
>
>                 Key: AMDATUCASSANDRA-150
>                 URL: http://jira.amdatu.org/jira/browse/AMDATUCASSANDRA-150
>             Project: Amdatu Cassandra
>          Issue Type: Task
>          Components: Cassandra daemon
>            Reporter: Ivo Ladage - van Doorn
>            Assignee: Ivo Ladage - van Doorn
>            Priority: Critical
>              Labels: blueconic
>             Fix For: 0.2.3
>
>
> In theory it should be possible to run two Amdatu stacks; one with the 
> cassandra daemon installed and one with the persistence manager. They already 
> communicate over Thrift, so that should work. However, we should test this 
> setup.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
http://jira.amdatu.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
Amdatu-developers mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-developers

Reply via email to