cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jun Rao (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CASSANDRA-197) Expose ring map to client for more direct access
Date Fri, 22 May 2009 22:25:45 GMT

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

Jun Rao commented on CASSANDRA-197:
-----------------------------------

I am not sure if we should make client a member of the cluster and receive all the gossiped
messages. For request routing, the client only cares about the event of adding/removing nodes,
which is infrequent. Making client a member of the cluster exposes it to way too many irrelevant
messages. An out-of-date cached ring map only affects performance, not correctness. In practice,
it's probably good enough for each client to simply refresh its cached ring map, say once
per hour.

As for that the client has to include the server code and config file, I don't think it's
a big deal. The server jar is already needed for java clients today and a client has to be
aware of the thrift port. Further, each client has to explicitly maintain a list of cassandra
servers to connect to (RingCache obviates that).

It is a bit awkward to expose the getRIngMap api in thrift, since only the client library
really needs to see it, not the actual client code. However, thrift seems to be the only simple
way for a client to talk to the server. MessageService is too heavy to use just for infrequent
server calls. Could we just document that the api is not intended for direct client usage?




> Expose ring map to client for more direct access
> ------------------------------------------------
>
>                 Key: CASSANDRA-197
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-197
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jun Rao
>            Assignee: Jun Rao
>         Attachments: issue197.patchv1
>
>
> For certain applications, it would be nice if a read is sent to a node that owns the
data locally. This saves an extra network hop. To do that, a client will need to cache the
ring map and use it to figure out the nodes owning a row.

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


Mime
View raw message