Yes, one should use either the TBufferedTransport or TFramedTransport
in Java for performance reasons. These are analogous to the C# Socket
classes and you should see a performance improvement from buffering.
On Apr 24, 2010, at 5:31 PM, Joost Ouwerkerk <jo...@openplaces.org>
wrote:
Is this something that also needs to be managed in Java? In most
examples I've seen, connections are created like this:
TSocket socket = new TSocket(location, thriftport)
TBinaryProtocol binaryProtocol = new TBinaryProtocol
(socket, false, false);
Cassandra.Client client = new Cassandra.Client
(binaryProtocol);
Is that sub-optimal?
joost.
On Fri, Apr 23, 2010 at 3:29 PM, Heath Oderman <he...@526valley.com>
wrote:
Really interesting find.
After Jonathan E. suggested py_stress and it seemed clear the
problem was in my .net client I spent a few days debugging the
client in detail.
I ended up changing my CassandraContext instantiation to use a
TBuffferedProtocol(TSocket) instead of a
TSocket directly.
The difference was *dramatic*.
The calls to debian suddenly behaved as expected, eclipsing the
write speeds under load of the calls to the OSX box by a factor of 2!
The change caused a performance increase in the client communicating
with OSX as well, but the improvement was smaller.
I don't understand exactly, but clearly there's a difference in the
way that Debian and OSX handle socket level communications that has
a big effect on a .net client calling in from windows.
It's been a really interesting experiment and I throughly appreciate
all the help and pointers I've gotten from this list.
Cassandra is so fast, and so impressive it strains credibility. I'm
totally amazed by what these guys have put together.
Thanks,
Stu