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<[email protected]> 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<[email protected]> 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<[email protected]> >> 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<[email protected]> 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<[email protected]> 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 >>>>>>> [email protected] >>>>>>> >>>>>>> >>>>> >>>>> -- >>>>> Ian Holsman >>>>> [email protected] >>>>> >>>>> >>>>> >>>>> >>> >>> >> >> >> >> -- >> Evan Weaver >> >
