Re: insert performance (1.2.8)

2013-08-26 Thread Keith Freeman
That sounds interesting, but not sure exactly what you mean? My key is like this: ((f1, f2, day) timeuuid), and f1/f2 are roughly well-distributed. So my inserts are pretty evenly distributed across about 22k combinations of f1+f2 each day. Are you saying that you get better performance by

Re: insert performance (1.2.8)

2013-08-21 Thread Keith Freeman
Building the giant batch string wasn't as bad as I thought, and at first I had great(!) results (using unlogged batches): 2500 rows/sec (batches of 100 in 48 threads) ran very smoothly, and the load on the cassandra server nodes averaged about 1.0 or less continuously. But then I upped it to

Re: insert performance (1.2.8)

2013-08-21 Thread Nate McCall
The only thing I can think to suggest at this point is upping that batch size - say to 500 and see what happens. Do you have any monitoring on this cluster? If not, what do you see as the output of 'nodetool tpstats' while you run this test? On Wed, Aug 21, 2013 at 1:40 PM, Keith Freeman

Re: insert performance (1.2.8)

2013-08-21 Thread Nate McCall
What's the disk setup like on these system? You have some pending tasks in MemtablePostFlusher and FlushWriter which may mean there is contention on flushing discarded segments from the commit log. On Wed, Aug 21, 2013 at 5:14 PM, Keith Freeman 8fo...@gmail.com wrote: Ok, I tried batching 500

Re: insert performance (1.2.8)

2013-08-20 Thread Keith Freeman
Ok, I'll try prepared statements. But while sending my statements async might speed up my client, it wouldn't improve throughput on the cassandra nodes would it? They're running at pretty high loads and only about 10% idle, so my concern is that they can't handle the data any faster, so

Re: insert performance (1.2.8)

2013-08-20 Thread Nate McCall
John makes a good point re:prepared statements (I'd increase batch sizes again once you did this as well - separate, incremental runs of course so you can gauge the effect of each). That should take out some of the processing overhead of statement validation in the server (some - that load spike

Re: insert performance (1.2.8)

2013-08-20 Thread Przemek Maciolek
I had similar issues (sent a note on the list few weeks ago but nobody responded). I think there's a serious bottleneck with using wide rows and composite keys. I made a trivial benchmark, which you check here: http://pastebin.com/qAcRcqbF - it's written in cql-rb, but I ran the test using

Re: insert performance (1.2.8)

2013-08-20 Thread Nate McCall
Thanks for putting this up - sorry I missed your post the other week. I would be real curious as to your results if you added a prepared statement for those inserts. On Tue, Aug 20, 2013 at 9:14 AM, Przemek Maciolek pmacio...@gmail.comwrote: I had similar issues (sent a note on the list few

Re: insert performance (1.2.8)

2013-08-20 Thread Przemek Maciolek
AFAIK, batch prepared statements were added just recently: https://issues.apache.org/jira/browse/CASSANDRA-4693 and many client libraries are not supporting it yet. (And I believe that the problem is related to batch operations). On Tue, Aug 20, 2013 at 4:43 PM, Nate McCall

Re: insert performance (1.2.8)

2013-08-20 Thread Keith Freeman
So I tried inserting prepared statements separately (no batch), and my server nodes load definitely dropped significantly. Throughput from my client improved a bit, but only a few %. I was able to *almost* get 5000 rows/sec (sort of) by also reducing the rows/insert-thread to 20-50 and

Re: insert performance (1.2.8)

2013-08-20 Thread Nate McCall
Ugh - sorry, I knew Sylvain and Michaël had worked on this recently but it is only in 2.0 - I could have sworn it got marked for inclusion back into 1.2 but I was wrong: https://issues.apache.org/jira/browse/CASSANDRA-4693 This is indeed an issue if you don't know the column count before hand (or

Re: insert performance (1.2.8)

2013-08-20 Thread Keith Freeman
Thanks. Can you tell me why would using thrift would improve performance? Also, if I do try to build those giant strings for a prepared batch statement, should I expect another performance improvement? On 08/20/2013 05:06 PM, Nate McCall wrote: Ugh - sorry, I knew Sylvain and Michaël had

Re: insert performance (1.2.8)

2013-08-20 Thread Nate McCall
Thrift will allow for more large, free-form batch contstruction. The increase will be doing a lot more in the same payload message. Otherwise CQL is more efficient. If you do build those giant string, yes you should see a performance improvement. On Tue, Aug 20, 2013 at 8:03 PM, Keith Freeman

insert performance (1.2.8)

2013-08-19 Thread Keith Freeman
I've got a 3-node cassandra cluster (16G/4-core VMs ESXi v5 on 2.5Ghz machines not shared with any other VMs). I'm inserting time-series data into a single column-family using wide rows (timeuuids) and have a 3-part partition key so my primary key is something like ((a, b, day),

Re: insert performance (1.2.8)

2013-08-19 Thread Nate McCall
How big are the batch sizes? In other words, how many rows are you sending per insert operation? Other than the above, not much else to suggest without seeing some example code (on pastebin, gist or similar, ideally). On Mon, Aug 19, 2013 at 5:49 PM, Keith Freeman 8fo...@gmail.com wrote: I've

Re: insert performance (1.2.8)

2013-08-19 Thread Keith Freeman
Sure, I've tried different numbers for batches and threads, but generally I'm running 10-30 threads at a time on the client, each sending a batch of 100 insert statements in every call, using the QueryBuilder.batch() API from the latest datastax java driver, then calling the Session.execute()

Re: insert performance (1.2.8)

2013-08-19 Thread John Sanda
I'd suggest using prepared statements that you initialize at application start up and switching to use Session.executeAsync coupled with Google Guava Futures API to get better throughput on the client side. On Mon, Aug 19, 2013 at 10:14 PM, Keith Freeman 8fo...@gmail.com wrote: Sure, I've

Re: insert performance

2012-02-23 Thread Philippe
Definitely multi thread writes...probably with a little batching (10 or so). That's how i get my peak throughput. Le 23 févr. 2012 04:48, Deno Vichas d...@syncopated.net a écrit : all, would i be better off (i'm in java land) with spawning a bunch of threads that all add a single item to a

insert performance

2012-02-22 Thread Deno Vichas
all, would i be better off (i'm in java land) with spawning a bunch of threads that all add a single item to a mutator or a single thread that adds a bunch of items to a mutator? thanks, deno

Re: Question about insert performance in multiple node cluster

2011-03-01 Thread Oleg Anastasyev
Are your test client talks to single node or to both ?

Question about insert performance in multiple node cluster

2011-02-28 Thread Flachbart, Dirk (HP Software - TransactionVision)
driver is still local to one of the Cassandra nodes). Surprisingly I did not see any improvement in the insert performance, I got the same 9000 inserts/sec as when running with a single node. I know that I shouldn't expect linear scaling to 18,000 operations/sec, but shouldn't I see at least some

Re: Question about insert performance in multiple node cluster

2011-02-28 Thread Ryan King
with the local Cassandra server. Then I set up a cluster with both machines, and ran the same test again (the test driver is still local to one of the Cassandra nodes). Surprisingly I did not see any improvement in the insert performance, I got the same 9000 inserts/sec as when running

Re: Question about insert performance in multiple node cluster

2011-02-28 Thread Peter Schuller
What's your replication factor? Which consistency level are you using? Is the ring evenly balanced? Did you double the number of client threads when you added the second server? And are you on 100 mbit networking? 9k requests/second inserting 1k, sounds suspiciously close to saturating 100 MB

RE: Question about insert performance in multiple node cluster

2011-02-28 Thread Flachbart, Dirk (HP Software - TransactionVision)
@cassandra.apache.org Cc: Ryan King; Flachbart, Dirk (HP Software - TransactionVision) Subject: Re: Question about insert performance in multiple node cluster What's your replication factor? Which consistency level are you using? Is the ring evenly balanced? Did you double the number of client

Re: Question about insert performance in multiple node cluster

2011-02-28 Thread Peter Schuller
Replication factor is set to 1, and I'm using ConsistencyLevel.ANY. And yep, I tried doubling the threads from 16 to 32 when running with the second server, didn't make a difference. Are you sure the client isn't the bottleneck? Have you tried running the client on independent (and perhaps

Re: Question about insert performance in multiple node cluster

2011-02-28 Thread Ryan King
On Mon, Feb 28, 2011 at 2:05 PM, Flachbart, Dirk (HP Software - TransactionVision) dirk.flachb...@hp.com wrote: Replication factor is set to 1, and I'm using ConsistencyLevel.ANY. And yep, I tried doubling the threads from 16 to 32 when running with the second server, didn't make a

0.6 insert performance .... Re: [RELEASE] 0.6.1

2010-04-19 Thread Masood Mortazavi
I wonder if anyone can use: * Add logging of GC activity (CASSANDRA-813) to confirm this: http://www.slideshare.net/schubertzhang/cassandra-060-insert-throughput - m. On Sun, Apr 18, 2010 at 6:58 PM, Eric Evans eev...@rackspace.com wrote: Hot on the trails of 0.6.0 comes our latest,

RE: 0.6 insert performance .... Re: [RELEASE] 0.6.1

2010-04-19 Thread Mark Jones
work out. From: Masood Mortazavi [mailto:masoodmortaz...@gmail.com] Sent: Monday, April 19, 2010 6:15 AM To: user@cassandra.apache.org; d...@cassandra.apache.org Subject: 0.6 insert performance Re: [RELEASE] 0.6.1 I wonder if anyone can use: * Add logging of GC activity (CASSANDRA-813

RE: 0.6 insert performance .... Re: [RELEASE] 0.6.1

2010-04-19 Thread Daniel Kluesing
4:15 AM To: user@cassandra.apache.org; d...@cassandra.apache.org Subject: 0.6 insert performance Re: [RELEASE] 0.6.1 I wonder if anyone can use: * Add logging of GC activity (CASSANDRA-813) to confirm this: http://www.slideshare.net/schubertzhang/cassandra-060-insert-throughput - m

Re: 0.6 insert performance .... Re: [RELEASE] 0.6.1

2010-04-19 Thread Jonathan Ellis
It's hard to tell from those slides, but it looks like the slowdown doesn't hit until after several GCs. Perhaps this is compaction kicking in, not GCs? Definitely the extra I/O + CPU load from compaction will cause a drop in throughput. On Mon, Apr 19, 2010 at 6:14 AM, Masood Mortazavi

Re: 0.6 insert performance .... Re: [RELEASE] 0.6.1

2010-04-19 Thread Schubert Zhang
. It basically kills any kind of soft real time behavior. *From:* Masood Mortazavi [mailto:masoodmortaz...@gmail.com] *Sent:* Monday, April 19, 2010 4:15 AM *To:* user@cassandra.apache.org; d...@cassandra.apache.org *Subject:* 0.6 insert performance Re: [RELEASE] 0.6.1 I wonder if anyone