You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Eric Evans (JIRA)" <ji...@apache.org> on 2009/07/22 01:17:14 UTC

[jira] Commented: (CASSANDRA-241) move daemon to framed transport (thrift)

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

Eric Evans commented on CASSANDRA-241:
--------------------------------------

Just to provide some update:

There are a couple of reasons why I've been avoiding a configuration option to enable/disable framed transport.

1. Whether or not the transport is framed or not is an implementation detail of Thrift, it sucks that we would be forced to expose this to our users.

2. Until THRIFT-210 is complete (better yet, THRIFT-538), there won't be any one setting that will let you run a server compatible with all clients. For example, with a framed transport enabled C# clients currently aren't possible, conversely without a framed transport, Twisted clients are left out in the cold.
 
It has been my hope that the Thrift team would close at least THRIFT-210 (there is a patch attached), so that we could accommodate all of our users with a framed transport (and without requiring it to be configured).

However, considering how long THRIFT-210 has been open (and considering the complete lack of response to THRIFT-538), it may in fact be necessary to add an option so that our users can at least choose what (not  )to support.



> move daemon to framed transport (thrift)
> ----------------------------------------
>
>                 Key: CASSANDRA-241
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-241
>             Project: Cassandra
>          Issue Type: Bug
>    Affects Versions: 0.4
>            Reporter: Eric Evans
>            Assignee: Eric Evans
>             Fix For: 0.4
>
>         Attachments: 241.txt
>
>
> The framed transports in thrift wrap the underlying transport to prepend the message size as a 4 byte value.  There are purported benefits to buffering, but the main purpose of these wrappers is to allow non-blocking servers to perform reads without deserialization. Of course, if the server transport is framed, the client's must be as well, and vice versa, (framed and non-framed transports are incompatible). 
> CassandraDaemon is currently a threaded server with the default transport, I believe we should change it to being framed, for compatibility with non-blocking clients (this actually came up during an attempt to use a Twisted client).
> This will break all existing client apps, (even if fixing them is trivial).

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