> i want to know which cassandra client is better?
Go with Astynax or Native Binary, they are both under active development and 
support by a vendor / large implementor. 

Cheers

-----------------
Aaron Morton
Freelance Cassandra Consultant
New Zealand

@aaronmorton
http://www.thelastpickle.com

On 7/05/2013, at 7:03 AM, Derek Williams <de...@fyrie.net> wrote:

> Also have to keep in mind that it should be rare to only use a single socket 
> since you are usually making at least 1 connection per node in the cluster 
> (or local datacenter). There is also nothing enforcing that a single client 
> cannot open more than 1 connection to a node. In the end it should come down 
> to which protocol implementation is faster.
> 
> 
> On Mon, May 6, 2013 at 11:58 AM, Aaron Turner <synfina...@gmail.com> wrote:
> From my experience, your NIC buffers generally aren't the problem (or at 
> least it's easy to tune them to fix).  It's TCP.  Simply put, your raw NIC 
> throughput > single TCP socket throughput on most modern hardware/OS 
> combinations.  This is especially true as latency increases between the two 
> hosts.  This is why Bittorrent or "download accellerators" are often faster 
> then just downloading a large file via your browser or ftp client- they're 
> running multiple TCP connections in parallel compared to only one.
> 
> TCP is great for reliable, bi-directional, stream based communication.  Not 
> the best solution for high throughput though.  UDP is much better for that, 
> but then you loose all the features that TCP gives you and so then people end 
> up re-inventing the wheel (poorly I might add).
> 
> So yeah, I think the answer to the question of "which is faster" the answer 
> is "it depends on your queries".
> 
> 
> 
> On Mon, May 6, 2013 at 10:24 AM, Hiller, Dean <dean.hil...@nrel.gov> wrote:
> You have me thinking more.  I wonder in practice if 3 sockets is any faster 
> than 1 socket when doing nio.  If your buffer sizes were small, maybe that 
> would be the case.  Usually the nic buffers are big so when the selector 
> fires it is reading from 3 buffers for 3 sockets or 1 buffer for one socket.  
> In both cases, all 3 requests are there in the buffers.  At any rate, my 
> belief is it probably is still basically parallel performance on one socket 
> though I have not tested my theory…..My theory being the real bottleneck on 
> performance being the work cassandra has to do on the reads and such.
> 
> What about 20 sockets then(like someone has a pool).  Will it be any 
> faster…not really sure as in the end you are still held up by the real 
> bottleneck of reading from disk on the cassandra side.  We went to 20 threads 
> in one case using 20 sockets with astyanax and received no performance 
> improvement(synchronous but more sockets did not improve our performance).  
> Ie. It may be the case 90% of the time, one socket is just as fast as 
> 10/20…..I would love to know the truth/answer to that though.
> 
> Later,
> Dean
> 
> 
> From: Aaron Turner <synfina...@gmail.com<mailto:synfina...@gmail.com>>
> Reply-To: "user@cassandra.apache.org<mailto:user@cassandra.apache.org>" 
> <user@cassandra.apache.org<mailto:user@cassandra.apache.org>>
> Date: Monday, May 6, 2013 10:57 AM
> To: cassandra users 
> <user@cassandra.apache.org<mailto:user@cassandra.apache.org>>
> Subject: Re: hector or astyanax
> 
> Just because you can batch queries or have the server process them out of 
> order doesn't make it fully "parellel".  You're still using a single TCP 
> connection which is by definition a serial data stream.  Basically, if you 
> send a bunch of queries which each return a large amount of data you've 
> effectively limited your query throughput to a single TCP connection.  Using 
> Thrift, each query result is returned in it's own TCP stream in *parallel*.
> 
> Not saying the new API isn't great, doesn't have it's place or may have 
> better performance in certain situations, but generally speaking I would 
> refrain from making general claims without actual benchmarks to back them up. 
>   I do completely agree that Async interfaces have their place and have 
> certain advantages over multi-threading models, but it's just another tool to 
> be used when appropriate.
> 
> Just my .02. :)
> 
> 
> 
> On Mon, May 6, 2013 at 5:08 AM, Hiller, Dean 
> <dean.hil...@nrel.gov<mailto:dean.hil...@nrel.gov>> wrote:
> I was under the impression that it is multiple requests using a single 
> connectin PARALLEL not serial as they have request ids and the responses do 
> as well so you can send a request while a previous request has no response 
> just yet.
> 
> I think you do get a big speed advantage from the asynchronous nature as you 
> do not need to hold up so many threads in your webserver while you have 
> outstanding requests being processed.  The thrift async was not exactly async 
> like I am suspecting the new java driver is, but have not verified(I hope it 
> is)
> 
> Dean
> 
> From: Aaron Turner 
> <synfina...@gmail.com<mailto:synfina...@gmail.com><mailto:synfina...@gmail.com<mailto:synfina...@gmail.com>>>
> Reply-To: 
> "user@cassandra.apache.org<mailto:user@cassandra.apache.org><mailto:user@cassandra.apache.org<mailto:user@cassandra.apache.org>>"
>  
> <user@cassandra.apache.org<mailto:user@cassandra.apache.org><mailto:user@cassandra.apache.org<mailto:user@cassandra.apache.org>>>
> Date: Sunday, May 5, 2013 5:27 PM
> To: cassandra users 
> <user@cassandra.apache.org<mailto:user@cassandra.apache.org><mailto:user@cassandra.apache.org<mailto:user@cassandra.apache.org>>>
> Subject: Re: hector or astyanax
> 
> 
> 
> On Sun, May 5, 2013 at 1:09 PM, Derek Williams 
> <de...@fyrie.net<mailto:de...@fyrie.net><mailto:de...@fyrie.net<mailto:de...@fyrie.net>>>
>  wrote:
> The binary protocol is able to multiplex multiple requests using a single 
> connection, which can lead to much better performance (similar to HTTP vs 
> SPDY). This is without comparing the performance of thrift vs binary 
> protocol, which I assume the binary protocol would be faster since it is 
> specialized for cassandra requests.
> 
> 
> Curious why you think multiplexing multiple requests over a single connection 
> (serial) is faster then multiple requests over multiple connections 
> (parallel)?
> 
> And isn't Thrift a binary protocol?
> 
> 
> --
> Aaron Turner
> http://synfin.net/         Twitter: @synfinatic
> http://tcpreplay.synfin.net/ - Pcap editing and replay tools for Unix & 
> Windows
> Those who would give up essential Liberty, to purchase a little temporary
> Safety, deserve neither Liberty nor Safety.
>     -- Benjamin Franklin
> "carpe diem quam minimum credula postero"
> 
> 
> 
> --
> Aaron Turner
> http://synfin.net/         Twitter: @synfinatic
> http://tcpreplay.synfin.net/ - Pcap editing and replay tools for Unix & 
> Windows
> Those who would give up essential Liberty, to purchase a little temporary
> Safety, deserve neither Liberty nor Safety.
>     -- Benjamin Franklin
> "carpe diem quam minimum credula postero"
> 
> 
> 
> -- 
> Aaron Turner
> http://synfin.net/         Twitter: @synfinatic
> http://tcpreplay.synfin.net/ - Pcap editing and replay tools for Unix & 
> Windows
> Those who would give up essential Liberty, to purchase a little temporary 
> Safety, deserve neither Liberty nor Safety.  
>     -- Benjamin Franklin
> "carpe diem quam minimum credula postero"
> 
> 
> 
> -- 
> Derek Williams

Reply via email to