incubator-cassandra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Greene <michael.gre...@gmail.com>
Subject Re: moving to framed transport (client breakage inevitable)
Date Mon, 22 Jun 2009 02:00:59 GMT
Evan's input makes sense.  I'll see if I can clean up that patch and
test appropriately.  I'd also worry about Cocoa support, but the Cocoa
developers, though few, seem active and willing to review patches.

I recant my previous objection, though it would be nice to see it as
an option at runtime until all languages receive Framed support.

Michael

On Sun, Jun 21, 2009 at 1:05 PM, Jeff Hodges<jeff@somethingsimilar.com> wrote:
> I have to agree with Weaver here. This is a Good Thing to change and I
> imagine the C# developers could use some impetus to implement it.
> There is a JIRA ticket for adding this to C# in progress here:
>
> https://issues.apache.org/jira/browse/THRIFT-210
> --
> Jeff
>
> On Sat, Jun 20, 2009 at 1:32 PM, Evan Weaver<eweaver@gmail.com> wrote:
>> Would this be sufficient motivation for a C# user to add framed support
>> in Thrift? This seems like a cart/horse issue.
>>
>> Evan
>>
>> On Sat, Jun 20, 2009 at 1:05 PM, Chris Goffinet<cg@chrisgoffinet.com> wrote:
>>> +1 for making it an option in runtime.
>>>
>>> List of langs without Framed transport:
>>>
>>> C#
>>> Cocoa
>>> Haskell
>>> Ocaml
>>> Smalltalk
>>>
>>>
>>> On Jun 19, 2009, at 9:56 PM, Jonathan Ellis wrote:
>>>
>>>> That's probably what we'll have to do if C# et al don't support
>>>> Framed.  Which is a shame, because framed makes a lot more sense --
>>>> there's really no reason to keep non-framed around.  But that's Thrift
>>>> for you.
>>>>
>>>> -Jonathan
>>>>
>>>> On Fri, Jun 19, 2009 at 11:44 PM, Ian Holsman<ian@holsman.net> wrote:
>>>>>
>>>>> 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
>>>>>
>>>>>
>>>>>
>>>>>
>>>
>>>
>>
>>
>>
>> --
>> Evan Weaver
>>
>

Mime
View raw message