incubator-cassandra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ian Holsman <...@holsman.net>
Subject Re: moving to framed transport (client breakage inevitable)
Date Sat, 20 Jun 2009 04:44:53 GMT
Hey guys.
is it possible to make this a run time option or something?

On 20/06/2009, at 10:03 AM, Michael Greene wrote:

> Hopping on a plane so this will be brief, but C# does not have a
> Framed Transport, nor do a few of the other languages, so I'd have to
> be -1 on this change.
>
> On Fri, Jun 19, 2009 at 3:22 PM, Eric Evans<eevans@rackspace.com>  
> wrote:
>>
>> As explained in CASSANDRA-241[1], the daemon process, which is  
>> currently
>> using a non-framed thrift transport is incompatible with (some?)
>> non-blocking client implementations. The solution is to standardize  
>> on a
>> framed transport which is compatible with all client implementations.
>>
>> [1] https://issues.apache.org/jira/browse/CASSANDRA-241
>>
>> Unfortunately this is going to break everyone's client apps.  
>> Fortunately
>> the fix is trivial.
>>
>> For Java clients that look something like ...
>>
>>    socket = new TSocket(hostname, port);
>>    TProtocol protocol = new TBinaryProtocol(socket);
>>    client = new Cassandra.Client(protocol);
>>
>> ... changing them to look like ...
>>
>>
>>    socket = new TSocket(hostname, port);
>>    TTransport transport = new TFramedTransport(socket)
>>    TProtocol protocol = new TBinaryProtocol(transport);
>>    client = new Cassandra.Client(protocol);
>>
>> ... should do the trick.
>>
>> For a Python client that looks something like ...
>>
>>    socket = TSocket.TSocket(host, port)
>>    transport = TTransport.TBufferedTransport(socket)
>>    protocol = TBinaryProtocol.TBinaryProtocol(transport)
>>    client = Cassandra.Client(protocol)
>>
>> ... change it to look like ...
>>
>>    socket = TSocket.TSocket(host, port)
>>    transport = TTransport.TFramedTransport(socket)
>>    protocol = TBinaryProtocol.TBinaryProtocol(transport)
>>    client = Cassandra.Client(protocol)
>>
>>
>> Unless confronted with compelling arguments, Jonathan has agreed to
>> commit this change on Monday, so speak soon or forever hold your
>> peace. :)
>>
>> --
>> Eric Evans
>> eevans@rackspace.com
>>
>>

--
Ian Holsman
Ian@Holsman.net




Mime
View raw message