Throughput issue contd. On Joyend Riak Smartmachine

Yousuf Fauzan yousuffauzan at
Wed Jun 27 16:34:39 EDT 2012

I get this error when I increase the number of threads accessing a single
connection. Something related to getting unexpected number of bytes on the

On Wednesday, June 27, 2012, Reid Draper <reiddraper at> wrote:
> On Jun 27, 2012, at 8:41 AM, Yousuf Fauzan wrote:
> So I created an array of clients using the following code
> Clients = [riak.RiakClient(e, port=8087,
transport_class=riak.RiakPbcTransport) for e in NODES]
> Sounds like you're bringing your concurrency back down to 3 (because you
have three nodes). Give
> something like 10 connections _per_ node a try, so 30 connections.
> After this I assigned each thread a particular id ranging from 0 to
Number of Nodes
> So each thread now communicates with a single node.
> Even after this, I am getting <100 writes/sec
> On Wed, Jun 27, 2012 at 5:35 PM, Yousuf Fauzan <yousuffauzan at>
> Oh! I think that may be an issue with my code then.
> Let me make some changes and get back to you.
> On Wed, Jun 27, 2012 at 5:25 PM, Reid Draper <reiddraper at> wrote:
> On Jun 27, 2012, at 7:48 AM, Yousuf Fauzan wrote:
> This is great.
> I was loading data using Python. My code would spawn 10 threads and put
data in a queue. All threads would read data from this queue.
> However, all threads were hitting the same server/load balancer.
> I tried a different setup too. Where I spawned processes with each
process having its own queue. In this case too, all processes were hitting
the same server.
> I just now made a change to my code. So now I have 10 threads randomly
selecting a node and storing data in it.
> Again, I am getting around 50 writes/sec
> When the threads randomly pick a node, do they create a new connection to
it, or do they pull the connection from
> a pool? As you saw with the throughput difference between curl and
python, persistent connections make
> big difference.
> Could there be something wrong with the way I have written my loader
> On Wed, Jun 27, 2012 at 5:10 PM, Russell Brown <russell.brown at>
> On 27 Jun 2012, at 12:36, Yousuf Fauzan wrote:
> So I changed concurrency to 10 and put all the IPs of the nodes in basho
bench config.
> Throughput is now around 1500.
> I guess you can now try 5 or 15 concurrent workers and see which is
optimal for that set up to get a good feel for the sizing of any connection
pools for your application.
> You can also see how adding nodes and adding workers effects your results
to help you size the cluster you need for your expected usage.
> Cheers
> Russell
> On Wed, Jun 27, 2012 at 4:40 PM, Russell Brown <russell.brown at>
> On 27 Jun 2012, at 12:09, Yousuf Fauzan wrote:
> I used examples/riakc_pb.config
> {mode, max}.
> {duration, 10}.
> {concurrent, 1}.
> Try upping this. On my local 3 node cluster with 8gb ram and an old,
cheap quad core per box I'd set concurrency to 10 workers.
> {driver, basho_bench_driver_riakc_pb}.
> {key_generator, {int_to_bin, {uniform_int, 10000}}}.
> {value_generator, {fixed_bin, 10000}}.
> {riakc_pb_ips, [{<IP of one of the nodes>}]}.
> I add all the IPs here, one entry per node.
> {riakc_pb_replies, 1}.
> {operations, [{get, 1}, {update, 1}]}.
> On Wed, Jun 27, 2012 at 4:37 PM, Russell Brown <russell.brown at>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the riak-users mailing list