[ 
https://issues.apache.org/jira/browse/CASSANDRA-535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12782604#action_12782604
 ] 

Jonathan Ellis commented on CASSANDRA-535:
------------------------------------------

This feels like a hack to me:

     void apply(RowMutation mutation, DataOutputBuffer serializedMutation) 
throws IOException
     {
+        // bail if we're in client-only mode. No need to write to anything, 
including the system table.
+        if (clientOnlyMode)
+            return;

we need to refactor things better so that we're not trying to apply mutations 
in client mode.  having a storageservice.initClient for instance.

feels like we should not need a mode flag in the config file either -- if we 
need a flag in SS, initClient can set it.  then move directory creation stuff 
out of DD, e.g. to SS.initServer.

clients should not have tokens associated with them, and should not participate 
in the ring at all at that level.  (that is, we should start gossiper so we get 
updates, but never send any applicationstate of our own.)

> Support remote clients via Java API
> -----------------------------------
>
>                 Key: CASSANDRA-535
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-535
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: T Jake Luciani
>            Assignee: Gary Dusbabek
>             Fix For: 0.9
>
>         Attachments: 535-v1.diff
>
>
> Cassandra should support Java based clients without requiring the overhead of 
> thrift serialization.
> To support this, a java client should be able to join the gossip pool but 
> provide no tokens of its own (so it accepts no writes).
> The way this can be done is add a new startup routine to StorageService 
> called startGossip() that would only initialize itself enough to get access 
> to gossip.
> I don't think its quite this simple though since cassandra code assumes there 
> is at least one local token in places.
> Also,  all StorageProxy methods used for thrift service should be made public 
> StorageProxy.getKeyRange() is not public.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to