cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tony Anecito <>
Subject Re: Cassandra driver performance question...
Date Sat, 22 Jun 2013 03:33:04 GMT
Hi Jabbar,
I think I know what is going on. I happened accross a change mentioned by the jdbc driver
developers regarding metadata caching. Seems the metadata caching was moved from the connection
object to the preparedStatement object. So I am wondering if the time difference I am seeing
on the second preparedStatement object is because of the Metadata is cached then.
So my question is how to test this theory? Is there a way to stop the metadata from coming
accross from Cassandra? A 20x performance improvement would be nice to have.

From: Tony Anecito <>
To: "" <> 
Sent: Friday, June 21, 2013 8:56 PM
Subject: Re: Cassandra driver performance question...

Thanks Jabbar,
I ran nodetool as suggested and it 0 latency for the row count I have.
I also ran cli list command for the table hit by my JDBC perparedStatement and it was slow
like 121msecs the first time I ran it and second time I ran it it was 40msecs versus jdbc
call of 38msecs to start with unless I run it twice also and get 1.5-2.5msecs for executeQuery
the second time the preparedStatement is called.
I ran describe from cli for the table and it said caching is "ALL" which is correct.
A real mystery and I need to understand better what is going on.

From: Jabbar Azam <>
To:; Tony Anecito <> 
Sent: Friday, June 21, 2013 3:32 PM
Subject: Re: Cassandra driver performance question...

Hello Tony, 

I would guess that the first queries data  is put into the row cache and the filesystem cache.
The second query gets the data from the row cache and or the filesystem cache so it'll be

If you want to make it consistently faster having a key cache will definitely help. The following
advice from Aaron Morton will also help 
"You can also see what it looks like from the server side. 

nodetool proxyhistograms will
show you full request latency recorded by the coordinator. 
nodetool cfhistograms will show
you the local read latency, this is just the time it takes
to read data on a replica and does
not include network or wait times. 

If the proxyhistograms is showing most requests running
faster than your app says it's your


Jabbar Azam

On 21 June 2013 21:29, Tony Anecito <> wrote:

Hi All,
>I am using jdbc driver and noticed that if I run the same query twice the second time
it is much faster.
>I setup the row cache and column family cache and it not seem to make a difference.
>I am wondering how to setup cassandra such that the first query is always as fast as the
second one. The second one was 1.8msec and the first 28msec for the same exact paremeters.
I am using preparestatement.
View raw message