[
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