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] > > > >
