You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jonathan Ellis (JIRA)" <ji...@apache.org> on 2009/11/25 21:34:39 UTC

[jira] Commented: (CASSANDRA-535) Support remote clients via Java API

    [ 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.