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]